1、瀑布模型
又称
生命周期法、预测型、计划驱动
,是
结构化方法
中最常用的开发模型,本质是“
一次通过
”。
一般将软件开发分为:
定义阶段
可行性分析(计划)、需求分析
开发阶段:
软件设计(概要设计、详细设计)、编码(包括单元测试)、测试
维护阶段
运行维护
上一活动的输出作为当前活动的输入,完成当前活动后,进行评审,通过则进行下一活动,否则返回之前。
适用:
需求明确或很少变更的项目;
开发团队比较弱的情况;
有厚实的行业实践基础;
整批一次性交付有利于干系人。
2、螺旋模型
是一个演化软件过程模型,将
瀑布型
和
快速原型模型
结合起来,
强调
了其他模型忽视的
风险分析
,
适用
于
大型复杂的系统
、
风险大
的项目。
整个开发过程是迭代和风险驱动的,通过将瀑布模型的多个阶段转化到多个迭代过程中(
过程迭代型
),以减少项目的风险。
每次迭代都包含了四个步骤:
制定计划、风险分析、实施工程、客户评估
3、迭代模型
在迭代式的过程中,
每个阶段都包括
不同比例的
所有活动
。
重复的循环
,属于“
完整型迭代
”
适用于:
不能完整定义
产品的所有需求、计划
多期开发
的、在开发早期
需求可能有变化
、需要
降低
项目
复杂性
的、
部分交付
有利于干系人的
4、增量模型
融合了
瀑布型
的基本成分和
原型
实现的迭代特征。在预定的时间区间内渐进增加产品功能的一系列迭代来产出可交付成果。
本质上是一种
非整体开发模型
。只有在
最后一次迭代
后,可交付成果具备必要的能力,
才能被视为完整的
。
渐进的增加
,属于“
功能型迭代
”。
5、敏捷开发模型
一种
以人为核心
、迭代、循序渐进的开发方法,更
强调
开发团队与业务专家之间的
紧密协作、面对面的沟通、频繁交付
新的软件版本、
紧凑而自我组织
的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更加注重软件开发中
人的作用
。
Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。核心内容是:三个角色、三个工件、四个会议
特点:
较小增量、快速迭代(2~4周)、变更驱动、每次交付最有价值的成果
。
适用于:适用于中小型软件开发团队、客户的
需求模糊多变
6、原型化模型
在
很难一下子
全面
准确地提出
用户
需求
的情况下,首先不要求一定要对系统做全面、详细的调查、分析,而是本着开发人员对用户需求的
初步理解
,先
快速开发
一个原型系统,然后通过
反复修改
来实现用户的最终需求。
➢分为:
抛弃型原型
、
进化型原型
。
➢特点:对用户的需求是
动态响应
、
逐步纳入
的,系统分析、设计与实现都是随着对一个工作模型的
不断修改
而同时完成的,相互之间并
无明显界限
,也
没有明确分工
。
➢适用:
需求开始时定义不清
、管理决策方法
结构化程度不高
的系统开发。
原型化开发流程:
7、统一过程模型RUP
➢是一种以
用例驱动
、以
体系结构为核心、迭代及增量的软件过程模型
,由
UML方法
和工具支持,广泛应用于各类面向对象项目。
RUP是由Rational公司开发并维护,和一系列软件开发工具紧密集成。RUP蕴含了大量优秀的实践方法,如:迭代式软件开发、需求管理、基于构件的构架应用、建立可视化的软件模型、软件质量验证、软件变更控制等。
➢目标:在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。
8、喷泉模型
➢是一种以
用户需求为动力
,以
对象为驱动
的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。
➢特点:
迭代、无间隙、复用
。
➢适用:
面向对象
的软件开发过程。
9、V模型
➢测试活动的展开次序正好与开发的
次序相反
,动态测试的行为与开发行为
相对应
。
➢非常明确地表明了测试过程中存在的不同的级别,并且非常清晰地描述了这些测试阶段和开发阶段的对应关系。
➢特点:
细化了瀑布模型中的测试部分、开发阶段清楚、便于控制开发的过程
。
➢适用:需求明确、需求变更不频繁的情况。
10、信息系统项目典型生命周期模型汇总
版权归原作者 videa1949 所有, 如有侵权,请联系我们删除。