2017年兰州交通大学软件工程(同等学力加试)考研复试核心题库
● 摘要
一、名词解释
1. 重用性
【答案】利用标准化的软件模块快速构建特定的应用系统,不做修改或稍加改动就可以在不同环境中多次重复使用。
二、简答题
2. 测试面向对象软件时,主要有哪些设计确认测试用例的方法?
【答案】设计确认测试用例的方法主要有传统的黑盒方法、基于情景的方法。
(1)黑盒测试:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地就收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
(2)基于情景的方法:场景,是一种有假设条件的故事,可以辅助测试人员把一个复杂的问题或系统通过电影那样地过一遍。测试人员通过把整个场景都设想出来,在设想中的场景中进行的测试就是基于场景的测试。
3. 维护技术有哪些?
【答案】(1)面向维护的技术
面向维护的技术是在软件开发阶段用来减少错误,提高软件可维护性的技术,面向维护的技术涉及软件开发的所有阶段。
①在需求分析阶段,对用户的需求进行严格的分析定义,使之没有矛盾和易于理解,可以减少软件中的错误。
②在设计阶段,划分模块时充分考虑将来改动或扩充的可能性。使用结构化分析和结构化设计方法,采用容 易变更的、不依赖于特定硬件和特定操作系统的设计。
③在编码阶段,采用灵活的数据结构,是程序相对独立于数据的物理结构,养成良好的程序设计风格。
④在测试阶段,尽可能多地发现错误,保存测试用例和测试数据等。
(2)维护支援技术
维护支援技术是在软件维护阶段用来提高维护作业的效率和质量的技术,维护支援技术包括下列各方面的技术:信息收集、错误原因分析、软件分析与理解、维护方案评价、代码与文档修改、修改后的确认、远距离的维护。
4. 功能模型的特征有哪些?
【答案】(1)功能模型描述了系统的所有计算。
(2)功能模型指出发生了什么,对动态模型确定什么时候发生,而对象模型确定发生的客体。
(3)功能模型表明一个计算如何从输入值得到输出值,它不考虑所计算的次序。
(4)功能模型由多张数据流图组成。数据流图说明数据流是如何从外部输入、经过操作和内部存储输出到外部的。
(5)功能模型包括对象模型中值的约束条件。
5. 什么是耦合性?模块的耦合性有哪些内容?
【答案】(1)耦合性的定义
耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
(2)模块耦合性的分类
①无直接耦合
无直接耦合指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。因此模块间耦合性最弱,模块独立性最高。
②数据耦合
数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。这种耦合程度较低,模块的独立性较高。
③标记耦合
标记耦合指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即为标记,其实传递的是这个数据结构的地址。两个模块必须清楚这些数据结构,并按要求对其进行操作,这样降低了可理解性。可采用“信息隐蔽”的方法,把该数据结构以及在其上的操作全部集中在一个模块,就可消除这种耦合,但有时因为还有其他功能的缘故,标记耦合是不可避免的。
④控制耦合
控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调用模块通过该控制变量的值有选择地执行模块内某一功能。因此被调用模块内应具有多个功能,哪个功能起作用受其调用模块控制。
6. 什么是软件生存周期模型?有哪些主要模型?
【答案】(1)软件生存周期模型的定义
软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段活动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。
(2)软件生存周期模型的分类
主要的软件生存周期模型有瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。
7. 试述面向对象方法有哪些特征。
【答案】(1)对象唯一性
每个对象都有自身的唯一标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。在对象建立时,有系统授予新对象以唯一的对象标识符,它在历史版本管理中又起巨大作用。
(2)分类性
分类性是指具有一致的数据结构(属性)和行为(操作)的对象抽象成类。每个类是具有相同性质的个体对 象的集合,而每个对象是相关类的实例。
(3)继承性
①定义
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础上进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
②分类
a. 单继承
子类只继承一个父类的数据结构和方法,则称为单重继承。
b. 多继承
在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。
(4)多态性(多形性)
①定义
多态性是指允许不同类的对象对同一消息做出响应。不同的对象,收到同一消息可以产生不同的结果,这种现象称为动态性。
②特点
多态性允许每个对象以适合自身的方式去响应共同的消息。这样就增强了操作的透明性、可理解性和可维护性。用户不必为相同的功能操作但作用于不同类型的对象而费心去识别。
三、综合应用题
8. 良好的面向对象程序设计风格主要有哪些准则?
【答案】面向对象程序设计风格应遵循如下准则:
(1)提尚重用性。
(2)提高可扩展性。
(3)提高健壮性。