瀑布模型
1、特点:
a.阶段具有顺序性和依赖性
前一阶段结束后一阶段开始,前一阶段输出文档,后一阶段输入文档。
b. 推迟实现观点
瀑布模型在编码前设置系统分析、系统设计、推迟程序物理实现,保证前期工作扎实。
C.质量保证的观点
一是每个阶段都必须完成完整、准确的文档。软件开发时人员间通信、运行时期的维护的重要依据。
二是每阶段结束前对文档评审。
2、优点:提高软件质量、降低维护成本、缓解软件危机
3、缺点:模型缺乏灵活性,无法解决需求不明确问题。用户不经过实践提出完整准确需求不切实际。
4、改进方法:设计先行,设计文档化,二次开发,计划、控制、监测测试阶段,客户参与。
5、适用范围:需求明确,小规模软件开发。
快速原型模型
1、特点:快速
2、优点:
a. 确定需求上优于瀑布模型(通过原型与用户交互);
b. 提供学习手段通过开发模型和演示原型对开发者了解系统都有积极作用;
c. 有的软件原型可以成为最终产品的一部分。
3、缺点:快速建立系统结构加连续修改可能导致产品质量低下原型系统的结构可能不好。
4、适用范围:用户需求不明确,需要通过构建原型来清楚的了解用户的真实需求。
增量模型(又称渐增模型)
1、特点:从详细设计阶段各个构件是并行工作的。
2、优点:
a. 较短时间向用户提交可完成有用工作产品;
b. 用户有充裕时间学习和适应新产品;
c. 软件结构必须开放,方便向现有的产品加入新的构件。
3、缺点:做到第三个优点比较困难。使用该方法将冒构件无法集成到一起的风险,除非密切地监控整个开发过程,否则整个工程可能毁于一旦。
4、适用范围:软件开发周期较长的软件,有持续的合作。
采用瀑布模型或快速原型模型开发软件时,目标都是一次就把所有需求产品提交给用户。增量模型则与之相反,它分批地逐步向用户提交产品,整个软件产品分解成许多个增量构件,开发人员一个构件接一个构件地向用户提交产品。
螺旋模型
1、特点:周期较长、基于风险驱动的
2、优点:大型软件开发项目有较好的风险控制;
3、缺点:需要风险评估经验;契约开发通常需要事先指定过程模型和开发产品;普及不如其他模型。
4、使用范围:内部软件开发的大规模软件项目。
喷泉模型
1、特点:面向对象生命周期模型,体现迭代和无缝。
2、优点:无缝,可同步开发,提高开发效率,节省开发时间,适应面向对象软件
3、缺点:可能随时加各种信息、需求与资料,需严格管理文档,审核的难度加大。
4、适用范围:面向对象的软件开发过程。