软件工程复习试题文档格式.docx
- 文档编号:6323448
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:35
- 大小:322.40KB
软件工程复习试题文档格式.docx
《软件工程复习试题文档格式.docx》由会员分享,可在线阅读,更多相关《软件工程复习试题文档格式.docx(35页珍藏版)》请在冰点文库上搜索。
A、开发完毕才见到产品B、及早提供全部完整的软件产品
C、开发完毕后才见到工作软件D、及早提供工作软件
15、下列属于维护阶段的文档是()
A、软件规格说明B、用户操作手册C、软件问题报告D、软件测试分析报告
16、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:
-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是()
A、条件覆盖法B、等价分类法C、边界值分析法D、错误推测法
17、不适合作为科学工程计算的语言是()
A、PascalB、CC、FortranD、Prolog
18、软件详细设计主要采用的方法是()
A、模块设计B、结构化设计C、PDL语言D、结构化程序设计
19、研究开发所需要的成本和资源是属于可行性研究中的()研究的一方面。
A.技术可行性B.经济可行性C.社会可行性D.法律可行性
20、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()
A.软件工程B.软件周期C.软件危机D.软件产生
21、中级结构性成本模型COCOMO是一个()
A、静态单变量模型B、动态单变量模型
C、静态多变量模型D、动态多变量模型
22、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作()
A、需求分析B、概要设计C、详细设计D、软件维护
23、经过严密的软件测试后所提交给用户的软件产品中()
A、软件不再包含任何错误B、还可能包含少量软件错误
C、所提交给用户的可执行文件不会含有错误D、文档中不会含有错误。
24、等价划分测试方法属于()
A、黑盒测试B、白盒测试C、边界测试D、系统测试
25、PAD图为()提供了有力的工具。
A、系统分析B、软件的自动化生成C、自动分析数据D、测试软件
26、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是()
A、探索型模型B、演化型模型C、实验型模型D、提交型模型
27、为避免修改软件的“涟漪效应”,模块之间的耦合最好是()
A、内容耦合B、控制耦合C、数据耦合D、印记耦合
28、程序设计语言的工程特性之一为()
A、软件的可重用性B、数据结构的描述性
C、抽象类型的描述性D、数据库的易操作性
29、下列关于JSP方法不正确的说法是()
A、JSP方法主要用于规模不大的数据处理系统
B、JSP方法不明确的划分软件概要设计和详细设计的两个阶段
C、JSP方法适用于输入数据和输出数据之间有对应关系的问题求解
D、JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。
因此它只适用于详细设计阶段
30、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为()
A.可用性B.可靠性C.正确性D.完整性
31、在详细设计阶段,经常采用的工具有()
A、PADB、SAC、SCD、DFD
32、模块设计中,最不希望的内聚是()
A、功能内聚B、通信内聚C、过程内聚D、偶然内聚
33、确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于()
A、集成测试B、恢复测试C、验收测试D、单元测试
34、要显示描绘软件开发项目各作业的依赖关系,应选择(
)。
A.
Gantt图
B.工程网络
C.
COCOMO模型
D.数据流图
35、盒图(N-S图)为()提供了有力的工具。
36、实施快速原型模型方法开发软件的关键在于()
A、CASE工具的支持B、如何开发演化型模型
C、项目主管的支持D、开发人员的素质
37、(
)是比较理想的可重用软构件。
A.子程序库
B.源代码包含文件C.对象D.类
38、程序流程图(框图)中的箭头代表(
A.数据流
B.控制流
C.调用关系D.组成关系
39、一个只有顺序结构的程序,其环形复杂度是(
A.0
B.1
C.3
D.不确定的
40、从心理学角度看,对数据流程图的数据处理泡进行分解,一次分解为多少个泡为宜。
()
A、3±
1B、7±
2C、15±
1D、18±
2
41、瀑布模型存在的问题是()
A、用户容易参与开发B、缺乏灵活性
C.用户与开发者易沟通D.适用可变需求
42、可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因此必须给出什么样的回答。
A.确定B.行或不行C.正确D.无二义
43、结构化程序设计主要强调的是()
A、程序的规模B、程序的效率C、程序设计语言的先进性D、程序易读性
44、在用户界面层次上对软件进行测试属于哪种测试方法()
A、黑盒测试B、白盒测试C、边界测试D、系统测试
45、经济可行性研究的范围包括()
A、资源有效性B、管理制度C、效益分析D、开发风险
46、对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A、结合B、隐藏C、封装D、抽象
47、需求分析阶段的任务是确定()
A、软件开发方法B、软件开发工具C、软件开发费D、软件系统的功能
48、下列文档与维护人员有关的有()
A、软件需求说明书B、项目开发计划C、概要设计说明书D、操作手册
49、下列模型属于成本估算方法的有()
A、COCOMO模型B、McCall模型C、McCabe度量法D、时间估算法
50、程序的三种基本控制结构是()
A、过程、子程序和分程序B、顺序、选择和重复
C、递归、堆栈和队列D、调用、返回和转移
51、作坊式小团体合作软件生产方式的时代是()时代。
A、程序设计B、软件生产自动化C、程序系统D、软件工程
52、软件生存周期中时间最长的是()阶段。
A、总体设计B、需求分析C、软件测试D、软件维护
53、为了提高模块的独立性,模块之间的联系最好的是()。
A、公共耦合B、控制耦合C、内容耦合D、数据耦合
54、软件概要设计结束后得到()
A、初始化的软件结构图B、优化后的软件结构图
C、模块的接口图和详细算法D、程序编码
55、软件需求是度量软件质量的基础,不符合需求的软件就不具备()
A、软件的特点B、质量C、软件产品D、功能
56、软件特性中,程序能够满足规格说明和完成用户业务目标的程度,称作()
A、正确性B、移植性C、可靠性D、完整性
57、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以()的编制是很重要的。
A、需求说明B、概要说明C、软件文档D、测试计划
58、汽车有一个发动机,因而汽车与发动机之间的关系是()关系。
A、一般与特殊B、整体与部分C、分类关系D、isa关系
59、在有多重继承的类层次结构图中,它的类层次结构图是()层次结构
A、树型B、网状性C、星型D、环型
60、软件部件的内部实现与外部可访问性的分离,是指软件的()。
A、继承性B、共享性C、封装性D、抽象性
61、在结构图中,不是其主要成分的是()。
A、模块B、模块间传递的数据C、模块内部数据D、模块的控制关系
62、结构化设计方法在软件开发中,用于()。
A、测试用例设计B、软件概要设计C、程序设计D、软件详细设计
63、单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现()的错误。
A、接口错误B、编码错误C、性能、质量不合要求D、功能错误
64、软件工程管理对软件项目的开发管理,即对整个软件()的一切活动的管理。
A、软件项目B、生存期C、软件开发计划D、软件开发
65、许多产品的质量问题源于新产品的开发设计阶段,因此在产品()阶段就应采取有力措施来消灭由于设计原因而产生的质量隐患。
A、软件评审B、软件测试C、开发设计D、软件度量
66、下列几种类型中,耦合性最弱的是()。
A、内容型B、控制型C、公共型D、数据型
67、COCOMO估算模型是()
A、模块性成本模型B、结构性成本模型
C、动态单变量模型D、动态多变量模型
68、火车是一种陆上交通工具,火车和陆上交通工具之间的关系是()关系。
A、一般与特殊B、整体与部分C、分类关系D、isa关系
69、面向对象分析阶段建立的三个模型中,核心的模型是()模型。
A、功能B、动态C、对象D、分析
70、系统因错误而发生故障时,仍然能在一定程度上完成预期的功能,则把该软件称为()。
A、软件容错B、系统软件C、测试软件D、恢复测试
二、名词解释
1、数据字典(DD)
数据字典:
是关于数据的信息的集合,更确切地说是对数据流图中包含的所有元素的定义的集合。
它的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。
它与数据流图共同构成系统的逻辑模型。
2、白盒测试
白盒测试:
是一种测试软件内部工作过程的测试方法,主要是根据程序的控制结构来设计测试用例,主要用于测试模块的每一个独立路径,检验程序中的每一条通路是否都能按照预定的要求正确工作,验证所有内部数据结构的有效性。
3、数据流图
数据流图:
是描述数据处理过程的工具。
它从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。
4、信息隐蔽
信息隐蔽:
通过定义一组独立的模块来实现,这些模块相互之间只交流实现软件功能必须的信息。
它加强了模块内部过程细节或模块使用的任何局部数据结构的访问约束,它特别有利于软件维护。
5、软件维护
软件维护是软件生命周期的最后一个阶段,是在软件已经交付给用户使用之后,为了改正软件错误或满足新的需要而修改软件的过程。
它包括四种类型的维护活动:
改正型维护、适应型维护、预防型维护和完善型维护。
6、内聚性
内聚性是指一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。
简单地说,理想的内聚模块只做一件事情。
内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。
7、对象模型
对象模型:
对象模型表示静态的、结构化的系统的数据性质。
它是对模拟客观世界实体的对象以及对象彼此间的关系的影射,描述了系统的静态结构。
为建立动态模型和功能模型提供了实质性的框架。
8、软件测试
软件测试是一个为了寻找软件错误而运行程序的过程。
目的就是为了发现软件中的错误。
一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。
一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。
9、软件可移植性
软件可移植性:
把程序从一种硬件配置和软件系统环境转移到另一种配置和环境时,需要的工作量是多少。
这种工作量的大小反映了软件移植的难易程度。
10、模块耦合
模块耦合:
是对一个软件结构内不同模块之间互连程度的度量。
耦合的强弱取决于模块间接口的复杂程度,进入和访问一个模块的点,以及通过接口的数据。
11、软件重用
软件重用:
是指同一软件模块不做修改或稍加修改就可多次重复使用。
软件重用可分为三个层次:
知识重用、方法和标准的重用和软件成分的重用。
12、动态模型
动态模型:
表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中对象的合法变化序列。
它是基于事件共享而互相关联的一组状态图的集合。
13、程序的可维护性
程序的可维护性:
为满足用户新的需求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。
14、软件质量
软件质量:
与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体,是所有描述计算机软件优秀程度的特性的组合。
15、模块的独立性
模块的独立性:
是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的,也就是说,一个模块只具有单一的功能且与其它模块没有太多的联系,可通过模块间的耦合和模块的内聚来衡量模块的独立性。
16、对象类
对象类是一组具有相同数据结构和相同操作的对象的集合。
包括一组数据属性和在数据属性上的一组操作。
可以看作一个具有类似特性与共同行为的对象的摸板,可用来产生对象。
17、集成测试
集成测试也称组装测试或联合测试。
是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。
组装模块的方式有两种:
渐增式测试和非渐增式测试。
18、容错技术
容错技术:
对那些无法避开的差错,使其影响减少至最小的技术。
也就是说,当错误发生时,尽可能地不影响其它的系统元素,或是把用户的影响限制在某些容许的范围内。
19、多态性
多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。
不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
20、面向对象方法学
面向对象方法学:
就是尽可能地模拟人类习惯的思维方式,使开发软件的方法与过程尽可能地接近人类认识世界解决问题的方法与过程,也就是描述问题的问题空间与实现解法的解空间在结构上尽可能一致。
(1)认为客观世界是由各种对象组成的;
(2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据和方法;
(3)按照子类与父类的关系,把若干对象类组成一个层次结构的系统;
(4)对象彼此之间仅能通过传递消息互相联系。
21.件集成测试
软件集成测试:
集成测试是组装软件的系统技术,在把模块按照设计要求组装起来的同时进行测试,用于发现与接口有关的问题。
集成测试可分为非渐增式测试方法和渐增式测试方法。
22、模块独立性
模块独立性:
是模块化、抽象和信息隐蔽的直接产物。
每个模块只要完成独立的功能,与其它模块联系越少,则模块的独立性就越强。
通过模块与模块之间的耦合性和模块内部的内聚性来衡量模块的独立性。
23、结构化维护
结构化维护:
如果维护工作是从评价完整的软件配置开始入手,确定软件的重要结构特点、性能特点以及接口特点;
估量要求的改动将带来的影响,并且计划实施途径。
然后首先修改设计并且对所做的修改进行仔细审查。
接下来编写相应的源程序代码;
使用在测试说明书中包含的信息进行回归测试;
最后,把修改后的软件再次交付使用。
24、软件生存周期
软件生存周期是指从提出软件开发要求开始,直到该软件报废不用为止的整个时期。
这个时期又分为若干个阶段,对软件生产的管理和进度控制有重要作用,使软件的开发有相应的模式、流程、工序和步骤。
25、软件危机
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
它是软件生产发展中特定历史时期的产物,主要是因为软件产品的供需发生了尖锐的矛盾。
一方面需要开发的软件数目大量增加,另一个方面是开发出来的软件的可靠性差、可维护性差、费用高、周期长,不能满足用户的需要。
26、软件工程过程
软件工程过程是指获取、供应、开发、操作和维护软件时要实施的过程、活动和任务。
其目的是为各种人员提供一个公共框架,以便用相同的语言交流。
27、完善性维护
为了适应用户业务和机构的发展变化而对软件的功能、性能进行修改、扩充的过程称为完善性维护。
因为各种用户的业务和机构在相当长的时期内不可能是一成不变的,所以功能、性能的增加是不可避免的,而且这种维护活动在整个维护工作中所占的比重很大。
三、简答题
1、简述软件结构设计的启发式原则。
(1)改进软件结构提高模块独立性;
(2)模块规模要适中;
(3)深度、宽度、扇出和扇入都应适当;
(4)模块的作用域应该在控制域内;
(5)力争降低模块接口的复杂度;
(6)设计单入口单出口的模块;
(8)模块功能应该可以预测。
2、简述软件测试的任务、目的与类型。
软件测试主要分为白盒测试和黑盒测试两大类。
3、简述文档在软件工程中的作用。
(1)提高软件开发过程的能见度
(2)提高开发效率
(3)作为开发人员阶段工作成果和结束标志
(4)记录开发过程的有关信息便于使用与维护;
(5)提供软件运行、维护和培训有关资料;
(6)便于用户了解软件功能、性能。
4、简述结构化程序设计方法的基本要点
(1)采用自顶向下,逐步求精的程序设计方法。
(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环
(3)采用主程序员组的组织形式。
(4)采用单入口单出口的模块形式。
5、简述软件工程目标和面临的主要问题。
软件工程的目标就是建造高质量的软件。
但是目前的软件开发面临着许多问题:
(1)对软件开发成本和进度的估计常常很不准确。
(2)用户常对“已完成的”软件系统不满意。
(3)软件产品的质量往往靠不住。
(4)软件常常很难维护。
(5)软件常常缺乏适当的文档资料。
(6)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
(7)软件成本在计算机系统总成本中所占的比例逐年上升。
6、简述程序设计风格。
源程序代码的逻辑清晰、易读易懂是好程序的一个重要标准。
(1)程序内部要有文档,
(2)数据说明的次序应该标准化,(3)每条语句应该简单,(4)数据输入要进行校验,输入格式简单,输出设计良好,(5)不要牺牲程序的清晰性和可读性来不必要第提高效率。
7、简述快速原型法思想。
首先建立一个能够反映用户主要需求的原型系统,让用户在计算机上运行、试用这个原型系统,通过实践,了解未来系统的概貌,以便用户判断哪些功能符合他们的需要,哪些功能应该加强,哪些功能需要补充进来,哪些功能是多余的等等。
总之,用户通过实际试用原型系统,会提出许多修改意见,根据这些意见,开发人员可以快速修改原型系统,然后用户再次使用修改过的原型系统,根据用户对第二个原型系统的修改意见,开发人员再次修改原型系统。
经过对原型系统的反复试用和改进,最终建立起完全符合用户需要的软件系统。
8、简述面向对象方法学。
面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。
(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。
(2)把所有对象都划分成各种对象类,每个对象类都定义了一组方法和一组属性。
(3)按照派生类与基类的关系,把若干个对象类组成一个层次结构的系统。
9、简述软件开发过程、每个里程碑的提交物。
软件开发的基本过程:
(1)可行性研究,做初步的需求分析工作,决定项目可行与否
(2)软件需求分析,软件工程师必须了解软件的信息领域,以及需求的功能、行为、性能和接口。
系统需求和软件需求均需文档化,并与用户一起复审。
并提交需求分析报告。
(3)设计,包括概要设计和详细设计,软件设计是一个多步骤的过程,主要是对软件的数据结构、软件体系结构、界面表示及过程细节进行设计。
设计过程将需求转换为软件表示,在编码之前可以评估其质量,所有设计均要文档化,它是软件配置的重要组成部分,经复审后提交相应的概要设计和详细设计报告。
(4)编码,把设计转化为机器可执行的程序。
提交源程序清单。
(5)测试,提交测试报告。
(6)维护,提交维护报告。
10、简述文档在软件工程中的作用。
(1)提高软件开发过程的能见度
(2)提高开发效率
(3)作为开发人员阶段工作成果和结束标志
(4)记录开发过程的有关信息便于使用与维护;
(5)提供软件运行、维护和培训有关资料;
(6)便于用户了解软件功能、性能。
11、简述提高可维护性的方法。
.
(1)建立明确的软件质量目标;
(2)利用先进的软件开发技术和工具;
(3)建立明确的质量保证工作;
(4)选择可维护的程序设计语言;
(5)改进程序文档,使文档与程序保持高度一致。
12、简述结构化技术的缺点。
结构分析和结构设计技术虽然有许多优点,但也有许多比较明显的缺点:
用这种技术开发出来的软件,其稳定性、可修改性和可重用性都比较差。
结构分析和结构设计技术是围绕实现处理功能的“过程”来构造系统的,然而用户需求的变化大部分是针对功能的。
因此。
这种变化对基于过程的设计来说是灾难性的,设计出的系统常常是不稳定的。
系统也很难扩充修改。
结构分析和结构设计技术把处理分解成子处理的过程性多少带些任意性,也就是说,不同的开发人员开发相同的系统时,可能分解而得出不同的软件结构。
由于把数据和操作作为分离的实体,以致于在实现阶段,一些具有潜在可重用价值的软件部件已和具体的应用环境密不可分了。
这些都是结构分析和结构设计技术不足之处。
13、简述有效的模块设计启发式原则。
(1)评估程序结构的“第一次迭代”以降低耦合提高内聚。
(2)试图用高扇出使结构最小化,当深度增加时争取提高扇入;
(3)将模块的影响限制在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习 试题