软件工程期末复习题.docx

上传人:b****6 文档编号:7744920 上传时间:2023-01-26 格式:DOCX 页数:12 大小:135.15KB
下载 相关 举报
软件工程期末复习题.docx_第1页
第1页 / 共12页
软件工程期末复习题.docx_第2页
第2页 / 共12页
软件工程期末复习题.docx_第3页
第3页 / 共12页
软件工程期末复习题.docx_第4页
第4页 / 共12页
软件工程期末复习题.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

软件工程期末复习题.docx

《软件工程期末复习题.docx》由会员分享,可在线阅读,更多相关《软件工程期末复习题.docx(12页珍藏版)》请在冰豆网上搜索。

软件工程期末复习题.docx

软件工程期末复习题

一、填空题

1.软件工程包括3个要素,即方法、工具、过程。

2.软件生存周期是指一个软件从提出开发要求开始直到该软件报废不止的整个时期。

通常,软件生存周期包括问题定义、可行性研究,需求分析,总体设计,详细设计,编码,测试,维护活动,可以将这些活动以适当方式分配到不同阶段去完成

3.一个计算机系统的总体设计方案包括四方面内容:

硬件工程、软件工程、人机工程和数据库工程。

4.建立软件模型是需求分析活动的焦点,通常用数据流图、数据字典和主要处理算法描述这个逻辑模型。

5.从应用特点的角度来看,我们可以把高级语言分为基础语言、结构语言和专业语言三类。

6.数据流图中的箭头表示数据流。

软件结构图中的箭头方向表示模块调用。

7.小说明是用来描述加工的。

8.面向对象开发方法包括OOA、OOD和OOP三部分。

9.可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。

10.数据流图仅反映系统必须完成的逻辑功能,所以它是一种功能模型。

11.内聚度是前述信息隐蔽和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度。

内聚度按其高低程度可分为七级,内聚度越高越好。

七级内聚从低到高分:

巧合内聚,逻辑内聚,时间内聚,过程内聚,通信内聚,顺序内聚,功能内聚。

12.软件测试分为:

白盒测试和黑盒测试。

13.软件从定义开始,经过软件开发,使用和维护,直到最终退役的全过程称为软件生存周期。

二、单项选择题

1、在结构化设计(SD)方法中全面指导模块划分的最重要的原则是()

A、程序模块化B、模块高内聚C、模块低耦合D、模块独立性

2、软件维护产生的副作用,是指()

A、开发时的错误B、隐含的错误C、因修改软件而造成的错误D、运行时误操作

3、软件详细设计的主要任务是确定每个模块的()

A、算法和使用的数据结构B、外部接口C、功能D、编程

4、为了提高模块的独立性,模块内部最好是()

A、逻辑内聚B、时间内聚C、功能内聚D、通信内聚

5、软件是一种()

A、程序   B、数据    C、逻辑产品  D、物理产品

6、因计算机硬件和软件环境的变化而作出的修改软件的过程称为()

A、纠正性维护B、适应性维护C、完善性维护D、预防性维护

7、只有单重继承的类层次结构是()层次结构。

A、网状型B、星型C、树型D、环型

8、下列属于维护阶段的文档是()

A、软件规格说明B、用户操作手册C、软件问题报告D、软件测试分析报告

9、不适合作为科学工程计算的语言是()

A、PascalB、CC、FortranD、Prolog

10、研究开发所需要的成本和资源是属于可行性研究中的()研究的一方面。

A.技术可行性B.经济可行性C.社会可行性D.法律可行性

11、中级结构性成本模型COCOMO是一个()

A、静态单变量模型B、动态单变量模型C、静态多变量模型D、动态多变量模型

12、PAD图为()提供了有力的工具。

A、系统分析B、软件的自动化生成C、自动分析数据D、测试软件

13、下列关于JSP方法不正确的说法是()

A、JSP方法主要用于规模不大的数据处理系统

B、JSP方法不明确的划分软件概要设计和详细设计的两个阶段

C、JSP方法适用于输入数据和输出数据之间有对应关系的问题求解

D、JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。

因此它只适用于详细设计阶段

14、在详细设计阶段,经常采用的工具有()

A、PADB、SAC、SCD、DFD

15、确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于()

A、集成测试B、恢复测试C、验收测试D、单元测试

16、盒图(N-S图)为()提供了有力的工具。

A、系统分析B、软件的自动化生成C、自动分析数据D、测试软件

17、( )是比较理想的可重用软构件。

A.子程序库 B.源代码包含文件C.对象 D.类 

18、需求分析阶段的任务是确定()

A、软件开发方法B、软件开发工具C、软件开发费D、软件系统的功能

19、下列文档与维护人员有关的有()

A、软件需求说明书B、项目开发计划C、概要设计说明书D、操作手册

20、程序的三种基本控制结构是()

A、过程、子程序和分程序B、顺序、选择和重复

C、递归、堆栈和队列D、调用、返回和转移

21、软件生存周期中时间最长的是()阶段。

A、总体设计B、需求分析C、软件测试D、软件维护

22、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以()的编制是很重要的。

A、需求说明B、概要说明C、软件文档D、测试计划

23、软件部件的内部实现与外部可访问性的分离,是指软件的()。

A、继承性B、共享性C、封装性D、抽象性

24、单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现()的错误。

A、接口错误B、编码错误C、性能、质量不合要求D、功能错误

25、软件工程管理对软件项目的开发管理,即对整个软件()的一切活动的管理。

A、软件项目B、生存期C、软件开发计划D、软件开发

26、瀑布模型本质上是一种()

A、线性顺序模型B、顺序迭代模型C、线性迭代模型D、及早见产品模型

27、使用程序设计的控制结构导出测试用例的测试方法是()

A、黑盒测试B、白盒测试C、边界测试D、系统测试

28、软件结构图的形态特征能反映程序重用率的是()

A、深度B、宽度C、扇入D、扇出

29、软件结构图中,模块框之间若有直线连接,表示它们之间存在()

A、调用关系  B、组成关系 C、链接关系  D、顺序执行关系

30、需求分析最终结果是产生()

A、项目开发计划B、需求规格说明书C、设计说明书D、可行性分析报告

31、快速原型模型的主要特点之一是()

A、开发完毕才见到产品B、及早提供全部完整的软件产品

C、开发完毕后才见到工作软件D、及早提供工作软件

32、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:

-1.001,-1.0,1.0,1.001。

设计这组测试用例的方法是()

A、条件覆盖法B、等价分类法C、边界值分析法D、错误推测法

33、软件详细设计主要采用的方法是()

A、模块设计B、结构化设计C、PDL语言D、结构化程序设计

34、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()

A.软件工程B.软件周期C.软件危机D.软件产生

35、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作()

A、需求分析B、概要设计C、详细设计D、软件维护

36、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是()

A、探索型模型B、演化型模型C、实验型模型D、提交型模型

37、程序设计语言的工程特性之一为()

A、软件的可重用性B、数据结构的描述性C、抽象类型的描述性D、数据库的易操作性

38、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为()

A.可用性B.可靠性C.正确性D.完整性

39、模块设计中,最不希望的内聚是()

A、功能内聚B、通信内聚C、过程内聚D、偶然内聚

40、实施快速原型模型方法开发软件的关键在于()

A、CASE工具的支持B、如何开发演化型模型C、项目主管的支持D、开发人员的素质

41、程序流程图(框图)中的箭头代表( )。

A.数据流 B.控制流 C.调用关系 D.组成关系 

42、一个只有顺序结构的程序,其环形复杂度是( )。

A.0  B.1  C.3  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、需求说明B、概要说明C、软件文档D、测试计划

50、系统因错误而发生故障时,仍然能在一定程度上完成预期的功能,则把该软件称为()。

A、软件容错B、系统软件C、测试软件D、恢复测试

三、名词解释

1、数据流图

数据流图是以图形的方式刻画数据流从输入到输出的移动变换的过程。

2、软件维护

在软件交付给用户使用之后,为了改正软件中的错误或是满足新的需求而修改软件的过程。

它包括四种类型的维护活动:

改正型维护、适应型维护、预防型维护和完善型维护。

3、软件测试

软件测试是一个为了寻找软件中的错误而运行程序的过程。

目的是发现软件中的错误。

一个好的测试用例很可能发现迄今为止尚未发现的错误的用例。

一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。

4、程序的可维护性

为了满足用户新的需求,或当境发生了变化,或在运行中发现了新的错误,对已投入运行的软件进行相应诊断和修改所需工作量的大小。

5、软件生存周期

软件从定义开始,经过开发,使用和维护,直到最终退役的全过程成为软件的生存周期。

6、容错技术

对于那些无法避开的差错,使其影响减小至最小的技术。

也就是说,当错误发生时,尽可能不影响其他的系统元素,或是将用户的影响限制在某些允许的范围内。

7、结构化维护

软件配置完整,维护工作从评价设计文档开始,确定软件的重要结构特点、性能特点以及接口特点;估量要求的改动记带来的影响,并且计划实施途径。

然后首先修改设计并且对所做的修改进行仔细审查。

接下来编写相应的源程序代码;使用在测试说明书中包含的信息进行回归测试;最后,把修改后的软件再次交付使用。

8、模块独立性

是模块化,抽象和信息隐蔽的直接产物。

每个模块只需完成其独立的功能,与其他模块的联系越少,则模块的独立性越强。

通过模块与模块的之间的耦合性与模块内部的内聚性来衡量模块的独立性。

四、简答题

1、简述软件结构设计的启发式原则。

1)改进软件结构,提高模块的独立性;

2)软件规模要适中;

3)深度,宽度,扇入,扇出都应适当;

4)模块的作用域应该在控制域内;

5)力争降低接口的复杂性;

6)设计单入口但出口的模块;

7)模块功能应该可以预测;

2、简述结构化程序设计方法的基本要点

1)采用自顶向下,逐步求精的程序设计方法;

2)使用顺序,选择,循环三种基本控制结构构造程序;

3)采用主程序员组的组织形式;

4)采用单入口单出口的模块形式;

3、简述需求分析的原则。

需求分析阶段的基本过程包括四个方面:

对问题的识别,分析与综合,制定规格说明以及评审。

(1)问题识别,系统分析人员要研究计划阶段产生的可行性分析报告和软件项目实施计划。

然后进行功能需求、性能需求、环境需求、可靠性需求安全保密需求、用户界面需求、资源使用需求等方面的工作。

(2)分析与综合,分析员需从数据流和数据结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的限制,分析他们是否满足功能需求,是否合理。

(3)制定规格说明,编写需求分析的文档。

(4)需求分析评审。

为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格执行。

4、简述软件生命周期开发方法的基本过程及每个阶段的任务。

1)问题定义阶段:

尽可能清楚地描述问题,搞清楚要解决的问题是什么;

2)可行性研究阶段:

主要是确定待解的问题是否有可行的解决办法。

需要做经济可行性分析、技术可行性分析、操作可行性分析和法律可行性分析;

3)需求分析阶段,主要是确定目标系统必须具备的功能。

通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。

4)总体设计阶段:

从总体上解决问题,确定可实现的方案,并设计出软件的层次结构图;

5)详细设计:

把解法具体化,确定如何具体地实现这个系统。

针对每个模块设计相应的算法;

6)编码和单元测试阶段:

把详细设计的结果翻译成选定的语言所写的程序,并对每个模块进行单元测试。

7)测试阶段:

系统地设计测试用例,尽可能多地发现软件中的错误,并调试改正软件中的错误;

8)软件维护阶段:

主要目的是通过修改软件使所开发的软件能够持久地满足用户的需要。

5、简述软件测试的任务、目的与类型。

软件测试是一个为了寻找软件中错误而运行程序的过程,目的就是发现软件中的错误。

一个好的测试用例是指很可能发现迄今为止尚未发现的错误的用例,一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。

软件测试主要分为白盒测试和黑盒测试两大类。

6、简述软件工程目标和面临的主要问题。

软件工程的目标是建造高质量的软件。

面临的主要问题是:

软件开发成本和进度的估计往往很不准确;用户常对“已完成”的软件不满意;软件的质量往往靠不住;软件常常很难维护;软件往往缺少相应的文档资料;软件开发生产率提高的速度,远远跟不上计算机应用的普及和推广的趋势;软件开发成本在计算机总成本中的比例逐年上升。

7、简述软件开发过程、每个里程碑的提交物。

软件开发的基本过程:

(1)可行性研究,做初步的需求分析工作,决定项目可行与否;

(2)软件需求分析,软件工程师必须了解软件的信息领域,以及需求的功能、行为、性能和接口。

系统需求和软件需求均需文档化,并与用户一起复审。

并提交需求分析报告;

(3)设计,包括概要设计和详细设计,软件设计是一个多步骤的过程,主要是对软件的数据结构、软件体系结构、界面表示及过程细节进行设计。

设计过程记需求转换为软件表示,在编码之前可以评估其质量,所有设计均要文档化,它是软件配置的重要组成部分,经复审后提交相应的概要设计和详细设计报告;

(4)编码,把设计转化为机器可执行的程序。

提交源程序清单;

(5)测试,提交测试报告;

(6)维护,提交维护报告。

8、简述软件工程的七条基本原理。

1)用分阶段的生命的生命周期计划严格管理;

2)坚持进行阶段评审;

3)实行严格的产品控制;

4)采用现代程序设计技术;

5)结果应能清楚地审查;

6)开发小组的人员应该少而精;

7)承认不断改进软件工程实践的必要性。

四、论述题

1、你认为“软件就是程序”这一个观点正确吗?

如果不正确,请批驳之。

软件就是程序的观点是不正确的,因为软件等于程序加文档加数据;

(1)文档是软件的一个非常重要的组成部分;

(2)在软件开发的每一个阶段都应有相应的文档;

(3)文档是软件在不同阶段的表现形式;

(4)程序与文档必须一致,文档才有价值;

(5)文档质量直接决定软件质量的高低;

(6)文档也是软件测试和维护的依据;

(7)文档是软件可重用的依据。

2、试论软件界面友好设计的重要性。

软件界面是用户与计算机交互的接口。

如果界面不友好,用户不愿意使用,那么软件的功能再强,也是没有用的。

这就要求软件界面应以用户为中心进行设计。

设计应遵循以下的原则:

(1)一致性,菜单选择、命令输入、数据显示等功能应使用一致的风格;

(2)提供有意义的反馈;

(3)允许取消大多数操作;

(4)减少在动作间必须记忆的信息量;

(5)在对话、移动和思考中提高效率;

(6)允许错误;

(7)按功能对动作分类,并据此安排屏幕布局;

(8)提供上下文相关的帮组机制;

(9)命令用简单的动词或动词短语命名。

3、试述软件开发工具对软件开发的影响。

软件开发工具应用于软件开发可以大幅度地提高软件生产率,提高软件质量;方便软件管理,便于软件重用,减少低级重复劳动;支持快速原型设计,便于用户和开发人员的交流;降低大型复杂软件的开发难度。

4、试论面向对象方法较之结构化方法的先进性。

(1)面向对象方法更符合人的思维方式,更容易抓住问题的主干;

(2)所开发出的软件更符合“高内聚、松耦合”的原则;

(3)更适合于开发大型的软件,更适合于快速原型法开发方法;

(4)使用面向对象技术开发出的软件的可测试性和可维护性都较强;

(5)面向对象方法和技术能够贯彻软件开发的全过程;

(6)使得软件的可重用性大幅度提高。

5、试论文档在软件开发过程中的重要性。

在软件的生产过程中,总是伴随着大量的信息要记录、要使用。

因此,软件文档在软件产品的开发过程中起着举足轻重的作用。

(1)提高软件开发过程的能见度;

(2)减少返工,提高开发效率;

(3)作为软件开发人员在一定阶段的工作成果和结束标志;

(4)记录开发过程中的有关信息,便于协调以后的软件、开发、使用和维护;

(5)提供对软件的运行、维护和培训的有关信息,便于开发人员之间的协作、交流和了解,使软件开发活动更科学、更有成效。

五、应用设计题

1、某图书出版公司希望每月定期向固定客户邮寄最近一个月的图书分类目录。

客户可在其收到的目录上圈定自己要买的书。

出版公司按照客户的反馈信息邮寄图书。

要求为出版公司设计软件,以实现以下功能:

(1)自动生成图书分类目录;

(2)自动处理客户反馈信息。

 试用面向数据流的方法给出系统的数据流图,并设计出软件结构图。

 

2、现为某银行开发一个计算机储蓄管理系统。

要求系统能够完成:

将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,同时要求储户输入口令,并打印出存款单给储户;如果是取款,则系统首先要求储户输入口令,储户身份确认后,系统计算结算清单给储户,结算清单中的信息包括本息金额和利息金额。

试根据要求画出该系统的数据流程图。

 

3、一个软件公司有许多部门,分为开发部门和管理部门两种。

每个开发部门开发多个软件产品。

每个部门由部门名字唯一确定。

该公司有许多员工,员工分为经理、工作人员和开发人员。

开发部门有经理和开发人员,管理部门有经理和工作人员。

每个开发人员可参加多个开发项目,每个开发项目需要多个开发人员,开发人员使用语言开发项目。

每位经理可主持多个开发项目。

请建立该软件公司的对象模型。

4、某考务中心准备开发一个成人自学考试系统考务管理系统,经过调研,该系统有如下的功能:

(1)对考生填写的报名单进行审查,对合格的考生,编好准考证发给考生,汇总后的报名单送给阅卷站;

(2)给合格的考生制作考试通知单,将考试科目、时间、地点安排告诉考生;

(3)对阅卷站送来的成绩进行登记,按当年标准审查单科合格者,并发成绩单,对所考专业各科成绩全部合格者发给大专毕业证书;

(4)对成绩进行分类(按地区、年龄、职业、专业、科目等分类)产生相应统计表;

(5)查询:

考生可按准考证号随时查询自己的各科成绩。

试根据要求画出该系统的数据流程图。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1