您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程作业及参考答案(最新版)
软件工程一、软件危机与软件工程1.软件危机是指在开发和()过程中所遇到的一系列严重问题。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.质量保证②A.需求分析B.可行性研究C总体设计D模块化设计③A.文档编制B.运行维护C.测试D.验收8.软件开发中常采用的生命周期方法,由于其特征而一般称其为()。A.层次模型B.瀑布模型C.螺旋模型D.对象模型9.描述软件生存周期的瀑布模型包括计划、(A)、设计、编码、测试、维护等阶段。其中,设计阶段又可以分成(B)和(C)两个步骤。A:①需求分析②可行性研究③需求调查④问题定义B,C:①方案设计②代码设计③概要(总体)设计④数据设计⑤详细设计10.什么是软件危机?软件危机产生的原因?11.生命周期阶段的划分?每个阶段的任务?二、可行性研究1.可行性研究的任务?步骤?对于各种可能的方案,从哪几个方面进行可行性研究?参考答案:任务:在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。步骤:1.复查系统规模和目标;2.研究当前系统;3.建立新系统的高层逻辑模型;4.导出和评价各种方案;5.推荐可行方案;6.编写可行性研究报告。对于各种可能的方案,主要从以下几个方面进行可行性研究:1.经济可行性;2.技术可行性;3.法律可行性;4.运行可行性;5.开发方案可行性等。三、需求分析1.软件需求分析一般应确定的是用户对软件的()。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.DFD图B.PAD图C.IPO图D.数据字典9.进行需求分析可使用多种工具,但()是不适用的。A.数据流图B.判定表C.PAD图D.数据字典四、软件设计----包括概要设计(总体设计)和详细设计1.软件设计一般分为概要设计和详细设计,它们之间的关系是()。A.全局和局部B.抽象和具体C.总体和层次D.功能和结构2.SD方法中,一般分为总体设计和详细设计两个阶段,其中总体设计主要是建立()。A.软件结构B.软件流程C.软件模型D.软件模块3.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的()。A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法4.软件结构设计中,好的软件结构设计应该力求做到()。A.顶层扇出较少,中层扇出较高,低层模块低扇入B.顶层扇出较高,中层扇出较少,低层模块高扇入C.顶层扇出较少,中层扇出较高,低层模块高扇入D.顶层扇出较高,中层扇出较少,低层模块低扇入5.软件开发的结构化设计方法,全面指导模块划分的最重要原则应该是()。A.模块高内聚B.模块低耦合C.程序模块化D.模块独立性6.HIPO图应用于软件开发的()阶段。A.需求分析B.详细设计C.总体设计D.实现7.详细设计工具可分为三类,即图形、表格和语言工具。图形工具中,(A②)简单而应用广泛。(B①)表示法中,每个处理过程用一个盒子表示,盒子可以嵌套。(C④)可以纵横延伸,图形的空间效果好。(D)是一种设计和描述程序的语言。A-C:①N-S图②程序流程图③HIPO图④PAD图D:①C②PDL③PROLOG④PASCAL8.软件需求分析方法中,结构化分析是一种常用的方法。结构化分析产生的系统说明书是由一套分层的①、一本②、一组③及补充材料组成的。在结构化设计阶段产生的文档是④。①A.流程B.数据流图C.软件结构D.事务转换②A.结构说明B.用户需求C.数据字典D.数据流程③A.小说明B索引C模块接口D层次结构④A系统模型说明书B程序流程图C系统功能说明书D模块结构图和模块说明书9.面向数据流的软件设计方法,一般是把数据流分为()两种流,再将数据流图映射为软件结构。A.数据流与事务流B.变换流与事务流C.信息流与变换流D.交换流域数据流10.程序流程图是一种传统的程序设计表示工具,有其优点和缺点,使用该工具时应注意()。A.支持逐步求精B.考虑控制流程C.遵守结构化设计原则D.数据结构表示五、编码1.程序设计语言的选择是顺利实施编程的重要基础,评价可用语言的因素甚多,而其重要的选择依据是()。A.对语言的熟悉程序B.语言的应用领域C.数据结构的复杂度D.算法的复杂度2.下列叙述中选出五条关于好的程序设计风格的正确叙述(CGHIJ)A.尽量多用临时变量B.把常见的局部优化工作留给编译程序去做C.程序中嵌套的层数应加以限制D.程序的书写格式最好所有语句都左对齐,这样也可以节省纸张E.在主存储器能容纳得下的前提下,应使模块尽可能大,以便减少模块的个数F.模块越小,优点越明显。一般说来,模块的大小都在10行以下G.只要模块之间的接口关系不变,各模块内部实现细节的修改不会影响别的模块H.在编写程序时尽可能对程序代码进行优化I.程序中的注释并不是可有可无的J.使用可以看得出意义的标识符3.程序设计属于软件开发过程的()阶段。A.设计B.编程C.实现D.编码六、测试1.软件测试可能发现软件中的(),但不能证明软件()。A.所有错误、没有错误B.错误、没有错误C.逻辑错误、没有错误D.设计错误、没有错误2.软件测试的目的是()。A.证明软件的正确性B.找出软件系统中存在的所有错误C.证明软件系统中存在错误D.尽可能多的发现软件系统中的错误3.为提高测试效率,应该()。A.随机地选取测试数据B.在完成编码以后制定软件的测试计划C.取一切可能的数据作为测试数据D.选择发现错误可能性最大的数据作为测试数据4.黑盒测试是从(C)观点的测试,白盒测试是从(D)观点的测试。A.开发人员、管理人员B.用户、管理人员C.用户、开发人员D.开发人员5.使用白盒方法测试时确定测试数据应根据()和指定的覆盖标准。A.程序的内部逻辑B.程序的复杂程度C.使用说明书D.程序的功能6.白盒测试方法重视()的度量。A.测试覆盖率B.测试数据多少C.测试费用D.测试周期7.黑盒测试法根据()设计测试用例。A.程序调用规则B.模块间的逻辑关系C.软件要完成的功能D.数据结构8.单元测试又称(B),一般采用(D)测试。A.集成测试B.模块测试C.黑盒法D.白盒法七、维护1.软件维护指的是()。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.()阶段是软件生命周期中花费最多、持续时间最长的阶段。BA需求分析B维护C设计D测试7.注释是提高程序可读性的有效手段,好的程序注释占到程序总量的()A1/6B1/5C1/4D1/3八、简述软件危机产生的原因。参考答案:(1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。致使经费预算常常突破,进度计划无法遵循,开发完成的期限一拖再拖。(2)软件需求,在开发的初期阶段提得不够明确,或是未能得到确切的表达。开发工作开始后,软件人员和用户又未能及时交换意见,造成开发后期矛盾的集中暴露。(3)开发过程没有统一的、公认的方法论和规范指导,参加的人员各行其事。加之设计和实现过程的资料很不完整;或忽视了每个人工作与其他人的接口,使得软件很难维护。(4)未能在测试阶段充分做好检测工作,提交用户的软件质量差,在运行中暴露出大量的问题。九、简述软件生命周期阶段的划分?每个阶段的主要任务?参考答案:生命周期划分为六个阶段,分别为计划、需求分析、软件设计(包括概要设计和详细设计)、编码、软件测试和运行/维护。各个阶段的主要任务分别为:(1)计划阶段首先确定要解决的问题是什么,通过问题定义阶段的工作,系统分析员应该提出关于问题的性质、规模和工程目标的书面报告,之后进行可行性研究,应该决定该问题是否存在一个可行的解决办法,是否值得去解。(2)需求分析阶段应该深入具体地了解用户的需求,在所要开发的系统必须做什么这个问题上和用户取得一致的看法,确定系统的功能要求和运行要求,安全要求等非功能性要求,给出目标系统的逻辑模型。(3)软件设计阶段分为a.概要设计阶段确定系统的物理方案,并由需求分析阶段得到的逻辑模型导出软件结构,确定组成系统的模块及模块之间的关系;b.详细设计阶段给出系统的蓝图,设计出每一个模块的详细规格说明。(4)编码阶段将详细设计的结果转换成计算机可以接受的程序代码。(5)测试阶段主要在软件投入使用之前,尽可能多的发现软件的错误,并且要按照规格说明书的规定由用户对目标系统进行验收。(6)运行/维护阶段通过各种必要的维护活动使系统持久地满足用户的需求。
本文标题:软件工程作业及参考答案(最新版)
链接地址:https://www.777doc.com/doc-4551317 .html