2017年南京大学1507计算机软件基础之软件工程考研复试核心题库
● 摘要
一、名词解释
1. 模块化
【答案】模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起 来构成一个整体,可以完成指定的功能满足用户的需求。模块化是为了使一个复杂的大型程序能被人的智力所管理。
二、简答题
2. 什么是软件工程过程?它包含哪些过程?
【答案】(1)软件工程过程的定义
软件工程过程规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。 (2)软件工程过程包含的过程
①获取过程
定义需求方按合同获取一个系统、软件产品或服务的活动。
②供应过程
定义供方向需求方提供合同中的系统、软件产品或服务所需的活动。
③开发过程
定义开发者和机构为了定义和开发软件或提供服务所需的活动。此过程包括需求分析、设计、编码、集成、测试、软件安装和验收等活动。
④操作过程
定义操作者和机构为了在规定的运行环境中为其用户运行一个计算机系统所需要的活动。 ⑤维护过程
定义维护者和机构为了修改和管理软件,使它处于良好运行状态所需要的活动。
⑥管理过程
定义软件工程过程中各项管理活动,包括:项目开始和范围定义、项目管理计划、实施和控制、评审和评价、项目完成等。
⑦支持过程
支持过程对项目的生存周期过程给予支持。它有助于项目的成功并能提高项目的质量。
3. 软件工程的净室方法为什么没有得到广泛的使用?
【答案】(1)净室方法学太理论、太数学化,以至难于在真实的软件开发中使用。
(2)不需要进行单元测试,而是进行正确性验证和统计质量控制,与当前大多数软件开发方式背离。
(3)软件开发产业的成熟度。净室过程的使用需要在整个生命周期阶段定义的过程中严格的应用,因为大多数软件企业的运作还处于特定的阶段(级别),因此,还没有准备好应用哪些技术。
4. 软件配置管理有哪些内容?
【答案】软件配置管理的内容有:
(1)基线
基线是软件生存期中各开发阶段的一个特点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。因此基线可以作为一个检查点,在开发过程中,当采用的基线发生错误时,我们可以知道处于的位置,返回到最近和最恰当的基线上。
(2)软件配置项
软件配置项(SCI )是软件工程中产生的信息项,它是配置管理的基本单位。
(3)版本控制管理
版本控制管理是对系统不同版本进行标识与跟踪的过程。版本标识的目的是便于对版本加以区分、检索和跟踪,以表明各个版本之间的关系。
(4)变更控制
变更控制包括建立控制点和建立报告与审查制度。对于一个大型软件来说,不加控制地变更很快就会引起混 乱。因此变更控制是一项最重要的软件配置任务。
5. 面向对象建模的三种模型是什么,各自的主要功能有哪些,分别可用UML 的哪些图来描述?
【答案】(1)面向对象建模的三种模型是对象模型、动态模型、功能模型。
(2)三种模型的主要功能
①对象模型
表示静态的、结构化的系统的数据性质。它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。.
②动态模型
表示瞬时的、行为化的系统的控制性质,它规定了对象模型中对象的合法变化序列。
③功能模型
表示软件系统的功能性质,它指明了系统应该“做什么”,更直接地反映了用户对目标系统的需求。
(3)UML 图描述
①在UML 中,使用类图来建立对象模型。
②在UML 中,使用状态图和事件追踪图来建立动态模型。
③在UML 中,使用用例图来建立功能模型。
6. 简述三种分析模型的关系。
【答案】(1)功能模型说明对象模型中操作的含义、动态模型中动作的意义以及对象模型中约束的意义。一些不存在相互作用的系统,如编译器系统,它们的动态模型较小,因为它们的目的是功能处理,功能模型是这类系 的主要模型。
(2)功能模型由多张数据流图组成。数据流图用来表示从源对象到目标对象的数据值的流向。数据流图不表示控制信息,控制信息在动态模型中表示。数据流图也不表示对象中值的组织,这种信息在对象模型中表示。
7. 试述面向对象方法有哪些特征。
【答案】(1)对象唯一性
每个对象都有自身的唯一标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。在对象建立时,有系统授予新对象以唯一的对象标识符,它在历史版本管理中又起巨大作用。
(2)分类性
分类性是指具有一致的数据结构(属性)和行为(操作)的对象抽象成类。每个类是具有相同性质的个体对 象的集合,而每个对象是相关类的实例。
(3)继承性
①定义
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础上进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
②分类
a. 单继承
子类只继承一个父类的数据结构和方法,则称为单重继承。
b. 多继承
在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。
(4)多态性(多形性)
①定义
多态性是指允许不同类的对象对同一消息做出响应。不同的对象,收到同一消息可以产生不同的结果,这种现象称为动态性。
②特点
多态性允许每个对象以适合自身的方式去响应共同的消息。这样就增强了操作的透明性、可理解性和可维护性。用户不必为相同的功能操作但作用于不同类型的对象而费心去识别。
三、综合应用题