软件工程复习题_第1页
软件工程复习题_第2页
软件工程复习题_第3页
软件工程复习题_第4页
软件工程复习题_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

软件工程课程复习题一、单选题1、软件生存周期模型有多个,下列选项中,(C)不是软件生存周期模型。

A.螺旋模型B.增量模型C.功效模型D.瀑布模型

2、检查软件产品与否符合需求定义的过程称为(D)。

A.集成测试B.确认测试 C.验证测试D.验收测试3、黑盒测试是从(C)观点出发的测试,白盒测试是从(A)观点出发的测试。

A.开发人员B.管理人员C.顾客4、可行性研究要进行一次(D)需求分析。A.进一步的B.详尽的C.彻底的D.简化的、压缩了的

5、回归测试是(A)中最惯用的办法。A.校正性维护 B.适应性维护 C.完善性维护 D.防止性维护6、与选择编程语言无关的因素是(C)。A.软件开发的办法B.软件执行的环境C.程序设计风格D.软件开发人员的知识7、面对对象程序设计将数据与(A)放在一起,作为一种互相依存、不可分割的整体来解决。A.对数据的操作 B.信息 C.数据隐藏 D.数据抽象8、软件生存周期的(D)工作和软件可维护性有亲密的关系。A.编码阶段B.设计阶段C.测试阶段D.每个阶段9、好的软件构造应当是(C)。A.高耦合,高内聚B.高耦合,低内聚C.低耦合,高内聚D.低耦合,低内聚10、在快速原型模型的开发过程中,仅作为需求阐明的补充形式的原型是(A)

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

11、软件构造图的形态特性能反映程序重用率的是(C)

A.深度B.宽度 C.扇入D.扇出12、需求分析最后成果是产生(B)

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

13、分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的(C)。A.总体 B.细节 C.抽象 D.分解14.可行性研究要进行一次需求分析。答案为:DA.进一步的B.详尽的C.彻底的D.简化的、压缩了的

2.开发软件所需高成本和产品的低质量之间有着锋利的矛盾,这种现象称作B。答A.软件投机B.软件危机C.软件工程D.软件现象15.产生软件维护的副作用,是指。答案为:CA.开发时的错误B.隐含的错误C.因修改软件而造成的错误D.运行时误操作16.维护中,因误删除一种标记符而引发的错误是_________副作用。答案为:CA.文档B.数据C.编码D.设计17.可维护性的特性中互相增进的是答案为:AA.可理解性和可测试性B.效率和可移植性C.效率和可修改性D.效率和构造好18.需求分析最后成果是产生答案:BA.项目开发计划B.需求规格阐明书C.设计阐明书D.可行性分析报告

7._____是以提高软件质量为目的的技术活动。答案为:DA.技术创新B.测试C.技术发明D.技术评审19.面对对象办法学的出发点和基本原则是尽量模拟人类习惯的思维方式,分析、设计和实现一种软件系统的办法和过程,尽量靠近于人类认识世界解决问题的办法和过程。因此面对对象办法有许多特性,如软件系统是由对象构成的________;对象彼此之间仅能通过传递消息互相联系;层次构造的继承。答案为:CA.开发过程基于功效分析和功效分解B.强调需求分析重要性C.把对象划分成类,每个对象类都定义一组数据和办法D.对既存类进行调节20.原型化办法是顾客和设计者之间执行的一种交互构成,合用于______系统。答案为:AA.需求不拟定性高的B.需求拟定的C.管理信息D.实时21.为了提高测试的效率,应当。答案为:DA.随机地选用测试数据B.取一切可能的输入数据作为测试数据C.在完毕编码后来制订软件的测试计划D.选择发现错误可能性大的数据作为测试数据二、填空题1、.需求分析阶段阶段决定了系统做什么,软件设计阶段阶段决定系统如何具体实现的方案,编码阶段是系统实现的过程,软件测试阶段阶段是对实现的系统与否对的的检查,软件维护阶段阶段是找出开发阶段遗留下来的错误,并且随着顾客规定的增加,环境的变化,对系统进行改造。2、设计分为概要设计和具体设计两大环节。3、集成测试的办法重要有渐增式测试和非渐增式测试两种。4、软件设计要恪守“抽象,分解,低藕合高内聚,封装,接口和实现分离”的设计原理。5、测试阶段是在代码编写完毕后来,先作单元测试,然后是集成测试、系统测试和验收测试。7、软件维护的内容有:纠正性维护、适应性维护、完善性维护和防止性维护。8、普通而言,在面对对象建模过程中,人们最惯用的是建立系统的用例图、类图和次序图。9、“四种开发办法”是指“面对过程的办法、面对对象的办法、面对数据的办法、形式化办法”10、“五个面对理论”是指“面对流程分析、面对数据设计、面对对象实现、面对功效测试、面对过程管理”。11、构造化分析办法是需求分析中使用最多的办法之一,合用于数据解决类型软件的需求分析。基本思想是采用自顶向下,逐级分解的办法分析整个系统,有效地控制系统开发的复杂性。12、内聚性是模块独立性的衡量原则之一,它是指模块的功效强度的度量,即一种模块内部各个元素彼此结合的紧密程度的度量。13、在构造化分析中,用于描述加工逻辑的重要工含有三种,即:构造化语言、鉴定表、鉴定树。14、构造化语言是介于自然语言和形式语言之间的一种半形式语言。15、模块设计的基本原则是要尽量使用数据耦合,减少控制耦合,限制外部耦合和公共耦合,不使用内容耦合。16.系统流程图是描述物理模型的传统工具,用图形符号表达系统中各个元素体现了系统中多个元素之间的(信息流动)状况。17.自顶向下结合的渐增式测试法,在组合模块时有两种组合方略:深度优先方略和(宽度优先方略)。18.具体设计的任务是拟定每个模块的内部特性,即模块的算法、(使用的数据)。19.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面对维护的技术;在维护阶段用来提高维护的效率和质量的(维护增援)技术。20.科学工程计算需要大量的原则库函数,方便解决复杂的数值计算,可供选择的语言有:(FORTRAN语言)、PASCAL语言、C语言和PL/1语言。三、名词解释1.经济可行性答:进行开发成本的估算以及理解获得效益的评定,拟定要开发的项目与否值得投资开发。2.社会可行性答:要开发的项目与否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在顾客组织内与否行得通,现有管理制度、人员素质、操作方式与否可行。3.元数据、实体、中间数据答:元数据是组织数据的数据,描述数据的数据,有关数据的数据。实体(指实体集或实体型),是一组有关元数据的集合。中间数据是组织统计数据的数据,描述统计数据的数据,有关统计数据的数据。4.软件维护定义:答:所谓软件维护,就是在软件产品安装、实施并交付给顾客使用后,在新版本产品升级之前,这段时间里软件厂商向客户提供的服务工作,称为该软件产品的软件维护。四、判断题某软件公司拟采用下述方法提高他们开发出的软件产品的可维护性。请判断哪些方法是对的的,哪能些是不对的的,并简朴阐明理由。1、在分析顾客需求时同时考虑维护问题。2、测试完程序后,删去程序中的注解以缩短源程序长度。3、在软件开发过程中确保各阶段文档的对的性。4、编码时多用全局变量。5、选用时间效率和空间效率尽量高的算法。6、尽量运用硬件特点以提高程序效率。7、尽量使用高级语言编写程序。8、进行总体设计时加强模块间的联系。9、尽量减少程序模块的规模。10、用数据库系统替代文献系统来存储需要长久保存的信息。11、用CASE环境或程序自动生成工具来自动生成一部分程序。12、尽量用可重用的软件构件来组装程序。13、使用先进的软件开发技术。14、采用防错程序设计技术,在程序中引入自检能力。答:1、对的。在分析顾客需要的同时考虑维护问题,列出将来可能变更或增加的需求,就能够在设计时为将来可能做的修改预先做某些准备,使得在顾客确实提出这些维护规定时,实现起来比较容易某些。2、不对的。程序中的注解是提高程序可理解性的核心的内部文档,删去文档的注解必然会减少程序的可读性和可理解性,从而减少软件的可维护性。3、对的。完整精确的文档对提高软件的可理解性有重要奉献,确保文档的对的性是提高软件可维护性的核心。4、不对的。程序中使用的全局变量多,不仅违反局部化原理并且会使得含有公共环境耦合的模块数量增多,从而减少程序的可理解性、可修改性和可测试性,因此,这样的软件可维护性较差。5、不对的。普通说来,效率高的算法的可理解性较差,选用效率尽量高的算法将减少软件的可维护性。事实上,程序的效率能够满足顾客的需求就能够了,没有必要盲目地追求尽量高的效率。6、不对的。程序对硬件特点依赖越多,运行程序的硬件变更时适应性维护的工件量也就越大。7、对的。用高级语言编程时,顾客能够给程序变量和程序模块赋予含义鲜明的名字,通过名字能够比较容易地把程序对象和它们所代表的实体联系起来。另外,高级语言使用的概念和符号更符合人的习惯。上述事实都使得用高级语言编写的程序更容易理解,因此也就更容易维护。8、不对的。模块间耦合越紧密,程序就越难理解和修改,修改后测试也比较困难。因此,加强模块间的联系将减少软件的可维护性。9、不对的。程序模块的规模很小,就会使程序中包含的模块诸多,这将使模块间的接口数量大大增加,从而增加了理解、修改和测试程序的难度,减少了软件的可维护性。10、对的。数据库系统比文献系统使用起来更方便、更安全,用数据库系统替代文献系统来存储需要长久保存的信息,可减少差错,减少改正性维护需求的数量。另外,使用数据库系统的程序比使用文献系统的程序更容易修改。上述事实表明,用数据库系统替代文献系统来存储需要长久保存的信息,将提高软件的可维护性。11、对的。自动生成的程序段没有差错,对软件的改正性维护需求自然减少。当因顾客的需求变更而需要修改程序时,能够先修改对应部分的规格阐明,然后用CASE环境或程序自动生成工具自动生成需改动的程序,显然,这样做能够减少维护的工作量。12、对的。可重用的软件构件基本上没有错误,用这样的构件组装成的程序可靠性高,改正性维护需求自然就比较少。另外,可重用的软件构件适应性强,应用范畴广,容易使它适应新需求,因此,用这样的构件组装成的程序也较容易实现适应性或完善性维护。13、对的。用先进的软件技术开发出来的软件容易理解、容易修改、容易重用,因此,可维护性较好。14、对的。在程序中引入自检能力能够明显提高软件的可靠性,因此将明显减少改正性维护需求的数量。五、简答题1、什么是软件过程?它与软件工程办法学有何关系?答:软件过程是为了开发出高质量的软件产品所需完毕的一系列任务的框架,它规定了完毕各项任务的工作环节。软件过程定义了运用技术办法的次序、应当交付的文档资料、为确保软件质量和协调软件变化必须采用的管理方法,以及标志完毕了对应开发活动的里程碑。软件过程是软件工程办法学的3个重要构成部分之一。2、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,阐明每种模型的合用范畴。答:软件生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行次序,因此,也称为过程模型。四种模型的优缺点在于:瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文挡驱动的办法;这种模型的问题是,最后开发出的软件产品可能并不是顾客真正需要的。快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一种可在计算机上运行的原型系统,让顾客试用原型并收集顾客反馈意见的方法,获取顾客的真实需求。增量模型含有可在软件开发的早期阶段使投资获得明显回报和教易维护的优点,但是,规定软件含有开放的构造是使用这种模型时固有的困难。风险驱动的螺旋模型合用于内部开发的大型软件项目,但是,只有在开发人员含有风险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。3、在软件开发的早期阶段为什么要进行可行性研究?应当从哪些方面研究目的系统的可行性?答:可行性研究的目的不是解决问题,而是拟定问题与否值得去解决。实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。应当从下列的方面研究目的系统的可行性:技术可行性:使用现有的技术能实现这个系统吗?经济可行性:这个系统的经济效益能超出它的开发成本吗?操作可行性:这个系统的操作方式在该客户组织内行得能工通吗?4、如何与顾客有效地沟通以获取顾客的真实需求?答:分析员与顾客沟通进行需求分析的典型办法以下所述:访谈:它有两种基本形式,分别是正式的和非正式的访谈。面对数据流自顶向下求精。简易的应用规格阐明技术。快速建立软件原型。5、什么是功效模型?建立功效模型时重要使用哪些图形符号?答:功效模型表达变化的系统的“功效”性质,它指明了系统应当“做什么”,因此更直接地反映了顾客对目的系统的需求。普通,功效模型由一组数据流图构成。建立功效模型时重要使用的图形符号以下所示:或数据的源点/终点或变换数据的解决或数据存储数据流6、为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系?答:由于软件开发模型是软件工程研究的四大内容之一,它即使不是软件工程研究的重点,但是在宏观上特别重要。软件公司的项目组在开发一种大项目或产品时,首先在技术上必须选择一种开发模型,使开发模型非常适合这个项目或产品的生存周期;随即通过对生存周期的裁减,来给出适合与本项目或产品的软件生存周期定义。软件的开发模型与软件生存周期有关:不同的开发模型,可能对应着不同的生存周期。生存周期不同,该软件的开发阶段划分、评审次数、基线原则都有所不同,甚至维护办法都有所区别。7、请阐明“三个模型”的定义,以及三者之间的关系。答:功效模型是描述系统能做什么,即对系统的功效、性能、接口和界面进行定义。业务模型是描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的环节或流程,即对系统的操作流程进行定义。数据模型是描述系统工作前的数据来自何处,工作中的数据存什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对系统的数据构造进行定义。功效模型和业务模型是在需求分析时建模,是两个基本点。数据模型是一种中心,在设计时建模。功效模型和业务模型给数据模型提供数据与维护数据,数据模型支持功效模型和业务模型的正常运行。8、需求分析的目的是什么?需求分析的难点在哪?答:软件需求分析,其目的是用于阐明软件产品或软件项目需要满足的条件和限制。在软件工程项目中首先要获取顾客的需求,通过对软件需求的提取、分析、文档化及验证,为进一步的设计和实现提供根据。需求分析的难点是:在系统的功效、性能和接口方面,开发者与客户达成完全一致的需求,让客户最后签字确认,并确保在项目验收前,需求相对稳定不变。万一需求有一点变化,双方必须推行“需求变更管理程序”,而变更管理程序在订立合同时已经做了规定。要懂得,合同是含有法律效力的。9.可行性研究报告的重要内容有哪些?答:一种可行性研究报告的重要内容以下:(1)引言:阐明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。(2)可行性研究前提:阐明开发项目的功效、性能和基本规定;达成的目的;多个限制条件;可行性研究办法和决定可行性的重要因素。(3)对现有系统的分析。(4)所建议系统的技术可行性分析。(5)所建议系统的经济可行性分析。(6)社会因素可行性分析。(7)其它可供选择方案。(8)结论意见。10.系统设计的内容是什么?答:系统设计阶段先从高层入手,然后细化。系统设计要决定整个构造及风格,这种构造为背面设计阶段的更具体方略的设计提供了基础。重要内容为:(1)系统分解。(2)拟定并发性。(3)解决器及任务分派。(4)数据存储管理。(5)全局资源的解决。(6)选择软件控制机制。(7)人机交互接口设计。11.什么是软件危机?软件危机的体现是什么?其产生的因素是什么?答:软件开发技术的进步始终未能满足发展的需要。在软件开发中碰到的问题找不到解决方法,使问题积累起来,形成了锋利的矛盾,因而造成了软件危机。软件危机体现在下列四个方面:(1)经费预算经常突破,完毕时间多次迟延。(2)开发的软件不能满足顾客规定。(3)开发的软件可维护性差。(4)开发的软件可靠性差。造成软件危机的因素是:(1)软件的规模越来越大,构造越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费用不停增加。(4)软件开发技术落后。(5)生产方式落后。(6)开发工具落后,生产率提高缓慢。12.软件质量确保应做好哪几方面的工作?答:软件质量确保是软件工程管理的重要内容,软件质量确保应做好下列几方面的工作:(1)采用技术手段和工具。(2)组织正式技术评审。(3)

温馨提示

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

评论

0/150

提交评论