2017年河南大学软件工程导论(同等学力加试)复试实战预测五套卷
● 摘要
一、名词解释
1. 抽象
【答案】把在现实世界中一定事物、状态或过程之间的共性集中和概括起来,暂时忽略它们之间的差异,这就是抽象。即抽象就是抽出事物的本质特性而暂时不考虑它们的细节。
二、简答题
2. 从软件工程的七条基本定理中任选四条,并对所选的每条定理做简要阐述。
【答案】(1)用分阶段的生命周期计划严格管理
在软件开发与维护的漫长的生命周期中,需要完成许多性质各异的工作。应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。
(2)坚持进行阶段评审
软件的质量保证工作不能等到编码阶段结束之后再进行。因此,在每个阶段都进行严格的评审,以便尽早发 现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。
(3)实行严格的产品控制
当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。一切有关修改软件的建议,特别是涉及对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。
(4)结果应能清楚地审查
软件产品不同于一般的物理产品,它是看不见摸不着的逻辑产品。为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。
3. 什么是抽象类?在建模时有时使用抽象类有什么好处?
【答案】(1)抽象类的定义
抽象类是指没有实例的类,定义了一些抽象的操作,即不提供实现方法的操作,只提供操作的特征,并标注。
(2)使用抽象类的好处
在建模时使用抽象类使系统结构更加的清晰,增加了系统的可读性和可理解性。
4. 功能模型的特征有哪些?
【答案】(1)功能模型描述了系统的所有计算。
(2)功能模型指出发生了什么,对动态模型确定什么时候发生,而对象模型确定发生的客体。
(3)功能模型表明一个计算如何从输入值得到输出值,它不考虑所计算的次序。
(4)功能模型由多张数据流图组成。数据流图说明数据流是如何从外部输入、经过操作和内部存储输出到外部的。
(5)功能模型包括对象模型中值的约束条件。
5. 増量模型的基本思想是什么?
【答案】(1)为了克服瀑布模型的局限性,使开发过程具有一定的灵活性和可修改性,于是产生了増量模型。它是在瀑布模型的基础上加以修改而形成的。
(2)増量模型和瀑布模型之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而増量模型属于非整体开发模型,它推迟某些阶段中的纽节,从而较早地产生工作软件。
(3)増量模型是在项目的开发过程中以一系列的増量方式开发系统。增量方式包括增量开发和增量提交。增量开发是指在项目开发周期内,在一定的时间间隔内以增量方式向用户提交工作软件及相应文档。增量开发和增量提交可以同时使用,也可以单独使用。
(4)有多种增量模型,根据增量的方式和形式的不同,分为渐増模型和原型模型。
6. 测试面向对象软件时,单元测试、集成测试和确认测试各有哪些新特点?
【答案】(1)单元测试,是在类层面上的测试。由于继承和复合,类(或对象)在很多情况下已不再是单纯意义上的单个操作。因此,具体的测试将在多有与操作有关的每个子类语境中进行。
(2)集成测试,由于面向对象软件中类的成分直接和间接交互,使得传统测试放法已经失去意义。因此有两种策略可供选择,分别是基于线程的测试和基于使用的测试。
(3)确认测试,关注与用户可见的动作和用户识别的系统输出,但基于场景的测试总是主宰面向对象系统的确认测试。
7. 选择面向对象程序设计语言时主要应该考虑哪些因素?
【答案】(1)将来能否占主导地位。
(2)可重用性。
(3)类库和开发环境。
(4)其他因素,包括售后服务、对运行环境的需求、集成已有软件的难易程度等。
三、综合应用题
8. 仅当每个与会者都在事先作了准备时,正式的技术复审才能取得预期的效果。如果自己是复审小组的组长,怎样发现事先没做准备的与会者?打算采取什么措施来促使大家事先做准备?
【答案】(1)可以通过如下关于软件配置复审因素的问题来发现实现没有做准备的与会者:
①变更指令中指令的变更是否完成?
②每个附加变更是否已经纳入到系统中?
③是否进行了正时技术复审?
④是否遵循软件工程标准?
⑤变更的软件配置项是否做了特殊标记而得到强调?
⑥是否注明变更日期和变更执行人员?
⑦软件配置属性是否反映了变更?
⑧是否遵循与变更有关的注释、记录及报告的软件配置管理规程?
⑨相关的软件配置是否都得到了同步更新?
(2)经常督促大家事先做充足的准备,平日里严格要求每次在准备开会前几天再次提醒每个与会者,开会时记录下每个与会者回答问题的准确程度,根据此内容对与会者进行适当的赏罚。
9. 面向对象实现应该选用哪种程序设计语言?为什么?
【答案】(1)面向对象实现应该尽量选用面向对象语言来实现面向对象分析、设计的结果。
(2)原因
一致的表示方法。面向对象开发基于不随时间变化的、一致的表示方法。既有利于在软件开发过程中始终使用统一的概念,也有利于维护人员理解软件的各种配置成分。
可重用性。既可重用面向对象分析结果,也可重用相应的面向对象设计和面向对象程序设计结果。
可维护性。程序显式地表达问题域语义,对维护人员理解待维护的软件有很大帮助。在选择编程语言时,应该考虑的首要因素是哪个语言能最恰当地表达问题域语义。
10.什么是模型?开发软件为何要建模?
【答案】(1)模型是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。模型由一组图 示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。模型是一种思考工具,利用 这种工具可以把知识规范地表示出来。
(2)由于建模忽略了事物的非本质属性,因此模型比原始事物更容易操作。对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,模型通过吧系统的重要部分分解成人的头脑一次能处理的若干个子部分,从 而减少了系统的复杂程度。
11.什么是软件生命周期模型? 试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。
【答案】(1)瀑布模型
①优点
a. 可强迫开发人员采用规范的方法;
b. 严格地规定了每个阶段必须提交的文档;
c. 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证;