1、概念介绍
软件生命周期模型是一个包含软件产品开发、运行和维护中有关过程、活动和任务的框架,它覆盖了系统从需求定义到系统使用的结束阶段。
特点:
描述了开发的主要阶段
定义了每个阶段需要完成的任务和过程
规范了每个阶段的输入输出
提供了一个标准框架,可以把必要的活动映射到该框架中去。
2、项目生命周期模型分类
比较常用的有瀑布模型、演化模型、螺旋模型、喷泉模型。
2.1 瀑布模型(Waterfall Model)
瀑布模型将项目的生存周期各个活动规定为按照线性顺序连接成若干个阶段的模型。包括需求分析、设计、编码工作、测试、项目运维。依照由前至后、相互衔接的固定顺序,类似瀑布流水,逐级下落。
适用范围:文档型为驱动、适合那些项目需求十分明确的软件项目。
优点:
容易理解、管理成本较低、强调开发阶段性早期计划及需求调研和产品测试。
缺点:
客户需要完整、准确的表达自己的需求
在开始的前三个阶段很难评估真正的进度状态
项目收尾阶段可能会出现大量的集成测试工作
对项目的风险控制能力较弱
2.2 增量模型(Incremental Model)
增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,它假设可以将需求分为一系列增量产品,每个增量可以分别开发。增量模型强调每一个增量都是一个可操作的阶段产品。
优点:融合了瀑布模型的优点。另外还有以下几个优点
第一个可交付版本所需的成本和时间很少
开发由增量表示小系统所承担的风险会小很多
因为较快时间发布了第一个版本,可以减少客户对需求的变更。
运行增量投资,也就是项目开始时,可以仅对一个或两个增量投入成本。
缺点:
如果对客户的变更要求规划不得当,产生的初始增量可能会造成后来的增量不稳定
前期需求没有思考全面可能会造成一些增量需要重新开发、发布。
管理发生的成本、进度和配置的复杂性会增加项目的成本。
2.3、演化模型(Evonlutionary Model)
演化模型主要针对事先不能完整定义需求的项目开发,是在一个比较初期的原型基础上,根据客户在确认原型的过程中提出意见和建议,从而逐渐改进原型,直到客户满意。
优点:
任何功能一旦开发后,就可以进入测试环节,以便验证是否符合产品需求,可以帮助引导出高质量的产品要求。
缺点:
如果控制不当让客户接触到开发当中不稳定的功能,可能会对客户以及开发人员带来负面影响。
2.4、螺旋模型(Spiral Model)
螺旋模型可以看作是瀑布模型和演化模型的结合体,并加入了风险分析。
螺旋周期:
制定计划:确定项目的目标,选定实施方案,明确项目开发的限制条件。
风险分析:分析所选方案、识别风险、消除风险。
实施工程:开发阶段、阶段验证产品的质量。
客户评估:客户评估开发产品的质量,提出改进建议,建立下一个周期的开发计划。
螺旋模型强调风险分析、让每个开发人员和客户对每个演化层出现的风险有所了解,然后做出应有的反应。特别适合庞大、复杂且有高风险的项目。
优点:
支持客户需求的动态变化,为客户参与软件开发的所有关键决策提供了方便,有助于提高软件的适应能力。
也为项目经理及时调整管理决策提供了很好的支持,从而降低了软件开发的风险。
缺点:
需要开发人员具备相当丰富的风险评估经验和专门知识
过多的迭代可能会增加开发成本、延迟交付时间。
2.5、喷泉模型(Water Foundtain Model)
喷泉模型以客户需求为动力,以对象作为驱动模型,适合面向对象的开发方法。
优点:
喷泉模型各个阶段没有明显的界限,开发人员可以同步进行,从而提高了软件的开发效率。
缺点:
喷泉模型各个开发阶段是重叠的,开发过程会需要大量开发人员、不利于项目的管理。
IT技术分享社区
个人博客网站:https://programmerblog.xyz
文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识