上午卷-4.软件工程基础知识-软件设计师

软件工程基础知识

习题

1.在采用面向对象技术构建软件系统时,很多敏捷方法都建议的一种重要的设计活动 是(C ),它是一种重新组织的技术,可以简化构件的设计而无需改变其功能或行为。
A 精化
B 设计类
C 重构
D 抽象
敏捷方法中,重构是一种重新组织技术,重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求,可以简化构件的设计而无需改变其功能或行为。
2. 基于构件的软件开发,强调使用可复用的软件“构件”来设计和构建软件系统,对所需的构件进行合格性检验、(C ),并将它们集成到新系统中。

A 规模度量

B 数据验证

C 适应性修改

D 正确性测试

基于构件的软件开发,主要强调在构建软件系统时复用已有的软件“构件”,在检索到可以使用的构件后,需要针对新系统的需求对构件进行合格性检验、适应性修改,然后集成到新系统中。
3.某项目组拟开发一个大规模系统,且具备了相关领域及类似规模系统的开发经验。下列过程模型中,(B )最适合开发此项目。

A 原型模型
B 瀑布模型
C V模型
D 螺旋模型

常见的软件生存周期模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型,适合于软件需求很明确的软件项目。V模型是瀑布模型的一种演变模型,将测试和分析与设计关联进行,加强分析与设计的验证。原型模型是一种演化模型,通过快速构建可运行的原型系统,然后根据运行过程中获取的用户反馈进行改进。演化模型特别适用于对软件需求缺乏准确认识的情况。螺旋模型将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析。 本题中项目组具备了所开发系统的相关领域及类似规模系统的开发经验,即需求明确,瀑布模型最适合开发此项目。
4.确定软件的模块划分及模块之间的调用关系是(B )阶段的任务。

A 需求分析
B 概要设计
C 详细设计
D 编码

需求分析确定软件要完成的功能及非功能性要求;概要设计将需求转化为软件的模块划分,确定模块之间的调用关系;详细设计将模块进行细化,得到详细的数据结构和算法;编码根据详细设计进行代码的编写,得到可以运行的软件,并进行单元测试。
5.统一过程模型是一种“用例和风险驱动,以架构为中心,迭代并且增量”的开 发过程,定义了不同阶段及其制品,其中精化阶段关注(B )。

A 项目的初始活动
B 需求分析和架构演进
C 系统的构建,产生实现模型
D 软件提交方面的工作,产生软件增量

起始阶段专注于项目的初创活动。精化阶段理解了最初的领域范围之后,进行需求分析和架构演进。构建阶段关注系统的构建,产生实现模型。移交阶段关注于软件提交方面的工作,产生软件增量。产生阶段运行软件并监控软件的持续使用,提供运行环境的支持,提交并评估缺陷报告和变更请求。
6.软件工程的基本要素包括方法、工具和(C )。

A 软件系统
B 硬件系统
C 过程
D 人员

软件工程是一种层次化的技术,从底向上分别为质量、过程、方法和工具。任何工程方法必须以有组织的质量承诺为基础。软件工程的基础是过程,过程是将技术结合在一起的凝聚力,使得计算机软件能够被合理地和及时地开发,过程定义了一组关键过程区域,构成了软件项目管理控制的基础;方法提供了建造软件在技术上需要“如何做”,它覆盖了一系列的任务。方法也依赖于一些基本原则,这些原则控制了每一个技术区域 而且包含建模活动和其他描述技术;工具对过程和方法提供了自动或半自动的支持,如:计算机辅助软件工程(CASE)。软件工程的基本要素包括方法、工具和过程。
7.若用户需求不清晰且经常发生变化,但系统规模不太大且不太复杂,则最适宜采用(C )开发方法,对于数据处理领域的问题,若系统规模不太大且不太复杂,需求变化也不大,则最适宜采用(/)开发方法。

A 结构化
B Jackson
C 原型化
D 面向对象

需求不清晰且规模不太大时采用原型化方法最合适,而数据处理领域的不太复杂的软件,适于用结构化方法进行开发。
8.
在这里插入图片描述
活动图是描述一个项目中各个工作任务相互依赖关系的一种模型,项目的很多重要特性可以通过分析活动图得到,如估算项目完成时间,计算关键路径和关键活动等。 根据上图计算出关键路径为A-B-D-G-I-K-L,其长度为22,关键路径上的活动均为关键活动。活动BD在关键路径上,因此松弛时间为0。
9. 一个软件开发过程描述了 “谁做”、“做什么”、“怎么做”和“什么时候做”,RUP 用(A )来表述“谁做”。

A 角色
B 活动
C 制品
D 工作流

RUP应用了角色、活动、制品和工作流4种重要的模型元素,其中角色表述“谁做”,制品表述“做什么”,活动表述“怎么做”,工作流表述“什么时候做”。
10.
在这里插入图片描述
软件项目计划的一个重要内容是安排进度,常用的方法有Gantt图和PERT图。Gantt 图用水平条状图描述,它以日历为基准描述项目任务,可以清楚地表示任务的持续时间和任务之间的并行,但是不能清晰地描述各个任务之间的依赖关系。PERT图是一种网络模型,描述一个项目的各任务之间的关系。可以明确表达任务之间的依赖关系,即哪些任务完成后才能开始另一些任务,以及如期完成整个工程的关键路径,但是不能清晰地描述各个任务之间的并行关系。 图中任务流ABEGHIK的持续时间是36,ABEGHJK的持续时间是40,ACEGHIK 的持续时间是33,ACEGHJK的持续时间为37。所以项目关键路径长度为40。
11.
在这里插入图片描述
12.
在这里插入图片描述
软件设计的任务是基于需求分析的结果建立各种设计模型,给出问题的解决方案。从工程管理的角度,可以将软件设计分为两个阶段:概要设计阶段和详细设计阶段。结构化设计方法中,概要设计阶段进行软件体系结构的设计、数据设计和接口设计;详细设计阶段进行数据结构和算法的设计。面向对象设计方法中,概要设计阶段进行体系结构设计、初步的类设计/数据设计、结构设计;详细设计阶段进行构件设计。 结构化设计和面向对象设计是两种不同的设计方法,结构化设计根据系统的数据流图进行设计,模块体现为函数、过程及子程序;面向对象设计基于面向对象的基本概念进行,模块体现为类、对象和构件等。
13. 若用户需求不清晰且经常发生变化,但系统规模不太大且不太复杂,则最适宜采用(/)开发方法,对于数据处理领域的问题,若系统规模不太大且不太复杂,需求变化也不大,则最适宜采用(A )开发方法。

A 结构化

B Jackson

C 原型化

D 面向对象

需求不清晰且规模不太大时采用原型化方法最合适,而数据处理领域的不太复杂的软件,适于用结构化方法进行开发。

在这里插入图片描述
活动图是描述一个项目中各个工作任务相互依赖关系的一种模型,项目的很多重要特性可以通过分析活动图得到,如估算项目完成时间,计算关键路径和关键活动等。 根据上图计算出关键路径为A-B-D-G-I-K-L,其长度为22,关键路径上的活动均为关键活动。活动BD在关键路径上,因此松弛时间为0。
15.在敏捷过程的开发方法中,(C )使用了迭代的方法,其中,把每段时间(30天)一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品,多个自组织和自治的小组并行地递增实现产品。

A 极限编程XP

B 水晶法

C 并列争球法

D 自适应软件开发

极限编程XP是激发开发人员创造性、使得管理负担最小的一组技术;水晶法Crystal认为每一个不同的项目都需要一套不同的策略、约定和方法论;并列争球法(Scrum)使用迭代的方法,其中把每30天一次的迭代成为一个冲刺,并按需求的优先级来实现产品。多个自组织和自治小组并行地递增实现产品,并通过简短的日常情况会议进行协调。
16.
在这里插入图片描述
17.
在这里插入图片描述
18.确定构建软件系统所需要的人数时,无需考虑(A )。

A 系统的市场前景

B 系统的规模

C 系统的技术复杂性

D 项目计划

在对软件开发资源进行规划时,为了确定构建软件系统所需的人数,需要考虑软件系统的规模、系统的技术复杂性、项目计划和开发人员的技术背景等方面,而与系统是否有市场前景无关。
19.
在这里插入图片描述
20.(B ) 软件成本估算模型是一种静态单变量模型,用于对整个软件系统进行估算。

A Putnam

B 基本COCOMO

C 中级COCOMO

D 详细COCOMO

COCOMO用3个不同层次的模型来反映不同程度的复杂性,它们分别为:基本模型(Basic Model):是一个静态单变量模型,它用一个以已估算出来的源代码行数(LOC)为自变量的函数来计算软件开发工作量。中级模型(Intermediate Model):则在用LOC为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。详细模型(Detailed Model):包括中级COCOMO型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。

21.某个项目在开发时采用了不成熟的前沿技术,由此而带来的风险属于(B)风险。

A 市场

B 技术

C 经济

D 商业

风险是一种具有负面后果的、人们不希望发生的事件。从不同的角度可以对风险进行不同的分类。如从风险涉及的范围,风险可以分为项目风险、技术风险和商业风险等。技术风险涉及设计方案、实现、接口、验证以及维护等方面的问题。此外,包括需求规格说明的不确定性、技术的不确定性、技术的陈旧以及采用不成熟的前沿技术等可能会带来技术风险。技术风险威胁着开发产品的质量和交付产品的时间。

在这里插入图片描述
软件项目计划的一个重要内容是安排进度,常用的方法有Gantt图和PERT图。Gantt 图用水平条状图描述,它以日历为基准描述项目任务,可以清楚地表示任务的持续时间和任务之间的并行,但是不能清晰地描述各个任务之间的依赖关系。PERT图是一种网络模型,描述一个项目任务之间的关系。可以明确表达任务之间的依赖关系,即哪些任务完成后才能开始另一些任务,以及如期完成整个工程的关键路径。
23.
在这里插入图片描述
敏捷开发方法XP是一种轻量级、高效、低风险、柔性、可预测的、科学的软件开发方法,其特性包含在12个最佳实践中。
1.计划游戏:快速制定计划、随着细节的不断变化而完善;
2.小型发布:系统的设计要能够尽可能早地交付;
3.隐喻:找到合适的比喻传达信息;
4.简单设计:只处理当前的需求使设计保持简单;
5.测试先行:先写测试代码再编写程序;
6.重构:重新审视需求和设计,重新明确地描述它们,以符合新的和现有的需求;
7.结队编程;
8.集体代码所有制;
9.持续集成:可以按日甚至按小时为客户提供可运行的版本;
10.每周工作40个小时;
11.现场客户;
12.编码标准。

在这里插入图片描述
25.
在这里插入图片描述
26.
在这里插入图片描述
Gantt图是一种简单的水平条形图,以日历为基准描述项目任务。水平轴表示日历时间线,如日、周和月等,每个条形表示一个任务,任务名称垂直的列在左边的列中,图中水平条的起点和终点对应水平轴上的时间,分别表示该任务的开始时间和结束时间,水平条的长度表示完成该任务所持续的时间。当日历中同一时段存在多个水平条时,表示任务之间的并发。 Gantt图能清晰地描述每个任务从何时开始,到何时结束,任务的进展情况以及各个任务之间的并行性。但它不能清晰地反映出各任务之间的依赖关系,难以确定整个项目的关键所在,也不能反映计划中有潜力的部分。
27.
在这里插入图片描述
28.
在这里插入图片描述
29.软件风险一般包含(C )两个特性。

A 救火和危机管理

B 己知风险和未知风险

C 不确定性和损失

D 员工和预算

软件风险一般包括不确定性和损失两个特性,其中不确定性是指风险可能发生,也可能不发生:损失是当风险确实发生时,会引起的不希望的后果和损失。救火和危机管理是对不适合但经常采用的软件风险管理策略。已知风险和未知风险是对软件风险进行分类的一种方式。员工和预算是在识别项目风险时需要识别的因素。
30.
在这里插入图片描述
31.在软件开发过程中进行风险分析时,(D )活动的目的是辅助项目组建立处理风险的策略,有效的策略应考虑风险避免、风险监控、风险管理及意外事件计划。

A 风险识别
B 风险预测
C 风险评估
D 风险控制

风险分析实际上是4个不同的活动:风险识别、风险预测、风险评估和风险控制。 风险识别是试图系统化地确定对项目计划(估算、进度、资源分配)的威胁。风险预测又称为风险估算,它从两个方面评估一个风险:风险发生的可能性或概率;以及如果风险发生时所产生的后果。风险评估根据风险及其发生的概率和产生的影响预测是否影响 参考水平值。风险控制的目的是辅助项目组建立处理风险的策略,有效的策略应考虑风 险避免、风险监控、风险管理及意外事件计划。
32.
在这里插入图片描述
33.
在这里插入图片描述
34.
在这里插入图片描述
35.
在这里插入图片描述
36.
在这里插入图片描述
37.
在这里插入图片描述
38.
在这里插入图片描述
39.成本估算时,(D )方法以规模作为成本的主要因素,考虑多个成本驱动因子。该方法包括三个阶段性模型,即应用组装模型、早期设计阶段模型和体系结构阶段模型。

A 专家估算

B Wolverton

C COCOMO

D COCOMO Ⅱ

存在多种软件项目管理的成本估算方法。其中专家估算方法主要依赖于专家的背景和经验,具有较大的主观性。Wolverton模型基于一个成本矩阵,定义不同的软件类型(如控制、输入/输出等)和难易(容易和困难)的成本,基于此计算软件开发的成本。COCOMO模型将规模视为成本的主要因素,考虑多个成本驱动因子。在后来的版本COCOMO II中,还考虑了软件开发的不同阶段,包含三个阶段性模型,即应用组装模型、早期设计阶段模型和体系结构阶段模型。
40.
在这里插入图片描述
41.
在这里插入图片描述
42.
在这里插入图片描述
43.
在这里插入图片描述
44.
在这里插入图片描述
45.
在这里插入图片描述
46.
在这里插入图片描述
47.
在这里插入图片描述
CMM(Capability Maturity Model)是能力成熟度模型的缩写,CMM是国际公认的对软件公司进行成熟度等级认证的重要标准。CMM共分五级。在每一级中,定义了达到该级过程管理水平所应解决的关键问题和关键过程。每一较低级别是达到较高级别的基础。
其中五级是最高级,即优化级,达到该级的软件公司过程可自发地不断改进,防止同类问题二次出现;
四级称为已管理级,达到该级的软件公司已实现过程的定量化;
三级为已定义级,即过程实现标准化;
二级为可重复级,达到该级的软件公司过程已制度化,有纪律,可重复;
一级为初始级,过程无序,进度、预算、功能和质量等方面不可预测。
48.
在这里插入图片描述
49.
在这里插入图片描述
在CMM的不同等级有不同的核心。

在可重复级,建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性。

在已定义级,所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。

在已管理级,收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制。

在优化级,过程的量化反馈和先进的新思想、新技术促使过程不断改进。
50.
在这里插入图片描述
建立基本的项目管理和实践来跟踪项目费用、进度和功能特性为可重复级的核心;

使用标准开发过程(或方法论)构建(或集成)系统为已定义级的核心;

管理层寻求更主动地应对系统的开发问题为已管理级的核心;

连续地监督和改进标准化的系统开发过程为优先级的核心。

在这里插入图片描述
软件变更控制是变更管理的重要内容,要有效进行变更控制,需要借助配置数据库和基线的概念。配置数据库一般包括

开发库
受控库
产品库。
52.
在这里插入图片描述
软件过程是软件生命周期中的一系列相关活动,即用于开发和维护软件及相关产品的一系列活动。软件过程模型可以帮助开发团队理解开发过程,形成对开发中的活动、资源和约束的共同理解,可以根据具体情况对一个过程进行裁剪等。

瀑布模型从一种非常高层的角度描述了软件开发过程中进行的活动,并且提出了要求开发人员经过的事件序列。该模型适用于项目开始时需求已确定的情况。

V模型是瀑布模型的变种,它说明测试活动是如何与分析和设计相联系的。

原型模型允许开发人员快速地构造整个系统或系统的一部分以理解或澄清问题。原型的用途是获知用户的真正需求,因此原型模型可以有效地引发系统需求。

螺旋模型把开发活动和风险管理结合起来,以将风险减到最小并控制风险。
53.
在这里插入图片描述
喷泉模型是典型的面向对象生命周期模型,是一种以用户需求为动力,以对象作为驱动的模型。该模型克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。“喷泉” 一词本身体现了迭代和无间隙特性。迭代意味着模型中的开发活动常常需要重复多次,在迭代过程中不断地完善软件系统;无间隙是指在开发活动之间不存在明显的边界。
54.
在这里插入图片描述
增量模型是一种非整体开发的模型,该模型具有较大的灵活性,适合于软件需求不明确的一种模型。使用该模型开发产品,一般是尽快构造出可运行的产品,然后在该产品的基础上再增加需要的新的构建,使产品更趋于完善。
55.
在这里插入图片描述
项目规模大、开发小组对项目需求理解并了解相关领域,因此可以采用瀑布开发模型。演化模式适用于对软件需求缺乏准确认识的情况。螺旋模型在开发过程中加入风险分析。喷泉模型适合于面向对象的开发方法。
56.
在这里插入图片描述
57.
在这里插入图片描述
58.
在这里插入图片描述
瀑布模型将软件生存周期各个活动规定为线性顺序连接的若干阶段的模型,规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。
这种方法是一种理想的开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。

原型模型从初始的原型逐步演化成最终软件产品,特别适用于对软件需求缺乏准确认识的情况。

增量开发是把软件产品作为一系列的增量构件来设计、编码、集成和测试,可以在增量开发过程中逐步理解需求。

螺旋将瀑布模型与快速原型模型结合起来,并且加入两种模型均忽略了的风险分析,适用于复杂的大型软件。
59.
在这里插入图片描述
瀑布模型将开发阶段描述为从一个阶段瀑布般地转换到另一个阶段的过程。
原型模型中,开发人员快速地构造整个系统或者系统的一部分以理解或澄清问题。
螺旋模型将开发活动和风险管理结合起来,以减小风险。
喷泉模型开发过程模型以用户需求为动力,以对象为驱动,适合于面向对象的开发方法。
在这几种开发过程模型中,原型模型不适宜大规模软件的开发。
60.
在这里插入图片描述
61.
在这里插入图片描述
62.
在这里插入图片描述
63.
在这里插入图片描述
64.
在这里插入图片描述
软件成熟度模型CMM是对软件组织进化阶段的描述,该模型在解决软件过程存在问题方面取得了很大的成功,因此在软件界产生了巨大影响,促使软件界重视并认真对待过程改进工作。
过程能力成熟度模型基于这样的理念:改进过程将改进产品,尤其是软件产品。
软件组织为提高自身的过程能力,把不够成熟的过程提升到较成熟的过程涉及4个方面,这4个方面构成了软件过程改进的框架,即过程改进基础设施、过程改进线路图、软件过程评估方法和软件过程改进计划。
在进行评估后需要把发现的问题转化为软件过程改进计划。
而过程改进通常不可能是一次性的,需要反复进行。
每一次改进要经历4个步骤:评估、计划、改进和监控。
65.
在这里插入图片描述
软件开发过程极大地影响所生成的产品质量,因此改进过程将改进软件产品的质量。这也是进行过程改进的前提和理念。

软件质量依赖于软件开发过程的质量,其中,人的因素是主导的,开发技术、过程质量、成本时间和进度也是影响因素。

另外,要使得过程改进有效,需要制定过程改进的目标,还需要对开发人员进行培训。

CMMI是SEI 将已有的几个CMM模型结合在一起,使之构成“集成模型”,即成熟度模型,该模型支持阶段性过程改进和连续性过程改进。
66.
在这里插入图片描述
敏捷开发的总体目标是通过“尽可能早地、持续地对有价值的软件的交付”使客户满意。

敏捷过程的典型方法很多,每一种方法基于一套原则,这些原则实现了敏捷方法所宣称的理念,即敏捷宣言。

其中,极限编程XP是一种轻量级的软件开发方式,由价值观、原则、实践和行为4个部分组成,彼此相互依赖、关联,并通过行为贯穿于整个生存周期。

水晶法Crystal认为每一个不同的项目都需要一套不同的策略、约定和方法论。

并列争球法Scrum使用迭代的方法,并按需求的优先级来实现产品。

自适应软件开发 ASD有6个基本原则。

在这里插入图片描述
软件复杂性度量是软件度量的一个重要分支。对于软件复杂性度量的主要参数有: •规模,即总共的指令数,或源程序行数。 •难度,通常由程序中出现的操作数的数目所决定的量来表示。 •结构,通常用与程序结构有关的度量来表示。 •智能度,即算法的难易程度。 软件复杂性主要表现在程序的复杂性。程序的复杂性主要指模块内程序的复杂性。McCabe度量法是一种基于程序控制流的复杂性度量方法。McCabe复杂性度量又称为环路度量,它认为程序的复杂性很大程度上取决于控制的复杂性。单一的顺序程序结构最为简单,循环和选择所构成的环路越多,程序就越复杂。这种方法以图论为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。程序图是退化的程序流程图,也就是说,把程序流程图中每个处理符号都退化成一个结点,原来连接不同处理符号的流线变成连接不同点的有向弧,这样得到的有向图就叫做程序图。程序图仅描述程序内部的控制流程,完全不表现对数据的具体操作以及分支和循环的具体条件。 根据图论,在一个强连通的有向图G中,环的个数V(G)由以下公式给出: V(G) = m - n + 2p 其中,V(G)是有向图G中的环路数,m是图G中弧的个数,n是图G中的结点数, P是G中的强连通分量个数。在一个程序中,从程序图的入口点总能到达图中的任何一个结点,因此,程序总是连通的,但不是强连通的。为了使程序图成为强连通图,从图的入口点到出口点加一条用虚线表示的有向边,使图成为强连通图,这样就可以使用上式计算环路复杂性了。对于题目中的程序图,其中结点数n = 9,弧数m=ll,p=l,则有: V(G) = m-n+2p =11-9+2 = 4 即McCabe环路复杂的度量值为4。
68.
在这里插入图片描述
增量式开发的主要优点包括:
1.由于能够在较短的时间内向用户提交一些有用的工作产品,因此能够解决用户的一些急用功能。
2.由于每次只提交用户部分功能,用户有较充分的时间学习和适应新的产品。
3.对系统的可维护性是一个极大的提高,因为整个系统是由一个个构件集成在一起的,当需求变更时只变更部分部件,而不必影响整个系统。
主要缺点包括:
1.由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。
2.在开发过程中,需求的变化是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。
3.如果增量包之间存在相交的情况且未很好处理,则必须
69.
在这里插入图片描述
在20世纪90年代后期,一些开发人员抵制产格化软件开发过程,试图强调灵活性在快速有效的软件生产中的作用,提出了敏捷宣言,即个人和交互胜过过程和工具;可 以运行的软件胜过面面俱到的文档;与客户合作胜过合同谈判;对变化的反应胜过遵循计划。

基于这些基本思想,有很多敏捷过程的典型方法,其中: 极限编程XP是激发开发人员创造性、使得管理负担最小的一组技术。

水晶法Crystal认为每—个不同的项目都需要一套不同的策略、约定和方法论。

并列争球法(Scram)使用迭代的方法,其中把每30天一次的迭代称为个冲刺, 并按需求的优先级来实现产品多个自组织和自治小组并行地递增实现产品,协调是通过简短的日常情况会议进行。

自适应软件开发(ASD)有六个基本的原则:
①在自适应软件开发中,有一个使命作为指导,它设立了项目的目标,但不描述如何达到这个目标;
②特征被视为客户键值的关键,因此,项目是围绕着构造的构件来组织并实现特征;
③过程中的迭代是很重要的,因此重做与做同样重要,变化也包含其中;
④变化不视为是一种更正,而是对软件开发实际情况的调整;
⑤确定的交付时间迫使开发人员认真考虑每一个生产版本的关键需求;
⑥风险也包含其中,它使开发人员首先跟踪最艰难的问题。
70.
在这里插入图片描述
71.
在这里插入图片描述
72.
在这里插入图片描述
73.
在这里插入图片描述
CL0(未完成的):过程域未执行或未得到CL1中定义的所有目标。 CL1(已执行的):其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
CL2(已管理的):其共性目标是集中于已管理的过程的制度化。根据组织级政策规定过程的运作将使用哪个过程,项目遵循已文档化的计划和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和工作产品都被监控、控制、和评审。
CL3(已定义级的):其共性目标集中于已定义的过程的制度化。过程是按照组织的裁剪指南从组织的标准过程中裁剪得到的,还必须收集过程资产和过程的度量,并用于将来对过程的改进。
CL4(定量管理的):其共性目标集中于可定量管理的过程的制度化。使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程执行的质量目标作为管理准则。
CL5(优化的):使用量化(统计学)手段改变和优化过程域,以满足客户的改变和持续改进计划中的过程域的功效。
74.
在这里插入图片描述
极限编程是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。

4大价值观: 沟通、简单性、反馈和勇气。 •

5个原则:快速反馈、简单性假设、逐步修改、提倡更改和优质工作。 •

12个最佳实践:计划游戏(快速制定计划、随着细节的不断变化而完善)、小型发布(系统的设计要能够尽可能早地交付)、隐喻(找到合适的比喻传达信息)、简单设计(只处理当前的需求,使设计保持简单)、测试先行(先写测试代码,然后再编写程序)、重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求)、结队编程、集体代码所有制、持续集成(可以按日甚至按小时为客户提供可运行的版本)、每周工作40个小时、现场客户和编码标准。
75.
在这里插入图片描述
初启阶段结束时产生一个构想文档、一个有关用例模型的调查、一个初始的业务用例、一个早期的风险评估和一个可以显示阶段和迭代的项目计划等制品;

精化阶段结束时产生一个补充需求分析、一个软件架构描述和一个可执行的架构原型等制品;

构建阶段结束时的成果是一个准备交到最终用户手中的产品,包括具有最初运作能力的在适当的平台上集成的软件产品、用户手册和对当前版本的描述;

移交阶段结束时产生移交给用户产品发布版本。
76.
在这里插入图片描述
ISO/IEC 9126软件质量模型中可靠性质量特性是指在规定的一段时间内和规定的条件下,软件维护其性能水平有关的能力。

包括的子特性有
成熟性
容错性
易恢复性。

其中易恢复性是与在故障发生后,重新建立其性能水平并恢复直接受影响数据的能力,以及与为达到此目的所需的时间和工作有关的软件属性。软件故障发生后,要在90秒内恢复其性能和受影响的数据,达到这一目的有关的属性即为易恢复性子特性。
77.
在这里插入图片描述
能力成熟度集成模型CMMI是CMM模型的最新版本,基于连续式表述的CMMI 共有6个(0〜5)能力等级,对应于未完成级、已执行级、已管理级、已定义级、量化管理级、优化级。

每个能力等级对应到一个一般目标,以及一组一般执行方法和特定方法。

能力等级0指未执行过程,表明过程域的一个或多个特定目标没有被满足;

能力等级1指过程通过转化可识别的输入工作产品,产生可识别的输出工作产品,关注于过程域的特定目标的完成;

能力等级2指过程作为已管理的过程制度化,针对单个过程实例的能力;

能力等级3指过程作为已定义的过程制度化,关注过程的组织级标准化和部署;

能力等级4指过程作为定量管理的过程制度化;

能力等级5指过程作为优化的过程制度化,表明过程得到很好地执行且持续得到改进。
78.
在这里插入图片描述
79.
在这里插入图片描述
在这里插入图片描述
80.
在这里插入图片描述
81.
在这里插入图片描述
模块结构评审时,主要包括以下方面的评审:

1.控制流结构:规定了处理模块与处理模块之间的流程关系。检查处理模块之间的控制转移关系与控制转移形式(调用方式)。

2.数据流结构:规定了数据模块是如何被处理模块进行加工的流程关系。检查处理模块与数据模块之间的对应关系;处理模块与数据模块之间的存取关系,如建立、删除、查询、修改等。

3.模块结构与功能结构之间的对应关系:包括功能结构与控制流结构的对应关系;功能结构与数据流结构的对应关系;每个模块的定义(包括功能、输入与输出数据)。
82.
在这里插入图片描述
容错技术是对某些无法避开的差错,使其影响减至最小的技术。

通常冗余技术分为四类,
结构冗余、
信息冗余、
时间冗余和
冗余附加技术。

其中冗余附加技术是指为实现其他类型冗余技术所需要的资源和技术,包括程序指令、数据、存放和调动它们的空间和通道等。
在屏蔽硬件错误的容错技术中,冗余附加技术包括:
关键程序和数据的冗余存储及调用:检测、表决、切换、重构、纠错和复算的实现。

在屏蔽软件错误的容错技术中,冗余附加技术包括:
冗余备份程序的存储及调用;
实现错误检测和错误恢复的程序;
实现容错软件所需的固化程序。
83.
在这里插入图片描述
84.
在这里插入图片描述
软件配置管理SCM用于整个软件工程过程,其主要目标是标识变更、控制变更、确保变更正确的实现,报告变更。其主要内容包括版本管理、配置支持、变更支持、过程支持、团队支持、变化报告和审计支持等。
85.
在这里插入图片描述
86.
在这里插入图片描述
87.
在这里插入图片描述
在这里插入图片描述
88.
在这里插入图片描述
89.
在这里插入图片描述
通常从以下几个方面进行评审:
①评价软件的规格说明是否合乎用户的要求,即总体设计思想和设计方针是否明确;
需求规格说明是否得到了用户或单位上级机关的批准;
需求规格说明与软件的概要设计规格说明是否一致等。
②评审可靠性,即是否能避免输入异常(错误或超载等)、硬件失效及软件失效所产生的失效,一旦发生应能及时采取代替手段或恢复手段。
③评审保密措施实现情况,即是否对系统使用资格进行检查;
是否对特定数据、特定功能的使用资格进行检查;
在检查出有违反使用资格的情况后,能否向系统管理人员报告有关信息;
是否提供对系统内重要数据加密的功能等。
④评审操作特性实施情况,即操作命令和操作信息的恰当性,输入数据与输入控制语句的恰当性;
输出数据的恰当性;
应答时间的恰当性等。
⑤评审性能实现情况,即是否达到所规定性能的目标值。
⑥评审软件是否具有可修改性,可扩充性、可互换性和可移植性。
⑦评审软件是否具有可测试性。
⑧评审软件是否具有复用性。
90.
在这里插入图片描述
在这里插入图片描述
91.
在这里插入图片描述
是9-6+2
不是8-6+2哦
92.
在这里插入图片描述
极限编程是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。•

4大价值观: 沟通、简单性、反馈和勇气。•

5个原则:快速反馈、简单性假设、逐步修改、提倡更改和优质工作。•

12个最佳实践:
计划游戏(快速制定计划、随着细节的不断变化而完善)、
小型发布(系统的设计要能够尽可能早地交付)、
隐喻(找到合适的比喻传达信息)、
简单设计(只处理当前的需求,使设计保持简单)、
测试先行(先写测试代码,然后再编写程序)、
重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求)、
结队编程、
集体代码所有制、
持续集成(可以按日甚至按小时为客户提供可运行的版本)、
每周工作40个小时、现场客户和编码标准。
93.
在这里插入图片描述
94.
在这里插入图片描述
文档是指某种数据媒体和其中所记录的数据。
在软件开发过程中,有大量的信息要记录和使用,因此文档具有重要的作用,如可以提高软件开发过程的能见度、提髙开发效率、作为开发人员在一定阶段的工作成果和结束标志、记录开发过程中的有关信息、提高对软件运行维护和培训的有关信息、便于用户了解软件功能和性能等各项指标。

髙质量的文档应该体现在几个方面:

针对性,文档编制应考虑读者。按不同的类型、不同层次的读者,决定怎样适应他们的需要;

精确性,文档的行文应该十分确切,不能出现多义性的描述。同一项目几个文档的内容应该是协调一致,没有矛盾的;

清晰性, 文档编写应力求简明,如有可能,配以适当的图表,以增强其清晰性;

完整性,任何文 档都应当是完整的、独立的,应该自成体系;

灵活性,各个不同软件项目,其规模和复 杂程度有着许多实际差别,不能一律看待;

可追溯性,由于各开发阶段编制的文档与各个阶段完成的工作有密切的关系,前后两个阶段生成的文档,随着开发工作的逐步延伸, 具有一定的继承关系,在一个项目各开发阶段之间提供的文档必定存在着可追溯的关系。
95.
在这里插入图片描述
96.
在这里插入图片描述
97.
在这里插入图片描述
98.
在这里插入图片描述
99.
在这里插入图片描述
可维护性质量特性是指与软件维护的难易程度相关的一组软件属性,它包含了易分析性、稳定性、易测试性和易改变性4个子特性。

其中:
易分析性是描述诊断缺陷或失效原因、判定待修改程度的难易程度的特性。

稳定性是描述修改造成难以预料的后果的风险程度,风险程度越低,稳定性越好。

易测试性是描述测试已修改软件的难易程度的特性。

易改变性是描述修改、排错或适应环境变化的难易程度。

本题中,是说与为确认经修改软件所需努力有关的软件属性,也就是说要确认修改后的软件是否正确所要付出的努力,这应该是易测试性所描述的内容,因此本题答案选A。
100.
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值