软件开发模型也称为软件过程。它是软件开发全部过程、活动和任务的结构框架。常见的软件开发模型有瀑布模型、增量模型、原型模型、螺旋模型、喷泉模型等。
1、瀑布模型:
优点:
1)为项目提供了按阶段划分的检查点
2)当前阶段完成,只需关注后序阶段。
缺点:
1)各阶段的划分完全固定,缺乏灵活性。
2)与用户见面晚,增加了软件开发的风险。
3)早期的错误可能要等到测试阶段才发现,发现问题越晚,付出代价越大。
2、增量模型:
优点:
1)第一个可交付版本所需要的成本和事件很少,
开发由增量表示的小系统所承担的风险不大
由于很快发不了第一个版本,因此可以减少用户需求的变更。
运行增量投资,即在项目开始时,可以仅对一个或两个增量投资。
缺点:
如果没有对用户的变更进行规划,那么产生的初始增量可能会造成后来增量的不稳定。
如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布。
管理发生的版本,进度和配置的复杂性可能会超出组织的能力。
3、原型模式:
原型是预期系统的一个可执行版本,反映了系统性质的一个选定的子集。一个原型不必满足目标软件的所有约束,其目的是能快速、低成本构建原型。
4、螺旋模型:
螺旋模型将瀑布模型和原型模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。
螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合,将螺旋周期分为4个工作步骤。
(1)、制定计划
(2)、风险分析:
(3)、实施工程:
(4)、用户评估:
优点:1)设计上的灵活性,可以在项目的各个阶段进行变更。
2)以小的分段来构建大型系统,使成本计算变得简单容易。
3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
4)随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。
缺点:
1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
2)过多的迭代次数会增加开发成本,延迟提交时间。
5、喷泉模型:
喷泉模型是一种以用户需求为动力,以对象为驱动,适合于面向对象的开发方法。克服了瀑布模型不支持软件重用和多项开发活动继承的局限性。喷泉模型使开发过程具有迭代性和无间歇性,迭代意味着模型中的开发活动常常需要重复多次,在迭代过程中不断完善软件系统。无间歇式指在开发活动(如分析、设计、编码)之间不存在明显的界限。
其优点是可以提高软件项目的开发效率,节省开发时间。
缺点是各个开发阶段是重叠的,在开发过程中需要大量的开发人员,不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大。