习题二
一、判断题
- 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。 (F)
- 原型化开发方法包括生成原型和实现原型两个步骤。 (F)
- 软件过程改进也是软件工程的范畴。 (T)
- 在软件开发中采用原型西永策略的主要困难时成本问题。 (F)
二、选择题
- 软件生命周期模型不包括(B)。
A. 瀑布模型 B. 用例模型 C. 增量模型 D. 螺旋模型
- 包含风险分析的软件工程模型是(D)。
A. 喷泉模型 B. 瀑布模型 C. 增量模型 D. 螺旋模型
- 软件过程是(C)。
A. 特定的开发模型 B. 一种软件求解的计算逻辑 C. 软件开发活动的集合 D. 软件生命周期模型
- 软件工程中描述生命周期的瀑布模型一般包括计划、需求分析、设计、编码、(D)、维护等几个阶段。
A. 产品发布 B. 版本更新 C. 可行性分析 D. 测试
- 软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C)。
A. 分析阶段 B. 设计阶段 C. 编码阶段 D. 测试阶段
- 增量模型本质是一种(C)。
A. 线性顺序模型 B. 整体开发模型 C. 非整体开发模型 D. 螺旋模型
- 螺旋模型综合了(B)的有点,并增加了风险分析。
A. 增量模型和喷泉模型 B. 瀑布模型和演化模型 C. 演化模型和喷泉模型 D. 原型模型和喷泉模型
- CMM模型将软件过程的成熟度分为5个等级。在()使用定量分析来不断地改进和管理软件过程。
A. 管理级 B. 优化级 C. 定义级 D.可重复级
三、简答题
- 如何理解软件生命周期的内在特征?
软件产品的生命周期是指从设计该产品的构想开始,到软件需求的确定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,再到最终改产品被市场淘汰的全过程。软件生命周期这个概念从市价的角度讲软件的开发和维护的复杂过程分解为了若干个阶段,每个阶段都完成特定的相对独立的任务。由于每个阶段的任务相对于总任务难度会大幅度降低,因此在资源分配、时间把握和项目管理上都会比较容易控制。应该合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务。
- 对比瀑布模型、原型模型、增量模型和螺旋模型。
瀑布模型:主要体现了分阶段、有控制的思想。活动间强调按顺序、文档化;存在的问题是过于理想化,每一步的工作必须完整准确,否则无法进行下一步工作。
原型模型:需求分析入手快速、表达直观、容易交流。重点解决瀑布模型的需求分析入手难的问题。
增量模型:对于需求复杂的系统,采用分块开发、逐步集成的开发策略。增量体现了演进、迭代思想,每一块就是一个增量。每个增量是一次迭代。增量模型的新版本叫做“极限编程(XP)”。
螺旋模型:融合了上述3种模型,融进了循环往复、强化了演进迭代的思想,增加了风险控制环节。但是,风险分析的正确性是左右软件眼镜的关键因素。
- 当需求不能一次搞清楚,且系统需求比较复杂时应选用哪种开发模型比较适合?
开发模型不是孤立或排斥的,它们之间需要相互借鉴和参考。螺旋模型是一种综合性的模型,适合于较复杂的系统。
- RUP包含了哪些核心工作流和哪些核心支持工作流?
RUP建立了对软件过程普遍适用的理论指导框架,是典型的软件开发过程。它包括直接参与软件产品构造的核心工作流和若干属于项目管理范畴的支持工作流。
核心工作流包括:业务建模、需求、分析与设计、实现、测试、部署。
支持工作流包括:配置与变更管理、项目管理、环境。
- XP是一种什么样的模型?
XP是现代版的增量模型,特点是客户参与、适应变化、测试驱动、以代码为核心。实行XP的条件如下。
企业具体较高的能力成熟度,具有团队开发环境和配套的测试工具。
软件结构是开放的,增量可随意整合。
开发团队拥有“系统隐喻”。
- 每个软件企业遵循的软件开发过程都是一样的吗?
任何软件过程只是给软件开发组织的一个参考,并非清规戒律。企业规划软件过程要适合企业的实际情况,并且不用一成不变,要随着企业的法杖、环境的变化和项目的性质来改进软件过程。RIP就是一个可裁剪的软件过程模板。
- 请简述软件工程。
软件过程就是软件产品的加工过程,其本质就是将“客观世界”映射(虚拟)到“计算机世界”,即从抽象到具体的逐步细化过程。系统分析就是对客观世界的抽象,中间要经过分析模型、设计模型的逐步细化(具体化),最终的具体结果就是计算机世界里的代码。
- 敏捷方法的核心价值观有那些?它对传统方法的“反叛”体现在哪些方面?
敏捷思想的核心价值观大体包括以下几个方面。
注重个人与交互。
重点关注可以工作的软件。
提高客户参与程度。
以积极的心态响应需求变化。
敏捷联盟强调的价值观是这一流派的核心。人是受价值观驱使的,敏捷项目管理因而也是以价值观为推动力的。一个团队可以采用敏捷做法,但如果它不接受敏捷价值观,它将不能得到敏捷方法的潜在好处。
敏捷方法对传统方法的“反叛”体现在以人为中心,不再依靠文档来控制过程,认为传统过程过于僵化、文档繁烦,主张对传统过程瘦身,在上述价值观的支配下,做到够用为准。
- 请简述CMM的作用。
CMM是评价软件组织开发能力(水平)的参考模型,是一种认证标准,认可软件工程达到的程度(如同评定职称的条件)。
CMM是软件组织提升自身能力、走向成熟的参照系。它提供了走向成熟的阶梯目标,但并不提供走向目标的方法。
CMM等级的提高依靠软件过程改进。
CMM既是评估软件能力成熟度的模型,也起到了促进软件企业按照该模型设置的级别和关键过程域不断改进自己的软件过程的作用。
- 请简述CMM软件过程成熟度的5个级别,以及每个级别对应的标准。
5个等级如下。
1. 初始级的软件过程是无秩序的,它几乎处于无步骤可循的状态。管理是随机的,软件产品的成功往往取决于个人。
2. 在可重复级,已建立了基本的项目管理过程,对成本、进度和功能特性进行跟踪,并且在借鉴以往经验。所有项目均使用经过批准、裁剪的标准软件过程来开发和维护软件。
3. 在已定义级,用于管理和工程两个方面的过程均已文档化、标准化,并形成了整个软件组织的标准软件过程。所有项目均使用经过批注、裁剪的标准软件过程来开发和维护软件。
4. 已管理级的软件过程和产品质量有详细的度量标准并且得到了定量的认证和控制。
5. 优化级的软件过程可以通过量化反馈和先进的新思想、新技术来不断地、持续性地改进。
- 假设你要开发一个软件,它的功能是把73624.9385这个数开平方,所得到的结果应该精确到小数点后4位。一旦实现并测试完之后,该产品将被抛弃。你打算选用哪种软件生命周期模型?请说明你做出这样选择的理由。
对这个软件的需求很明确,事项开平方功能的算法也很成熟。因此,既无须通过原型模型来分析需求也无须用原型模型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。
综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。
第二章 习题二
原文:https://www.cnblogs.com/Kmirror/p/12782785.html