【软件工程】第三章 软件过程模型思考题
- 简述软件过程、软件生存周期、软件过程模型(软件生存周期模型)三者之间的概念区别。
- 软件过程就是软件开发过程么?为什么?
- 请选择两个常见的软件过程模型,谈谈你对它们的理解?并对它们进行比较。
- 瀑布模型和其他常见模型有什么关联和区别?
- 根据你当前所在的团队项目,你更倾向于选择哪一种软件过程模型?为什么
1. 简述软件过程、软件生存周期、软件过程模型(软件生存周期模型)三者之间的概念区别。
软件过程(软件生存周期过程):
- 软件生存周期中的一系列相关过程所涉及的活动。
- 过程是活动的集合。
- 活动是任务的集合。
- 任务是将输入转换为输出的操作
软件生存周期:软件也有一个从生到死的过程,这个过程一般称之为软件的软件生存周期或生命周期(Software Development Life Cycle)
软件过程模型(软件生存周期模型):
- IEEE 12207.0-1996 定义:一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖了从系统的需求定义到系统的使用终止。
- 软件生存周期模型是一种软件过程的抽象表示,也称为软件开发模型。
- 软件生存周模型一般使用直观的图形标识软件开发的过程,主要根据软件的类型、规模,特别是软件的开发方法、开发环境等多种因素确立过程模型。
2. 软件过程就是软件开发过程么?为什么?
软件过程又称为软件生存周期过程,其不等于软件开发过程,软件过程是软件生存周期中的一系列相关过程所涉及的活动,软件过程知识软件开发过程中的一部分,两者并不等同。
3. 请选择两个常见的软件过程模型,谈谈你对它们的理解?并对它们进行比较。
-
瀑布模型:
将软件生命周期划分为软件计划、需求分析和定义、设计、实现、测试、运行和维护这6个阶段,规定了它们自上而下、相互衔接的固定次序,如同瀑布流水逐级下落。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈. -
螺旋模型:
是结合了瀑布模型和快速原型模型的迭代开发模型,强调了其他模型均忽略了的风险分析,包括风险识别、风险分析和风险控制,特别适合于大型复杂的系统。每一个周期都包括需求定义、风险分析、工程实现和评审 -
瀑布模型和螺旋模型的比较:
- 瀑布模型强调保证软件的质量,忽略一些其他的外在的风险影响,以质量为首要目标,当需求发生变更时大概率需要从头再来,该模型比较适合一些大型稳定的项目。
- 螺旋模型是结合了瀑布模型和快速原型模型的迭代开发模型,以进化的开发方式为中心,每个项目阶段使用瀑布模型法
4. 瀑布模型和其他常见模型有什么关联和区别?
- 原型模型利用原型法技术尽可能快地构造一个实际系统的简化模型。实现一个基本原型,让用户对原型进行评价,逐步调整,使其满足用户最终需求。
- 增量模型中某些阶段按照瀑布模型的整体方式开发;某些阶段按照增量方式开发,即融合了瀑布模型的基本成分和原型实现的迭代特征
- 螺旋模型由Barry Boehm提出,是结合了瀑布模型和快速原型模型的迭代开发模型
5. 根据你当前所在的团队项目,你更倾向于选择哪一种软件过程模型?为什么
瀑布模型,项目规模比较小,项目的需求也比较清晰,产品需求改动较少