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

2017年南开大学计算机与控制工程学院计算机技术、软件工程之软件工程复试实战预测五套卷

  摘要

一、名词解释

1. 抽象

【答案】把在现实世界中一定事物、状态或过程之间的共性集中和概括起来,暂时忽略它们之间的差异,这就是抽象。即抽象就是抽出事物的本质特性而暂时不考虑它们的细节。

二、简答题

2. 需求分析方法应遵循的原则是什么?

【答案】(1)必须能够表达和理解问题的数据域及功能域

数据域包括数据流(即数据通过一个系统时的变化方式)、数据内容和数据结构,而功能域反映上述三方面的控制信息。

(2)可以把一个复杂问题按功能进行分解并可逐层细化

通常软件要处理的问题如果太大、太复杂就很难理解,划分成几部分,并确定各部分间的接口,就可完成整体功能。在需求分析过程中,软件领域中的数据、功能、行为都可以划分。

(3)建模

建立模型可以帮助分析人员更好地理解软件系统的信息、功能、行为,这些模型也是软件设计的基础。

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

【答案】(1)对象

①定义

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

②分类

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

③特点

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

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

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

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

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

(2)类

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

(3)类结构

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

①一般一具体结构关系

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

②整体一部分结构关系

整体一部分结构关系称为组装结构,它们之间的关系是一种“与”关系,或者是“has-a”关系。类的这种层次关系可用来描述现实世界中类的组成的抽象关系,上层的类具有整体性,下层的类具有成员性。在类的层次结构中,通常上层类称为父类或超类,下层类称为子类。

(4)消息

①定义

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

②信息传递

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

③信息的内容

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

(5)方法

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

4. 简要说明如何划分等价类。

【答案】(1)如果某个输入条件规定了取值范围的个数,则可确定一个合理的等价类(输入值或数在此范围内)和两个不合理等价类(输入值和个数小于这个范围的最小值或大于这个范围的最大值)。

(2)如果规定了输入数据的一组值,而且程序对不同的输入值做不同的处理,则每个允许输入值是一个合理的等价类,此外还有一个不合理等价类(任何一个不允许的输入值)。

(3)如果规定了输入数据必须遵循的原则,可确定一个合理等价类(符合规则)和若干个不合理等价类(从各种不同角度违反规则)。

(4)如果已划分的等价类中各元素在程序中的处理方式不同,则应将此等价类进一步划分为更小的等价类。

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

【答案】(1)抽象

①定义

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

②抽象性

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

③共性抽象

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

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

①定义

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

②作用

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

(3)共享性

①同一类中的共享

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

②在同一个应用中的共享

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

③在不同应用中的共享

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

6. 什么是测试用例?动态测试有哪些方法?

【答案】(1)测试用例的定义

“测试用例”是指为寻找程序中的错误而精心设计的一组测试数据,每个测试用例一般是一个二元组(输入数据、预期结果)。