成电微记(一)-软件过程模型的选择


在选择合适的软件过程模型之前,我们先了解几种常用的模型

瀑布模型

转载自:周二鸭

简介

瀑布模型(经典生命模型)提出了软件开发的系统化的、顺序的方法。其流程从用户需求规格说明开始,通过策划、建模、构建和部署过程,最终提供一个完整的软件并提供持续的技术支持。

模型特点

  • 必须等前一阶段的工作完成之后,才能开始后一段的工作;
  • 每一阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。
  • 前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶段的输出文档正确,后一阶段的工作才能得到正确的结果。
  • 每个阶段结束前都要对所完成的文档进行评审,以便及早发现问题,改正错误。事实上越是早期阶段犯下的错误,暴露出来的时间就越晚,排除故障改正错误所需付出的代价也越高。因此,及时审查,是保证软件质量,降低软件成本的重要措施。

模型优点

  • 强调了开发的阶段性,各阶段具有顺序性和依赖性
  • 强调早期调研和需求分析,推迟编码实现的观点
  • 提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。

模型局限

  • 瀑布模型是一种线性模型,要求项目严格按规程推进,必须等到所有开发工作全部完成以后才能获得可以交付的软件产品。不能对软件系统进行快速创建,对于一些急于交付的软件系统的开发很不方便。
  • 瀑布模型适合于需求明确,且无大的需求变更的软件开发(编译系统、操作系统等)。而对于分析初期需求模糊的项目,瀑布模型也并不适合。

适用场景

适用于需求确定,无大的需求变更,工作能够采用线性的方式完成的软件。


而在这个项目中我们使用的是基于瀑布模型之上的增量模型

增量模型

简介

增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,它对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际开发中,则将软件系统按功能分解为许多增减构件,并以构件为单位逐个地创建与交付,直到全部增量构件创建完成,并都被集成到系统之中交付用户使用。

各阶段任务:

  1. 对整个系统进行需求分析和概要设计,确定系统基于增量构建的开发,以需求中构建的组成和关系为依据,完成对软件系统的体系结构设计。
  2. 进行增量构建的开发。对构建进行需求精细化,然后设计、编码、测试和有效性验证
  3. 将构建集成到系统,并对已经改变的系统进行有效性验证,继续下一个增量构建的开发

模型特点:

  1. 将软件系统模块化,分批地提交软件产品,用户可以及时了解软件项目的进展
  2. 降低了软件开发的风险,一个开发周期内的错误不会影响整个系统
  3. 开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整。

适用场景:

1、软件产品可以分批次地进行交付。

2、待开发的软件系统能够被模块化。

3、软件开发人员对应用领域不熟悉,难以一次性地进行系统开发。

4、项目管理人员把握全局的水平较高


参考:增量模型

其他软件过程模型介绍:周二鸭


Author: Xi Chen
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Xi Chen !
评论
  TOC