2017年湖南工业大学计算机与通信学院940软件工程(加试)考研复试核心题库
● 摘要
一、名词解释
1. 软件项目管理
【答案】软件项目管理是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,保证软件生命周期中的各项活动的正常的进行。软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期之中。
二、简答题
2. 简述对象、类、类结构、消息、方法的基本概念。
【答案】(1)对象
①定义
对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
②分类
对象类型包括有形实体、作用、事件、性能说明。
③特点
a. 对象具有状态,一个对象用数据来描述它的状态,对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
b. 对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。
c. 对象内的数据具有自己的操作,从而可灵活地专门描述对象的独特行为。
d. 具有较强的独立性和自治性,其内部状态不受或很少受外界的影响。
e. 具有很好的模块化特点,为软件重用奠定了坚实的基础。
(2)类
类是具有相同属性和服务的一组对象的集合。因此,对象的抽象是类,类的具体化就是对象,即类的实例是对象。
(3)类结构
在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般一具体结构关系,整体一部分结构关系。
①一般一具体结构关系
一般一具体结构关系称为分类关系,也可以说是“或”关系,或者是“is-a”关系。类的这种层次结构可用来描述现实世界中一般化的关系,通常越在上层的类越具有一般性和共性,越在下层的类越具体、越细化。
②整体一部分结构关系
整体一部分结构关系称为组装结构,它们之间的关系是一种“与”关系,或者是“has-a”关系。类的这种层次关系可用来描述现实世界中类的组成的抽象关系,上层的类具有整体性,下层的类具有成员性。在类的层次结构中,通常上层类称为父类或超类,下层类称为子类。
(4)消息
①定义
对象之间进行通信的构造叫做消息。
②信息传递
在对象的操作中,当一个消息发送到某个对象时,消息包含接收对象去执行某种操作的信息。接收信息的对象经过解释,然后给予响应,这种通信机制称为信息传递。
③信息的内容
发送一条信息至少要包含说明接收消息的对象名、发送给该对象的消息名(即对象名,方法名),一般还要对参数加以说明,参数可以是认识该消息对象所知道的变量名,或者是所有对象都知道的全局变量名。
(5)方法
类中操作的实现过程叫作方法,一个方法有方法名、参数、方法体。当一个对象接收一条消息后,它所包含的方法决定对象怎样动作。方法也可以发送消息给其他对象,请求执行某一动作或提供信息。由于对象的内部对用户是密封的,所以消息只是对象同外部世界连接的管道。对象内部的数据只能被自己的方法所操纵。
3. 什么是需求分析?需求分析阶段的基本任务是什么?
【答案】(1)需求分析的定义
需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求
陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。
(2)需求分析的基本任务
需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。本阶段要进行以下几方面的工作。
①问题识别
双方确定对问题的综合需求,这些需求如下:
a. 功能需求
所开发的软件必须具备什么样的功能,这是最重要的。
b. 性能需求
待开发的软件的技术性能指标。如存储容量、运行时间等限制。
c. 环境需求
软件运行时所需要的软、硬件(如机型、外设、操作系统、数据库管理系统等)的要求。 d. 用户界面需求
人机交互方式、输入输出数据格式等等。
另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求,这些需求一般通过双方交流、调查研究来获取,并达到共同的理解。
②分析与综合,导出软件的逻辑模型
分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。这里也包括对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成分,并用图文结合的形式,建立起新系统的逻辑模型。
③编写文档
a. 编写“需求规格说明书”,把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。
b. 编写初步用户使用手册,着重反映被开发软件的用户功能界面和用户使用的具体要求,用户手册能强制分析人员从用户使用的观点考虑软件。
c. 编写确认测试计划,作为今后确认和验收的依据。
d. 修改完善软件开发计划。在需求分析阶段对待开发的系统有了更进一步的了解,所以能更准确地估计开发成本、进度及资源要求,因此对原计划要进行适当修正。
4. 有哪些主要的软件开发方法?
【答案】主要的软件开发方法有以下几种:
(1)结构化开发方法
结构化开发方法是用系统工程的思想和工程化的方法,按用户至上的原则,结构化、模块化、自顶向下地对系统进行分析和设计的方法。它是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。
(2)Jackson (JSP 、JSD )方法
Jackson 方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整 的程序结构图。它是一种面向数据结构的软件设计方法,对输入、输出结构明确的中小型系统特别有效。
(3)原型化开发方法
原型化开发是软件开发的一种常用方法。开发人员对用户提出的问题进行总结,就系统的主要需求取得一致 意见后,开发出一个原型并运行之,然后反复对原型进行修改,使之逐步完善,直到用户对系统完全满意为止。
(4)维也纳开发方法(VDM )
VDM 是一个基于模型的方法,它的主要思想是将软件系统当作模型来给予描述,具体说就是把软件的输入 /输出看作模型对象,而这些对象在计算机内的状态可看作为该模型在对象上的操作。
(5)面向对象的开发方法
面向对象方法(Object-Oriented Method )是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系 统方法,简称OO (Object-Oriented )方法,是建立在“对象”概念基础上的方