典型的生命周期模型
1、瀑布模型
( 1)瀑布模型是一个经典的软件生命周期模型,一般将软件开发分为可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段。
(2)瀑布模型中每项开发活动具有以下特点:
① 从上一项开发活动接受其成果作为本次活动的输入。
② 利用这一输入,实施本次活动应完成的工作内容。
③ 给出本次活动的工作成果,作为输出传给下一项开发活动。
④ 对本次活动的实施工作成果进行评审。
2、迭代模型
迭代模型中,每个阶段都执行一次完整的过程,执行一次过程就是一次全面迭代 (可以完成一次到多次的迭代),每次迭代涉及的过程都包括不同比例的所有活动。
适用于需求不明确、变更频繁的场景
(3)各阶段的主要任务如下。
① 初始阶段:系统地阐述项目的范围,选择可行的系统构架,计划和准备业务案例;
② 细化阶段:细化构想,细化过程和基础设施,细化构架并选择构件;
③ 构造阶段:完成构件的开发并进行测试,依构想的验收标准评估产品的发布;
④ 移交阶段:将软件产品交付给用户群体。
3、V 模型
(1)V 模型的左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。在不同的组织中对测试阶段的命名可能有所不同。
(2)V 模型中测试阶段和开发各阶段的对应关系:
①单元测试:验证软件单元是否按照单元规格说明(详细设计说明)正确执行,即保证每个最小的单元能够正常运行。单元测试一船由开发人员来执行。
②集成测试:检查多个单元是否按照系统概要设计描述的方式协同工作。集成测试的主要关注点是系统能够成功编译,实现了主要的业务功能,系统各个模块之间数据能够正常通信等。
③系统测试:验证整个系统是否满足需求规格说明。
④验收测试:从用户的角度检查系统是否满足合同中定义的需求或者用户需求。
(3)V 模型的特点
① V 模型体现的主要思想是开发和测试同等重要,左侧代表的是开发活动,而右侧代表
的是测试活动。
② V 模型针对每个开发阶段,都有一个测试级别与之相对应。
③ 测试依旧是开发生命周期中的阶段,与瀑布模型不同的是, 有多个测试级别与开发
阶段对应。
④ V 模型适用于需求明确和需求变更不频繁的情形。
4、原型化模型
( 1)原型化模型的第一步是建造一个快速原型,能够满足干系人与未来用户可以与原型进行交互,再通过与相关干系人进行充分的讨论和分析,最终弄清楚当前系统的需求,进行了充分的了解之后,在原型的基础上开发出用户满意的产品。
(2)原型应当具备的特点如下:
① 实际可行;
② 具有最终系统的基本特征;
③ 构造方便、快速,造价低。
(3)原型的分类:抛弃型原型、进化型原型。
5、敏捷方法
( 1)敏捷方法是一种以人为核心、迭 代、循序渐进的开发方法,适用于一开始并没有或不能完整地确定出需求和范围的项目,或者需要应对快速变化的环境,或者需求和范围难以事先确定,或者能够以有利于干系人的方式定义较小的增量改进。
与迭代模型的差异:每次只升级有改动的部分,局部快速更新换代
(2)敏捷方法的目的在于应对大量变更,获取干系人的持续参与。
6、螺旋模型
( 1)螺旋模型是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)。模型中控制的和系统化的方面结合起来,使得软件的增量版本的快速开发成为可能。
即:原型模型+瀑布模型
(2)开发过程具有周期性重复的螺旋线形状。每个周期所划分的 4 个阶段:制定计划、风险分析、实施工程和客 户评估。螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统。