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

2017年南开大学计算机与控制工程学院计算机技术、软件工程之软件工程考研复试核心题库

  摘要

一、名词解释

1. 软件再工程

【答案】软件再工程是运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合、并重新构建软件,用于提高软件的可理解性、可维护性、可复用性。它指的是对既存对象系统进行调查,并将其重构为新 形式代码的开发过程,它的重要特点是能最大限度的重用既存系统的各种资源。

二、简答题

2. 什么是软件工程过程?它包含哪些过程?

【答案】(1)软件工程过程的定义

软件工程过程规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。 (2)软件工程过程包含的过程

①获取过程

定义需求方按合同获取一个系统、软件产品或服务的活动。

②供应过程

定义供方向需求方提供合同中的系统、软件产品或服务所需的活动。

③开发过程

定义开发者和机构为了定义和开发软件或提供服务所需的活动。此过程包括需求分析、设计、编码、集成、测试、软件安装和验收等活动。

④操作过程

定义操作者和机构为了在规定的运行环境中为其用户运行一个计算机系统所需要的活动。 ⑤维护过程

定义维护者和机构为了修改和管理软件,使它处于良好运行状态所需要的活动。

⑥管理过程

定义软件工程过程中各项管理活动,包括:项目开始和范围定义、项目管理计划、实施和控制、评审和评价、项目完成等。

⑦支持过程

支持过程对项目的生存周期过程给予支持。它有助于项目的成功并能提高项目的质量。

3. 一个正文文件由若干记录组成,每个记录是一个字符串,要求统计每个记录中空格字符的个数及文件中空格字符的总个数。要求输出数据格式是每复制一行字符串之后,另起一行打印出这个字符串中的空格数,最后打印出文件空格的总个数,请用Jackson 方法设计该程序结构。

【答案】(1)输入数据的Jackson 图如图1所示:

图1输入数据的Jackson 图

(2)输出数据的图如图2所示:

图2 输出数据的Jackson 图

(3) 程序结构的图如图3所示:

图3程序结构的Jackson 图

4. 详细设计的基本任务包括哪些?

【答案】(1)数据结构设计

对需求分析、总体设计阶段确定的概念性的数据类型,要进行确切的定义。这一部分的设计内容一般比较多,所以大多数采用小型数据库辅助的方法。

(2)物理设计

对数据库进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。

(3)算法设计

在总体设计的结构完成后,结构各个环节的实现是多解的。这就需要用系统设计与分析的技术来描述。可以用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。

(4)界面设计

用户界面的设计现在显得比较重要,可以采用字符用户界面设计,图形用户界面和多媒体人机界面设计。这就要结合具体的系统来处理。

(5)其他设计

根据软件系统的类型,还可能要进行以下设计:

①代码设计

为了提高数据的输入、分类、存储及检索等操作的效率以及节约内存空间,对数据库中的某些数据项的值要进行代码设计。

②输入/输出格式设计

③人机对话设计

对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容及格式的具体设计。

④网络设计

如果设计的软件是一个分布式系统,那么还要进行网络的拓扑结构设计。

(6)编写设计说明书

(7)评审

对处理过程的算法和数据库的物理结构都要评审。

5. 试述面向对象方法有哪些特征。

【答案】(1)对象唯一性

每个对象都有自身的唯一标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。在对象建立时,有系统授予新对象以唯一的对象标识符,它在历史版本管理中又起巨大作用。

(2)分类性

分类性是指具有一致的数据结构(属性)和行为(操作)的对象抽象成类。每个类是具有相同性质的个体对 象的集合,而每个对象是相关类的实例。

(3)继承性

①定义

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础上进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。