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

2017年华北水利水电大学578软件工程复试仿真模拟三套题

  摘要

一、名词解释

1. 数据流图

【答案】数据流图(DFD )是结构化分析方法中用于表示系统逻辑模型的一种工具,是一种

功能模型。它以图形 的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能。

二、简答题

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

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

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

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

①有形效益

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

a. 货币的时间价值

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

b. 投资回收期

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

c. 纯收入

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

②无形效益

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

3. 有哪些主要的软件开发方法?

【答案】主要的软件开发方法有以下几种:

(1)结构化开发方法

结构化开发方法是用系统工程的思想和工程化的方法,按用户至上的原则,结构化、模块化、自顶向下地对系统进行分析和设计的方法。它是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。

(2)Jackson (JSP 、JSD )方法

Jackson 方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整 的程序结构图。它是一种面向数据结构的软件设计方法,对输入、输出结构明确的中小型系统特别有效。

(3)原型化开发方法

原型化开发是软件开发的一种常用方法。开发人员对用户提出的问题进行总结,就系统的主要需求取得一致 意见后,开发出一个原型并运行之,然后反复对原型进行修改,使之逐步完善,直到用户对系统完全满意为止。

(4)维也纳开发方法(VDM )

VDM 是一个基于模型的方法,它的主要思想是将软件系统当作模型来给予描述,具体说就是把软件的输入 /输出看作模型对象,而这些对象在计算机内的状态可看作为该模型在对象上的操作。

(5)面向对象的开发方法

面向对象方法(Object-Oriented Method )是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系 统方法,简称OO (Object-Oriented )方法,是建立在“对象”概念基础上的方法学。

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

【答案】(1) PDL 的特点

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

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

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

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

(2) PDL 的优点

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

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

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

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

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

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

(1)面向软件产品操作

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

②可靠性:软件按照设计要求,在规定时间和条件下不出故障、持续运行的程度。 ③效率:为了完成预定功能,软件系统所需的计算机资源和程序代码数量。

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

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

(2)面向软件产品修改

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

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

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

(3)面向软件产品适应

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

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

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

6. 什么是软件的可靠性?它们能否定量计算?

【答案】(1)软件可靠性是指在给定的时间内,在规定的环境条件下系统完成所指定功能的概率。

(2)软件可靠性可以进行定量计算,常用指标是平均失效等待时间MTTF 与平均失效间隔时间MTBF 。

假如对n 个相同的系统(硬件或软件)进行测试,它们的失效时间分别是

均失效等待时间MTTF 定义为:

MTBF 是平均失效间隔时间,它是指两次相继失效之间的平均时间。MTBF 在实际使用时通常是指当n 很大时,系统第n 次失效与第次失效之间的平均时间。

7. 什么是结构化维护?结构化维护的特点是什么?

【答案】(1)结构化维护的定义

若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工作,这是一种结构化的维护。

则平