【软件工程】第2章 软件过程 第3章 软件过程模型
思考题
- 简述软件过程、软件生存周期、软件过程模型(软件生存周期模型)三者之间的概念区别。
- 软件过程就是软件开发过程么?为什么?
- 请选择两个常见的软件过程模型,谈谈你对它们的理解?并对它们进行比较。
- 瀑布模型和其他常见模型有什么关联和区别?
- 根据你当前所在的团队项目,你更倾向于选择哪一种软件过程模型?为什么?
拙见
1. 简述软件过程、软件生存周期、软件过程模型(软件生存周期模型)三者之间的概念区别。
软件过程
:- 软件生存周期中的一系列相关过程所涉及的活动。
- 过程是活动的集合。
- 活动是任务的集合。
- 任务是将输入转换为输出的操作。
软件生存周期
:软件也有一个从生到死的过程,这个过程一般称之为软件的软件生存周期或生命周期软件过程模型(软件生存周期模型)
:- IEEE 12207.0-1996 定义
- 一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖了从系统的需求定义到系统的使用终止。
- 软件生存周期模型是一种软件过程的抽象表示,也称为软件开发模型。
- 软件生存周模型一般使用直观的图形标识软件开发的过程,主要根据软件的类型、规模,特别是软件的开发方法、开发环境等多种因素确立过程模型。
- IEEE 12207.0-1996 定义
2. 软件过程就是软件开发过程么?为什么?
- 软件过程并
不是
软件开发过程 因为
软件过程是- 软件生存周期中的一系列相关过程所涉及的活动。
- 过程是活动的集合。
- 活动是任务的集合。
- 任务是将输入转换为输出的操作。
- 而
软件开发过程
只是其中的一部分
3. 请选择两个常见的软件过程模型,谈谈你对它们的理解?并对它们进行比较。
增量模型
增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。螺旋模型
螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。比较
增量模型
中某些阶段按照瀑布模型的整体方式开发;某些阶段按照增量方式开发,即融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征- 优点:开发中用户可以及早看到部分软件功能,发现问题
螺旋模型
是结合了瀑布模型和快速原型模型的迭代开发模型,以进化的开发方式为中心,每个项目阶段使用瀑布模型法- 增量模型在活动级迭代,螺旋模型在过程级迭代
- 增量通过避免使用未成熟技术和经常的客户反馈等方法减少风险,螺旋模型直接增加风险识别、风险分析、风险控制,计划性较强。
4. 瀑布模型和其他常见模型有什么关联和区别?
关联
与区别
原型模型
利用原型法技术尽可能快地构造一个实际系统的简化模型。实现一个基本原型,让用户对原型进行评价,逐步调整,使其满足用户最终需求。增量模型
中某些阶段按照瀑布模型的整体方式开发;某些阶段按照增量方式开发,即融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征螺旋模型
(Spiral Model)由Barry Boehm提出,是结合了瀑布模型和快速原型模型的迭代开发模型
5. 根据你当前所在的团队项目,你更倾向于选择哪一种软件过程模型?为什么?
倾向于
瀑布模型因为
产品较为小型、需求改变变动较小
慕课
软件生存周期过程的概念
单选(2分)
获取正确软件的关键是()
A.开发逻辑
B.开发团队
C.人员素质
D.明确需求判断(2分)
软件生存周期的含义是表明软件的演化和发展具有周期性,每过一段时间就需要更新。
A.√
B.×判断(2分)
当软件的一个版本被淘汰时,则该软件的生存周期就结束了。
A.√
B.×判断(2分)
软件生存周期过程表示软件生存周期内的一个过程。
A.√
B.×填空(2分)
为了表述软件开发需要做什么映射,引入了三个概念:(请按概念的范围由大到小填写,用空格分隔)
参考答案
A
B
B
B
过程 活动 任务
软件生存周期过程的分类
单选(2分)
按照(),可以将软件生存周期过程分为基本过程、支持过程和组织过程。
A.软件开发活动的层次关系
B.软件开发工作的主体
C.软件开发项目的结构
D.软件开发任务的重要程度多选(2分)
下述过程属于基本过程的是()
A.获取过程
B.开发过程
C.运行过程
D.供应过程判断(2分)
支持过程是指那些与软件生产组织有关的活动集。
A.√
B.×多选(2分)
下列关于软件开发过程说法正确的是()
A.软件生存周期过程就是软件开发过程
B.软件开发过程是软件开发者所从事的一系列活动
C.软件开发过程中还包括了系统需求分析、系统结构设计等系统层面的活动
D.软件开发过程包含了软件升级和演化等活动
参考答案
B
ABCD
B
BC
软件生存周期模型的概念
判断(2分)
软件生存周期模型是对软件生存周期中过程、活动和任务的组织。
A.√
B.×判断(2分)
软件生存周期模型必须要将所有类型的过程、活动和任务考虑在内,形成满足每个软件项目需要的模型。
A.√
B.×判断(2分)
软件开发模型是软件开发过程的活动和任务的结构框架。
A.√
B.×
参考答案
A
B
B
常见的软件生存周期模型
多选(2分)
下列关于瀑布模型的说法正确的是()
A.瀑布模型仅能依次经过需求、设计、编码、测试、集成和维护这一路径进行项目开发,不能从后一阶段返回到前面的阶段。
B.瀑布模型在每一阶段都会生成相应的文档。
C.瀑布模型只有在需求阶段和运行阶段才能有获取方和用户参与,其余阶段只能开发团队参加。
D.瀑布模型要求需求在最初阶段就要完整和明确。多选(2分)
多选题:下列关于增量模型的说法正确的是()
A.增量模型要求需求在最初阶段就要完整和明确。
B.相比于瀑布模型,采用增量模型开发的项目所需的成本和时间要少。
C.采用增量模型时,每一增量必须按照既定顺序依次开发,不能更改。
D.增量模型能够更早的向用户交付第一个版本的系统。多选(2分)
多选题:下列关于演化模型的说法正确的是()
A.演化模型要求需求在最初阶段就要完整和明确。
B.演化模型可以弱化需求和设计文档的编写,以提高开发效率。
C.演化模型在每一次迭代过程中可以采用瀑布模型。
D.相比瀑布模型,演化模型需要获取方和用户更多的参与。单选(2分)
单选题:下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是()。
A.演化模型
B.瀑布模型
C.喷泉模型
D.增量模型
参考答案
BD
AD
CD
C