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)测试用例的定义
“测试用例”是指为寻找程序中的错误而精心设计的一组测试数据,每个测试用例一般是一个二元组(输入数据、预期结果)。
相关内容
相关标签