软件生存周期模型是描述开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发 和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守规则和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。
常见的软件生存周期模型:瀑布模型、演化模型、螺旋模型、喷泉模型。
比较了这几种模型的不同:
软件生存周期模型 | 概要 | 适用范围 | 优点 | 缺点 | 备注 |
瀑布模型 | 将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型;如瀑布流水,逐级下落; | 此模型以文档作为驱动,适合软件需求很明确的软件项目; 例如:操作系统、数据库管理系统等系统软件的开发; | 1,为项目提供了按阶段划分的检查点,当前一个阶段完成后,只需要关注后续阶段; 2,提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织与管理; | 1,缺乏灵活性,无法解决软件需求不明确或不准确的问题; 2,在软件开发的初期阶段就要求作出正确、全面改、完整的需求分析,这对许多应用软件来说是和困难的; 3,此模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险; |
|
演化模型/原型 | 第一步:建造一个快速原型,实现未来用户与系统的交互,用户对原型进行评价,进一步细化待开发软件的需求,通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求时什么; 第二步:在第一步的基础上开发客户满意的软件产品;
| 适用于不能确切定义需求的软件系统开发; | 1,克服了瀑布模型的缺点,适用于对软件需求缺乏准确认识的情况; 2,减少了由于软件需求不明确带来的开发风险; | 1,所选用的开发技术和工具不一定符合主流的发展; 2,快速建立起来的系统结构加上连续的修改可能会导致产品质量低下; 3,使用这个模型的前提是要有一个展示性的产品模型,因此在一定程度上可能会限制开发人员的创新; |
|
螺旋模型 | 将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析,弥补了以上两种模型的不足; | 适合于大规模的软件项目; | 1,强调严格的全过程风险管理; 2,强调各开发阶段的质量; 3,强调原型的可扩充性和可修改性,原型的进化贯穿整个软件生存周期; 4,为项目管理人员及时调整管理决策提供了方便,进而降低开发风险; | 1,很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较长的差距,无法满足当前用户需求; 2,使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高;
|
|
喷泉模型 | 以用户需求为动力,以对象作为驱动的模型; | 适合于面向对象的开发方法;
| 1,克服了瀑布模型不支持软件重用和多想开发活动集成的局限性; 2,允许各开发活动交叉、迭代地进行; |
|
|
|
|
|
|
|
|
总结:通过一张表格的比较能更好的了解这几种模型及他们各自的用处。