一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备用选项中只有一个符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1、软件工程的出现主要是由于【 C 】
A.方法学的影响 B.其他工程科学的影响 C软件危机的出现 D.计算机的发展
2、软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为【A】
A瀑布模型 B.对象模型 C.螺旋模型 D.层次模型
3、在软件需求分析和设计过程中,其分析与设计对象可归结成两个主要的对象,即数据和程序,按一般实施的原则,对二者的处理应该【A 】
A.先数据后程序 B.与顺序无关 C.先程序后数据 D.可同时进行
4、模块的独立性是由内聚性和耦合性来度量的,其中内聚性是【B 】
A模块间的联系程度
B.模块的功能强度
C.信息隐蔽程度
D.接口的复杂程度
5、20世纪60年代后期,由Djkstra提出的,用来增加程序设计的效率和质量的方法是【D 】
A.模块化程序设计
B.并行化程序设计
C.标准化程序设计
D.结构化程序设计
6、序言性注释的主要内容不包括【B】
A.模块的接口 B.数据的状态 C.模块的功能 D.数据的描述
7、提高程序效率的根本途径并非在于【D】
A.选择良好的设计方法
B.选择良好的数据结构
C.选择良好的算法
D.对程序语句做调整
8、软件生命周期的最后的一个阶段是【 B 】
A.书写软件文档
B.软件维护
C,稳定性测试
D.书写详细用户说明
9、系统测试人员与系统开发员需要通过文档进行沟通,系统测试人员应根据一系列文档对系统进行测试,然后将工作结果撰写成【 D 】交给系统开发人员。
A系统开发合同
B.系统设计说明书
C测试计划
D.系统测试报告
10、软件维护工作的最主要部分是【 C 】
A.改正性维护
B.适应性维护
C.完善性维护
D.预防性维护
二、填空题(本大题共10空,每空2分,共20分) |
1、软件测试通常可分为单元测试、集成测试、确认测试和系统测试,其中确认测试主要用于发现 (44) 阶段的错误。在集成测试时,通常可采用自顶向下增殖式集成和自底向上增殖式集成。在自底向上增殖式集成时,对每个被集成的模块 (45) 。对那些为众多用户开发的软件(如操作系统、编译程序),通常还要进行α测试和β测试,以发现可能只有最终用户才能发现的错误。其中,α测试是指晕终用户在 (46) 的情况下所进行的测试,β测试是指最终用户在 (47) 的情况下所进行的测试。在软件维护阶段,当修改软件后,除了进行常规的测试外,还应进行 (48) 测试。
供选择的答案:
A:
①需求分析 ②概要设计 ③详细设计④编码
В:
- 不必设计驱动模块和桩(stub)模块
- 不必设计驱动模块,但要设计桩模块
- 要设计驱动模块,但不必设计桩模块
- 要设计驱动模块和桩模块
C. D:
- 开发环境下,开发人员不在场
- 开发环境下,开发人员在场
- 用户的实际使用环境下,开发人员不在场
- 用户的实际使用环境下,开发人员在场
E:
①恢复②强度⑧安装 ④回归
2、软件设计中划分模块的一个准则是【(1)C】两个模块之间的耦合方式中,【(2)D】耦合的耦合度最高,【(3)B】耦合的耦合度最低。一个模块内部的内聚种类中,【(4)C】内聚的内聚度最高,【(5)A】内聚的内聚度最低。
(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.过程
三,判断题(本大题共10小题,每小题1分,共10分) |
1、尽可能使用高级语言编写程序。(✅)
2、大多数软件产品在其生命周期中不需要增强功能。(❌)
3、软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。(❌)
4、在程序设计中应尽可能对程序代码进行优化。(❌)
5、好的测试是用少量测试用例运行程序,发现被测程序尽可能多的错误。(✅)
6、好的测试是用少量测试用例运行程序,发现被测程序尽可能多的错误。(✅)
7、测试用例是测试执行后写的(❌)
8、软件的维护成本通常比开发成本低。(❌)
9、由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。(❌)
10、白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。(✅)
四、简答论述题(本大题共3小题,每小题10分,共30分)
- 什么是对象?它与传统的数据有何异同?
-
答:对象是用面向对象方法学开发软件时对客观世界实体的抽象,它是由描述实体属性的数据及可以对这些数据施加的所有操作封装在一起构成的统一体。传统的数据是用传统方法学开发软件时对客观世界实体的抽象,但是,这种抽象是不全面的:数据只能描述实体的静态属性,不能描述实体的动态行为。必须从外界对数据施加操作,才能改变数据实现实体应有的行为。
对象与传统数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体。必须发消息请求对象主动地执行它的某些操作,处理它的私有数据,而不能直接从外界对它的私有数据进行操作。
- 可行性研究的目的是什么?简述典型的可行性研究过程的步骤?
-
答:可行性研究的目的是确定问题是否值得去解决。
典型的可行性研究过程有下列一些步骤:
-
(1)复查系统规模和目标
-
(2)研究目前正在使用的系统
-
(3)导出新系统的高层逻辑模型
-
(4)进一步定义问题
-
(5)导出和评价供选择的解法
-
(6)推荐行动方针
-
(7)草拟开发计划
-
(8)书写文档提交审查
- 代码重构与正向工程有何相同之处?有何不同之处?
-
答:
-
代码重构和正向工程都需要重新设计数据结构和算法,并且需要重新编写程序代码,这些是代码重构和正向工程相同的地方。
通常,代码重构并不修改程序的体系结构,它只修改某些模块的设计细节和模块中使用的局部数据结构,并重新编写这些模块的代码。如果修改的范围扩展到模块边界之外并涉及程序的体系结构,则代码重构变成了正向工程。
五、、应用设计题(本大题共2小题,每小题10分,共20分)
1、请画出下述系统的E-R图,并注明属性和联系类型。
设有商店和顾客两个实体,“商店”有属性:商店编号、商店名、地址、电话,“顾客”有属性:顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。
2、请建立下述的的图书馆馆藏出版物的对象模型
一家图书馆藏有书籍、杂志、小册子、电影录像带、音乐CD、录音图书磁带和报纸等出版物,供读者借阅。这些出版物具有出版物名、出版者、获得日期、目录编号、书架位置、借出状态和借出限制等公共属性,以及借出、收回等公共服务。此外这些出版物还存在特有属性,如:书籍有作者属性、杂志有日期属性、小册子有作者属性、电影录像带有电影名属性、音乐CD有演员名属性、录音图书磁带有作者属性,报纸有日期属性。请为图书馆馆藏出版物建立对象模型。