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

2017年河海大学993软件工程综合之软件工程导论考研复试核心题库

  摘要

一、名词解释

1. 多态性

【答案】多态性是指同一消息为不同的对象接受时,可产生完全不同的动作,利用多态性,用户可发送一个通用的消息,而将所有的实现细节都留给接受消息的对象自行决定。另外,多态性也可以指在父类中定义的属性或者 服务被子类集成后,可以具有不用的数据类型或者表现出不同的行为。

二、简答题

2. 什么是软件危机?软件危机表现在哪些方面?

【答案】(1)软件危机的定义

在计算机软件的开发和维护过程中所遇到的一系列严重问题,长期找不到解决这些问题的办法,使问题逐渐积累起来,形成了尖锐的矛盾,从而导致了软件危机。

(2)软件危机的表现

①对于软件开发的成本和进度的估计很不准确。由于缺乏软件开发的经验和软件开发数据的积累,使得很难制定出合理有效的开发工作计划。

②开发的软件产品不能完全满足用户要求,用户对已完成开发的软件系统不满意的现象常常发生。

③开发的软件可靠性差。

④软件的可维护性差。

⑤软件通常没有适当的文档。

⑥软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。

3. 简述瀑布模型的优缺点。

【答案】瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终 得到软件产品。开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶 段都会产生循环反馈。

(1)优点

①可强迫开发人员采用规范的方法。

②严格地规定了每个阶段必须提交的文档。

③要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

④对文档的约束,使软件维护变得容易一些,且能降低软件预算。

(2)缺点

①开发过程一般不能逆转,否则代价太大。

②实际的项目开发很难严格按该模型进行。

③客户往往很难清楚地给出所有的需求。

③软件的实际情况必须到项目开发的后期客户才能看到。

4. 成本一效益分析的目的是什么?可用哪些指标进行度量?

【答案】(1)成本一效益分析的目的

成本一效益分析的目的是从经济角度评价开发一个新的软件项目是否可行。成本一效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡。

(2)成本一效益的度量指标

①有形效益

有形效益可以用货币的时间价值、投资回收期、纯收入等指标进行度量,具体如下:

a. 货币的时间价值

成本估算的目的是对项目投资。经过成本估算后,得到项目开发时所需要的费用,该费用就是项目的投资。项目开发后,应取得相应的效益,有多少效益才合算,这就要考虑货币的时间价值。

b. 投资回收期

通常用投资回收期衡量一个开发项目的价值。投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。投资回收期越短,就越快获得利润,则该项目就越值得开发。

c. 纯收入

衡量项目价值的另一个经济指标是项目的纯收入. 也就是在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。这相当于投资开发一个项目与把钱存入银行中进行比较,看这两种方案的优劣。若纯收入为零,则项目的预期效益和在银行存款一样,但是开发一个项目要冒风险,因此,从经济观点来看,这个项目可能是不值得投资开发的。若纯收入小于零,那么这个项目显然不值得投资开发。

②无形效益

无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。系统的经济效益等于因使用新的系统而增加的收入加上使用新的系统可以节省的运行费用。运行费用包括操作人员人数、工作时间、消耗的物资等。

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

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

(2)可重用性。

(3)类库和开发环境。

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

6. 软件维护有哪些内容?

【答案】(1)校正性维护

在软件交付使用后,由于在软件开发过程中产生的错误被带到维护阶段上来。这些隐含的错误在某些特定的使用环境下会暴露出来。为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。

(2)适应性维护

随着计算机的飞速发展,计算机硬件和软件环境也不断发生变化,数据环境也在不断发生变化。为了使应用软件适应这种变化而修改软件的过程称为适应性维护。

(3) 完善性维护

在软件漫长的运行时期中,用户往往会对软件提出新的功能要求和性能要求。这是因为用户的业务会发生变化,组织机构也会发生变化。为了适应这些变化,应用软件原来的功能和性能需要扩充和增强。这种增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。

(4)预防性维护

为了提高软件的可维护性和可靠性对软件进行的修改称为预防性维护。这是为以后进一步地运行和维护打好基础。这需要采用先进的软件过程方法对需要维护的软件或软件中的某一部分进行设计、编码和测试。

7. PDL 的特点是什么?有哪些优点?

【答案】(1) PDL 的特点

①所有关键字都有固定语法,以便提供结构化控制结构、数据说明和模块的特征。

②描述处理过程的说明性语言没有严格的语法。

③具有模块说明机制,包括简单的与复杂的数据说明。

④具有模块定义和调用机制,因此开发人员应根据系统编程所用的语种,说明PDL 表示的有关程序结构。

(2) PDL 的优点

①提供的机制比图形全面,为保证详细设计与编码的质量创造了有利条件。

②可作为注释嵌入在源程序中一起作为程序的文档,并可同高级程序设计语言一样进行编辑、修改,有利于 软件的维护。

③会自动生成程序代码,提高软件生产率。目前已有PDL 多种版本(

等),为自动生成相应代码提供了便利条件。

三、综合应用题

8. 画出下列伪码程序对应的PAD 图和N-S 图。