软件工程习题.docx
- 文档编号:18598706
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:37
- 大小:711.13KB
软件工程习题.docx
《软件工程习题.docx》由会员分享,可在线阅读,更多相关《软件工程习题.docx(37页珍藏版)》请在冰点文库上搜索。
软件工程习题
一、选择:
10-A
1、在软件危机中表现出来的软件质量差的原因是没有软件质量标准。
2、控制语言不是UML的基本构成元素。
3、可行性研究主要从以下几个方面进行研究经济可行性,法律可行性,技术可行性。
4、需求分析中开发人员要从用户那里了解软件做什么。
5、封装是把随想的属性和操作结合在一起,构成一个独立的对象,其内部消息对外界是隐蔽的。
6、使用白盒测试方法时,确定测试数据应根据程序的内部逻辑和指定的覆盖标准。
7、下面哪一个是成本估算模型(COCOMO)。
8、模块内聚合度越高,说明模块内各成分彼此结合的程序越紧密。
9、编码阶段是位于详细设计阶段之后。
10、“确保软件功能符合SRS中声明的每个需求”是对软件测试的描述。
-------------------------------------------------------------------------------------------------------------------
10-B
1、略2、软件生存周期模型有多种,下列选项中,功能模型不是软件生存周期模型。
3、软件质量是可以测量的。
4、软件需求规格说明书的内容不包括算法的详细描述。
5、“确保软件功能符合SRS中声明的每个需求”是对软件测试的描述。
6、不正确的事实不是SRS中的典型错误。
7、互联网不是计算机系统工程的产品工程的系统构件。
8、执行者(Actor)与用例之间的关系是关联关系。
9、功能点可以显示软件中可以提供的功能部件数。
10、以下哪些不是面向规模的度量:
算法复杂度
(提示:
面向规模的度量:
每千行代码(KLOC)的错误数。
每千行代码行(KLOC)的缺陷数。
每千行代码行(KLOC)的成本。
每千行代码行(KLOC)的文档页数。
每人月错误数。
每页文档的成本。
)
-------------------------------------------------------------------------------------------------------------------
11-A
2、如果需要对关键软件进行测试,所使用的技术需要开发相同软件的两个版本并使用同一个测试用例进行测试。
这种技术称为背靠背测试技术。
也称:
对比测试法。
3、以下哪一项不是需求规格说明书的一部分:
对人力的需求
6、下面哪一项不是项目策划中的步骤:
需求分析
7、下面哪一个概念是缺陷引入?
这是一个过程,一组人员将缺陷引入代码中,另一组人员进行检测。
9、需求分析中产生的各种错误类型中,其中不正确的占49%。
11、瀑布模型的关键不足在于不能适应需求的动态变更。
12、以下哪一项不是软件危机的表现形式技术发展快。
13、下面哪一项不是项目策划中的步骤?
需求分析
14、在系统分析中使用数据流图(DFD)这种基本方法是为了提供功能模型和信息流。
15、下面哪一项描述了软件确认?
确保软件功能符合SRS中声明的每个需求
16、数据流图和数据字典共同构成系统的逻辑模型。
17、可行性分析研究的目的是项目值得开发否。
18、等价类划分属于黑盒测试。
19、软件需求分析的主要任务是准确地定义出要开发的软件系统是做什么。
20、为了提高测试的效率,应该选择发现错误可能性大的数据作为测试数据。
21、具有风险分析的软件生存周期模型是螺旋模型。
22、结构图表示软件结构。
23、actor与用例之间的关系是关联关系。
25、检查软件产品是否符合需求定义的过程称为验收测试。
26、黑盒测试是从用户观点出发的测试,白盒测试是从开发人员观点出发的测试。
27、可行性研究要进行一次简化的、压缩了的需求分析。
28、回归测试是校正性维护中最常用的方法。
29、与选择编程语言无关的因素是程序设计风格。
30、面向对象程序设计将数据与对数据的操作放在一起,作为一个相互依存、不可分割的整体来处理。
31、软件生存周期的每个阶段工作和软件可维护性有密切的关系。
32、好的软件结构应该是低耦合,高内聚。
33、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是探索型模型。
34、软件结构图的形态特征能反映程序重用率的是扇入。
35、需求分析最终结果是产生需求规格说明书。
36、分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的抽象。
37、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作软件危机。
38、产生软件维护的副作用,是指因修改软件而造成的错误。
39、维护中,因误删除一个标识符而引起的错误是编码副作用。
40、可维护性的特性中相互促进的是可理解性和可测试性。
41、技术评审是以提高软件质量为目的的技术活动。
42、面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。
因此面向对象方法有许多特征,如软件系统是由对象组成的把对象划分成类,每个对象类都定义一组数据和方法;对象彼此之间仅能通过传递消息互相联系;层次结构的继承。
43、原型化方法是用户和设计者之间执行的一种交互构成,适用于需求不确定性高的系统。
44、为了提高测试的效率,应该选择发现错误可能性大的数据作为测试。
45、以下哪一项不是需求规格说明书的一部分?
对人力的需求
46、以下哪种是瀑布模型的优点?
在过程实现中,提供最好的工作次序且为软件工程提供结构化模板
二、判断:
10-A
1、快速原型模型可以有效的适应用户需求的动态变化。
对
2、一个状态图最多只能有一个初始状态和一个终态。
错
3、技术评审对于软件的质量保证具有重要作用。
对
4、增加软件开发人员的数量就一定能加快软件项目的进度。
错
5、软件经济可行性分析不应该包括经济效益,因为无法测量。
错
6、基本路经测试也称数据流测试,是最重要的基于代码的测试策略。
对
7、用例(USECASE)用于描述所要开发的系统的一项功能。
对
8、组建时系统中的一组物理元素的逻辑实现。
对
9、类图是最重要的模型图,它描述了系统中各类对象以及它们之间的各种关系。
对
10、在项目管理中的风险控制就是不做任何有风险的项目。
错
-----------------------------------------------------------------------------------------------------------------
10-B
1、场景是用例的一个实例。
2、在项目管理中的风险控制就是不做有一定风险的项目。
3、包的作用是构建软件的一个发行版本。
4、事件可以引起系统中对象状态发生改变。
5、当软件开发项目的进度有可能拖延时,增加软件开发人员的数量就一定能加快软件项目的进度。
错
6、数据体系结构是在业务过程工程三种体系结构中。
7、当软件开发项目的进度有可能拖延时,增加开发人员一定能加快项目开发的进度。
8、过程、方法和工具称为软件工程的三要素。
对
9、螺旋模型是一种线性顺序模型。
错(是一种迭代模型)
10、需求分析阶段的制品是软件需求规格说明书。
-----------------------------------------------------------------------------------------------------------------
11-A
1、需求分析阶段的制品是软件需求规格说明书。
对
2、在项目管理中的风险控制就是不做有一定风险的项目。
错
3、软件经济可行性分析不应包括社会效益,因为无法测量。
错
4、桩基模块是测试中使用的哑子程序。
对
6、当软件开发项目的进度有可能拖延时,增加开发人员一定能加快速度。
错
7、甘特图常用来描述业务流程。
错
8、对象的状态从一个状态转到另一个状态的改变称为对象的事件。
对
9、需求工程将对项目进行可行性评估。
错
10、走查与评审的软件测试方法对软件的质量保证没有什么作用。
错
11、螺旋模型是一种迭代模型。
对
12、用例之间的关系主要有泛化、扩展和包含三种关系。
对
13、β测试由客户代表在开发人员站点进行,错误报告交由开发人员处理。
错
14、需求工程将对项目提供可行性评估。
错
15、软件经济可行性分析不应包括社会效益,因为无法测量。
错
16、软件作为商品,它的生产方式、使用方式、老化磨损方式与其它商品没有太大的区别。
错
17、需求工程将对项目提供可行性评估。
错
18、当每级精化中的数据流图DFD的输入和输出都相同时称为平衡。
对
19、桩基模块是测试中使用的哑子程序。
对
20、当软件开发项目的进度有可能拖延时,增加开发人员一定能加快项目开发的进度。
错
21、COCOMO模型是一种估算软件代码行的模型。
错
23、大多数软件是由组件组装起来,不是客户构建的。
错
24、走查与评审的软件测试方法对软件的质量保证没有什么作用。
错
25、SRS是系统测试和验证活动的基础。
对
26、在分析用户需求时同时考虑维护问题。
对
27、测试完程序后,删去程序中的注解以缩短源程序长度。
错
28、在软件开发过程中保证各阶段文档的正确性。
对
29、编码时多用全局变量。
错
30、选用时间效率和空间效率尽可能高的算法。
错
31、尽可能利用硬件特点以提高程序效率。
错
32、尽可能使用高级语言编写程序。
对
33、进行总体设计时加强模块间的联系。
错
34、尽量减少程序模块的规模。
错
35、用数据库系统代替文件系统来存储需要长期保存的信息。
对
36、用CASE环境或程序自动生成工具来自动生成一部分程序。
对
37、尽量用可重用的软件构件来组装程序。
对
38、使用先进的软件开发技术。
对
39、采用防错程序设计技术,在程序中引入自检能力。
对
40、软件开发小组人数越多越好。
错
41、在程序运行之前没法评估其质量。
错
42、需求是变化的,因为软件是灵活的,总可以满足需求。
错
43、有了对目标一般描述,就可以编程序,以后在详细描述。
错
44、模块越小,模块的优点越大。
错
45、AD图是用结构化程序设计思想表现程序逻辑结构的图形工具。
不允许递归使用。
错
46、程序流程图独立于任何一种程序设计语言,比较直观和清晰地描述过程的控制流程。
对
47、N-S图是一种符合结构化程序设计原则的图形描述工具,称为盒图。
对
48、HIPO图是由一组IPO图加一张HC图组成。
它是美国IBM公司在软件设计中使用的主要表达工具。
对
三、填空
9-A
1、软件生存周期划分为7个阶段,即可行性研究、需求分析、概要设计、详细设计、编码和测试、维护。
2、SA方法中自顶向下的分析策略主要是分解和抽象,其主要描述工具是数据流图、数据字典、描述加工逻辑的结构化语言、判定表、判定树。
3、衡量软件的独立性有两个定性的度量标准,即耦合性和内聚性。
4、黑盒测试是功能测试,用黑盒技术设计测试用例有4种方法:
等价类划分边界值分析错误推测因果图
5、维护的副作用有编码副作用、数据副作用、文档副作用。
6、衡量软件质量的主要特性有可维护性、可使用性、可适用性。
------------------------------------------------------------------------------------------------------------------
10-A
1、软件的可行性分析主要从技术、经济、法律三个方面进行分析。
2、软件工程的三要素是指方法、工具、过程。
3、软件项目管理的4P是人、产品、过程、项目。
(peopleproductprocessproject)
4、组件图包括组件、接口及其关联。
5、在进行风险分析与控制时,主要考虑来自技术、和项目三方面的风险。
6、统一建模语言是面向对象软件工程所使用的一种建模工具,因为缩写为UML。
7、对软件构成或模块进行验证,即为模块测试,也成为单元测试。
8、构成对象的两个主要因素是属性和服务。
9、顺序图是描述对象间的消息通信,主要有两种方式:
异步通信和同步通信。
10、等价类划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数据类,据此导出测试用例。
1、IEEE在软件工程术语汇编中定义软件工程是将系统化的、严格约束的、可量化的方法应用于软件开发、运行和维护,即将工程化应用于软件,以及上述方法的研究。
2、若年利率为i,现存入P元,不计复利,n年后可得钱数为F=
。
3、需求分析的输出是需求规约。
4、软件设计主要包含两个阶段:
软件体系结构设计阶段或概要设计、部件级设计阶段或者详细设计
5、结构化方法是采用自顶向下、逐层分解的思想进行分析建模的。
6、数据流图或者DFD是描述输入数据流到输出数据流的变换,用于对系统的功能建模。
7、
测试是由软件的最终用户在一个或者多个用户场所进行的。
8、详细设计任务包含了算法设计、数据结构设计、界面设计、其它设计等。
9、由Albrecht开发的功能点度量最初是用来处理商业应用程序和MIS应用程序。
10、线性顺序模型有瀑布模型、RAD模型。
11、IPO图由输入、处理和输出三个框组成。
这个图的特点是能够直观的显示三者之间的关系。
12、成本效益分析的目的是从经济角度评价开发一个项目是否可行。
13、需求分析阶段决定了系统做什么,软件设计阶段决定系统如何具体实现的方案,编码阶段是系统实现的过程,软件测试阶段是对实现的系统是否正确的检验,软件维护阶段是找出开发阶段遗留下来的错误,而且随着用户要求的增加,环境的变化,对系统进行改造。
14、设计分为概要设计和详细设计两大步骤。
15、集成测试的方法主要有渐增式测试和非渐增式测试两种。
16、软件设计要遵守“抽象,分解,低藕合高内聚,封装,接口和实现分离”的设计原理。
17、测试阶段是在代码编写完成以后,先作单元测试,然后是集成测试、系统测试和验收测试。
81、软件维护的内容有:
纠正性维护、适应性维护、完善性维护和预防性维护。
19、一般而言,在面向对象建模过程中,人们最常用的是建立系统的用例图、类图和顺序图。
20、“四种开发方法”是指“面向过程的方法、面向对象的方法、面向数据的方法、形式化方法”
21、“五个面向理论”是指“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”。
22、结构化分析方法是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。
基本思想是采用自顶向下,逐层分解的方法分析整个系统,有效地控制系统开发的复杂性。
23、内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
24、在结构化分析中,用于描述加工逻辑的主要工具有三种,即:
结构化语言、判定表、判定树。
25、结构化语言是介于自然语言和形式语言之间的一种半形式语言。
26、模块设计的基本原则是要尽量使用数据耦合,减少控制耦合,限制外部耦合和公共耦合,不使用内容耦合。
27、系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的信息流动情况。
28、自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:
深度优先策略和宽度优先策略。
29、详细设计的任务是确定每个模块的内部特性,即模块的算法、使用的数据。
30、有两类维护技术:
在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的维护支援技术。
31、科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:
FORTRAN语言、PASCAL语言、C语言和PL/1语言。
1.软件生存周期一般可分为问题定义、需求分析与可行性研究、设计、编码、测试、运行与维护六个阶段。
2. 结构化分析方法是面向数据流进行需求分析的方法。
结构化分析方法使用数据流图DFD与数据字典DD来描述。
3. 数据流图的基本四种成分:
数据输入的源点和数据输出的汇点、加工、数据流、数据存储文件
4. 为了在软件开发过程中保证软件的质量,主要采取下述措施审查、复查和管理复审、测试
5.Jackson系统开发方法(JSD)是一种典型的面向数据结构的分析设计方法。
6. 总体设计的目标:
.确定系统的功能与模块结构
7. 是用户和设计交换最频繁的方法原型化方法
8. 软件测试的目的:
尽可能发现并排除软件中潜藏的错误,提高软件的可靠性
9.程序流程图五种基本控制结构:
①顺序型;②选择型;③while型循环;④until型循环;⑤多情况型选择。
10.在N-S图中,五种基本控制结构,①顺序型;②选择型;③WHILE重复型;④UNTIL重复型⑤多分支选择型。
四、简答题:
09-A
1、说明对内聚与耦合的理解。
解:
模块独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。
一般采用两个准则度量模块独立性。
即模块间耦合和模块内聚。
耦合是模块之间的互相连接的紧密程度的度量。
内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。
模块独立性比较强的模块应是高内聚低耦合的模块。
2、什么是软件的可维护性?
软件的可维护性与哪些软件质量的特性有关?
如何提高软件的可维护性?
为什么在软件开发过程中,要特别重视软件的可维护性?
①软件的可维护性指软件能够被理解、校正、适应及增加功能的容易程度。
②软件的可维护性与软件质量的下列特性有关:
可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
③提高软件的可维护性方法有:
•要建立明确的软件质量目标:
要程序满足可维护性的7个指标是不现实的,对于不同性质软件,质量重点不一样。
强调哪个质量特性,视情况而定。
•要利用先进的软件开发技术和工具:
能大大提高软件质量和减少软件费用。
例如面向对象方法开发的软件系统,稳定性好,比较容易修改,比较容易理解,易于测试和调试,因此可维护性好。
•建立明确的质量保证:
有4类检查(在检查点进行检查、验收检查、周期性的维护检查、对软件包的检查)。
•选择可维护性语言:
程序语言的选择对可维护性影响很大。
•改进程序的文档:
为提高可维护性,需要用户文档、操作文档、数据文档、程序文档和历史文档。
④在软件开发过程中,要特别重视软件的可维护性的原因:
•软件的可维护性是衡量软件质量的主要特性之一。
•软件的可维护性是软件开发阶段的关键目标。
3、简述UML中视图、图的概念。
说明视图与图的关系,说明各种视图、各种图的作用。
答:
以UML1.4为例:
视图用来表示被建模系统的各个方面。
视图由多个图(Diagrams)构成,它不是一个图片(graph),而是在某一个抽象层上对系统的抽象表示。
如果要为系统建立一个完整的模型图,只需定义一定数量的视图,每个视图表示系统的一个特殊的方面。
有5种视图,分别是
1)用例视图(Use-caseview):
用于描述系统应该具有的功能集,它是系统的外部用户所能观察到的系统功能的模型图。
2)逻辑视图(Logicalview):
展示了系统内部如何提供系统的功能。
它利用系统的静态结构和动态行为来刻画系统功能,
3)构件视图(Componentview):
用来显示代码构件的组织方式。
它描述了实现模块(implementationmodule)和它们之间的依赖关系。
4)并发视图(ConcurrencyView):
用来显示系统的并发工作状况
5)部署视图(DeploymentView):
用来显示系统的物理架构,即系统的物理部署。
UML中包含用例图、类图、对象图、状态图、顺序图、协作图、活动图、构件图、部署图共九种。
1)用例图定义的是系统的功能需求
2)类图用来表示系统中的类和类与类之间的静态关系。
3)对象图是类图的一个实例。
它及时具体地反映了系统执行到某处时系统的工作状况。
4)状态图显示了类的所有对象可能具有的状态以及引起状态变化的事件。
5)顺序图反映若干个对象之间的动态协作关系,主要用来显示对象之间发送消息的顺序,显示了对象之间的交互。
6)协作图,反映的也是动态协作.除了显示消息变化(称为交互)外,协作图还显示了对象和它们之间的关系(称为上下文有关)。
7)活动图反映一个连续的活动流。
活动图常用于描述某个操作执行时的活动状况。
8)构件图用来反映代码的物理结构。
9)部署图用来显示系统中软件和硬件的物理架构。
------------------------------------------------------------------------------------------------------------------
10-A
1、简述瀑布模型的特点,与原型模型的关键区别是什么?
瀑布模型有以下优点
1)为项目提供了按阶段划分的检查点。
2)当前一阶段完成后,您只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
瀑布模型有以下缺点
1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
4)瀑布模型的突出缺点是不适应用户需求的变化。
原型模型是跟瀑布模型区别,原型模型开始时没有很好的对整个系统做很全面的分析,设计,而就其中的某些基本功能实现一个雏形,然后马上给用户看,再改,它就是将经典软件生命周期几个阶段做成了循环,进行多次,这样可以很好避免功能上与用户需求有出入的错误,相比瀑布模型更具有弹性,但它的缺点就是对客户来说一开始就没有完整的功能实现出来。
2、软件产品与一般产品相比有哪些不同的特点。
答:
特点:
a)软件具有高度抽象性,软件及软件产生的过程具有不可见性。
b)同一功能软件的多样性,软件生产过程中的易错性。
C)软件在开发和维护过程中的易变性。
d)不同开发者之间思维碰撞的易发性。
3、一个商场要引入一个商品供销存系统,要进行软件的经济可行性分析,你认为应该从哪几个方面进行分析。
答:
成本、效益、货币的时间价值、投资回收期和纯收入。
4、为什么说需求分析是一个十分重要的过程。
答:
项目失败最重要的8个原因中的5个与需求有关
需求阶段产生的错误将扩散到其他阶段;以需求为基础的设计与编码阶段对错误的检测与发现很困难;
后期发现的需求错误的修正费用很高;软件项目的成本与时间超支,大多是需求分析不准确造成;
好的需求开发和客户的利益的保证;
5、画一个远程网络教学系统的教师参与者的用例图。
(略)
------------------------------------------------------------------------------------------------------------------
10-B
1、一个医院,需要完善医院管理系统,可以采购商品软件,也可以自行开发,以医院的角度从成本和效益两方面进行分析。
2、简述软件需求的获取和确认的过程。
软件需求:
是为了解决用户的问题和实现用户的目标,用户所需的软件必须满足的能力和条件。
软件需求的获取与确认过程:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 习题