当前位置:问答库>考研试题

2017年兰州大学软件工程(同等学力加试)复试实战预测五套卷

  摘要

一、名词解释

1. 数据流图

【答案】数据流图(DFD )是结构化分析方法中用于表示系统逻辑模型的一种工具,是一种

功能模型。它以图形 的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。

二、简答题

2. 简述对象、类、类结构、消息、方法的基本概念。

【答案】(1)对象

①定义

对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

②分类

对象类型包括有形实体、作用、事件、性能说明。

③特点

a. 对象具有状态,一个对象用数据来描述它的状态,对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。

b. 对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。

c. 对象内的数据具有自己的操作,从而可灵活地专门描述对象的独特行为。

d. 具有较强的独立性和自治性,其内部状态不受或很少受外界的影响。

e. 具有很好的模块化特点,为软件重用奠定了坚实的基础。

(2)类

类是具有相同属性和服务的一组对象的集合。因此,对象的抽象是类,类的具体化就是对象,即类的实例是对象。

(3)类结构

在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般一具体结构关系,整体一部分结构关系。

①一般一具体结构关系

一般一具体结构关系称为分类关系,也可以说是“或”关系,或者是“is-a”关系。类的这种层次结构可用来描述现实世界中一般化的关系,通常越在上层的类越具有一般性和共性,越在下层的类越具体、越细化。

②整体一部分结构关系

整体一部分结构关系称为组装结构,它们之间的关系是一种“与”关系,或者是“has-a”关系。

类的这种层次关系可用来描述现实世界中类的组成的抽象关系,上层的类具有整体性,下层的类具有成员性。在类的层次结构中,通常上层类称为父类或超类,下层类称为子类。

(4)消息

①定义

对象之间进行通信的构造叫做消息。

②信息传递

在对象的操作中,当一个消息发送到某个对象时,消息包含接收对象去执行某种操作的信息。接收信息的对象经过解释,然后给予响应,这种通信机制称为信息传递。

③信息的内容

发送一条信息至少要包含说明接收消息的对象名、发送给该对象的消息名(即对象名,方法名),一般还要对参数加以说明,参数可以是认识该消息对象所知道的变量名,或者是所有对象都知道的全局变量名。

(5)方法

类中操作的实现过程叫作方法,一个方法有方法名、参数、方法体。当一个对象接收一条消息后,它所包含的方法决定对象怎样动作。方法也可以发送消息给其他对象,请求执行某一动作或提供信息。由于对象的内部对用户是密封的,所以消息只是对象同外部世界连接的管道。对象内部的数据只能被自己的方法所操纵。

3. 在软件测试中,应注意哪些原则?

【答案】(1)测试用例应由输入数据和预期的输出数据两部分组成。这样便于对照检查,做到“有的放矢”。

(2)测试用例不仅用合理的输入数据,还要选择不合理的输入数据。这样能更多地发现错误,提高程序的可靠性。对于不合理的输入数据,程序应拒绝接收,并给出相应提示。

(3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。例如程序正确打印出用户并不需要的多余信息。

(4)应定制测试计划并严格执行,排除随意性。

(5)长期保留测试用例。测试用例的设计耗费很大的工作量,必须作为文档保存。因为修改后的程序可能有新的错误,需要进行回归测试。同时,为以后的维护提供方便。

(6)对发现错误较多的程序段,应进行更深入的测试。有统计数字表明,一段程序中已发现的错误越多,其中存在的错误概率也越大。因为发现错误数越多的程序段,其质量较差。同时在修改错误过程中又容易引入新 的错误。

(7)程序员避免测试自己的程序。测试是一种“挑剔性”的行为,心理状态是测试自己程序的障碍。另外,对需求规格说明的理解而引入的错误则更难发现。因此由别的人或另外的机构来测试程序员编写的程序会更客观、更有效。

4. 简述面向对象的要素。

【答案】(1)抽象

①定义

抽象是指强调实体的本质、内在的属性,忽略一些无关紧要的属性。

②抽象性

面向对象比其他方法技术有更高的抽象性,对象具有极强的抽象表达能力,对象可表示一切事物,可表达结构化的数据,也可表达非结构化的数据,如过程实体、图形、声音、规则等。

③共性抽象

类实现了对象的数据(即状态)和行为的抽象,它是对象的共性抽象。

(2)封装性(信息隐蔽)

①定义

封装性是指所有软件部件内部都有明确的范围以及清楚的外部边界,每个软件部件内部都有界面接口,软件部件的内部实现与外部可访问性分离。

②作用

面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。对象是封装的最基本的单位。封装防止了抽象相互依 赖性而带来的变动影响,面向对象的封装是比传统语言的封装更为清晰、更为有力。

(3)共享性

①同一类中的共享

在同一类中的对象有着相同数据结构。

②在同一个应用中的共享

在同一应用的类层次结构中,存在继承关系的各相似子类中,存在数据结构和行为的继承使相似子类共享共同的结构和行为。

③在不同应用中的共享

通过类库这种机制和结构来实现不同应用中的信息共享。

5. 什么是软件的可靠性?它们能否定量计算?

【答案】(1)软件可靠性是指在给定的时间内,在规定的环境条件下系统完成所指定功能的概率。

(2)软件可靠性可以进行定量计算,常用指标是平均失效等待时间MTTF 与平均失效间隔时间MTBF 。

假如对n 个相同的系统(硬件或软件)进行测试,它们的失效时间分别是

均失效等待时间MTTF 定义为:

则平