《2022年软件工程试卷及参考答案 .pdf》由会员分享,可在线阅读,更多相关《2022年软件工程试卷及参考答案 .pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 试卷 (一) 一、单项选择题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、因计算机硬件和软件环境的变化而作出的修改软件的过程
2、称为( ) A、纠正性维护B、适应性维护 C 、完善性维护D、预防性维护7、只有单重继承的类层次结构是( )层次结构。A、网状型B、星型C、树型D、环型8、下列属于维护阶段的文档是( ) A、软件规格说明B、用户操作手册 C 、软件问题报告 D、 软件测试分析报告9、不适合作为科学工程计算的语言是( ) A、Pascal B、 C C、Fortran D、 Prolog 10、研究开发所需要的成本和资源是属于可行性研究中的( )研究的一方面。 A. 技术可行性B. 经济可行性 C. 社会可行性D. 法律可行性11、中级结构性成本模型COCOMO是一个 ( ) A、静态单变量模型 B、动态单变量
3、模型 C 、静态多变量模型 D、动态多变量模型12、PAD图为()提供了有力的工具。A、系统分析 B、软件的自动化生成 C、自动分析数据 D、测试软件精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 16 页2 13、下列关于JSP方法不正确的说法是( ) A、JSP方法主要用于规模不大的数据处理系统B、JSP方法不明确的划分软件概要设计和详细设计的两个阶段C、JSP方法适用于输入数据和输出数据之间有对应关系的问题求解 D 、JSP 方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。因此它只适用于详细设计阶段14、在详细设计
4、阶段,经常采用的工具有()A、PAD B、 SA C、 SC D、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、
5、概要设计说明书 D 、操作手册20、程序的三种基本控制结构是() A、过程、子程序和分程序 B 、顺序、选择和重复 C 、递归、堆栈和队列 D、调用、返回和转移21、软件生存周期中时间最长的是()阶段。A、总体设计 B、需求分析 C、软件测试 D、软件维护22、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工, 所以()的编制是很重要的。A、需求说明 B、概要说明 C、软件文档 D、测试计划23、软件部件的内部实现与外部可访问性的分离,是指软件的()。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 16 页3 A、继
6、承性 B、共享性 C、封装性 D、抽象性24、 单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现()的错误。A、接口错误 B、编码错误 C、性能、质量不合要求 D、功能错误25、软件工程管理对软件项目的开发管理,即对整个软件()的一切活动的管理。A、软件项目 B、生存期 C、软件开发计划 D、软件开发二、名词解释1、数据流图2、软件维护3、软件测试4、程序的可维护性 5 、软件生存周期三、简答题1、简述软件结构设计的启发式原则。2、简述结构化程序设计方法的基本要点3、简述需求分析的原则。4、简述软件生命周期开发方法的基本过程及每个阶段的任
7、务。四、论述题1、你认为“软件就是程序”这一个观点正确吗?如果不正确,请批驳之。2、试论软件界面友好设计的重要性。3、试述软件开发工具对软件开发的影响。五、应用设计题1、某图书出版公司希望每月定期向固定客户邮寄最近一个月的图书分类目录。客户可在其收到的目录上圈定自己要买的书。出版公司按照客户的反馈信息邮寄图书。要求为出版公司设计软件,以实现以下功能:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 16 页4 (1)自动生成图书分类目录;(2)自动处理客户反馈信息。试用面向数据流的方法给出系统的数据流图,并设计出软件结构图。2、现为某银行
8、开发一个计算机储蓄管理系统。要求系统能够完成:将储户填写的存款单或取款单输入系统,如果是存款, 系统记录存款人姓名、住址、 存款类型、 存款日期、 利率等信息,同时要求储户输入口令,并打印出存款单给储户;如果是取款,则系统首先要求储户输入口令,储户身份确认后,系统计算结算清单给储户,结算清单中的信息包括本息金额和利息金额。试根据要求画出该系统的数据流程图。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 16 页5 试卷 (二) 一、单项选择题1、瀑布模型本质上是一种()A、线性顺序模型 B、顺序迭代模型 C 、线性迭代模型 D、及早见产
9、品模型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、若有一个计算类型的程序,它的输入
10、量只有一个X,其范围是-1.0 ,1.0 ,现从输入的角度考虑一组测试用例:-1.001 ,-1.0 , 1.0 , 1.001 。设计这组测试用例的方法是( ) A 、条件覆盖法B、等价分类法 C、边界值分析法D、错误推测法8、软件详细设计主要采用的方法是( ) A 、模块设计B、结构化设计 C 、 PDL语言D、结构化程序设计9、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( ) A. 软件工程B. 软件周期 C. 软件危机D. 软件产生10、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作()A、需求分析 B、概要设计 C、详细设计 D、软件维护1
11、1、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是()A、探索型模型 B、演化型模型C、实验型模型D、提交型模型精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 16 页6 12、程序设计语言的工程特性之一为( ) A、软件的可重用性 B 、数据结构的描述性 C、抽象类型的描述性 D 、数据库的易操作性13、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( ) A.可用性B.可靠性 C.正确性D.完整性14、模块设计中,最不希望的内聚是()A、功能内聚 B、通信内聚 C、过程内聚 D、偶然内
12、聚15、实施快速原型模型方法开发软件的关键在于()A、CASE 工具的支持B、如何开发演化型模型C、项目主管的支持D、开发人员的素质16、程序流程图(框图)中的箭头代表( ) 。A.数据流 B.控制流 C.调用关系 D. 组成关系17、一个只有顺序结构的程序,其环形复杂度是( ) 。A.0 B.1 C.3 D. 不确定的18、可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因此必须给出什么样的回答。()A确定 B行或不行 C正确 D无二义19、结构化程序设计主要强调的是()A、程序的规模 B、程序的效率 C、程序设计语言的先进性 D 、程序易读性20、对
13、象实现了数据和操作的结合,使数据和操作()于对象的统一体中。 A、结合 B、隐藏 C、封装 D、抽象21、软件概要设计结束后得到()A、初始化的软件结构图 B、优化后的软件结构图C、模块的接口图和详细算法 D、程序编码22、软件需求是度量软件质量的基础,不符合需求的软件就不具备()A、软件的特点 B、质量 C、软件产品 D、功能23、软件特性中,程序能够满足规格说明和完成用户业务目标的程度,称作()A、正确性 B、移植性 C、可靠性 D、完整性精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 16 页7 24、为使得开发人员对软件产品的各
14、个阶段工作都进行周密的思考,从而减少返工, 所以()的编制是很重要的。A、需求说明 B、概要说明 C、软件文档 D、测试计划25、系统因错误而发生故障时,仍然能在一定程度上完成预期的功能,则把该软件称为()。A、软件容错 B、系统软件 C、测试软件 D、恢复测试二、名词解释1、程序的可维护性2、容错技术3、结构化维护 4 、软件生存周期5、模块独立性三、简答题1、简述软件测试的任务、目的与类型。2、简述软件工程目标和面临的主要问题。3、简述软件开发过程、每个里程碑的提交物。4、简述软件工程的七条基本原理。四、论述题1、试论面向对象方法较之结构化方法的先进性。2、试述软件开发工具对软件开发的影响
15、。3、试论文档在软件开发过程中的重要性。五、应用设计题1、一个软件公司有许多部门,分为开发部门和管理部门两种。每个开发部门开发多个软件产品。每个部门由部门名字唯一确定。该公司有许多员工,员工分为经理、 工作人员和开发人员。开发部门有经理和开发人员,管理部门有经理和工作人员。每个开发人员可参加多个开发项目,精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 16 页8 每个开发项目需要多个开发人员,开发人员使用语言开发项目。每位经理可主持多个开发项目。请建立该软件公司的对象模型。2、某考务中心准备开发一个成人自学考试系统考务管理系统,经过调研
16、,该系统有如下的功能:( 1)对考生填写的报名单进行审查,对合格的考生,编好准考证发给考生,汇总后的报名单送给阅卷站;( 2)给合格的考生制作考试通知单,将考试科目、时间、地点安排告诉考生;( 3)对阅卷站送来的成绩进行登记,按当年标准审查单科合格者,并发成绩单,对所考专业各科成绩全部合格者发给大专毕业证书;( 4)对成绩进行分类(按地区、年龄、职业、专业、科目等分类)产生相应统计表;( 5)查询:考生可按准考证号随时查询自己的各科成绩。试根据要求画出该系统的数据流程图。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 16 页9 试卷(
17、一)参考答案一、1d 2c 3a 4c 5 c 6b 7c 8c 9 d 10B 11 a 12b 13B 14 a 15c 16b 17d 18d 19c 20. b 21. d 22. c 23. c 24. c 25. b 二、1数据流图:是描述数据处理过程的工具。它从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。2软件维护是软件生命周期的最后一个阶段,是在软件已经交付给用户使用之后,为了改正软件错误或满足新的需要而修改软件的过程。它包括四种类型的维护活动:改正型维护、 适应型维护、预防型维护和完善型维护。3软件测试是一个为了寻找软件错误而运行程序的过程。目的就
18、是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。4程序的可维护性:为满足用户新的需求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。5. 软件生存周期是指从提出软件开发要求开始,直到该软件报废不用为止的整个时期。这个时期又分为若干个阶段,对软件生产的管理和进度控制有重要作用,使软件的开发有相应的模式、流程、工序和步骤。三、1(1)改进软件结构提高模块独立性;(2)模块规模要适中;(3)深度、宽度、扇出和扇入都应适当;(4)模块的作用域应该在控制域内
19、;(5)力争降低模块接口的复杂度;(6)设计单入口单出口的模块;(8)模块功能应该可以预测。2(1)采用自顶向下,逐步求精的程序设计方法。(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环(3)采用主程序员组的组织形式。(4)采用单入口单出口的模块形式。3需求分析阶段的基本过程包括四个方面:对问题的识别,分析与综合,制定规格说明以及评审。 (1)问题识别, 系统分析人员要研究计划阶段产生的可行性分析报告和软件项目实施计精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 16 页10 划。然后进行功能需求、性能需求、环境需求、可靠性需
20、求安全保密需求、用户界面需求、资源使用需求等方面的工作。 (2)分析与综合,分析员需从数据流和数据结构出发,逐步细化所有的软件功能, 找出系统各元素之间的联系、接口特性和设计上的限制,分析他们是否满足功能需求,是否合理。(3)制定规格说明,编写需求分析的文档。(4)需求分析评审。为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格执行。4、简述软件生命周期开发方法的基本过程及每个阶段的任务。(1)问题定义阶段,尽可能清楚地描述问题,搞清楚要解决的问题是什么;(2)可行性研究阶段,主要是确定待解的问题是否有可行的解决办法。需要做经济可行性分析、技术可行性分析、操作可行性分析和法律可
21、行性分析;(3)需求分析阶段,主要是确定目标系统必须具备的功能。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。(4)总体设计阶段,从总体上解决问题,确定可实现的方案,并设计出软件的层次结构图;(5)详细设计,把解法具体化,确定如何具体地实现这个系统。针对每个模块设计相应的算法;(6)编码和单元测试阶段,把详细设计的结果翻译成选定的语言所写的程序,并对每个模块进行单元测试。(7)测试阶段,系统地设计测试用例,尽可能多地发现软件中的错误,并调试改正软件中的错误;(8)软件维护阶段,主要目的是通过修改软件使所开发的软件能够持久地满足用户的需要。四、 1. 请从以下几个方面结合自己的经验实例
22、加以论述。软件就是程序的观点是不正确的,因为软件等于程序加文档加数据。( 1)文档是软件的一个非常重要的组成部分,在软件的开发过程中起着非常重要的作用。( 2)在软件开发的每一个阶段都应有相应的文档。它是开发人员与用户以及开发人员与项目管理人员之间交流的媒介( 3)文档是软件在不同阶段的表现形式。( 4)程序与文档必须一致,文档才有价值。( 5)文档质量直接决定软件质量的高低。( 6)文档也是软件测试和维护的依据。在没有文档或文档不全的情况下对大型软件进行测试与维护是不可思议的事情。( 7)文档是软件可重用的依据。2最终用户能够看到的是软件界面,软件界面是用户与计算机交互的接口。如果界面不友好
23、,用户不愿意使用,那么软件的功能再强,也是没有用的。这就要求软件界面应以用户为中心进行设计。设计应遵循以下的原则:(1)一致性,菜单选择、命令输入、数据显示等功能应使用一致的风格。( 2)提供有意义的反馈。 (3)允许取消大多数操作。 ( 4)减少在动作间必须记忆的信息量。(5)在对话、移动和思考中提高效率。(6)允许错误。(7)按功能对动作分类,并据此安排屏幕布局。 ( 8)提供上下文相关的帮组机制。( 9)命令用简单的动词或动词短语命名。只有用户愿意使用的软件才是好的软件,所以软件界面设计的好坏直接影响软件的质量。精选学习资料 - - - - - - - - - 名师归纳总结 - - -
24、- - - -第 10 页,共 16 页11 3软件开发工具应用于软件开发可以大幅度地提高软件生产率,提高软件质量。方便软件管理,便于软件重用,减少低级重复劳动,支持快速原型设计,便于用户和开发人员的交流。降低大型复杂软件的开发难度。五、 1、图书出版公司新书录入修订书库定书信息录入读者信息录入图书目录生成显示器打印书籍信息定书信息读者信息书籍信息书籍信息书籍信息读者信息读者信息读者文件定书信息书库清单书库文件定书信息书籍信息书籍管理系统数据录入新书录入目录打印读者录入图书目录生成查询显示2、精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页
25、,共 16 页12 检验存 / 取款单存款处理计算结算清单储户储户储户取款处理接受口令打印存款单原始存款单取款单口令存款单结算清单取款单储户帐户帐户合法帐户取款信息口令校验银行利率取款口令口令帐户帐户原始存款单存款帐户打印结算清单结算清单精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 16 页13 试卷(二)参考答案一、1c 2b 3c 4a 5. b 6 d 7c 8c 9 B 10.c 11a 12c 13a 14.c 15D 16a 17b 18b 19 d 20 c 21. b 22. b 23. a 24. c 25.a 二
26、、1程序的可维护性:为满足用户新的需求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。2容错技术:对那些无法避开的差错,使其影响减少至最小的技术。也就是说,当错误发生时,尽可能地不影响其它的系统元素,或是把用户的影响限制在某些容许的范围内。3. 结构化维护 : 如果维护工作是从评价完整的软件配置开始入手,确定软件的重要结构特点、性能特点以及接口特点;估量要求的改动将带来的影响,并且计划实施途径。然后首先修改设计并且对所做的修改进行仔细审查。接下来编写相应的源程序代码;使用在测试说明书中包含的信息进行回归测试;最后,把修改后的软件再次交付
27、使用。4. 软件生存周期是指从提出软件开发要求开始,直到该软件报废不用为止的整个时期。这个时期又分为若干个阶段,对软件生产的管理和进度控制有重要作用,使软件的开发有相应的模式、流程、工序和步骤。5. 模块独立性 : 是模块化、抽象和信息隐蔽的直接产物。每个模块只要完成独立的功能,与其它模块联系越少,则模块的独立性就越强。通过模块与模块之间的耦合性和模块内部的内聚性来衡量模块的独立性。三、1软件测试是一个为了寻找软件错误而运行程序的过程。目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件测试主要分为
28、白盒测试和黑盒测试两大类。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 16 页14 2软件工程的目标就是建造高质量的软件。但是目前的软件开发面临着许多问题:(1)对软件开发成本和进度的估计常常很不准确。(2)用户常对“已完成的”软件系统不满意。(3)软件产品的质量往往靠不住。(4)软件常常很难维护。(5)软件常常缺乏适当的文档资料。(6)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。(7)软件成本在计算机系统总成本中所占的比例逐年上升。3软件开发的基本过程:(1)可行性研究, 做初步的需求分析工作,决定项目可行
29、与否(2)软件需求分析,软件工程师必须了解软件的信息领域,以及需求的功能、行为、性能和接口。系统需求和软件需求均需文档化,并与用户一起复审。并提交需求分析报告。(3)设计,包括概要设计和详细设计,软件设计是一个多步骤的过程,主要是对软件的数据结构、软件体系结构、界面表示及过程细节进行设计。设计过程将需求转换为软件表示,在编码之前可以评估其质量,所有设计均要文档化,它是软件配置的重要组成部分,经复审后提交相应的概要设计和详细设计报告。( 4)编码,把设计转化为机器可执行的程序。提交源程序清单。(5)测试,提交测试报告。( 6)维护,提交维护报告。4、简述软件工程的七条基本原理。(1)用分阶段的生
30、命的生命周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)结果应能清楚地审查;(6)开发小组的人员应该少而精;(7)承认不断改进软件工程实践的必要性。【评分标准】答出任 5 条可得 5 分,每少答一条扣1 分。四、1 (1)面向对象方法更符合人的思维方式,更容易抓住问题的主干。( 2)所开发出的软件更符合“高内聚、松耦合”的原则。所设计出的类模块独立性更强。( 3)更适合于开发大型的软件,更适合于快速原型法开发方法。使软件生产率大大提高。( 4)使用面向对象技术开发出的软件的可测试性和可维护性都较强。( 5)面向对象方法和技术能够贯彻软件开发
31、的全过程。从分析、设计、编码到测试维护,采用面向对象的方法不存在语义断层,使人的思维连续, 减少各阶段之间所采用方法的不向融性。( 6)使得软件的可重用性大幅度提高。2软件开发工具应用于软件开发可以大幅度地提高软件生产率,提高软件质量。方便软件管理,便于软件重用,减少低级重复劳动,支持快速原型设计,便于用户和开发人员的交流。降低大型复杂软件的开发难度。3、试论文档在软件开发过程中的重要性。论述要点:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 16 页15 在软件的生产过程中,总是伴随着大量的信息要记录、要使用。因此,软件文档在软件
32、产品的开发过程中起着举足轻重的作用。()提高软件开发过程的能见度。把开发过程中发生的事件以某种可阅读的形式记录在文档中,管理人员可把这些记录下来的材料作为检查软件开发进度和开发质量的依据,实现对软件开发的工程管理。()提高开发效率。软件文档的编制,使得开发人员对各个阶段的工作都进行周密思考、全盘权衡、 从而减少返工。 并且可在开发早期发现错误和不一致性,便于及时纠正。()作为软件开发人员在一定阶段的工作成果和结束标志。()记录开发过程中的有关信息,便于协调以后的软件、开发、使用和维护。()提供对软件的运行、维护和培训的有关信息,便于开发人员之间的协作、交流和了解,使软件开发活动更科学、更有成效
33、。便于潜在用户了解软件的功能、性能等各项指标。五、1、软件公司部门软件产品员工开发部门管理部门语言开发部门开发人员工作人员经理部门名1+ 开发有1+ 1+ 有 1+ 1+ 有 1+ 有 1+ 2、精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 16 页16 审查是否新生汇总查询考生阅卷站考生管理人员分类统计登录成绩文凭审查报名单合格单总报名单成绩单毕业证与成绩单准考证号本次考试名单考生记录合格新生统计表本次成绩成绩标准考试安排考场文件考生通知单截止日期精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 16 页