《软件工程》期末考试题及答案_第1页
《软件工程》期末考试题及答案_第2页
《软件工程》期末考试题及答案_第3页
《软件工程》期末考试题及答案_第4页
《软件工程》期末考试题及答案_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《软件工程》期末考试题及答案一、单选题(每题2分,共60分)1.软件开发的瀑布模型,一般都将开发过程划分为:可行性研究、需求分析、设计、编码、测试和维护等阶段,一般认为可能占用人员最多的阶段是()。A.可行性研究B.需求分析C.编码D.测试答案:C。编码阶段需要大量的程序员进行代码编写工作,通常占用人员最多。可行性研究和需求分析阶段主要是分析师等人员参与,规模相对较小;测试阶段人员数量也不如编码阶段多。2.需求分析最终结果是产生()。A.项目开发计划B.需求规格说明书C.设计说明书D.可行性分析报告答案:B。需求分析阶段的主要任务是准确地定义新系统的目标,为了清晰地表达对目标系统的需求,最终会产生需求规格说明书。项目开发计划是在项目启动阶段制定;设计说明书是设计阶段的成果;可行性分析报告是可行性研究阶段的产物。3.软件生存周期中时间最长的是()阶段。A.需求分析B.软件维护C.软件设计D.软件开发答案:B。软件维护是软件生存周期中持续时间最长的阶段,软件投入使用后,可能会因为各种原因(如发现新的错误、用户需求变更等)需要进行维护,这个过程可能贯穿软件的整个使用期。而需求分析、软件设计和软件开发阶段在软件交付使用前就基本完成。4.软件设计一般分为总体设计和详细设计,它们之间的关系是()。A.全局和局部B.抽象和具体C.总体和层次D.功能和结构答案:A。总体设计是从全局的角度对软件系统进行规划,确定系统的总体结构和模块划分;详细设计则是对总体设计中确定的各个模块进行具体的设计,描述模块内部的实现细节,所以它们是全局和局部的关系。5.软件测试的目的是()。A.证明软件的正确性B.找出软件中的所有错误C.发现软件中的错误D.评估软件的质量答案:C。软件测试的目的是发现软件中的错误,而不是证明软件的正确性,因为要找出软件中的所有错误几乎是不可能的。评估软件质量是测试的一个结果,但不是主要目的。6.面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组成的;();对象彼此之间仅能通过传递消息互相联系;层次结构的继承。A.开发过程基于功能分析和功能分解B.强调需求分析的重要性C.把对象划分成类,每个对象类都定义一组数据和方法D.对既存类进行调整答案:C。面向对象方法将对象划分成类,每个对象类都定义一组数据和方法,这是面向对象的重要特征之一。选项A是结构化方法的特点;选项B是软件开发通用的重视点,不是面向对象方法特有的;选项D只是面向对象开发中的一个操作,不是其核心特征。7.为了提高测试的效率,应该()。A.随机地选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计划D.选择发现错误可能性大的数据作为测试数据答案:D。为了提高测试效率,应该选择发现错误可能性大的数据作为测试数据,这样可以在有限的测试资源下发现更多的错误。随机选取测试数据可能无法有效发现错误;取一切可能的输入数据进行测试是不现实的;测试计划应该在编码前制定,以指导整个测试过程。8.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是()。A.数据库设计B.数据通讯C.数据定义D.数据维护答案:C。数据字典的最基本功能是对数据进行定义,它是对数据流程图中的各个元素进行详细描述的工具,包括数据项、数据结构、数据流、数据存储和处理过程等的定义。数据库设计是后续设计阶段的任务;数据通讯和数据维护与数据字典的基本功能无关。9.结构化程序设计主要强调的是()。A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性答案:D。结构化程序设计的主要目标是使程序具有良好的结构,强调程序的易读性和可维护性,而不是单纯追求程序的规模、效率或程序设计语言的先进性。10.软件调试的目的是()。A.找出错误所在并改正之B.排除存在错误的可能性C.对错误性质进行分类D.统计出错的次数答案:A。软件调试的目的是找出错误所在并改正之。排除存在错误的可能性是不现实的;对错误性质进行分类和统计出错次数不是调试的主要目的。11.在面向对象设计中,()意味着在不同的层次上共享数据和操作。A.继承B.引用C.消息D.多态答案:A。继承是面向对象设计中的一个重要机制,它允许子类继承父类的数据和操作,从而在不同的层次上共享数据和操作。引用是一种变量对对象的引用关系;消息是对象之间进行通信的方式;多态是指同一个操作作用于不同的对象可以有不同的表现形式。12.软件项目计划一般不包括以下哪项内容()。A.培训计划B.人员安排C.进度安排D.软件开发标准的选择和制定答案:D。软件项目计划通常包括培训计划、人员安排、进度安排等内容。软件开发标准的选择和制定一般是在组织层面进行的,不属于单个项目计划的范畴。13.以下不属于白盒测试技术的是()。A.语句覆盖B.判定覆盖C.边界值分析D.条件组合覆盖答案:C。边界值分析是黑盒测试技术,它是根据输入输出的边界值来设计测试用例。而语句覆盖、判定覆盖和条件组合覆盖都是白盒测试技术,它们是基于程序的内部逻辑结构来设计测试用例。14.软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为()。A.可用性B.可靠性C.正确性D.完整性答案:B。可靠性是指软件在规定的时间和条件下,完成规定功能的能力,即不出故障、持续运行的能力。可用性是指软件系统可被使用的程度;正确性是指软件满足规定的功能和性能要求;完整性是指软件系统的数据和程序的完整程度。15.下面几种类型中,耦合性最弱的是()。A.内容耦合B.控制耦合C.公共耦合D.数据耦合答案:D。耦合性是指模块之间的相互依赖程度,数据耦合是指两个模块之间仅通过数据参数进行通信,这种耦合性最弱。内容耦合是最强的耦合,一个模块直接访问另一个模块的内部数据或控制;控制耦合是指一个模块向另一个模块传递控制信号;公共耦合是指多个模块访问同一个公共数据环境。16.下列属于静态测试方法的是()。A.黑盒测试B.白盒测试C.人工检测D.路径覆盖答案:C。人工检测是静态测试方法,它不实际运行程序,而是通过人工审查代码、文档等方式来发现错误。黑盒测试和白盒测试都属于动态测试方法,需要实际运行程序;路径覆盖是白盒测试中的一种测试覆盖准则。17.软件结构图的形态特征能反映程序重用率的是()。A.深度B.宽度C.扇入D.扇出答案:C。扇入是指一个模块的直接上级模块的个数,扇入越大,表示该模块被多个上级模块调用,程序的重用率越高。深度表示软件结构的层数;宽度表示同一层次上模块的最大个数;扇出是指一个模块直接调用的下级模块的个数。18.在面向对象软件开发方法中,类与类之间主要有以下结构关系()。A.继承和聚集B.继承和一般C.聚集和消息传递D.继承和方法调用答案:A。在面向对象软件开发方法中,类与类之间主要有继承和聚集两种结构关系。继承表示子类继承父类的属性和方法;聚集表示一个类的对象包含另一个类的对象。消息传递是对象之间的通信方式;方法调用是对象内部的操作方式。19.软件需求规格说明书的内容不应该包括()。A.对重要功能的描述B.对算法的详细过程描述C.软件确认准则D.软件的性能答案:B。软件需求规格说明书主要描述软件的功能需求、性能需求、外部接口需求等,不应该包括算法的详细过程描述,算法的详细设计是后续设计阶段的任务。对重要功能的描述、软件确认准则和软件的性能都是需求规格说明书应包含的内容。20.为了适应软硬件环境变化而修改软件的过程是()。A.校正性维护B.完善性维护C.适应性维护D.预防性维护答案:C。适应性维护是为了使软件适应软硬件环境的变化而进行的修改。校正性维护是为了纠正软件中的错误;完善性维护是为了增加软件的功能或改善软件的性能;预防性维护是为了提高软件的可维护性和可靠性而进行的修改。21.以下哪个不是软件工程的基本原理()。A.用分阶段的生命周期计划严格管理B.坚持进行阶段评审C.采用现代程序设计技术D.强调单一文档答案:D。软件工程的基本原理包括用分阶段的生命周期计划严格管理、坚持进行阶段评审、采用现代程序设计技术等。软件项目需要多种文档来记录项目的各个阶段和方面,而不是强调单一文档。22.软件详细设计的主要任务是确定每个模块的()。A.算法和使用的数据结构B.外部接口C.功能D.编程风格答案:A。软件详细设计的主要任务是确定每个模块的算法和使用的数据结构,为模块的实现提供详细的设计方案。模块的外部接口在总体设计阶段确定;模块的功能在需求分析阶段确定;编程风格是程序员在编码时需要遵循的规范。23.以下关于数据流图的说法错误的是()。A.数据流图是描述数据处理过程的工具B.数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程C.数据流图中的加工可以是一个程序、一个子程序或一个过程D.数据流图中的数据存储是指具体的物理文件答案:D。数据流图中的数据存储并不一定是指具体的物理文件,它可以是一个抽象的数据存储概念,如数据库中的表、内存中的数据结构等。选项A、B、C对数据流图的描述都是正确的。24.下列关于软件可靠性的叙述中,错误的是()。A.软件可靠性是指软件在给定的时间间隔内,按照规格说明书的规定完成所要求功能的概率B.由于影响软件可靠性的因素很复杂,软件可靠性不能通过历史数据和开发数据直接测量和估算出来C.软件可靠性是一个重要的软件质量指标D.软件可靠性与软件的可用性、可维护性密切相关答案:B。软件可靠性可以通过历史数据和开发数据进行测量和估算,例如通过收集软件在实际运行中的故障数据,利用可靠性模型进行分析和估算。选项A、C、D对软件可靠性的描述都是正确的。25.下列不属于面向对象分析阶段的活动是()。A.认定对象B.实现对象C.组织对象D.描述对象间的相互作用答案:B。面向对象分析阶段的主要活动包括认定对象、组织对象、描述对象间的相互作用等。实现对象是面向对象设计和编程阶段的任务。26.以下哪种测试方法不属于黑盒测试()。A.等价类划分B.边界值分析C.基本路径测试D.因果图答案:C。基本路径测试是白盒测试方法,它是基于程序的控制流图来设计测试用例,覆盖程序中的基本路径。等价类划分、边界值分析和因果图都是黑盒测试方法,它们不考虑程序的内部结构,只根据程序的输入输出规格来设计测试用例。27.软件维护工作的最主要部分是()。A.校正性维护B.适应性维护C.完善性维护D.预防性维护答案:C。完善性维护是软件维护工作的最主要部分,它是为了满足用户在使用过程中提出的新的功能需求或对现有功能进行改进而进行的维护。校正性维护是为了纠正软件中的错误;适应性维护是为了使软件适应软硬件环境的变化;预防性维护是为了提高软件的可维护性和可靠性。28.在软件设计中,()的主要任务是将系统的功能需求分配给软件模块。A.总体设计B.详细设计C.数据设计D.算法设计答案:A。总体设计的主要任务是将系统的功能需求分配给软件模块,确定系统的总体结构和模块划分。详细设计是对模块内部的实现细节进行设计;数据设计是对数据结构和数据库进行设计;算法设计是设计模块的具体算法。29.下列关于软件配置管理的叙述中,不正确的是()。A.软件配置管理是对软件的各种版本进行控制和管理B.软件配置管理的目的是保证软件的完整性和可追溯性C.软件配置管理只需要管理软件开发过程中的代码D.软件配置管理需要对软件的文档、测试用例等进行管理答案:C。软件配置管理不仅仅需要管理软件开发过程中的代码,还需要对软件的文档、测试用例、需求规格说明书等各种软件制品进行管理,其目的是保证软件的完整性和可追溯性,对软件的各种版本进行控制和管理。30.以下关于软件项目风险的说法错误的是()。A.软件项目风险是指可能影响软件项目成功的不确定因素B.风险可以分为已知风险、可预测风险和不可预测风险C.风险评估只需要考虑风险发生的可能性D.风险应对策略包括风险规避、风险减轻、风险转移等答案:C。风险评估需要考虑风险发生的可能性和风险影响的程度两个方面,而不仅仅是风险发生的可能性。选项A、B、D对软件项目风险的描述都是正确的。二、多选题(每题3分,共45分)1.软件生命周期包括以下哪些阶段()。A.可行性研究B.需求分析C.设计D.编码E.测试F.维护答案:ABCDEF。软件生命周期通常包括可行性研究、需求分析、设计、编码、测试和维护等阶段。可行性研究确定项目是否可行;需求分析明确软件的功能和性能要求;设计进行软件的总体和详细设计;编码实现软件的代码;测试发现软件中的错误;维护保证软件在使用过程中的正常运行。2.以下属于面向对象设计原则的有()。A.单一职责原则B.开放-封闭原则C.里氏替换原则D.依赖倒置原则E.接口隔离原则答案:ABCDE。单一职责原则指一个类应该只有一个引起它变化的原因;开放-封闭原则强调软件实体(类、模块、函数等)应该对扩展开放,对修改封闭;里氏替换原则要求子类可以替换父类并且不会影响程序的正确性;依赖倒置原则主张高层模块不应该依赖低层模块,二者都应该依赖抽象;接口隔离原则提倡客户端不应该依赖它不需要的接口。3.软件测试按测试阶段可分为()。A.单元测试B.集成测试C.系统测试D.验收测试答案:ABCD。单元测试是对软件中的最小可测试单元进行测试;集成测试是将已测试过的模块组装成系统进行测试;系统测试是将软件系统作为一个整体进行测试,检验其是否满足需求规格说明书的要求;验收测试是在软件交付使用前,由用户或客户进行的测试,以确定软件是否满足验收标准。4.数据字典包含的条目有()。A.数据项B.数据结构C.数据流D.数据存储E.处理过程答案:ABCDE。数据字典包含数据项、数据结构、数据流、数据存储和处理过程等条目。数据项是数据的最小组成单位;数据结构是由若干数据项组成的集合;数据流表示数据的流动;数据存储表示数据的保存;处理过程描述对数据的加工操作。5.软件设计的主要任务包括()。A.模块设计B.数据设计C.接口设计D.体系结构设计答案:ABCD。软件设计的主要任务包括模块设计,确定系统的模块划分和模块之间的关系;数据设计,设计数据结构和数据库;接口设计,定义模块之间的接口和系统与外部环境的接口;体系结构设计,确定软件的总体架构。6.以下属于软件质量特性的有()。A.功能性B.可靠性C.易用性D.效率E.可维护性F.可移植性答案:ABCDEF。软件质量特性包括功能性,即软件满足规定功能的能力;可靠性,软件在规定时间和条件下完成规定功能的能力;易用性,软件易于使用的程度;效率,软件执行其功能时所消耗的资源;可维护性,软件易于修改和维护的能力;可移植性,软件从一个环境移植到另一个环境的能力。7.结构化分析方法使用的工具包括()。A.数据流图B.数据字典C.判定树D.判定表答案:ABCD。结构化分析方法使用数据流图来描述数据的流动和处理过程;数据字典对数据流图中的各个元素进行详细定义;判定树和判定表用于描述复杂的逻辑判断规则。8.面向对象的主要特征包括()。A.封装B.继承C.多态D.抽象答案:ABCD。封装是将数据和操作数据的方法绑定在一起,隐藏对象的内部实现细节;继承允许子类继承父类的属性和方法;多态是指同一个操作作用于不同的对象可以有不同的表现形式;抽象是从具体的事物中抽取共同的本质特征。9.软件项目管理的主要内容包括()。A.项目计划B.项目进度管理C.项目成本管理D.项目质量管理E.项目风险管理答案:ABCDE。软件项目管理的主要内容包括项目计划,制定项目的目标、任务、进度等;项目进度管理,监控项目的进度,确保项目按时完成;项目成本管理,控制项目的成本;项目质量管理,保证软件的质量;项目风险管理,识别、评估和应对项目中的风险。10.黑盒测试的测试用例设计方法有()。A.等价类划分B.边界值分析C.因果图D.错误推测法答案:ABCD。等价类划分是将输入数据划分为若干等价类,从每个等价类中选取代表值作为测试用例;边界值分析是选取输入输出的边界值作为测试用例;因果图是根据输入条件和输出结果之间的因果关系设计测试用例;错误推测法是基于经验和直觉推测程序中可能存在的错误,从而设计测试用例。11.软件维护的类型有()。A.校正性维护B.适应性维护C.完善性维护D.预防性维护答案:ABCD。校正性维护是为了纠正软件中的错误;适应性维护是为了使软件适应软硬件环境的变化;完善性维护是为了增加软件的功能或改善软件的性能;预防性维护是为了提高软件的可维护性和可靠性而进行的修改。12.以下关于软件文档的说法正确的有()。A.软件文档是软件开发过程的重要组成部分B.软件文档可以分为用户文档和开发文档C.软件文档有助于提高软件的可维护性D.软件文档在软件开发完成后才需要编写答案:ABC。软件文档是软件开发过程的重要组成部分,它记录了软件开发的各个阶段和方面的信息。软件文档可以分为用户文档和开发文档,用户文档是为用户使用软件提供帮助的文档,开发文档是为软件开发人员提供参考的文档。软件文档有助于提高软件的可维护性,因为它可以让维护人员了解软件的结构和功能。软件文档应该在软件开发的各个阶段同步编写,而不是在软件开发完成后才编写。13.软件设计中模块划分应遵循的准则有()。A.高内聚B.低耦合C.模块规模适中D.模块的扇入和扇出要合理答案:ABCD。模块划分应遵循高内聚原则,即模块内部的各个元素之间联系紧密;低耦合原则,即模块之间的相互依赖程度低。模块规模适中可以提高模块的可维护性和可读性;模块的扇入和扇出要合理,扇入过大可能导致模块过于复杂,扇出过大可能导致模块的控制过于分散。14.以下属于软件配置管理活动的有()。A.版本控制B.变更管理C.配置审计D.发布管理答案:ABCD。软件配置管理活动包括版本控制,对软件的不同版本进行管理;变更管理,对软件的变更进行控制和管理;配置审计,检查软件配置项的完整性和正确性;发布管理,将软件的某个版本发布到生产环境中。15.以下关于软件工程的说法正确的有()。A.软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程B.软件工程的目标是提高软件的质量和生产率,降低软件成本C.软件工程强调使用系统化、规范化、可度量的方法来开发和维护软件D.软件工程只关注软件的开发过程,不关注软件的维护过程答案:ABC。软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程,其目标是提高软件的质量和生产率,降低软件成本。软件工程强调使用系统化、规范化、可度量的方法来开发和维护软件,它不仅关注软件的开发过程,也关注软件的维护过程,因为软件维护是软件生存周期中持续时间最长的阶段。三、判断题(每题2分,共20分)1.软件开发的瀑布模型是一种线性顺序模型,它强调软件开发的阶段性和顺序性。()答案:正确。瀑布模型将软件开发过程划分为多个阶段,每个阶段都有明确的输入和输出,并且前一个阶段完成后才能进入下一个阶段,强调了软件开发的阶段性和顺序性。2.需求分析阶段只需要确定软件的功能需求,不需要考虑性能需求。()答案:错误。需求分析阶段需要确定软件的功能需求、性能需求、外部接口需求等多个方面的需求,性能需求也是软件需求的重要组成部分。3.软件测试可以发现软件中的所有错误。()答案:错误。由于软件的复杂性和测试资源的有限性,软件测试不可能发现软件中的所有错误,只能尽可能地发现更多的错误。4.面向对象方法中的继承机制可以提高软件的可重用性。()答案:正确。继承允许子类继承父类的属性和方法,从而可以重用父类的代码,提高软件的可重用性。5.数据字典是对数据流图的详细补充说明。()答案:正确。数据字典对数据流图中的各个元素(数据项、数据结构、数据流、数据存储和处理过程等)进行详细的定义和描述,是对数据流图的详细补充说明。6.软件维护只是对软件中的错误进行修改。()答案:错误。软件维护包括校正性维护(修改错误)、适应性维护(使软件适应环境变化)、完善性维护(增加功能或改善性能)和预防性维护(提高可维护性和可靠性)等多种类型,不仅仅是对错误进行修改。7.结构化程序设计的三种基本结构是顺序结构、选择结构和循环结构。()答案:正确。结构化程序设计采用顺序结构、选择结构和循环结构这三种基本结构来构建程序,任何复杂的程序都可以由这三种基本结构组合而成。8.白盒测试主要关注软件的功能,而不考虑软件的内部结构。()答案:错误。白盒测试是基于程序的内部结构来设计测试用例,它关注软件的内部逻辑和执行路径,而黑盒测试主要关注软件的功能,不考虑软件的内部结构。9.软件项目管理只需要关注项目的进度,不需要关注项目的质量。()答案:错误。软件项目管理需要综合考虑项目的进度、质量、成本、风险等多个方面的因素,项目的质量是软件项目成功的重要指标之一,不能只关注进度而忽略质量。10.软件配置管理只需要管理软件的源代码,不需要管理软件的文档。()答案:错误。软

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论