软件工程复习题及答案.doc

上传人:文库蛋蛋多 文档编号:4118433 上传时间:2023-04-06 格式:DOC 页数:10 大小:843KB
返回 下载 相关 举报
软件工程复习题及答案.doc_第1页
第1页 / 共10页
软件工程复习题及答案.doc_第2页
第2页 / 共10页
软件工程复习题及答案.doc_第3页
第3页 / 共10页
软件工程复习题及答案.doc_第4页
第4页 / 共10页
软件工程复习题及答案.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《软件工程复习题及答案.doc》由会员分享,可在线阅读,更多相关《软件工程复习题及答案.doc(10页珍藏版)》请在三一办公上搜索。

1、中南大学网络教育课程考试复习题及参考答案软件工程(专科)一、单项选择题:1.编程阶段主要要完成的三个任务不包括 A.明确程序的控制结构 B.确定使用的类和对象C.确定程序所使用的算法 D.制定程序所需的数据结构2.从影响系统设计的系统环境得出人和组织的因素不包括 A.过程变更 B.工作变化 C.需求变更 D.机构的变化3.实体联系图简称E-R图,它描绘了系统的数据关系。E-R图包括三种互相关联的信息,下列哪个不是其相关信息 A.数据对象 B.描述对象的属性 C.描述对象的操作 D.描述对象间相互连接的关系4.OOA 采用下列哪种思想进行软件需求分析建模的过程。 A.面向结构 B.面向思维 C.

2、面向行为 D.面向对象5.UML 定义的静态图描述系统的静态结构,不包括 A.类图 B.对象图 C.包图 D.状态图6.详细设计常用的工具包括三种,下列哪种不是 A.对象工具 B.图形工具 C.表格工具 D.语言工具7.按照Rumbaugh等人提出的对象建模技术OMT,面向对象设计过程不包括下列哪个步骤 A.详细设计 B.系统设计 C.对象设计 D.消息设计8.单元测试集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的 A.需求 B.说明 C.功能 D.结果9.按模块系统结构划分,下列哪种不属于增殖式组装方式 A.自顶向下的增殖方式 B.自底向上的增殖方式C.渐

3、进增殖式测试 D.混合增殖式测试10.确认测试又称有效性测试,它的任务是验证软件的下列哪种,即验证软件的功能和性能及其它特性是否与用户的要求一致。 A.二义性 B.准确性 C.有穷性 D.有效性11.日常程序纠错工作中,下列哪种不是经常采用纠错策略 A.试凑法 B.跟踪法 C.推理法 D.归纳法12.软件使用过程中,用户对软件提出新的功能与性能要求,为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做 A.改正性维护 B.完善性维护 C.适应性维护 D.预防性维护13.软件质量保证活动不包括 A.验证与确认 B.开

4、发时期的配置管理C.软件评审 D.软件维护14.从用例出发,进一步抽取和定义OOA模型的三种模型不包括下列哪个 A.类-对象模型 B.对象-关系模型 C.对象-行为模型 D.对象-属性模型15.界面设计主要包括三个方面的内容,下列哪个不是界面设计的内容 A.设计构件和人之间的接口 B.设计软件构件之间的接口C.设计人和计算机间的界面 D.设计模块和其他非人的信息生产者和消费者的界面二、名词解释:1.计算机系统2.软件工程过程3.数据字典4.快速原型方法5.类6.多态性7.模块的聚合性8.模块的信息隐蔽 9.模块的扇出数10.序言性注释11.黑盒测试12.单元测试13.适应性维护14.设计结果重

5、用15.重构三、简答题:1.软件工程专家B.W.Boehm认为在软件开发过程中为确保软件产品质量和开发效率应坚持软件工程的哪些基本原理?2.软件工程有哪三要素?分别表示什么含义?3.软件开发这一部分通常划分为哪四个阶段?各阶段主要完成哪些工作?4.需求开发主要分为哪些部分?简要说明之。5.UML 图的构成成分中定义了哪五类十种模型图?6.软件设计有哪些基本原则?7.结构图和程序流程图的主要区别表现在哪些方面?8.根据Rumbaugh对OMT方法的定义,系统设计主要由哪些步骤组成?9.领域对象设计是领域分析的继续,它一般要完成哪些工作?10.为方便用户的使用,设计输入和输出应注意哪些原则问题?1

6、1.为使数据说明易于理解和维护,在编写程序时应注意哪些问题?12.按照Grenford J.Myers的观点,软件测试目的有哪些?四、计算及应用题:1.试举例说明,白盒测试时不可能把所有可能的输入数据都拿来进行穷举测试。2.分别举例说明C+中的两种对象创建方式。3.根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。4.一本书的组成有一个封面,一个目录,一个前言,若干章,每章有若干节,每节有若干段,每段有若干句子,0个或多个插图, 0个或多个表格,书最后有一个附录。试建立该书的

7、对象模型。5.给出下面程序的运行结果。 # include “iostream.h” int main( ) int i=1; while (i=35) if (+i%9!=4) continue; else cout ”i=”ibthenif xythen b=yelsea=xend ifelsea=bend if程序段二:/ position_x is the position x of object; position_y is the position y of object; /if ab then a=belse if position_xposition_y then b=pos

8、ition_y elsea=position_x end ifend if7.某公司为本科以上学历的人重新分配工作,分配原则如下:(1)如果年龄不满18岁,学历是本科,男性要求报考研究生,女性则担任行政工作;(2)如果年龄满18岁不满50岁,学历本科,不分男女,任中层领导职务,学历是硕士不分男女,任课题组组长;(3)如果年龄满50岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。要求:画出分析过程,得出判定表,并进行化简。8.用判定树描述下例:在铁路货运票价系统中,如果里程数大于1千km(含),且货运量超过500吨(含),则货运价为0.05元/公里吨;500吨以

9、下,货运价为0.06元/公里吨。如果里程数小于1千km,且货运量超过500吨(含),则货运价为0.07元/公里吨;500吨以下,货运价为0.08元/公里吨。9.某单位的电话服务规则为:可以拨内部的分机号和外线号码。分机号是从6001至6099。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到200中任意的数字串。市话号码是以局号和分局号组成。局号可以是466,488,566,588中任意一个号码。分局号是任意长度为3的数字串。要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。参考答案一、单项选择题:15:BCCDD; 60:AACCD; 11

10、15:DBDDA二、名词解释:1.计算机系统:计算机系统是指某些元素的一个集合或排列,这些元素被组织起来以实现某种方法,过程或借助处理信息进行控制。2.软件工程过程:软件工程过程是指为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。 3.数据字典:数据字典是一个定义应用程序中使用的所有数据元素和结构的含义、类型、数据大小、格式、度量单位、精度以及允许取值范围的共享仓库。数据字典的维护独立于软件需求规格说明,并且在产品的开发和维护的任何阶段,各个风险承担者都可以访问数据字典。4.快速原型方法:在软件开发的早期快速建立目标软件系统的原型,让用户对原型进行评估并提出修改意见。当原

11、型几经改进并最终确定后,它将由软件设计和编码阶段进化成软件产品;或者设计和编码人员遵循原型所确立的外部特征实现软件产品。5.类:类是一组具有相同数据结构和相同操作的对象的集合。类的定义应该包括一组数据属性和对这些数据的一组操作。6.多态性:多态性是指同一个消息发送到不同类的对象时产生不同的行为,不同类的对象接受到同一消息导致不同的动作(响应)。 7.模块的聚合性:是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。作为度量模块相对功能强度的指标。8.模块的信息隐蔽:模块的信息隐蔽是指每个模块的实现细节对于其它模块来说是隐蔽的。就是说,模块中所包含的信息(包括数据和过程)不允许其它不

12、需要这些信息的模块使用。9.模块的扇出数:一个模块直接控制的下属模块的个数称为该模块的扇出数。10.序言性注释:序言性注释通常置于每个程序模块的开头部分,它应当给出程序的整体说明,对于理解程序本身具有引导作用。11.黑盒测试:根据软件产品的功能设计规格,在计算机上进行测试,以证实每个实现了的功能是否符合要求,这种测试方法就是黑盒测试,黑盒测试又称为功能测试。12.单元测试:单元测试又称模块测试,针对软件设计的最小单位程序模块,进行正确性检验测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。13.适应性维护:随

13、着计算机的飞速发展,外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、数据输入输出方式、数据存储介质)可能发生变化,为了使软件适应这种变化,而去修改软件的过程就叫做适应性维护。14.设计结果重用:设计结果重用指的是重用某程序的设计模型,例如面向对象设计的模型,这是一种重用性比较高的一种重用方法。15.重构:重构是指通过修改代码或数据以使软件符合新的要求的过程,该过程不改变软件外部功能,仅修改软件的内部结构。重构的目的是使软件更容易被理解和修改。三、简答题:1.软件工程专家B.W.Boehm认为在软件开发过程中为确保软件产品质量和开发效率应坚持软件工程的哪些基本原理?解答:B.W.Boe

14、hm认为应坚持七条基本原理,分别是:(1)用分阶段的生命周期计划严格管理; (2)坚持进行阶段评审;(3)实行严格的产品控制(推迟实现的原则);(4)使用现代程序设计技术;(5)结果应能清楚地审查;(6)开发小组的人员应少而精;(7)承认不断改进软件工程实践的必要性。 2.软件工程有哪三要素?分别表示什么含义?解答:软件工程包括三个要素方法、工具和过程。(1)软件工程方法为软件开发提供了“如何做”的技术。它包括项目计划与估算、软件系统需求分析、数据结构设计、系统总体结构设计、算法过程设计、编码、测试以及维护等。(2)软件工具为软件工程方法学提供自动或半自动的软件支撑环境。目前流行的是把诸多软件

15、工具集成起来,使得工具之间实现信息互用,这样建立起称做计算机辅助软件工程CASE的软件开发支撑系统。(3)软件工程过程是将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、保证质量和协调变化所需的管理以及软件开发各个阶段完成的里程碑。3.软件开发这一部分通常划分为哪四个阶段?各阶段主要完成哪些工作?解答:软件开发阶段通常又可分为总体设计、详细设计、编码、软件测试等阶段。(1)总体设计这个阶段主要任务是建立软件的总体结构,即“概括地说如何解决问题”。总体设计中主要有两步工作:一是确定系统的方案,一般从数据流程图可以导出几种系统

16、解决方案,对每一种方案估计它的成本和效益,在充分权衡各种方案利弊的基础上,推荐一个较好的系统给用户,用户认可后着手下一步工作。二是设计软件的结构,一般采用结构化的设计方法,确定程序由哪些模块组成以及模块间的关系,通常用层次图或软件结构图描述。(2)详细设计 详细设计是针对单个模块的设计,根据总体设计说明书给出各模块内部的数据结构和算法描述。即“如何具体地实现这个系统”。总体设计和详细设计合在一起称为系统设计,是软件开发的主要阶段,工作量大约有25%40%。(3)编码按照选定的语言,把模块的过程性描述翻译成源程序,与需求分析和设计相比,编码相对要容易得多,一般由程序员可完成,工作量大约是15%2

17、0%。(4)软件测试 是开发时期的最后一个阶段。按照不同的层次又可分为单元测试、集成测试和验收测试。测试是保证软件质量的重要手段。 4.需求开发主要分为哪些部分?简要说明之。解答:需求开发分为可行性研究、需求导出和分析、编写规格说明书和需求验证四个部分。 (1)可行性研究可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究的实质,在较高层次上以较抽象的方式进行的系统分析和设计的过程。在这一阶段分析员要导出系统的逻辑模型,然后从逻辑模型出发寻找若干种可供选择的解法(即系统实现方案),对每种方案都要研究它的可行性,一般方案的可行性主要有四个方面:技术可行性、经济可行性

18、、法律可行性、操作可行性。(2)需求导出和分析决定系统应该提供什么服务,系统应该具有什么样的性能以及硬件约束等等。这一阶段可分为以下两步工作:1)需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求。2)需求建模:为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现实世界的语义。(3)编写规格说明书需求规格说明是生成需求模型构件的精确的形式化的描述,软件需求规格说明阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件,它不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础。(4)需求验证需求验证是以

19、需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性;审查需求文档、依据需求编写测试用例、编写用户手册、确定合格的标准。5.UML 图的构成成分中定义了哪五类十种模型图?解答:UML 图的构成成分,UML的定义了5类10种模型图。 (1)用例图: 这是一种用户模型视图,用例图是系统功能的描述。它从用户的角度描述系统的功能,并指出各个功能的操作者。(2)静态图:这是一种结构模型视图,这种图描述系统的静态结构。有类图、对象图、包图。类图用于定义系统的类,包括描述类之间的联系,以及类的内部结构(类的属性和操作)。类图描述的是一种静态关系。对象图是类图的一个实例,它使用

20、了与类图几乎相同的符号。对象图只能在系统的某一时间段存在。包图则由包或者类组成,包图描述系统的分层结构。(3)行为图:这是一种行为模型视图,这种图描述系统的动态行为和组成系统的对象之间的交互关系。行为图有状态图和活动图。 (4)实现图:这是一种实现模型视图,这种图描述系统实现的信息,有构件图和配件图。(5)交互图:这是一种环境模型视图,表示系统的环境结构和行为,这种图描述系统对象之间的交互关系,有顺序图和合作图。 6.软件设计有哪些基本原则?解答:软件设计原则主要包括:(1)软件设计的一条最重要原则,就是模块独立性原则;(2)尽量提高模块内的聚合性,降低模块间的耦合性;(3)适度控制模块的规模

21、;(4)信息隐藏和局部化的原则;(5)抽象的原则;(6)控制层次适中的原则。7.结构图和程序流程图的主要区别表现在哪些方面?解答:结构图和程序流程图的主要区别:(1)结构图着重反映的是模块间的隶属关系,即模块间的调用关系和层次关系;而程序流程图着重表达的是程序执行的顺序以及执行顺序所依赖的条件。(2)结构图则着眼于软件系统的总体结构,它并不涉及模块内部的细节,只考虑模块的作用,以及它和上、下级模块的关系;而程序流程图则用来表达执行程序的具体算法。8.根据Rumbaugh对OMT方法的定义,系统设计主要由哪些步骤组成?解答:根据Rumbaugh对OMT方法的定义,系统设计主要由以下步骤组成:(1

22、)划分子系统。将整个系统按照执行功能的不同划分为若干个子系统,每个子系统承担一定的独立功能。(2)确定需要并发运行的子系统,并为它们分配处理器。对于面向对象方法的各子系统,如果需要并行执行,就需要有任务分配子系统协调其他子系统的执行,满足要求。(3)描述子系统之间的通信。子系统间的耦合以相互通信的方式实现。(4)确定系统资源的管理和控制。可以将系统的资源管理与控制看作是某一子系统的责任来统一管理和控制系统的资源,而对于系统资源的使用者则作为此子系统的消费者看待。(5)确定人机交互构件,即用户界面。用户界面体现了系统与用户的信息交换方式,应按照一定的设计原则和使用习惯制定良好的用户界面,提高系统

23、输入、输出的效率。(6)选择实现数据管理和任务管理的基本策略。应优化对数据管理和任务管理的设计,使得系统可以高效地运行。 9.领域对象设计是领域分析的继续,它一般要完成哪些工作?解答:领域对象设计是领域分析的继续,一般要完成以下工作:(1)调整需求对于不能实现的类和方法应当重新分析整个问题域,并对需求进行适当的调整。(2)重用已有的组件根据功能分类确定所需要的组件,如有现成可用的组件则可考虑直接采用该组件,而不再重新开发。(3)引入父类,分组管理领域类利用继承的特点,首先创建一个具有抽象功能的父类,对于特定的领域应用,可以从父类派生出相应的子类。(4)增添一般化类建立协议(5)调整OOA模型调

24、整后的OOA模型最终要反映到领域对象的设计上。(6)设计复审在领域对象设计完成后,通过设计复审检查设计结果。将设计结果反馈给用户或交给专家审查,查找存在的问题。10.为方便用户的使用,设计输入和输出应注意哪些原则问题?解答:输入和输出的格式和方式应当尽可能方便用户的使用,设计和程序编码时应考虑下列原则:(1)检验输入数据,识别错误输入,保证数据的有效性;(2)检查输入项的各种重要组合合理性,必要时报告输入状态信息;(3)使得输入的步骤和操作尽可能简单,并保持简单的输入格式;(4)输入数据时,应允许使用自由格式输入;(5)应允许缺省;(6)输入一批数据时,要使用输入结束标志;(7)在指明可使用选

25、项的种类和取值范围。同时,需要时给出状态信息;(8)程序对其格式有严格要求时 ,保持输入格式、语句的要求的一致性;(9)给所有的输出加注解,并设计输出报表格式。11.为使数据说明易于理解和维护,在编写程序时应注意哪些问题?解答:在编写程序时,为使数据说明易于理解和维护,须注意:(1)数据说明的次序应当规范化,使数据属性容易查找;(2)当多个变量名用一个语句说明时,应对这些变量按字母的顺序排列;(3)如设计了一个复杂的数据结构,应用使用注释说明数据结构的固有特点。12.按照Grenford J.Myers的观点,软件测试目的有哪些?解答:Grenford J.Myers就软件测试目的提出以下观点

26、:(1)测试是程序的执行过程,目的在于发现错误;(2)一个好的测试用例在于能发现至今未发现的错误;(3)一个成功的测试是发现了至今未发现的错误的测试。四、计算及应用题:1.解答:对一个具有多重选择和循环嵌套的程序,不同的路径数目也可能是天文数字。设给出一个如图2 所示的小程序的流程图,其中包括了一个执行达20次的循环。那么它所包含的不同执行路径数高达520(1013)条,若要对它进行穷举测试,覆盖所有的路径。假使测试程序对每一条路径进行测试需要1毫秒,同样假定一天工作24小时,一年工作365 天, 那么要想把如图1所示的小程序的所有路径测试完,则需要3170年。图1白盒测试中的穷举测试分析表明

27、,实行穷举测试,由于工作量过大,实施起来是不现实的。任何软件开发项目都要受到期限、费用、人力和机时等条件的限制,尽管为了充分揭露程序中所有隐藏错误,需要针对所有可能的数据进行测试,但事实告诉我们,这样做是不可能的。2.解答:C+有两种对象创建方式,静态内存分配方式和动态内存分配方式,每当创建一个新对象,就执行一次构造函数。 例:用静态内存分配方式创建了类Student的学号为98109002的对象studentobj。Student studentobj(98109002); 如果该语句是出现在一个操作或函数中,则说明studentobj被定义为局部变量,当操作或函数执行完毕退出时,该对象将被

28、自动消除,所占用的内存被释放,释放内存时将执行一次析构函数。如果该语句是将studentobj定义为一个全局变量,则只有系统退出后对象studentobj才会被消除。 采用动态内存分配方式创建对象时需要借用C+的new操作符进行。new操作符为新对象分配内存并且返回它的一个指针,指针存放在指针变量中。new操作符可以包括构造函数中 的参数,如下例所示。例:对象创建的动态内存分配方式 Student *studentobj = new Student(98109002)3.解答:4.解答:书的对象模型5.解答:输出结果: i=4 i=13 i=22i=316.解答:第二段程序优于第一段。注释起到提示的作用,利于程序阅读者对程序段全貌的理解缩进格式清晰的显示程序中逻辑判断的结构。变量命名方式表明变量的含义。7.解答:(1)判定条件可能取值表:(2)计算组合数2*3*2=12;(3)初步判定表(4)简化后的判定表 8.解答:9.解答:电话号码=分机号外线号码 分机号=6001.6099外线号码=9+市话号码长话号码长话号码=区号+市话号码区号=100.200市话号码=局号+分局号局号=466488566588分局号=3数字3

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号