软件工程复习题答案
25.基于构件的软件的开发过程包括两个并发的子过程,一个是领域工程,另一个是基于构件的开发
26.构件库系统应提供的主要功能:构件的存储、管理、检索以及库的浏览与维护等
27.软件系统中的错误和缺陷通常不是均匀地分布在整个软件系统的各个部分的,而是成群集中出现的,这种现象称作群集现象。
28.软件测试按先后顺序可分为:单元测试、集成测试、确认测试、系统测试和验收测试。
8.软件危机的主要表现是(BD)
9.A.软件成本太高B.软件产品的质量低劣
10.C.软件开发人员明显不足D.软件生产率低下
11.以下属于非功能需求的有(ABC)
12.A.机构需求B.产品需求C.外部需求D.领域需求
13.需求分析的作用是(ABCD)
14.A.定义软件的范围及必须满足的约束
15.B.确定软件的功能和性能及与其他系统成分的接口
二、填空题
1.软件工程是在克服1960年代末所出现的软件危机的过程中逐渐形成与发展的。
2.软件工程的发展已经历了四个重要阶段:传统的软件工程,对象工程,过程工程,构件工程
3.软件生命周期包括的阶段有:问题定义,可行性研究,需求分析,软件设计,编码,测试,运行与维护。
4.软件开发方法可分为两大类:面向过程的开发方法,面向对象的开发方法
63.A.一般的表格工具B.甘特图C.时标网状图D.PERT技术与CPM方法
64.CMM表示(A)
65.A.软件过程成熟度模型B.软件过程工业化控制
66.C.国际软件质量认证D.软件统一性标准
67.软件过程和产品质量有详细的度量标准,并且得到了定量的认识和控制。以下哪一级具有上述特征(C)
68.A.可重复级B.已定义级C.已管理级D.优化级
46.C.严格的质量保证D.较高的标准化程度
47.大多数的构件分类模式可以归纳为(ABC)
48.A.枚举分类B.刻面分类C.属性值分类D.聚集分类
49.软件测试的基本原则有(BD)
50.A.尽量由程序设计者自己进行测试B.注重测试用例的选择
51.C.尽早地和不断地进行软件测试D.充分注意测试中的群集现象
23.常用的需求分析方法有(BCD)
24.A.功能分析方法B.结构化分析方法
25.C.信息建模法D.面向对象的分析方法
26.数据词典中可包含的条目有(ABCD)
27.A.数据流B.数据项C.文件D.加工
28.属于分布式的软件体系结构有(B)
29.A.仓库模型B.客户/服务器模型C.分布式对象结构D.中间件
40.以下软件复用中,抽象程度最低的是(A)
41.A.代码的复用B.设计结果的复用C.分析结果的复用D.测试信息的复用
42.以下软件复用中,抽象程度最高的是(D)
43.A.代码的复用B.设计结果的复用C.分析结果的复用D.测试信息的复用
44.可复用构件必须具备的条件有(ABD)
45.A.功能上的独立性和完整性B.较高的通用性和灵活性
5.对系统应该提供的服务和所受到的约束进行理解、分析、建立文档、检验的过程称作需求工程
6.软件系统的需求分为用户需求和系统需求两类。
7.系统需求分为功能需求,非功能需求和领域需求。
8.需求验证的内容包括:有效性检查,一致性检查,完备性检查和可检验性检查
9.画分层DFD图应遵循的基本原则有:数据守恒与数据封闭原则,加工分解的原则,子图与父图的平衡,合理使用文件
15.传统软件开发方法无法实现从问题空间到解空间的直接映射(√)
16.传统软件开发方法无法实现高效的软件复用(√)
17.对象可以是事、物、或抽象概念,是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体(√)
18.活动图描述了系统中各种活动的执行的顺序。刻化一个方法中所要进行的各项活动的执行流程。(√)
20.状态图用来描述一个特定对象的所有可能的状态及其引起状态转移的事件
21.顺序图用来描述对象之间动态的交互行为,着重体现对象间消息传递的时间顺序
22.结构化程序设计方法的基本思想是自顶向下、逐步求精
23.按照复用活动所跨越的应用领域的类型分,软件复用可分为:横向复用和纵向复用
24.基于软件复用的软件开发过程的角度分,软件复用可分为:生产者复用和消费者复用
7.问卷调查法是对面谈法的补充,是从多个用户中收集需求信息的有效方式(√)
8.信息建模法是从数据的角度对现实世界建立系统的信息模型,基本工具是ER图。(√)
9.结构化分析方法是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法,由数据流图(DFD图)表示(√)
10.软件设计的目标就是构造一个高内聚低耦合的软件模型(√)
58.(4)判定-条件覆盖(5)条件组合覆盖(6)路径覆盖
59.A. 1 2 3 4 5 6B. 6 5 4 3 2 1C. 1 4 3 2 6 5D. 1 6 2 3 4 5
60.属于黑盒法的测试方法有(ABCD)
61.A.等价分类法B.边值分析法C.错误推测法D.因果图法
62.描述软件开发计划进度的主要工具有(ABCD)
24.领域分析是特定领域内软件重用的基础,它的目标就是:发现和挖掘在特定领域内可以被复用的构件。(√)
25.领域分析不是针对某个特定的软件系统,而是针对一类软件系统的共同的特征、知识和需求。比需求分析更一般、更抽象、更广泛的特征(√)
26.软件测试的目的是为了发现和改正错误(√)
27.驱动模块模拟主程序功能,用于向被测模块传递数据,接收、打印从被测模块返回的数据(√)
52.以下测试方法中属于静态分析方法的有(ABD)
53.A.桌前检查B.代码会审C.白盒法D.步行检查
54.步行检查时,常使用的分析方法有(AB)
55.A.调用图B.数据流分析图C.数据流图D.状态图
56.下面6种常用的逻辑覆盖测试方法,按发现错误能力由弱到强排列的是(A)
57.(1)语句覆盖(2)判定覆盖(3)条件覆盖
19.构成状态图的模型元素有:活动、转移、对象、信号、泳道等(×)
20.活动图中只有一个起点一个终点(√)
21.状态图的终态则可以有多个(√)
22.软件复用不仅是对程序的复用,它包括对软件生产过程中任何活动所产生的制成品的复用(√)
23.代码的复用既包括目标代码的复用,也包括文本形式的源代码的复用(√)
软件工程复习题答案
一、选择题
1.软件工程研究的主要内容有(ABCD)
2.A.软件开发方法、技术B.软件开发工具及环境
3.C.软件管理技术D.软件规范(国际规范)
4.目前典型的软件开发模型有(ABCD):
5.A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型
6.包含风险分析的软件工程模型是(C):
7.A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型
11.采用分布式对象结构,每个对象在逻辑上是平等的,它们可以互相为对方提供所需的服务(√)
12.软件独立性的含义是指开发具有功能专一,模块之间无过多相互作用的模块(√)
13.对模块图中每个模块的过程进行描述,常用的描述的方式有:伪代码,流程图,N-S图,PAD图等。(√)
14.MVC的意思是“模型-视图-控制器”,该设计模式的主要优点是可以为一个模型在运行时同时建立和使用多个视图。(√)
3.面向对象的开发方法有面向对象的分析与设计,以及面向对象的程序设计组成(√)
4.用户需求通常只描述系统的外部行为,而不涉及系统内部的特性,往往是较模糊的。(√)
5.系统需求较详细的给出系统将要提供的服务,以及系统所受到的约束,对系统的需求文档的描述应该是精确的。(√)
6.领域需求是由软件系统的应用领域所决定的特有的功能需求,或是对功能的约束(√)
29.软件测试方法可分为两类:静态分析和动态测试
30.动态测试常用的方法有白盒法和黑盒法
31.模块测试时,需要使用的2类辅助模块是驱动模块和桩模块。
32.常用的软件调试策略有:试探法、归纳法、演绎法、回溯法和对分查找法调试。
33.软件维护可分为:完善性维护、纠错性维护、适应性维护和预防性维护
34.软件项目管理过程主要包括:项目启动、项目规划、项目实施和项目收尾
35.CMM将软件过程的成熟度分为5个级别,从低到高分别是:初始级、可重复级、已定义级、已管理级和优化级。
36.CMM实施软件过程改进采用的方法称为IDEAL模型,分五步:初始化、诊断、建立、行动和推进
三、判断题
1.软件就是程序,编写软件就是编写程序(×)
2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰(√)
Beta测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。
自顶而下增值
优点:能够尽早发现系统主控方面的问题。
缺点:无法验证桩模块是否完全模拟了下属模块的功能。
自底而上增值
优点:驱动模块较容易编写桩模块,能够尽早查出底层涉及较复杂的算法和实际的I/O模块中的错误。
3.什么是测试和β测试
答:
alpha测试是由一个用户在开发者的场所来进行的,软件在开发者对用户的"指导"下进行测试,开发者负责记录错误和使用中出现的问题,alpha测试是在一个受控的环境中进行的。
16.C.建立数据模型、功能模型和行为模型
17.D.最终提供需求规格说明,并用于作为评估软件质量的依据
18.需求工程的基本活动包括(ABCD)
19.A.获取需求B.需求分析与建模C.确认需求D.进化需求
20.需求获取之所以困难,其主要原因有(ABCD)