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

2017年三峡大学软件工程考研复试核心题库

  摘要

一、名词解释

1. 软件再工程

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

二、简答题

2. 选择面向对象程序设计语言时主要应该考虑哪些因素?

【答案】(1)将来能否占主导地位。

(2)可重用性。

(3)类库和开发环境。

(4)其他因素,包括售后服务、对运行环境的需求、集成已有软件的难易程度等。

3. 模块的内聚性有哪几种?各表示什么含义?

【答案】(1)模块内聚性的分类

内聚性有七种类型:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚,它们的内聚性由低到高。

(2)模块内聚性的含义

①偶然内聚

偶然内聚指一个模块内的各处理元素之间没有任何联系,这是最差的内聚情况。

②逻辑内聚

逻辑内聚指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。如产生各种类型错误的信息输出放在一个模块,或从不同设备上的输入放在一个模块,这是一个单人口多功能模块。这种模块内聚程 度有所提高,各部分之间在功能上有相互关系,但不易修改,当某个调用模块要修改此模块公用代码时,而另一些调用模块又不要求修改。另外,调用时需要进行控制参数的传递,造成模块间的控制耦合,调用此模块时,不用的部分也占据了主存,降低了系统效率。

③时间内聚

时间内聚把需要同时执行的动作组合在一起形成的模块称为时间内聚模块。如初始化一组变量,同时打开若干文件,同时关闭文件等等,都与特定时间有关。时间内聚比逻辑内聚程度高一些,因为时间内聚模块中的各部分都要在同一时间内完成。但是由于这样的模块往往与其他模块

联系的比较紧密,如初始模块对许多模块的运行有影响,因此和其他模块耦合的程度较高。

④过程内聚

如果一个模块内的处理元素是相关的,而且必须以特定的次序执行,称为过程内聚。过程内聚模块的各组成功能由控制流联结在一起,实际上是若干个处理功能的公共过程单元。

⑤通信内聚

通信内聚指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。

通信内聚的模块各部分都紧密相关于同一数据(或者数据结构),所以内聚性要高于前几种类型。同时,可把某一数据结构、文件、设备等操作都放在一个模块内,可达到信息隐藏。

⑥顺序内聚

顺序内聚指一个模块中各个处理元素都紧密相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。

⑦功能内聚

功能内聚是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。因此模块不能再分割。功能内聚的模块易于理解、易修改,因为它的功能是明确的、单一的,因此与其他模块的耦合是弱的。功能内聚的模块有利于实现软件的重用,从而提高软件开发的效率。

4. 瀑布模型有哪些局限性?

【答案】(1)各阶段之间存在着严格的顺序性,特别强调预先定义需求的重要性,在着手进行具体的开发工作之前,必须通过需求分析预先定义并“冻结”软件需求,然后再一步一步地实现这些需求。但是实际项目很少是遵循着这种线性顺序进行的。

(2)虽然瀑布模型也允许迭代,但这种改变往往给项目开发带来混乱。在系统建立之前很难只依靠分析就确定出一套完整、准确、一致、有效的用户需求,这种预先定义需求的方法更不能适应用户需求不断变化的情况。

(3)传统的瀑布模型很难适应需求可变、模糊不定的软件系统的开发,而且在开发过程中,用户很难参与进去,只有到开发结束才能看到整个软件系统。这种思想的、线性的开发过程,缺乏灵活性,不适应实际的开发过程。

5. 什么是耦合性?模块的耦合性有哪些内容?

【答案】(1)耦合性的定义

耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。

(2)模块耦合性的分类

①无直接耦合

无直接耦合指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们

之间不传递任何信息。因此模块间耦合性最弱,模块独立性最高。

②数据耦合

数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。这种耦合程度较低,模块的独立性较高。

③标记耦合

标记耦合指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即为标记,其实传递的是这个数据结构的地址。两个模块必须清楚这些数据结构,并按要求对其进行操作,这样降低了可理解性。可采用“信息隐蔽”的方法,把该数据结构以及在其上的操作全部集中在一个模块,就可消除这种耦合,但有时因为还有其他功能的缘故,标记耦合是不可避免的。

④控制耦合

控制耦合指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调用模块通过该控制变量的值有选择地执行模块内某一功能。因此被调用模块内应具有多个功能,哪个功能起作用受其调用模块控制。

6. 说明McCall 软件质量度量模型。

【答案】McCall 质量度量模型是McCall 等人于1979年提出的软件质量模型。针对面向软件产品的运行、修正、转移,软件质量概念包括11个特性,其定义如下。

(1)面向软件产品操作

①正确性:软件满足设计规格说明及用户预期目标的程度。

②可靠性:软件按照设计要求,在规定时间和条件下不出故障、持续运行的程度。

③效率:为了完成预定功能,软件系统所需的计算机资源和程序代码数量。

④完整性:对非授权人访问软件或数据行为的控制程度。

⑤可使用性:用户熟悉、使用及准备输入和解释输出所需工作量的大小。

(2)面向软件产品修改

①可维护性:找到并改正程序中的一个错误所需代价。

②可测试性:测试软件以确保其能够执行预定功能所需工作量。

③灵活性:修改可运行程序所需要付出的努力。

(3)面向软件产品适应

①可移植性:将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行所需的工作量。

②可重用性:一个软件(或软件的部件)能再次用于其他相关应用的程度。

③连接性:将一个系统耦合到另一个系统所需的工作量。

7. 试说明主动服务与被动服务的区别。

【答案】(1)主动服务