前言:最近在做软考试题,会出一些每个模型的“特点”。
典型的软件过程模型有瀑布模型、增量模型、演化模型(原型模型、螺旋模型)、喷泉模型、基于构件的开发模型、形式化方法模型等。
七大软件过程模型 | |||||||
| 瀑布模型 | 增量模式 | 原型模型 | 螺旋模型 | 喷泉模型 | 基于构件的开发模型 | 形式化方法模型 |
定义 | 将软件生存周期中的各个活动规定为依线性顺序连接的若干个阶段的模型。包括需求分析、设计、编码、测试、运行与维护。它规定了由前至后、相互衔接的固定次序,如瀑布流水级下落。 | 将需求分段为一系列增量产品,每一增量可以分别开发。根据第一个增量,可以快速开发出核心产品。 | 快速建立起来的可以在计算机上运行的程序,或仅仅是一个演示界面。 | 瀑布与演化模型的结合,加入风险分析。四象限工作步骤:制定计划、风险分析、实施工程、用户评估。 | 以用户需求为动力,以对象作为驱动的模型。具有迭代性和无间隙性。 | 利用预选包装的构件来构造应用系统。 | 建立在严格数学基础上的一种开发方法。 |
适用于 | 以文档作为驱动、适合于软件需求很明确的软件项目。 | 软件体系结构开发,加入新构件过程简单。 | 需求不够明确的项目。 | 庞大、复杂并且具有高度风险的系统。支持需求的动态变化。 | 面向对象的开发方法。 | 需要一定的构件模型支持的软件项目。 | 需要生成计算机软件形式化的数学规格说明。 |
优点 | 容易理解,管理成本低;强调开发的阶段性早期计划及需求调查和产品测试。 | 第一个可以付版本所需要的实际和成本很少;所承担的风险不大;减少用户需求的变更。 | 能快速、低成本地构件原型。 | 提高软件的适应能力;降低了软件开发的风险。 | 各阶段没有明显的界闲,可以同步开发,提高了软件开发效率,节省了时间。 | 构件组装模型导致软件的复用,提高了开发效率;允许多个项目同时开发,降低了费用,提高了可维护性。 | 易于发现需求的歧义性、不完整性和不一致性;易于对分析模型、设计模型和程序进行验证。 |
缺点 | 客户必须能够完整、正确、清晰地表达出他们的需求;需求或设计的错误往往是在项目后期才被发现,对于项目风险控制能力较弱,经常延期。 | 如果没有对变更需求进行规划,那么会导致后来增量的不稳定;如果需求不稳定完整,那么会导致重新开发;管理发生的成本、进度和配置的复杂性会超出组织的能力。 | 必须需求具有技能高水平的原型化人员。 | 过多的迭代次数增加了开发成本,延迟了提交时间。 | 各开发阶段是重叠的,不利于项目的管理;严格要求文档,使得审核的难度加大。 | 构件的引入具有较大的风险;过分依赖于构件,构件的质量影响产品的质量;需要精干的、有经验的分析人员和开发人员,客户的满意度低。 | 需要通过严密的数学演算。 |
关键点 | 需求明确 |
| 需求不够明确 | 风险 |
|
|
|
总结:对比总结一下,一看就明白了。