第三章 软件过程模型
1.简述软件过程、软件生存周期、软件过程模型(软件生存周期模型)三者之间的概念区别。
软件过程:是指软件生存周期中的一系列相关过程所涉及的活动。过程是活动的集合。活动是任务的集合。任务是将输入转换为输出的操作。
软件生存周期:软件也有一个从生到死的过程,这个过程一般称之为软件的软件生存周期或生命周期。
软件生存周期可划分为定义、开发和运行三个时期,每个时期又细分为若干个阶段。把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。
软件生存周期模型:软件生存周期模型是一种软件过程的抽象表示,也称为软件开发模型。软件生存周模型一般使用直观的图形标识软件开发的过程,主要根据软件的类型、规模,特别是软件的开发方法、开发环境等多种因素确立过程模型。
2.软件过程就是软件开发过程么?为什么?
不是。软件过程是指软件生存周期中的一系列相关过程所涉及的活动。过程是活动的集合。活动是任务的集合。任务是将输入转换为输出的操作。
而软件开发过程只是软件过程的其中一部分。
3.请选择两个常见的软件过程模型,谈谈你对它们的理解?并对它们进行比较。
瀑布模型:瀑布模型( Waterfall Model)将软件生命周期划分为软件计划、需求分析和定义、设计、实现、测试、运行和维护这6个阶段,规定了它们自上而下、相互衔接的固定次序,如同瀑布流水逐级下落。
从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈。
瀑布模型是一种文档驱动模型,没有文档的软件是几乎不可维护的。
适用于定义非常稳定的产品,且产品的正确性非常重要,需要每一步的验证。
增量模型:增量模型(Incremental Model))也称为渐增模型,98o年由Mills等人提出,是在项目的开发过程中以一系列的增量方式开发系统。
软件被作为一系列的增量构件来设计、实现、集成和测试。
优点:开发中用户可以及早看到部分软件功能,发现问题。
4.瀑布模型和其他常见模型有什么关联和区别?
①与增量模型在开发中用户可以及早看到部分软件功能,发现问题的好处相比,瀑布模型要在软件生存周期的末期才能看到开发成果,风险大,错误代价大。
②与强调了其他模型均忽略的风险分析的螺旋模型相比,瀑布模型风险大。
③与原型模型适用于不能预先确切定义需求的软件项目相比,瀑布模型适用于产品的定义非常稳定,且产品的正确性非常重要的项目。
5.根据你当前所在的团队项目,你更倾向于选择哪一种软件过程模型?为什么?
我更倾向于选择增量模型。原因如下:
(1)增量模型在开发中用户可以及早看到部分软件功能,发现问题,有利于我们项目进行时减少问题,减少后期测试改错的工作量。
(2)在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,多个增量构建有利于小组分工完成各自任务,最后总和集成成为一个完整的项目,实现功能的不断扩充。