一、一、单项选择题(在每小题的四个备选答案中,选出一个正确的答得分案序号填在括号内。每小题1分,共15分1.为了解决软件危机,人们提出了用(B的原理来设计软件,这是软件工程诞生的基础。A.运筹学B.工程学C.软件学D.管理学2.由于计算机软件开发的成本高、质量低、难控制、可靠性差、生产率低而引发了(B。A.软件投机B.软件危机C.软件工程D.软件产生3.划分软件生存周期的阶段时所应遵循的基本原则是(B。A.各阶段的任务尽可能相关性B.各阶段的任务尽可能相对独立C.各阶段的任务在时间上连续D.各阶段的任务在时间上相对独立4.需求分析是由分析员了解用户的要求,认真细致地调研分析,最终应建立目标系统的逻辑模型并写出(A。A.数据定义B.数据库设计C.数据维护D.数据结构实现5.结构化设计方法是面向(C的设计方法。A.过程B.对象C.数据流D.数据结构6.在结构化系统分析中,判定表和判定树常用于表达数据流图中的(A。A.加工B.数据流C.数据存储D.外部项7.一个模块直接控制(调用的下层模块的数目称为模块的(B。A.扇入数B.扇出数C.宽度D.作用域8.软件的(A设计又称为总体设计,其主要任务是建立软件系统的总体结构。A.概要B.抽象C.逻辑D.规划9.如果(A,则称该模块具有功能内聚。A.模块包括单一功能B.模块包括若干功能,但所有功能相互紧密相关C.每个模块有单入口、单出口D.模块中每个处理成分对应一个功能,它们紧密结合10.结构化设计采用模块化方法的主要出发点是(D。A.增加内聚性B.减少耦合度C.提高有效性D.降低复杂度11.为了提高测试的效率,应该(D。A.随机地选取测试数据B.取一切可能的输入数据作为测试数据库C.在完成编码后制定软件的测试计划D.选择发现错误可能性大的数据作为测试数据12.通过对软件的测试,可以证明的是(C。A.软件的正确性B.错误不存在C.错误存在D.软件不含有隐患13.某模块的输入数据为某工厂中一个车间的生产产量表,通过该模块可以计算出车间中生产工人的平均产量、统计产量前10名的人员名单,从内聚度来看,该模块属于(B。A.逻辑内聚B.通信内聚C.顺序内聚D.功能内聚15.软件维护,可按不同的维护目的而分类,为了适应硬件环境或软件环境的变更对软件作修改是(B。A.纠正性维护B.适应性维护C.完善性维护D.预防性维护二、三、简答题(每题5分,共25分得分1.什么叫软件危机?该如何应对软件危机的出现?答:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。(3分解决的方法是,使用软件工具,应用软件工程技术,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本、改进软件产品质量、提高软件生产率水平,从而从根本上解决软件危机。(2分2.请按时间顺序,列举软件生命周期中的各项基本活动。答:软件生存周期包括:可行性分析与开发计划、需求分析、设计(概要设计和详细设计、编码测试、运行与维护等活动。(列出全部活动得5分,缺1项活动扣1分3.软件测试是否一定要在编码之后进行?为什么?答:不一定。(2分静态测试方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。因此静态测试方法就可以在编码之前进行。(3分4.使用什么策略,可以减少完善性维护?答:使用新技术,包括数据库管理系统、软件开发环境、程序自动生成系统、较高级(第四代的语言,可减少完善性的维护。(1分可把因环境变化而必须修改的程序局部于某些程序模块之中,也可以减少完善性的维护。(1分使用内部程序列表、外部文件,以及处理的例行程序包,可为维护时修改程序提供方便。(1分此外,建立软件系统的原型,把它在实际系统开发之前提供给用户使用。用户通过研究原型,进一步完善他们的功能要求,就可以减少以后完善性维护的需要。(2分5.在NATO关于软件工程的定义中提到:“软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它”。如何理解上述意思。答:从软件工程的定义可以看出其目标就是按照工程化的思想开发、管理和维护软件,以达到提高软件质量的同时,减低开发软件的成本。具体地说:要求我们为软件的开发提供科学的开发模型和设计方法,提高软件开发工具的质量,重视软件的项目管理,这样才可以在更低的成本下开发出高质量的软件。(5分,本答案为参考答案,答对意思即可三、应用分析题(共60分1.仓库管理系统有如下角色和功能:(1仓库管理员完成货物的入库和出库操作,入库是将指定数量的货物存入仓库(包括:货物名称、数量信息;出库是将指定数量的货物从仓库中取出,在取出货物时需要对仓库中是否有足够的货物进行判断,再决定是否执行该操作;(2部门经理完成对货物的查询工作,在货物查询过程中,是根据输入的货物名称进行的,输入货物名称后将显示仓库中所该货物的库存量。试根据要求画出该系统的数据流图,不必分层。(15分仓库管理员入库出库审查入库单出库单入库文件出库文件库存文件入库数据出库请求入库数据出库数据查询部门经理查询单查询结果库存数据拒绝出库出库出库数据2.请根据以下描述,设计UML类图,并使用重数说明数据实体之间的具体关系:(12分(1每个出版社都经常联系一些作者;(2作者可能会写出著作;(3著作的出版权只能授予一个出版社;(4每本著作有一个封面、一个目录、一个前言、若干章、每章有若干节;出版作者著作封面目录前言章*1..*11..*1*11111*节1*3.请结合一下关于电梯的描述,为电梯的运行状态建模。(10分得分(2按用户上楼或是下楼的要求,电梯可以向上或是向下移动;(3到达目的层后,电梯空闲;(4空闲超时后,电梯回到第一层。位于第一层向上移动向下移动空闲上楼到达下楼上楼到达超时4.一元二次方程式AX2+BX+C=0的求根程序有以下功能:①输入A、B、C3个系数;②输出有关根的性质的信息,包括两个相等或不等的实根,两个大小相等符号相反的实根,仅有一个实根,或有两个虚根等;③打印根的数值。试用功能(黑盒测试方法设计出程序的测试用例。(15分根据一元二次方程式的求根公式:aacbbx242-±-=(条件:0≠a且042-acb;结果:两个不等实根abxx221-==(条件:0≠a且042=-acb;结果:两个相等实根abacibx242-±-=(条件:0≠a且042-acb;结果:两个虚根bcx-=(条件:0=a且0≠b;结果:仅有一个实根方程无意义(条件:0=a且0=b;结果:方程无意义使用等价类法设计测试用例。有效等价类(输入三个数值系数无效等价类0≠a且042-acb;两个不等实根①输入不足3个系数⑤0≠a且042=-acb;两个相等实根②输入超过3个系数⑥0≠a且042-acb;两个虚根③输入的3个系数中包含非数字字符:A中含有非数字字符⑦B中含有非数字字符⑧C中含有非数字字符⑨0=a且0≠b;仅有一个实根④0=a且0=b⑩序号对应等价类测试数据期望结果1①-1,0,4x1=2;x2=-22②1,4,4x1=x2=-23③1,0,4x1=2i;x2=-2i4④0,2,4x=25⑤0,2提示系数不足6⑥0,2,4,0提示系数过多7⑦A,2,4提示有非数值系统8⑧0,A,4提示有非数值系统9⑨0,2,A提示有非数值系统10⑩0,0,4提示方程无意义5.请根据以下流程图:(8分(1画出流图。(2计算其环行复杂度。13245678910环形复杂度(画出节点1时V=E-N+2=14–10+2=6环形复杂度(不画出节点1时V=E-N+2=13–9+2=6四、一、单项选择题(在每小题的四个备选答案中,选出一个正确的答得分案序号填在括号内。每小题1分,共15分1.下列做法中,对于发挥集体智慧最有利的是(A。A.设计评审B.模块化C.主程序员制D.进度控制2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作(B。A.软件投机B.软件危机C.软件工程D.软件产生3.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的(A。A.总貌B.细节C.抽象D.软件的作者4.成功的测试是指(B。A.运行测试实例后未发现错误项B.发现程序的错误C.证明程序正确D.改正程序的错误5.软件测试中,白盒方法是通过分析程序的(B来设计测试实例的方法。A.应用范围B.内部逻辑C.功能D.数据结构6.采用(D且编写程序,可提高程序的可移植性。A.机器语言B.宏指令C.汇编语言D.高级语言7.一个模块直接控制(调用的下层模块的数目称为模块的(B。A.扇入数B.扇出数C.宽度D.作用域8.结构化设计思想的核心是要求程序只由顺序、循环和(A三种结构组成。A.分支B.抽象C.单入口D.规划9.在软件工程中,高质量的文档标准是完整性、一致性和(C。A.统一性B.安全性C.无二义性D.组合性10.结构化设计采用模块化方法的主要出发点是(D。A.增加内聚性B.减少耦合度C.提高有效性D.降低复杂度11.在软件研究过程中,CASE是(D。A.指计算机辅助系统工程B.CAD和CAM技术的发展动力C.正在实验室用的工具D.指计算机辅助软件工程12.通过对软件的测试,可以证明的是(C。A.软件的正确性B.错误不存在C.错误存在D.软件不含有隐患13.某模块的输入数据为某工厂中一个车间的生产产量表,通过该模块可以计算出车间中生产工人的平均产量、统计产量前10名的人员名单,从内聚度来看,该模块属于(B。A.逻辑内聚B.通信内聚C.顺序内聚D.功能内聚14.不适于作为数据流图处理(加工框名称的是(B。A.人工校核工资数据B.工资支票数据C.打印工资支票D.计算职工工资15.在维护请求且进行的维护过程中,应先(A,然后对维护要求进行评估并分别处理。五、三、简答题(每题5分,共25分1.什么是软件工程?这门学科的目的是什么?答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。(3分软件工程的目标是生产具有正确性、可用性以及开销合宜的软件产品。(2分2.请简述模块独立性的度量方法。答:模块独立性可以从两个方面来度量,即模块本身的内聚性和模块之间的耦合度。(3分内聚性越强,模块独立性越高(1分;耦合度越低,模块独立性也越高(1分。3.如何理解“软件测试应该贯穿整个软件生命周期”这一说法?答:完整的软件测试应该贯穿整个软件生命周期,这一说法有两方面的含义:(1分(1软件开发不同阶段都有软件测试工作;(2分(2软件测试工作的各个步骤分布在整个软件生存周期中。(2分4.软件维护就是改正软件中的错误吗?为什么?答:软件维护是指在软件的运行/维护阶段由软件厂商向客户所提供的服务工作,不完全是修改软件中的错误。(3分软件维护除了改正性的维护以外,还有适应性、完善性以及预防性的维护。(2分5.在NATO关于软件工程的定义中提到:“软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它”。如何理解上述意思。答:从软件工程的定义可以看出其目标就是按照工程化的思想开发、管理和维护软件,以达到提高软件质量的同时,减低开发软件的成本。具体地说:要求我们为软件的开发提供科学的开发模型和设计方法,提高软件开发工具的质量,重视软件的项目管理,这样才可以在更低的成本下开发出高质量的软件。(5分,本答案为参考答案,答对意思即可六、应用分析题(共60分1.酒店客房管理系统有如下角色和功能:(1顾客通过提供相关信息,向酒店申请入住,如果申请通过,则办理入住客房,否则将遭到拒绝;(2顾客在离开酒店前需要退房,退房的同时结算房费;(3管理员可以通过输入查询条件,查询酒店里客房的入住情况。