admin 管理员组

文章数量: 1086019


2025年1月2日发(作者:socket编程java聊天)

1、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项目是否

能够开发。

2、程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊

式小团体,软件工程时代的生产方式是工程化。

3、喷泉模型是一种以需求分析为动力,以对象为驱动的模型。

4、需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功

能需求。

5、可行性研究需要从以下三个方面分析研究每种解决方法的可行性:技术

可行性、经济可行性、社会可行性。

6、可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是

否值得开发,其中的问题能否解决。

7、判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所有的可

能性全部都考虑到。可将两种工具结合起来,先用判定表做底稿,在此基础上产

生判定树。

8、软件工具的发展特点是软件工具有单一工具向多个工具集成化方向发

展。重视用户界面的设计,不断的采用新理论和新技术。软件工具的商品化推动

了软件产业的发展,而软件产业的发展,又增加了对软件工具的需求,促进了软

件工具的商品化进程。

9、环境集成主要有数据集成、界面集成、控制集成、平台集成、过程集成。

10、 可行性研究实质上是进行一项简化、压缩了的需求分析、设计过程。

11、 结构化方法有结构化分析、结构化设计、结构化程序设计构成,它是

一种面向数据流的开发方法。

12、 投资回收期就是累计的经济效益等于最初的项目投资所需的时间。

13、 详细描述处理过程常用三种描述工具:图形、表格和语言。

14、 数据流图中,每个加工至少有一个输入流和一个输出流。

15、 结构化设计以数据流为基础映射成软件结构。

16、 当数据流图中某个加工的一组动作存在着多个条件复杂组合的判断

时,使用判定表或判定树较好。

17、 由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,

有抛弃策略和附加策略。

18、有两类维护技术:在开发阶段是用来减少错误、提高软件可维护性面向

维护的技术,在维护阶段用来提高维护的效率和质量的维护支援技术。

19、 软件开发中原型是软件的一个早期可运行的版本,它反映了最终系统

的重要特性。

20、 产品管理包括版本管理和配置管理。

21、 任何程序都可由顺序、选择、重复三种基本控制结构构造。

22、 测试用例应有输入数据和预期的输出数据两部分组成。这样便于对照

检查。

23、 需求分析阶段产生的最重要的文档之一是需求规格说明书。

24、 项目开发计划是一个管理性文档。

25、 软件配置管理,简称SCM,软件配置项简称SCI。

26、 在算法描述工具中,PAD图可自动生成程序。由机器自动通过走树的

办法生成相应的源代码,大大提高软件的生产率。

27、在CASE集成中,控制集成支持工作台或环境中一个工具对系统中其它

工具的访问。过程集成是指CASE系统嵌入了关于过程活动、阶段、约束和支持

这些活动所需的工具的知识。

28、 解决一个复杂问题,往往采取的策略是分解。

29、 效益分析有有形效益和无形效益两种。

30、 两个模块都是用同一张表,这种耦合称为公共耦合。

31、 一个模块把数值作为参数传送给另一个模块,这种耦合方式称为数据

耦合。

32、 一个模块内部各程序段都在同一张表上操作,这个模块的内聚性称为

通信内聚。

33、在SA方法的需求描述工具中,数据流图描述系统的分解,即描述系统

有哪几部分组成,各部分之间有什么联系等等。数据字典定义了数据流图中每一

个图形元素;结构化语言、判定表或判定树则详细描述数据流图中不能被再分解

的每一个加工。

34、IDEF图是一种功能模型,表示系统功能的图形称为活动图形,连方框

上的箭头有四种类型,他们分别是输入、输出、控制、机制。

35、软件项目计划是可行性研究阶段的结果产品。但由于可行性研究是在高

层次进行系统分析,未能考虑软件系统开发的细节情节,因此软件项目计划一般

在需求分析阶段完成后才定稿的。

36、信息隐蔽指在设计和确定模块时,使得一个模块内包含的信息(过程或

数据),对于不需要这些信息的其它模块来说,是不能访问的。

37、 同一个类中的共享是指同一个类中的对象有着相同的数据结构和相同

的行为特征。

38、 通过抽象,可以确定组成软件的过程实体。通过信息隐蔽,可以定义

和实施对模块的过程细节和局部数据结构的存取限制。

39、 IPO图描述分层图中一个模块的输入、输出和处理内容。

40、 软件是一种逻辑产品,它与物质产品有很大区别。

41、 数据流图中的箭头表示数据流。

42、 软件测试时需要三类信息:软件配置、测试配置、测试工具。

43、 基于IDEF0图的设计也是结构化设计技术之一,它以系统的功能模型

和信息结构为基础设计软件结构。

44、 系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个

元素,表达了系统中各种元素之间的信息流动情况。

45、 桩模块是用来代替被测试模块所调用的模块,它的作用是返回被测模

块所需的信息。

46、 建立数据字典一般的两种形式是手工建立和利用计算机辅助建立并维

护。

47、 汇编语言是面向机器的,可以完成高级语言无法满足要求的特殊功能,

如与外部设备之间的一些接口操作。

48、黑盒测试是功能测试,因此设计测试用例时,需要研究需求规格说明书

和概要设计说明书中有关程序功能或输入、输出之间的关系等信息,从而与测试

后的结果进行分析比较。

49、在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。

子类继承了多个父类的数据结构和方法,则称为多重继承。

50、 由于数据流是流动中的数据,所以必须有流向。除了与数据存储之间

的数据流不用命名外,数据流应该用名词或名词短语命名。

51、投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。项

目的纯收入是指在整个生存周期之内的累计经济效益(折合成现在值)与投资之

差。

52、 程序设计语言的简洁性是指人们必须记住的语言成分的数量。人们要

掌握一种语言,需要记住的成分数量越多,简洁性越差。

53、 不同对象的同一属性可以具有相同或不同的属性值。

54、 软件开发划分的各阶段任务尽可能相对独立,同一阶段任务性质尽可

能相同。

55、 瀑布模型是将生存周期各活动规定为线性顺序联接的若干阶段的模型。

56、 成本效益分析的目的是从经济角度评价开发一个软件项目是否可行。

57、 在需求分析阶段要进行以下几方面的工作:问题识别、分析与综合、

导出软件的逻辑模型、编写文档。

58、 静态冗余常用的有:三模冗余TMR和多模冗余。

59、 McCabe质量度量模型,针对面向软件产品的运行、修正、转移。

60、程序设计语言的局部性是指语言的联想性。在编码过程中,由语句组合

成模块,由模块组装成系统结构,并在组装过程中实现模块的高内聚,低耦合,

使局部性得到加强。

61、 软件复杂性度量的参数主要有规模、难度、结构和职能度。

62、 项目开发计划的主要内容有:项目概述、实施计划、人员组织及分工、

交付期限。

63、 可行性研究要在较高层次上以较抽象方式进行需求分析和设计。

64、 软件工程是一门综合性交叉学科,计算机科学着重于原理和理论,软

件工程着重于建造软件系统。

65、 维护的副作用有编码副作用、数据副作用、文档副作用三种。

66、 若年利率为I,不计复利,P元在n年后的价值F=P*(1+n*i)

67、 软件结构是以模块为基础而组成的一种控制层次结构。

68、 软件设计阶段产生的最重要的文档之一是概要设计说明书。

69、独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序

图来看,一条独立路径是至少包含有一条在其它独立路径中未有过的边的路径。

70、 各模块经过单元测试后,将各模块组装起来进行集成测试,以检查与

设计相关的软件系统结构的有关问题。

71、 开发过程管理包括项目计划和控制和任务管理等。

72、 临时维护小组采用“同事复审”或“同行复审”等方法来提高维护工

作的效率。

73、数据字典中的加工逻辑主要描述该加工做什么,即实现加工的策略,而

不是实现加工的细节,它描述如何把输入数据流变换为输出数据流的加式规则。

74、 为了较完整的描述用户对系统的需求,DFD应与数据库中的ER图结

合起来。

75、 纯收入是软件生存周期内累计经济效益与投资之差。

76、 反映软件结构的基本形态特征是深度、宽度、扇入和扇出。

77、 若年利率为I,不计复利,n年后能收入F元的现在价值p=F/(1+n*i)。

78、 在一个模块中,功能状态与接口反映模块的外部特性,逻辑反映它的

内部特性。

79、 硬件与软件一起构成完整的计算机系统。

80、 SA方法中主要描述工具是DFD与DD。

81、 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。

82、 结构化设计对数据流有两种分析方法,他们是变换分析设计和事务分

析设计。

83、 数据字典中有四类条目:数据流、数据项、数据存储、加工。

84、常借用硬件可靠性的定量度量方法来度量软件的可靠性与可用性。常用

指标有平均失效等待时间MTTF和平均失效间隔时间MTBF。

85、 Lisp是一种函数型语言,Prolog是一种逻辑性语言。

86、 Jackson结构图能对结构进行自顶向下分解,因此可以表示层次结构。

87、 变换模型是一种适合于形式化开发方法的模型,从软件需求形式化说

明开始,经过一系列变换,最终得到系统的目标程序。

88、 软件开发环境的主要目标是提高软件开发的生产率,改善软件质量和

降低软件成本。

89、 “软件”包含计算机程序及其说明程序的各种文档。

90、 开发过程依序包括需求分析、设计、编码、集成、软件安装和验收等

活动。

91、 社会可行性研究包括合同、责任、侵权、用户组织的管理模式及规范,

其他一些技术人员常常不了解的陷阱等。

92、 IDEF0方法中,将系统功能称为活动,将表示系统功能的图形称为活

动图形。

93、 数据库的设计指数据存储文件的设计,主要进行的设计方面有:概念

设计、逻辑设计、物理设计。

94、如果只有两个模块之间有公共数据环境,这种公共耦合有两种情况:一

是一个模块只是给公共数据环境送数据,另一个模块是只从公共环境中去数据,

这是比较松散的公共耦合;二是两个模块都往公共环境中送数据又从里面取数

据,这是紧密的数据耦合。

95、Jackson方法是面向数据结构的设计方法。早期的Jackson方法用于开发

模型较少的数据处理系统的设计,简称JSP。

96、 工程网络图只有一个开始点和一个终止点,开始点没有流入箭头,称

为入度为零;终止点没有流出箭头,称为出度为零。

97、为了确保每个开发过程的质量,防止把软件差错传递到下一个过程,必

须进行质量检验,检验的实施有实际运行检验(即白盒测试和黑盒测试)和鉴定

两种形式

1、需求分析:需求分析是指开发人员要准确理解用户的需求,进行细致的调查

分析,将用户非形式的需求陈述转化成完整的需求定义,再由需求定义转换到相

应的形式功能规约(需求规格说明)的过程。

2、白盒法:该方法把测试对象看作一个打开的盒子,测试人员须了解程序

的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻

辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预

期的状态是否一致。白盒法也不可能进行穷举测试。

3、黑盒法:该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程

序的内部结构和处理过程,只在软件接口处进行测试,依照需求规格说明书,检

查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测试。

4、渐增式测试:逐个把未经过测试的模块组装到已经过测试的模块上去,

进行集成测试。每加入一个新模块进行一次集成测试,重复此过程直至程序组装

完毕。

5、非渐增式测试:首先对每个模块分别进行单元测试,然后再把所有的模

块按设计要求组装在一起进行测试。

6、可执行的规格说明:这是一种使要求说明过程自动化的技术,通过可执

行的规格说明语言来描述预期的行为“做什么”,人们可以从直接观察中用规格

说明语言来规定任何系统行为。

7、经济可行性:对组织的经济状况和投资能力进行分析,对系统建设,运

行和维护费用进行估算,对系统建成后可能取得的社会及经济效益进行估计。

8、系统设计说明书:是从系统总体的角度出发对系统建设中各主要技术方

面的设计进行说明,是系统设计阶段的产物,其着重点在于阐述系统设计的指导

思想以及所采用的技术路线和方法,编写系统设计说明书将为后续的系统开发工

作从技术和指导思想上提供必要的保证。

9、面向对象设计:是把分析阶段得到的需求转变成符合成本和质量要求的、

抽象的系统实现方案的过程。或者说,面向对象设计就是用面向对象观点建立求

解域模型的过程。

10、结构化设计:面向数据流的设计是以需求分析阶段产生的数据流图为基

础,按一定的步骤映射成软件结构,因此又称结构化设计(SD)。

11、结构化分析:是根据分解与抽象的原则,按照系统中数据处理的流程,

用数据图来建立系统的功能模型,从而完成需求分析工作。

12、基于脚本的设计:此方法主要用于解决要求的验证问题。一个脚本将模

拟在系统运行期间用户经历的事件,它提供了输入、处理、输出的屏蔽,以及有

关对话的一个模型,开发者能够给用户显示一个系统的逼真视图。

13、IDEF方法:是美国空军在1981年针对集成化计算机辅助制造(简称

ICAM)工程项目中用于进行复杂系统分析和设计的方法,是在结构化分析与设

计技术的基础上提出来的。

14、JSP方法:定义了一组以数据结构为指导的映射过程,他根据输入、输

出的数据结构,按一定的规则映射成软件的过程描述,即程序结构,而不是软件

的体系结构,因此该方法适于详细设计阶段。

15、软件概要设计:进 入了设计阶段,要把软件“做什么”的逻辑模型变

换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反应在

“设计规格说明书”文档中,所以软 件设计是一个把软件需求转换为软件表示

的过程,最初这种表示只是描述了软件的总的体系结构,称为软件的概要设计或

结构设计。

16、信息隐蔽:指在设计和确定模块时,使得一个模块内包含的信息(过程

或数据),对于不需要这些信息的其它模块来说,是不能访问的。

17、系统流程图:是描述物理系统的传统工具,它用图形符号来表示系统中

的各个元素,例如人工处理、数据处理、数据库、文件、设备等。它表达了系统

中各个元素之间的信息流动的情况。

18、集成测试:是指在单元测试的基础上,将所有模块按照设计要求组装成

一个完整的系统进行的测试,故也称组装测试或联合测试。

19、附加策略:是将原型用于开发的全过程,原型由最基本的核心开始,逐

步增加新的功能和新的需求,反复修改反复扩充,最后发展为用户满意的最终系

统。

20、抛弃策略:是将原型用于开发过程的某一阶段,促使该阶段的开发结果

更加完整、准确、一致、可靠,该阶段结束后,原型随之作废。

21、抽象:是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同

的特征而暂不考虑它的细节,不考虑其它因素。

22、参数化抽象:所谓参数化抽象,它是指当描述类的规格说明时并不具体

指定所要操作的数据类型,而是把数据类型作为参数。

23、静态测试:指被测试程序不在机器上运行,而是采用人工检测和计算机

辅助静态分析的手段对程序进行检测。

24、原型:是指模拟某种产品的原型模型。软件开发中的原型是软件的一个

早期可运行的版本,它反映了最终系统的重要特征。

25、事件:是指定时刻发生的某件事情。它是某事情发生的信号,它没有持

续时间,它是一种相对性的快速事件。

26、动态冗余:动态冗余的主要方式是多种模块待机储备,当系统检测到某

工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。这里须有检

测、切换和恢复过程,故称其为动态冗余。

27、模块化:是指解决一个复杂问题是自顶向下逐层把软件系统划分成若干

模块的过程,每个模块完成一个特定的子功能,所有的模块按某种方法组装起

来,成为一个整体,完成整个系统所要求的功能。

28、JSP方法:定义了一组以数据结构为指导的映射过程,它根据输入、输

出的数据结构,按一定的规则映射成软件的过程描述,即程序结构,而不是软件

的体系结构,因此该方法适于详细设计阶段。

29、模型:是为了理解事务而对事物做出一种抽象,它忽略不必要的细节,

它也是事物的一种抽象形式,一个规划,一个程式。

30、瀑布模型:是将软件生存各个活动规定为依线性顺序联接的若干阶段的

模型。它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编

码、测试和维护。它规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐

级下落。

31、增量模型:是 在项目的开发工程中以一系列的增量方式开发系统。增

量方式包括增量开发和增量提交。增量开发是指在项目开发过程中以一定的时间

间隔开发部分工作软件;增量 提交是指在开发周期内,以一定的时间间隔增量

方式向用户提交工作软件及相应稳当。增量开发和增量提交可以同时使用,也可

单独使用。

32、喷泉模型:是一种以用户需求为 动力,以对对象作为驱动的模型,适

合于面向对象的开发方法。他克服了瀑布模型不支持软件重用和多项开发活动集

成的局限性。喷泉模型使开发过程具有迭代性和 无间隙性。系统某些部分常常

重复工作多次,相关功能在每次迭代中随之加入演化的系统。无间隙是指在分

析、设计、实现等开发活动之间不存在明显的边界。

33、功能模型:描述了系统的所有计算,它表明一个计算如何从输入值得到

输出值,他不考虑所计算的次序。功能模型说明对象模型中操作的涵义、动态模

型中动作的意义以及对象模型中约束的意义。

34、动态模型:是与时间和变化有关的系统性质。该模型描述了系统的控制

结构,他表示了瞬时的、行为化的系统控制性质。它关心的是系统的控制,操作

的执行顺序。它从对象的事件和状态的角度出发,表现了对象的相互行为。

35、对象模型:表示了静态的、结构化的系统数据性质,描述了系统的静态

结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。

36、货币的时间价值:通 常利用银行的存款利息来表示货币的时间价值。

设年利率为I,现存入p元,n年后得到本金和利息为F。若不计复利,则P元在

n年后的价值为:F=P*(1+ n*i)。反过来,若n年后能收入的本金和利息为F,则将

来F元的现在价值(本金)P为:P=F/(1+n*i)。可用这个公式来计算将来收入的现在

价 值。这是效益分析的最基本公式。

37、类:具有相同或相似性质的对象的抽象就是类。

38、对象:是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等

均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

类的具体化就是对象,也可以说类的实例是对象。

39、多态性:指相同的操作或函数、过程可作用于多种类型的对象上并获得

不同结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态

性。

40、风险分析:实际上就是贯穿在软件工程上的一系列风险管理步骤,其中

包括风险识别、风险估计、风险管理策略、风险解决和风险监督,它能让人们主

动“攻击”风险。

41、模块:模块在程序重视数据说明、可执行语句等程序对象的集合,或者

是单独命名和编址的元素,如高级语言中的过程、函数、子程序等等。

42、JSD方法:主要以活动事件为中心,通过有一串活动顺序组合构成的进

程,建立系统模型,最后实现该模型。

43、路径覆盖:指设计足够的测试用例,覆盖被测程序中所有可能的路径。

44、判定/条件覆盖:指设计足够的测试用例,使得判定表达式中的每个条

件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出

现一次。

45、条件组合覆盖:是指设计足够的测试用例,使的每个判定表达式中条件

的各种可能的值的组合都至少出现一次,条件组合覆盖是比较强的覆盖标准。

46、条件覆盖:是指设计足够的测试用例,使得判定表达式中每个条件的各

种可能的值至少出现一次。满足条件覆盖并不一定满足判定覆盖。

47、原型模型:又称快速原型模型,它是在开发真实系统之前,构造一个原

型,在该原型的基础上,逐渐完成整个系统的开发工作。

48、软件工程环境:美国国防部在STARS计划中定义如下:“软件工程环

境是一组方法、过程及计算机程序(计算机化的工具)的整体化构件,他支持从

需求定义、程序生成知道维护的整个软件生存期”。

49、程序图:是退化的程序流程图。也就是说,把程序流程图中每个处理符

号都退化成一个结点,原来连接不同处理符号的流线变成连接不同结点的有向

弧,这样得到的有向图就叫程序图。

1、可行性研究的任务是什么?

首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的

约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求分析,抽象

出该项目 的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探

索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可

从以下三个方面 分析研究每种解决方法的可行性。㈠技术可行性:对要开发项

目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多

大,项目是否能实现。 ㈡经济可行性:进行开发成本的估算以及了解取得效益

的评估,确定要开发的项目是否值得投资开发。㈢社会可行性:要开发的项目是

否存在任何侵犯、妨碍等责任 问题,要开发项目的运行方式在用户组织内是否

行得通,现有管理制度、人员素质、操作方式是否可行。

2、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什

么关系?

一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有

模块的集合。一个模块的控制范围指模块本身以及其所有下属模块(直接或间接

从属于它 的模块)的集合。一个模块的作用范围应在其控制范围之内,且判定

所在的模块应在其影响的模块在层次上尽量靠近。如果再设计过程中,发现模块

作用范围不在其 控制范围之内,可以用“上移判点”或“下移受判断影响的模

块,将它下移到判断所在模块的控制范围内”的方法加以改进。

3、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块?

非渐增式测试与渐增式测试的测试方法有以下区别:㈠非渐增式测试方法

把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后

一阶段完 成集成测试。而渐增式测试往往把单元测试与集成测试和在一起,同

时完成。㈡非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模

块,而渐增式利用 已测试过的模块作为驱动模块或桩模块,因此工作量较少。

㈢渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发现。㈣渐增

式有利于排错,发生错误 往往和最近加进来的模块有关,而非渐增式发现接口

错误推迟到最后,很难判断是哪一部分接口出错。㈤渐增式比较彻底,已测试的

模块和新的模块再测试。㈥渐增 式占用的时间较多,但非渐增式须更多的驱动

模块、桩模块也占用一些时间。㈦非渐增式开始可并行测试所有模块,能充分利

用人力,对测试大型软件很有意义。渐 增式测试有以下两种不同的组装模块的

方法:㈠自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块开始,沿

被测程序的软件结构图的控制路径逐步向下测 试,从而把各个模块都结合起

来,它又有两种组合策略:①深度有先策略:先从软件结构中选择一条主控制路

径,把该路径上的模块一个个结合进来进行测试,以便 完成一个特定的子功能,

接着再结合其它需要优先考虑的路径。②宽度有先策略:逐层结合直接下属的所

有模块。㈡自低向上结合。该方法仅需编写驱动模块。其步 骤为:①把底层模

块组合成实现一个个特定子功能的族。②为每一个族编写一个驱动模块,以协调

测试用例的输入和测试结果的输出。③对模块族进行测试。④按软 件结构图依

次向上扩展,用实际模块替换驱动模块,形成一个个更大的族。⑤重复②至④步,

直至软件系统全部测试完毕。

4、软件质量与软件质量保证的含义是什么?

从实际应用来说,软件质量定义为:㈠与所确定的功能和性能需求的一致

性。㈡与所成文的开发标准一致性。㈢与所有专业开发的软件所期望的隐含特性

的一致 性。软件质量保证就是向用户及社会提供满意的高质量的产品,确保软

件产品从诞生到消亡为止的所有阶段的质量的活动,即确定、达到和维护需要的

软件质量而进 行的所有有计划、有系统的管理活动。5、软件工程标准化的意义

是什么?都有哪些软件工程标准?积极推进软件工程标准化,其道理是显而易见

的。仅就一个软件 开发项目来说,有许多层次,不同分工的人员相互配合,在

开发项目的各个部分以及各开发阶段之间也都存在许多联系和衔接问题。如何把

这些错综复杂的关系协调 好,需要有一系列统一的约束和规定。在软件开发项

目取得阶段成果或最后完成是时,需要进行阶段评价和验收测试。投入运行的软

件,其维护工作中遇到问题又与 开发工作者有着密切的关系。软件的管理工作

则渗透到软件生存期的每一个环节。所有这些都要要求提供统一的行动规范和衡

量准则,使得各种工作都有章可循。软 件工程的标准主要有以下三个:㈠FIPS135

是美国国家标准局发布的《软件文档管理指南》㈡NSAC ——39是美国核子安全

分析中心发布的《安全参数显示系统的验证与确认》。㈢ISO5807是国际标准化

组织公布(现已成为中国的国家标准)的《信息处理 —数据流程图、程序流程

图、程序网络图和系统资源图的文件编制符号及约定》。

5、需求分析阶段的基本任务是什么?

需求分析阶段的基本任务是要准确的定义新系统的目标,为了满足用户需

要,回答系统必须“做什么”的问题。本阶段要进行以下几方面的工作:㈠问题

识别。双 方确定对问题的综合需求,这些需求包括:功能需求、性能需求、环

境需求、用户界面需求,另外还有可靠性、安全性、保密性、可移植性、可维护

性等方面的需 求。㈡分析与综合,导出软件的逻辑模型。分析人员对获取的需

求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子

功能。这里也包括对 数据域进行分解,并分配到各个子功能上,以确定系统的

构成及主要成份,并用图文结合的形式,建立起新系统的逻辑模型。㈢编写文档。

编写“需求规格说明 书”、编写初步用户使用手册、编写确认测试计划、修改

完善软件开发计划。

6、采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特点?

㈠等价类划分。

等价类划分是将输入数据域按有效的或无效的(也称合理的或不合理的)划

分成若干个等价类,测试每个等价类的代表值就等于对该类其它值的测试。

㈡边界值分析。

该方法是将测试边界情况作为重点目标,选取正好等于,刚刚大于或刚刚小

于边界值的情况,根据这些情况选择测试用例。

㈢错误推测。

错误推测法没有确定的步骤,凭检验进行。它的基本思想是列出程序中可能

发生错误的情况,根据这些情况选择测试用例。

㈣因果图。

因果图能有效的检测输入条件的各种组合可能会引起的错误。因果图的基本

原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,最后为判定

表的每一列设计一个测试用例。

7、说明动态建模的过程。

㈠准备脚本。

动态分析从寻找事件开始,然后确定各对象的可能事件的顺序。在分析阶段

不考虑算法的执行,算法是实现模型的一部分。

㈡确定事件。

确定所有外部事件。事件包括所有来自或发往用户的信息、外部设备的信

号、输入、转换和动作。

㈢准备事件跟踪表。

把脚本表示成一个事件跟踪表,对象为表中的列,给每一个对象分配一个独

立的列。

㈣构造状态图。

对各对象类建立状态图,反映对象接收和发送的事件,每个事件跟踪都对应

于状态图中一条路径。

8、软件生产经历了几个阶段?各有何特征?

软件生产至今已经历了三个阶段:㈠程序设计时代(1946-1956):这个阶

段的生产方式是个体手工劳动,使用的工具实际其语言、汇编语言。开发方法 是

追求编程技巧,追求程序运行效率。硬件特征是价格贵、存储容量小,运行可靠

性差。软件特征是只有程序、程序设计概念,不重视程序设计方法。㈡程序系统

时 代(1956-1968):这个阶段的生产方式是作坊式的小集团合作生产,生产工

具是高级语言,开发方法仍就靠个人技巧,但开始提出结构化方法。硬件特征 是

速度、容量、工作可靠性有明显提高。软件特征是程序员数量猛增,但开发技术

没有新的突破,开发人员的素质和落后的开发技术不适应规模大、结构复杂的软

件 开发,导致软件危机的产生。㈢软件工程时代(1968至今):这个阶段的生

产方式是工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面

向对 象技术来开发软件。硬件特征是向超高速、大容量、微型化以及网络化方

向发展。软件特征是开发技术有很大进步,但是未能获得突破性进展,软件价格

不断上升, 没有完全摆脱软件危机。5、简述Gantt图的功能及不足。Gantt图常

用水平线段来描述把任务分解成子任务,以及每个子任务的进度安排,动态反映

软件 开发进度情况,该图可以:表示任务分解成子任务情况;表示每个任务的

开始时间和完成时间,线段的长度表示子任务完成所需要的时间;表示子任务之

间的并行和 串行关系。Gantt图只能表示任务之间的并行与串行的关系,难以反

映多个任务之间存在的复杂关系,不能直观表示任务之间相互依赖制约关系,以

及哪些任务 是关键字任务等信息,因此仅仅用Gantt图作为进度的安排是不够

的。6、什么是数据字典?其作用是什么?它有哪些条目?数据字典(简称DD)

是用来定义 数据流图中的各个成分的具体含义的,它以一种准确的、无二义性

的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描

述。他和数据流图 共同构成了系统的逻辑模型,是需求规格说明书的主要组成

部分。数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因

此也像普通字典一样,要 把所有条目按一定的次序排列起来,以便查阅。数据

字典有以下四类条目:数据流、数据项、数据存储、基本加工。数据项是组成数

据流和数据存储的最小元素。源 点、终点不在系统之内,故一般不在字典中说

明。7、调试的目的是什么?调试有哪些技术手段?调试的目的是确定错误的原

因和位置,并改正错误,因此调试也成 为纠错。调试技术主要有:简单的调试

方法,主要有在程序中插入打印语句、运行部分程序等;归纳法调试,他从测试

结果发现的线索(错误迹象、征兆)入手、分 析他们之间的联系,导处错误原

因的假设,然后再证明或否定这个假设;演绎法调试,该方法列出所有可能的错

误原因的假设,然后利用测试数据排除不适当的假 设,最后再测试数据验证余

下的假设确实是出错的原因;回溯法调试,该方法从程序产生错误的地方出发,

人工沿程序的逻辑路径反向搜索,直到找到错误的原因为 止。

9、 如何做好软件质量保证工作?

软件质量保证工作是软件工程管理的重要内容,软件质量保证应做好以下

几个方面的工作:<1>采用技术手段和工具。质量保证活动要贯彻开发过 程始

终,必须从采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。<2>

组织正式技术评审,在软件开发的第一个阶段结束时,都要组 织正式的技术评

审。国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体

手段来保证质量。<3>加强软件测试。软件测试是质 量保证的重要手段,因为测

试可发现软件可发现软件中大多数潜在错误。<4>推选软件工程规范(标准)。

用户可以自己指定软件工程规范(标 准),但标准一旦确认就应贯彻执行。<5>

对软件的变更进行控制。软件的修改和变更常常会引起潜伏的错误,因此必须严

格控制软件的修改和变 更。<6>对软件质量进行度量。即对软件质量进行跟踪,

及时记录和报告软件质量情况。

10、什么是数据流图?其作用是什么?

其中的基本符号各表示什么含义?数据流图简称DFD,是SA方法中用于

表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的

过程, 由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。数据

流图有四种基本图形符号:“→”箭头表示数据流;“○”圆或椭圆表述加工;

“=”双杠表 示数据存储;“”方框表示数据的源点或终点。

11、可行性研究的任务是什么?

首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的

约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求分析,抽象

出该项目 的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探

索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可

从以下三个方面 分析研究每种解决方法的可行性。㈠技术可行性:对要开发项

目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多

大,项目是否能实现。 ㈡经济可行性:进行开发成本的估算以及了解取得效益

的评估,确定要开发的项目是否值得投资开发。㈢社会可行性:要开发的项目是

否存在任何侵犯、妨碍等责任 问题,要开发项目的运行方式在用户组织内是否

行得通,现有管理制度、人员素质、操作方式是否可行。

12、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什

么关系?

一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有

模块的集合。一个模块的控制范围指模块本身以及其所有下属模块(直接或间接

从属于它 的模块)的集合。一个模块的作用范围应在其控制范围之内,且判定

所在的模块应在其影响的模块在层次上尽量靠近。如果再设计过程中,发现模块

作用范围不在其 控制范围之内,可以用“上移判点”或“下移受判断影响的模

块,将它下移到判断所在模块的控制范围内”的方法加以改进。

13、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块?

非渐增式测试与渐增式测试的测试方法有以下区别:㈠非渐增式测试方法

把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后

一阶段完 成集成测试。而渐增式测试往往把单元测试与集成测试和在一起,同

时完成。㈡非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模

块,而渐增式利用 已测试过的模块作为驱动模块或桩模块,因此工作量较少。

㈢渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发现。㈣渐增

式有利于排错,发生错误 往往和最近加进来的模块有关,而非渐增式发现接口

错误推迟到最后,很难判断是哪一部分接口出错。㈤渐增式比较彻底,已测试的

模块和新的模块再测试。㈥渐增 式占用的时间较多,但非渐增式须更多的驱动

模块、桩模块也占用一些时间。㈦非渐增式开始可并行测试所有模块,能充分利

用人力,对测试大型软件很有意义。渐 增式测试有以下两种不同的组装模块的

方法:㈠自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块开始,沿

被测程序的软件结构图的控制路径逐步向下测 试,从而把各个模块都结合起

来,它又有两种组合策略:①深度有先策略:先从软件结构中选择一条主控制路

径,把该路径上的模块一个个结合进来进行测试,以便 完成一个特定的子功能,

接着再结合其它需要优先考虑的路径。②宽度有先策略:逐层结合直接下属的所

有模块。㈡自低向上结合。该方法仅需编写驱动模块。其步 骤为:①把底层模

块组合成实现一个个特定子功能的族。②为每一个族编写一个驱动模块,以协调

测试用例的输入和测试结果的输出。③对模块族进行测试。④按软 件结构图依

次向上扩展,用实际模块替换驱动模块,形成一个个更大的族。⑤重复②至④步,

直至软件系统全部测试完毕。

14、软件质量与软件质量保证的含义是什么?

从实际应用来说,软件质量定义为:㈠与所确定的功能和性能需求的一致

性。㈡与所成文的开发标准一致性。㈢与所有专业开发的软件所期望的隐含特性

的一致 性。软件质量保证就是向用户及社会提供满意的高质量的产品,确保软

件产品从诞生到消亡为止的所有阶段的质量的活动,即确定、达到和维护需要的

软件质量而进 行的所有有计划、有系统的管理活动。5、软件工程标准化的意义

是什么?都有哪些软件工程标准?积极推进软件工程标准化,其道理是显而易见

的。仅就一个软件 开发项目来说,有许多层次,不同分工的人员相互配合,在

开发项目的各个部分以及各开发阶段之间也都存在许多联系和衔接问题。如何把

这些错综复杂的关系协调 好,需要有一系列统一的约束和规定。在软件开发项

目取得阶段成果或最后完成是时,需要进行阶段评价和验收测试。投入运行的软

件,其维护工作中遇到问题又与 开发工作者有着密切的关系。软件的管理工作

则渗透到软件生存期的每一个环节。所有这些都要要求提供统一的行动规范和衡

量准则,使得各种工作都有章可循。软 件工程的标准主要有以下三个:㈠FIPS135

是美国国家标准局发布的《软件文档管理指南》㈡NSAC ——39是美国核子安全

分析中心发布的《安全参数显示系统的验证与确认》。㈢ISO5807是国际标准化

组织公布(现已成为中国的国家标准)的《信息处理 —数据流程图、程序流程

图、程序网络图和系统资源图的文件编制符号及约定》。

15、需求分析阶段的基本任务是什么?

需求分析阶段的基本任务是要准确的定义新系统的目标,为了满足用户需

要,回答系统必须“做什么”的问题。本阶段要进行以下几方面的工作:㈠问题

识别。双 方确定对问题的综合需求,这些需求包括:功能需求、性能需求、环

境需求、用户界面需求,另外还有可靠性、安全性、保密性、可移植性、可维护

性等方面的需 求。㈡分析与综合,导出软件的逻辑模型。分析人员对获取的需

求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子

功能。这里也包括对 数据域进行分解,并分配到各个子功能上,以确定系统的

构成及主要成份,并用图文结合的形式,建立起新系统的逻辑模型。㈢编写文档。

编写“需求规格说明 书”、编写初步用户使用手册、编写确认测试计划、修改

完善软件开发计划。

16、采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特点?

㈠ 等价类划分。等价类划分是将输入数据域按有效的或无效的(也称合理的或

不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其它值

的测试。 ㈡边界值分析。该方法是将测试边界情况作为重点目标,选取正好等

于,刚刚大于或刚刚小于边界值的情况,根据这些情况选择测试用例。㈢错误推

测。错误推测法 没有确定的步骤,凭检验进行。它的基本思想是列出程序中可

能发生错误的情况,根据这些情况选择测试用例。㈣因果图。因果图能有效的检

测输入条件的各种组合 可能会引起的错误。因果图的基本原理是通过画因果

图,把用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一

个测试用例。

17、说明动态建模的过程。

㈠准备脚本。动态分析从寻找事件开始,然后确定各对象的可能事件的顺

序。在分析阶段不考虑算法的执行,算法是实现模型的一部分。㈡确定事件。确

定所有外 部事件。事件包括所有来自或发往用户的信息、外部设备的信号、输

入、转换和动作。㈢准备事件跟踪表。把脚本表示成一个事件跟踪表,对象为表

中的列,给每一 个对象分配一个独立的列。㈣构造状态图。对各对象类建立状

态图,反映对象接收和发送的事件,每个事件跟踪都对应于状态图中一条路径。

18、软件生产经历了几个阶段?各有何特征?

软件生产至今已经历了三个阶段:㈠程序设计时代(1946-1956):这个阶

段的生产方式是个体手工劳动,使用的工具实际其语言、汇编语言。开发方法 是

追求编程技巧,追求程序运行效率。硬件特征是价格贵、存储容量小,运行可靠

性差。软件特征是只有程序、程序设计概念,不重视程序设计方法。㈡程序系统

时 代(1956-1968):这个阶段的生产方式是作坊式的小集团合作生产,生产工

具是高级语言,开发方法仍就靠个人技巧,但开始提出结构化方法。硬件特征 是

速度、容量、工作可靠性有明显提高。软件特征是程序员数量猛增,但开发技术

没有新的突破,开发人员的素质和落后的开发技术不适应规模大、结构复杂的软

件 开发,导致软件危机的产生。㈢软件工程时代(1968至今):这个阶段的生

产方式是工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面

向对 象技术来开发软件。硬件特征是向超高速、大容量、微型化以及网络化方

向发展。软件特征是开发技术有很大进步,但是未能获得突破性进展,软件价格

不断上升, 没有完全摆脱软件危机。5、简述Gantt图的功能及不足。Gantt图常

用水平线段来描述把任务分解成子任务,以及每个子任务的进度安排,动态反映

软件 开发进度情况,该图可以:表示任务分解成子任务情况;表示每个任务的

开始时间和完成时间,线段的长度表示子任务完成所需要的时间;表示子任务之

间的并行和 串行关系。Gantt图只能表示任务之间的并行与串行的关系,难以反

映多个任务之间存在的复杂关系,不能直观表示任务之间相互依赖制约关系,以

及哪些任务 是关键字任务等信息,因此仅仅用Gantt图作为进度的安排是不够

的。6、什么是数据字典?其作用是什么?它有哪些条目?数据字典(简称DD)

是用来定义 数据流图中的各个成分的具体含义的,它以一种准确的、无二义性

的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描

述。他和数据流图 共同构成了系统的逻辑模型,是需求规格说明书的主要组成

部分。数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因

此也像普通字典一样,要 把所有条目按一定的次序排列起来,以便查阅。数据

字典有以下四类条目:数据流、数据项、数据存储、基本加工。数据项是组成数

据流和数据存储的最小元素。源 点、终点不在系统之内,故一般不在字典中说

明。7、调试的目的是什么?调试有哪些技术手段?调试的目的是确定错误的原

因和位置,并改正错误,因此调试也成 为纠错。调试技术主要有:简单的调试

方法,主要有在程序中插入打印语句、运行部分程序等;归纳法调试,他从测试

结果发现的线索(错误迹象、征兆)入手、分 析他们之间的联系,导处错误原

因的假设,然后再证明或否定这个假设;演绎法调试,该方法列出所有可能的错

误原因的假设,然后利用测试数据排除不适当的假 设,最后再测试数据验证余

下的假设确实是出错的原因;回溯法调试,该方法从程序产生错误的地方出发,

人工沿程序的逻辑路径反向搜索,直到找到错误的原因为 止。

19、 如何做好软件质量保证工作?

软件质量保证工作是软件工程管理的重要内容,软件质量保证应做好以下

几个方面的工作:<1>采用技术手段和工具。质量保证活动要贯彻开发过 程始

终,必须从采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。<2>

组织正式技术评审,在软件开发的第一个阶段结束时,都要组 织正式的技术评

审。国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体

手段来保证质量。<3>加强软件测试。软件测试是质 量保证的重要手段,因为测

试可发现软件可发现软件中大多数潜在错误。<4>推选软件工程规范(标准)。

用户可以自己指定软件工程规范(标 准),但标准一旦确认就应贯彻执行。<5>

对软件的变更进行控制。软件的修改和变更常常会引起潜伏的错误,因此必须严

格控制软件的修改和变 更。<6>对软件质量进行度量。即对软件质量进行跟踪,

及时记录和报告软件质量情况。

20、什么是数据流图?其作用是什么?

其中的基本符号各表示什么含义?数据流图简称DFD,是SA方法中用于

表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的

过程, 由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。数据

流图有四种基本图形符号:“→”箭头表示数据流;“○”圆或椭圆表述加工;

“=”双杠表 示数据存储;“”方框表示数据的源点或终点。

21、 什么是确认测试?该阶段有哪些工作?

确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求

规格说明书中确定的指标相符合。确认测试阶段有两项工作,进行确认测试与软

件配置审 查。<1>确认测试一般是在模拟环境中运用黑盒测试方法,由专门测试

人员和用户参加的测试。<2>软件配置审查的任务是检查软件 的所有文档资料的

完整性、正确性。如果发现遗漏和错误,应补充和改正,同时要编排好目录,为

以后的软件维护工作奠定基础。

22、详细设计的基本任务是什么?有哪几种描述方法?

详细设计是软件设计的第二阶段,其基本任务有:为每个模块进行详细的

算法设计;为模块内的数据结构进行设计;对数据库进行物理设计,即确定数据

库的物理 结构;其它设计,根据软件系统类型,还可能要进行代码设计、输入/

输出格式设计、人机对话设计;编写详细设计说明书;评审。详细描述处理过程

常用三种工 具:图形、表格和语言。如结构化程序流程图、盒图和问题分析图。

IPO图也是详细设计的主要工具之一。表格工具如判定表可作为详细设计中描述

逻辑条件复杂 的算法。过程设计语言(PDL)是一种用于描述模块算法设计和

处理细节的语言工具。5、什么是软件危机?其产生的原因是什么?当软件开发

技术的进步不能跟 上硬件技术的进步,未能满足发展的要求,致软件开发中遇

到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了

软件危机。主要表现为: <1>经费预算经常突破,完成时间一再拖延;<2>开发

的软件不能满足用户要求;<3>开发的软件可维护性差; <4>开发的软件可靠性

差。造成软件危机的原因是由于软件产品本身的特点以及开发软件的方式、方

法、技术和人员引起的。共产生原因主要有以下 几方面:<1>软件的规模越来越

大,结构越来越复杂;<2>软件开发管理困难而复杂;<3>软件开发费用不断增加;

<4>软件开发技术落后;<5>生产方式落后;<6>开发工具落后,生产率提高缓慢。

6、CASE工作台有哪些分 类?一个CASE工作台是一组工具集,支持像设计、

实现或测试等特定的软件开发阶段。工作台工具能通过共享文件、共享仓库或共

享数据结构来集成。它能支持 大多数的软件过程活动。工作台有:<1>程序设计

工作台;<2>分析和设计工作台;<3>测试工作台;< 4>交叉开发工作台;<5>配

置管理(CM)工作台;<6>文档工作台<7>项目管理工作台。7、IDEF0 方法有什

么特点?<1>采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述

活动所受到的约束条件及实现机制。从侧面清楚的反映了系 统的功能。故IDEF0

图宜全为正式文档。<2>采用严格的自顶向下、逐层分解的方式建立系统功能模

型。顶层确定系统范围,采用抽象原则,然 后有控制的逐步展开有关活动的细

节,符合SA方法的分析策略。同时,IDEF0规定每张图至少有3个、最多有6

个方框,上界6保证采用层次性描述复杂问题 的可理解性,下界3保证分解有

意义。

23、软件维护的特点是什么?

主要体现在三个方面:<1>非结构化维护和结构化维护。软件的开发过程对

软件的维护有很大的影响。若不采用软件工程的方法开发软件,则软件 只有程

序而无文档,维护工作非常困难,这是一种非结构化的维护。若采用软件工程的

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

的维护。<2>维护的困难性。软件维护的困难性是由于软件需求分析和开发方法

的缺陷。软件生存周期中的开发阶段没有严格而有科学的管理和规 划,就会引

起软件运行时的维护困难。<3>软件维护的费用。软件维护的费用在总费用中的

比重是在不断增加的,这是软件维护有形的代价。另外还 有无形的代价,即要

占用更多的资源。软件维护费用增加的主要原因是软件维护的生产率非常低。

24、什么是CASE?CASE工具有哪些分类?

CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行

软件开发。从学术研究角度讲,CASE是多年来在软件开发管理、软件开发方法、

软 件开发环境和软件工具等方面研究和发展的产物。CASE把软件开发技术、

软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸引了CAD(计

算机 辅助设计)、软件工程、操作系统、数据库、网络和许多其它计算机领域

的原理和技术。因而,CASE领域是一个应用集成和综合的领域。从产业角度讲,

CASE是种类繁多的软件开发和系统集成的产品及软件工具的集合。CASE分类:

<1>CASE技术种类CASE系统所涉及到的技术有两类: 一类是支持软件开发过

程本身的技术;另一类是支持软件开发过程管理的技术。从CASE系统产生方式

来看,还有一种特殊的CASE技术,即元——CASE技 术。他是生成CASE系统

的生成器所采用的技术。该生成器可用来创建支持软件开发过程活动及过程管理

的CASE系统。<2>CASE工具的分 类对CASE工具分类的标准可分为:①功能。

功能是对软件进行分类的最常用的标准。②支持的过程。根据支持的过程,工具

可分为设计工具、编程工具、维护工 具等。③支持的范围。根据支持的范围,

可分为窄支持、较宽支持和一般支持工具。窄支持指支持过程中特定的任务,较

宽支持是指支持特定过程阶段;一般支持是 指支持覆盖软件过程的全部阶段或

大多数阶段。1993年,Fuggetta根据CASE系统对软件过程的支持范围,提出CASE

系统可分为三类:①支持单 个过程任务的工具。工具可能是通用的,或者也可

能归组到工作台。②工作台支持某一过程所有活动或某些活动。他们一般以或多

或少的集成度组成工具集。③环境 支持软件过程所有活动或至少大部分。他们

一般包括几个不同的工作台,将这些工作台以某种方式集成起来。

25、 说明容错软件的定义与容错的一般方法。

归纳容错软件的定义,有以下四种:⑴规定功能的软件,在一定程序上对

自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件。

⑵规定 功能的软件,在一定程序上能从错误状态自动恢复到正常状态,则称之

为容错软件。⑶规定功能的软件,在因错误而发生错误时,仍然能在一定程度上

完成预期的功 能,则把该软件称为容错软件。⑷规定功能的软件,在一定程度

上具有容错能力,则称之为容错软件。实现容错技术的主要手段是冗余,通常冗

余技术分为四类。⑴ 结构冗余。结构冗余是通常用的冗余技术。按其工作方式,

它分为静态、动态和混合冗余三种。⑵信息冗余。为检查或纠正信息在运算或传

输中的错误须外加一部分 信息,这种现象称为信息冗余。⑶时间冗余。是指以

重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。⑷

冗余附加技术。是指为实现上述 冗余技术所需的资源和技术。包括程序、指令、

数据、存放和调动他们的空间和通道等。

26、软件概要设计阶段的基本任务是什么?

⑴设计软件系统结构(简称软件结构),具体为:①采用某种设计方法,

将一个复杂的系统按功能划分成模块。②确定每个模块的功能。③确定模块之间

的调用关 系。④确定模块之间的接口,即模块之间传递的信息。⑤评价模块结

构的质量。⑵数据结构及数据库设计,汉数据结构的设计及数据库的设计。⑶编

写概要设计文 档。主要有:概要设计说明书;数据库设计说明书;用户手册;

修订测试计划。⑷评审。5、快速原型模型有几种?各有何特点?根据原型的不

同作用,有三类原型 模型:⑴探索型原型。这种类型的原型模型是把原型用于

开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各

种方案的可行性。它主要针 对开发目标模糊,用户与开发着对项目都缺乏经验

的情况,通过对原型的开发来明确用户的需求。⑵实验型原型。这种原型主要用

于设计阶段,考核实现方案是否合 适,能否实现,对于一个大型系统,若对设

计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。⑶演化型原

型。这种原型主要用于及早向用户提交一 个原型系统,该原型系统或者包含系

统的框或者包含系统的主要功能。在得到用户的认可后,将原型系统不断扩充演

变为最终的软件系统,它将原型的思路扩展到软 件开发的全过程。

27、在划分软件生存周期阶段时,应遵循的基本原则是什么?

软件生存周期的各个阶段有不同的划分。软件规模、种类、开发方式、开

发环境以及开发使用方法都影响软件生存周期的划分。在划分软件生存周期阶段

时,应遵 循的一条基本原则是各阶段的任务应尽可能相对独立,同一阶段各项

目任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之

间的联系,有利 于软件项目开发的组织管理。

28、请说明软件文档的作用?

软件开发项目生存期各阶段都包含哪些文档?软件文档的作用是:提高软

件开发过程的能见度;提高开发效率;作为开发人员阶段工作成果和结束标志;

记录开发 过程的有关信息便于使用与维护;提供软件运行、维护和培训有关资

料;便于用户了解软件功能、性能。软件开发项目生存期各阶段应包括得文档以

及与各类人员的 关系如下:可行性研究报告、项目开发计划、软件需求说明书、

数据要求说明书、测试计划、概要设计说明书、详细设计说明书、用户手册、操

作手册、测试分析报 告、开发进度月报、项目开发总结、程序维护手册(维护

修改建议)。

29、软件开发成本估算方法有哪几种?

<1>自顶向下估算方法。估算人员参照以前完成的项目所耗费的总成本(或

总工作量),来推算将要开发的软件的总成本(或总工作量),然后把 它们按

阶段、步骤和工作单元进行分配,这样方法称为自顶向下的估算方法。<2>自底

向上估算方法。自底向上估算方法是将待开发的软件细分,分 别估算每一个子

任务所需要的开发工作量,然后将它们加起来,得到软件的总开发量。<3>差别

估算方法。差别估算是将开发项目与一个或多个已完 成的类似项目进行比较,

找出与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,导

出开发项目的总成本。<4>专家估算法。依 靠一个或多个专家对要求的项目做出

估算。<5>类推估算法。<6>算式估算法。

30、简述SA方法的优缺点?

结构化分析方法是软件需求分析中公认的、有成效的、技术成熟、使用广

泛的一种方法,它较适合于开发数据处理类型软件的需求分析。该方法利用图形

等半形式 化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测

试、评价提供了有利的条件。但SA方法也存在有不足之处:⑴传统的SA方法

主要用于数据处 理方面的问题,主要工具DFD体现了系统“做什么”的功能,

但它仅是一个静态模型,没有反映处理的顺序,即控制流程。因此,不适合描述

实时控制系统。 ⑵SA方法使用DFD在分析与描述“数据要求”方面是有限的,

DFD应与数据库技术中的实体联系图(ER图)结合起来。⑶DFD不是和描述人

机界面系统的 需求。SA方法则对这一部分用自然语言作补充,对这类系统可采

取其它的分析方法。⑷为了更精确地描述软件需求,提高软件系统的可靠性、安

全性,也便于实现 自动化,SA方法可与形式化方法结合起来。5、什么是软件

工程?它的目标和内容是什么?软件工程是一种用科学知识和技术原理来定

义、开发、维护软件的一门 学科。软件工程是一门工程性学科,目的是成功的

建造一个大型软件系统,所谓成功是要达到以下几个目标:付出较低的开发成

本,达到要求的软件功能;取得较好 的软件性能;开发的软件易于移植;需要

较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

软件工程研究的主要内容是软件开发技术和 软件开发管理两方面,在软件开发

技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件

开发管理中,主要研究软件管理学、软件经济学、 软件心理学等。6、简述容错

系统的设计过程?容错系统的设计过程包括以下设计步骤:⑴安设计任务要求进

行常规设计,尽量保证设计的正确。⑵对可能出现的错 误分类,确定实现容错

的范围。⑶按照成本—效益最优原则,选用某种冗余手段来实现对各类错误的屏

蔽。⑷分析或验证上述冗余结构的容错效果。如果效果没有达 到预期的程度,

则应重新进行冗余结构设计。如此重复,直到有一个满意的结果为止。7、渐增

模型有几种?各有何特点?渐增模型是瀑布模型的变种,它有两类: ⑴增量构

造模型。它在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增

量开发。也就是说在前面的开发阶段按瀑布模型进行整体开发,后面的开发 阶

段按增量方式开发。⑵演化提交模型。它在瀑布模型基础上,所有阶段都进行增

量开发,也就是说不仅是增量开发,也是增量提交。8、试述系统开发的生命周

期。系统开发是管理信息系统建设中最重要的一个阶段,从项目开发开始到结束

的整个过程,称为系统开发的生命周期。系统开发的生命周期一般分为以下阶

段:⑴ 系统分析。这一阶段的主要任务是明确用户的信息需求,提出新系统的

逻辑方案。需要进行的工作有系统的初步调查,可行性研究,现行系统的详细调

查及新系统逻 辑模型的提出等。⑵系统设计。这一阶段的主要任务是根据新系

统的逻辑方案进行软、硬件系统的设计,其中包括总体结构设计、输出设计、输

入设计、处理过程设 计、数据存储设计和计算机系统方案的选择等。⑶系统实

施。这一阶段将设计的系统付诸实施,主要工作有软件的程序编制与软件包的购

置、计算机与通讯设备的购 置、系统的安装、调试与测试、新旧系统的转换等。

31、如何控制因修改而引起的副作用?

为了控制因修改而引起的副作用,要做到:⑴按模块把修改分组;⑵自顶向

下的安排被修改模块的顺序;⑶每次修改一个模块;⑷对每个修改了的模块,在

安排修改下一个模块之前要确定这个修改的副作用,可使用交叉引用表、存储映

像表、执行流程跟踪等。

32、什么是基本加工?

描述表达基本加工逻辑功能的结构化工具的特点?数据流图中所有不进一

步分解的加工,称为基本加工。描述表达基本加工逻辑功能的结构化工具主要

有:⑴自然 语言的文字叙述。⑵结构化语言。⑶决策树。⑷决策表。⑸数学公

式。⑹上述各工具的联合使用。其特点如下所述:⑴自然语言语义丰富,语法灵

活,可描述十分广 泛而复杂的问题,表达人们丰富的感情和智慧。⑵结构化语

言没有严格的语法规定,使用的词汇比形式化的计算机语言广泛,但使用的语句

类型很少,结构规范,表 达的内容清晰、准确、易理解,不易产生歧义。⑶决

策树清晰的表达了在什么情况下应采取什么策略,不易产生逻辑上的混乱。是描

述基本加工的逻辑功能的有效工 具。⑷决策表将比较复杂的决策问题简洁、明

确、一目了然的描述出来。它是描述条件比较多的决策问题的有效工具。

33、开放式工作台有什么优点?

⑴易将某个工具加入到开放式工作台中,还可以用新的工具取代已有的工

具。⑵可以由一个配置管理系统来管理由工具输出的文件。⑶能不断增强工作台

的功能, 不断发展工作台。⑷工作台不依赖于某个供应商,而能从不同销售商

处购买工具。如果一个工具开发商不提供支持了,最多影响该工作台的一部分工

具,其余的工具 还可以继续使用。

34、增量模型的基本思想是什么?

为了克服瀑布模型的局限性,使开发过程具有一定的灵活性和可修改性,

于是产生了增量模型。它是在瀑布模型的基础上加以修改而形成的。增量模型和

瀑布模型 之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始下一

个阶段的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发

模型,它推迟某 些阶段或所有阶段中的细节,从而较早的产生工作软件。增量

模型是在项目的开发过程中以一系列的增量方式开发系统。增量方式包括增量开

发和增量提交。增量开 发是指在项目开发周期内,以一定的时间间隔开发部分

工作软件;增量提交是指在项目开发周期内,以一定的时间间隔增量方式向用户

提交工作软件及相应文档。增 量开发和增量提交可以同时使用,也可以单独使

用。5、对软件开发环境的基本要求有哪些?⑴软件开发环境应是高度集成的一

体化的系统。⑵软件开发环境应具有 高度的通用性。⑶软件开发环境应易于定

制、裁剪或扩充以符合用户要求,即软件开发环境应具有高度的适应性和灵活

性。⑷软件开发环境不但可应用性要好,而且 是易使用的、经济高效的系统。

⑸软件开发环境应有辅助开发向半自动开发和自动开发逐步过渡的系统。6、项

目开发计划有哪些内容?项目开发计划是一个管理性 的文档,它的主要内容如

下:⑴项目概述:说明项目的各项主要工作;说明软件的功能、性能;为完成项

目应具备的条件;用户及合同承包者承担的工作、完成期限 及其它条件限制;

应交付的程序名称,所使用的语言及存储形式;应交付的文档。⑵实施计划:说

明任务的划分,各项任务的责任人;说明项目开发进度,按阶段应 完成的任务,

用图表说明每项任务的开始时间和完成时间;说明项目的预算,各阶段的费用支

出预算。⑶人员组织及分工:说明开发该项目所需人员的类型、组成结 构、数

量等。⑷交付期限:说明项目最后完工交付的日期。7、软件设计的基本原理包

括哪些内容?模块化。是指解决一个复杂问题时自顶向下逐层把软件系统化分

成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组

装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件解决复杂问

题所 具备的手段。抽象。抽象是认识复杂现象过程中使用的思维工具即抽出事

物本质的共同的特性而暂不考虑它的细节,不考虑其它因素。软件工程过程中的

每一部都可 以看作是对软件解决方法的抽象层次的一次细化。信息隐蔽。是指

在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要

这些信息的其它模 块来说,是不能访问的。通过信息隐蔽,可以定义和实施对

模块的过程细节和局部数据结构的存取限制。数据独立性。指每个模块只完成系

统要求的独立的子功能, 并且与其它模块的联系最少且接口简单。8、白盒测试

法有哪些覆盖标准?试对他们的检错能力进行比较。白盒测试法的覆盖标准有:

语句覆盖、判定覆盖、条件覆 盖、判定/条件覆盖、条件组合覆盖、路径覆盖。

语句覆盖发现错误能力最弱。判定覆盖包含了语句覆盖,但它可能会使一些条件

的不到测试。条件覆盖对每一条件 进行单独检查,一般情况它的检错能力较判

定覆盖强,但有时达不到判定覆盖的要求。判定/条件覆盖包含了判定覆盖和条

件覆盖的要求,但由于计算机系统软件实 现方式的限制,实际上不一定达到条

件覆盖的标准。条件组合覆盖发现错误能力较强,凡满足其标准的测试用例,也

必须满足前四种覆盖标准。前五种覆盖标准把注 意力集中在单个判定或判定的

各个条件上,可能会使程序某些路径没有执行到。路径覆盖根据各判定表达式取

值的组合,使程序沿着不同的路径执行,查错能力强。 但由于它是从各判定的

整体组合出发设计测试用例的,可能使测试用例达不到条件组合覆盖的要求。

35、什么是确认测试?该阶段有哪些工作?

确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求

规格说明书中确定的指标相符合。确认测试阶段有两项工作,进行确认测试与软

件配置审 查。<1>确认测试一般是在模拟环境中运用黑盒测试方法,由专门测试

人员和用户参加的测试。<2>软件配置审查的任务是检查软件 的所有文档资料的

完整性、正确性。如果发现遗漏和错误,应补充和改正,同时要编排好目录,为

以后的软件维护工作奠定基础。

36、详细设计的基本任务是什么?有哪几种描述方法?

详细设计是软件设计的第二阶段,其基本任务有:为每个模块进行详细的

算法设计;为模块内的数据结构进行设计;对数据库进行物理设计,即确定数据

库的物理 结构;其它设计,根据软件系统类型,还可能要进行代码设计、输入/

输出格式设计、人机对话设计;编写详细设计说明书;评审。详细描述处理过程

常用三种工 具:图形、表格和语言。如结构化程序流程图、盒图和问题分析图。

IPO图也是详细设计的主要工具之一。表格工具如判定表可作为详细设计中描述

逻辑条件复杂 的算法。过程设计语言(PDL)是一种用于描述模块算法设计和

处理细节的语言工具。5、什么是软件危机?其产生的原因是什么?当软件开发

技术的进步不能跟 上硬件技术的进步,未能满足发展的要求,致软件开发中遇

到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了

软件危机。主要表现为: <1>经费预算经常突破,完成时间一再拖延;<2>开发

的软件不能满足用户要求;<3>开发的软件可维护性差; <4>开发的软件可靠性

差。造成软件危机的原因是由于软件产品本身的特点以及开发软件的方式、方

法、技术和人员引起的。共产生原因主要有以下 几方面:<1>软件的规模越来越

大,结构越来越复杂;<2>软件开发管理困难而复杂;<3>软件开发费用不断增加;

<4>软件开发技术落后;<5>生产方式落后;<6>开发工具落后,生产率提高缓慢。

6、CASE工作台有哪些分 类?一个CASE工作台是一组工具集,支持像设计、

实现或测试等特定的软件开发阶段。工作台工具能通过共享文件、共享仓库或共

享数据结构来集成。它能支持 大多数的软件过程活动。工作台有:<1>程序设计

工作台;<2>分析和设计工作台;<3>测试工作台;< 4>交叉开发工作台;<5>配

置管理(CM)工作台;<6>文档工作台<7>项目管理工作台。7、IDEF0 方法有什

么特点?<1>采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述

活动所受到的约束条件及实现机制。从侧面清楚的反映了系 统的功能。故IDEF0

图宜全为正式文档。<2>采用严格的自顶向下、逐层分解的方式建立系统功能模

型。顶层确定系统范围,采用抽象原则,然 后有控制的逐步展开有关活动的细

节,符合SA方法的分析策略。同时,IDEF0规定每张图至少有3个、最多有6

个方框,上界6保证采用层次性描述复杂问题 的可理解性,下界3保证分解有

意义。

37、软件维护的特点是什么?

主要体现在三个方面:<1>非结构化维护和结构化维护。软件的开发过程对

软件的维护有很大的影响。若不采用软件工程的方法开发软件,则软件 只有程

序而无文档,维护工作非常困难,这是一种非结构化的维护。若采用软件工程的

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

的维护。<2>维护的困难性。软件维护的困难性是由于软件需求分析和开发方法

的缺陷。软件生存周期中的开发阶段没有严格而有科学的管理和规 划,就会引

起软件运行时的维护困难。<3>软件维护的费用。软件维护的费用在总费用中的

比重是在不断增加的,这是软件维护有形的代价。另外还 有无形的代价,即要

占用更多的资源。软件维护费用增加的主要原因是软件维护的生产率非常低。

38、什么是CASE?CASE工具有哪些分类?

CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行

软件开发。从学术研究角度讲,CASE是多年来在软件开发管理、软件开发方法、

软 件开发环境和软件工具等方面研究和发展的产物。CASE把软件开发技术、

软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸引了CAD(计

算机 辅助设计)、软件工程、操作系统、数据库、网络和许多其它计算机领域

的原理和技术。因而,CASE领域是一个应用集成和综合的领域。从产业角度讲,

CASE是种类繁多的软件开发和系统集成的产品及软件工具的集合。CASE分类:

<1>CASE技术种类CASE系统所涉及到的技术有两类: 一类是支持软件开发过

程本身的技术;另一类是支持软件开发过程管理的技术。从CASE系统产生方式

来看,还有一种特殊的CASE技术,即元——CASE技 术。他是生成CASE系统

的生成器所采用的技术。该生成器可用来创建支持软件开发过程活动及过程管理

的CASE系统。<2>CASE工具的分 类对CASE工具分类的标准可分为:①功能。

功能是对软件进行分类的最常用的标准。②支持的过程。根据支持的过程,工具

可分为设计工具、编程工具、维护工 具等。③支持的范围。根据支持的范围,

可分为窄支持、较宽支持和一般支持工具。窄支持指支持过程中特定的任务,较

宽支持是指支持特定过程阶段;一般支持是 指支持覆盖软件过程的全部阶段或

大多数阶段。1993年,Fuggetta根据CASE系统对软件过程的支持范围,提出CASE

系统可分为三类:①支持单 个过程任务的工具。工具可能是通用的,或者也可

能归组到工作台。②工作台支持某一过程所有活动或某些活动。他们一般以或多

或少的集成度组成工具集。③环境 支持软件过程所有活动或至少大部分。他们

一般包括几个不同的工作台,将这些工作台以某种方式集成起来。

39、说明容错软件的定义与容错的一般方法。

归纳容错软件的定义,有以下四种:⑴规定功能的软件,在一定程序上对

自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件。

⑵规定 功能的软件,在一定程序上能从错误状态自动恢复到正常状态,则称之

为容错软件。⑶规定功能的软件,在因错误而发生错误时,仍然能在一定程度上

完成预期的功 能,则把该软件称为容错软件。⑷规定功能的软件,在一定程度

上具有容错能力,则称之为容错软件。实现容错技术的主要手段是冗余,通常冗

余技术分为四类。⑴ 结构冗余。结构冗余是通常用的冗余技术。按其工作方式,

它分为静态、动态和混合冗余三种。⑵信息冗余。为检查或纠正信息在运算或传

输中的错误须外加一部分 信息,这种现象称为信息冗余。⑶时间冗余。是指以

重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。⑷

冗余附加技术。是指为实现上述 冗余技术所需的资源和技术。包括程序、指令、

数据、存放和调动他们的空间和通道等。

40、软件概要设计阶段的基本任务是什么?

⑴设计软件系统结构(简称软件结构),具体为:①采用某种设计方法,

将一个复杂的系统按功能划分成模块。②确定每个模块的功能。③确定模块之间

的调用关 系。④确定模块之间的接口,即模块之间传递的信息。⑤评价模块结

构的质量。⑵数据结构及数据库设计,汉数据结构的设计及数据库的设计。⑶编

写概要设计文 档。主要有:概要设计说明书;数据库设计说明书;用户手册;

修订测试计划。⑷评审。5、快速原型模型有几种?各有何特点?根据原型的不

同作用,有三类原型 模型:⑴探索型原型。这种类型的原型模型是把原型用于

开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各

种方案的可行性。它主要针 对开发目标模糊,用户与开发着对项目都缺乏经验

的情况,通过对原型的开发来明确用户的需求。⑵实验型原型。这种原型主要用

于设计阶段,考核实现方案是否合 适,能否实现,对于一个大型系统,若对设

计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。⑶演化型原

型。这种原型主要用于及早向用户提交一 个原型系统,该原型系统或者包含系

统的框或者包含系统的主要功能。在得到用户的认可后,将原型系统不断扩充演

变为最终的软件系统,它将原型的思路扩展到软 件开发的全过程。

41、在划分软件生存周期阶段时,应遵循的基本原则是什么?

软件生存周期的各个阶段有不同的划分。软件规模、种类、开发方式、开

发环境以及开发使用方法都影响软件生存周期的划分。在划分软件生存周期阶段

时,应遵 循的一条基本原则是各阶段的任务应尽可能相对独立,同一阶段各项

目任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之

间的联系,有利 于软件项目开发的组织管理。

42、请说明软件文档的作用?

软件开发项目生存期各阶段都包含哪些文档?软件文档的作用是:提高软

件开发过程的能见度;提高开发效率;作为开发人员阶段工作成果和结束标志;

记录开发 过程的有关信息便于使用与维护;提供软件运行、维护和培训有关资

料;便于用户了解软件功能、性能。软件开发项目生存期各阶段应包括得文档以

及与各类人员的 关系如下:可行性研究报告、项目开发计划、软件需求说明书、

数据要求说明书、测试计划、概要设计说明书、详细设计说明书、用户手册、操

作手册、测试分析报 告、开发进度月报、项目开发总结、程序维护手册(维护

修改建议)。

43、软件开发成本估算方法有哪几种?

<1>自顶向下估算方法。估算人员参照以前完成的项目所耗费的总成本(或

总工作量),来推算将要开发的软件的总成本(或总工作量),然后把 它们按

阶段、步骤和工作单元进行分配,这样方法称为自顶向下的估算方法。<2>自底

向上估算方法。自底向上估算方法是将待开发的软件细分,分 别估算每一个子

任务所需要的开发工作量,然后将它们加起来,得到软件的总开发量。<3>差别

估算方法。差别估算是将开发项目与一个或多个已完 成的类似项目进行比较,

找出与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,导

出开发项目的总成本。<4>专家估算法。依 靠一个或多个专家对要求的项目做出

估算。<5>类推估算法。<6>算式估算法。

44、简述SA方法的优缺点?

结构化分析方法是软件需求分析中公认的、有成效的、技术成熟、使用广

泛的一种方法,它较适合于开发数据处理类型软件的需求分析。该方法利用图形

等半形式 化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测

试、评价提供了有利的条件。但SA方法也存在有不足之处:⑴传统的SA方法

主要用于数据处 理方面的问题,主要工具DFD体现了系统“做什么”的功能,

但它仅是一个静态模型,没有反映处理的顺序,即控制流程。因此,不适合描述

实时控制系统。 ⑵SA方法使用DFD在分析与描述“数据要求”方面是有限的,

DFD应与数据库技术中的实体联系图(ER图)结合起来。⑶DFD不是和描述人

机界面系统的 需求。SA方法则对这一部分用自然语言作补充,对这类系统可采

取其它的分析方法。⑷为了更精确地描述软件需求,提高软件系统的可靠性、安

全性,也便于实现 自动化,SA方法可与形式化方法结合起来。5、什么是软件

工程?它的目标和内容是什么?软件工程是一种用科学知识和技术原理来定

义、开发、维护软件的一门 学科。软件工程是一门工程性学科,目的是成功的

建造一个大型软件系统,所谓成功是要达到以下几个目标:付出较低的开发成

本,达到要求的软件功能;取得较好 的软件性能;开发的软件易于移植;需要

较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

软件工程研究的主要内容是软件开发技术和 软件开发管理两方面,在软件开发

技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件

开发管理中,主要研究软件管理学、软件经济学、 软件心理学等。6、简述容错

系统的设计过程?容错系统的设计过程包括以下设计步骤:⑴安设计任务要求进

行常规设计,尽量保证设计的正确。⑵对可能出现的错 误分类,确定实现容错

的范围。⑶按照成本—效益最优原则,选用某种冗余手段来实现对各类错误的屏

蔽。⑷分析或验证上述冗余结构的容错效果。如果效果没有达 到预期的程度,

则应重新进行冗余结构设计。如此重复,直到有一个满意的结果为止。7、渐增

模型有几种?各有何特点?渐增模型是瀑布模型的变种,它有两类: ⑴增量构

造模型。它在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增

量开发。也就是说在前面的开发阶段按瀑布模型进行整体开发,后面的开发 阶

段按增量方式开发。⑵演化提交模型。它在瀑布模型基础上,所有阶段都进行增

量开发,也就是说不仅是增量开发,也是增量提交。8、试述系统开发的生命周

期。系统开发是管理信息系统建设中最重要的一个阶段,从项目开发开始到结束

的整个过程,称为系统开发的生命周期。系统开发的生命周期一般分为以下阶

段:⑴ 系统分析。这一阶段的主要任务是明确用户的信息需求,提出新系统的

逻辑方案。需要进行的工作有系统的初步调查,可行性研究,现行系统的详细调

查及新系统逻 辑模型的提出等。⑵系统设计。这一阶段的主要任务是根据新系

统的逻辑方案进行软、硬件系统的设计,其中包括总体结构设计、输出设计、输

入设计、处理过程设 计、数据存储设计和计算机系统方案的选择等。⑶系统实

施。这一阶段将设计的系统付诸实施,主要工作有软件的程序编制与软件包的购

置、计算机与通讯设备的购 置、系统的安装、调试与测试、新旧系统的转换等。

45、如何控制因修改而引起的副作用?

为了控制因修改而引起的副作用,要做到:⑴按模块把修改分组;⑵自顶向

下的安排被修改模块的顺序;⑶每次修改一个模块;⑷对每个修改了的模块,在

安排修改下一个模块之前要确定这个修改的副作用,可使用交叉引用表、存储映

像表、执行流程跟踪等。

46、什么是基本加工?

描述表达基本加工逻辑功能的结构化工具的特点?数据流图中所有不进一

步分解的加工,称为基本加工。描述表达基本加工逻辑功能的结构化工具主要

有:⑴自然 语言的文字叙述。⑵结构化语言。⑶决策树。⑷决策表。⑸数学公

式。⑹上述各工具的联合使用。其特点如下所述:⑴自然语言语义丰富,语法灵

活,可描述十分广 泛而复杂的问题,表达人们丰富的感情和智慧。⑵结构化语

言没有严格的语法规定,使用的词汇比形式化的计算机语言广泛,但使用的语句

类型很少,结构规范,表 达的内容清晰、准确、易理解,不易产生歧义。⑶决

策树清晰的表达了在什么情况下应采取什么策略,不易产生逻辑上的混乱。是描

述基本加工的逻辑功能的有效工 具。⑷决策表将比较复杂的决策问题简洁、明

确、一目了然的描述出来。它是描述条件比较多的决策问题的有效工具。

47、开放式工作台有什么优点?

⑴易将某个工具加入到开放式工作台中,还可以用新的工具取代已有的工

具。⑵可以由一个配置管理系统来管理由工具输出的文件。⑶能不断增强工作台

的功能, 不断发展工作台。⑷工作台不依赖于某个供应商,而能从不同销售商

处购买工具。如果一个工具开发商不提供支持了,最多影响该工作台的一部分工

具,其余的工具 还可以继续使用。

48、增量模型的基本思想是什么?

为了克服瀑布模型的局限性,使开发过程具有一定的灵活性和可修改性,

于是产生了增量模型。它是在瀑布模型的基础上加以修改而形成的。增量模型和

瀑布模型 之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始下一

个阶段的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发

模型,它推迟某 些阶段或所有阶段中的细节,从而较早的产生工作软件。增量

模型是在项目的开发过程中以一系列的增量方式开发系统。增量方式包括增量开

发和增量提交。增量开 发是指在项目开发周期内,以一定的时间间隔开发部分

工作软件;增量提交是指在项目开发周期内,以一定的时间间隔增量方式向用户

提交工作软件及相应文档。增 量开发和增量提交可以同时使用,也可以单独使

用。5、对软件开发环境的基本要求有哪些?⑴软件开发环境应是高度集成的一

体化的系统。⑵软件开发环境应具有 高度的通用性。⑶软件开发环境应易于定

制、裁剪或扩充以符合用户要求,即软件开发环境应具有高度的适应性和灵活

性。⑷软件开发环境不但可应用性要好,而且 是易使用的、经济高效的系统。

⑸软件开发环境应有辅助开发向半自动开发和自动开发逐步过渡的系统。6、项

目开发计划有哪些内容?项目开发计划是一个管理性 的文档,它的主要内容如

下:⑴项目概述:说明项目的各项主要工作;说明软件的功能、性能;为完成项

目应具备的条件;用户及合同承包者承担的工作、完成期限 及其它条件限制;

应交付的程序名称,所使用的语言及存储形式;应交付的文档。⑵实施计划:说

明任务的划分,各项任务的责任人;说明项目开发进度,按阶段应 完成的任务,

用图表说明每项任务的开始时间和完成时间;说明项目的预算,各阶段的费用支

出预算。⑶人员组织及分工:说明开发该项目所需人员的类型、组成结 构、数

量等。⑷交付期限:说明项目最后完工交付的日期。7、软件设计的基本原理包

括哪些内容?模块化。是指解决一个复杂问题时自顶向下逐层把软件系统化分

成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组

装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件解决复杂问

题所 具备的手段。抽象。抽象是认识复杂现象过程中使用的思维工具即抽出事

物本质的共同的特性而暂不考虑它的细节,不考虑其它因素。软件工程过程中的

每一部都可 以看作是对软件解决方法的抽象层次的一次细化。信息隐蔽。是指

在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要

这些信息的其它模 块来说,是不能访问的。通过信息隐蔽,可以定义和实施对

模块的过程细节和局部数据结构的存取限制。数据独立性。指每个模块只完成系

统要求的独立的子功能, 并且与其它模块的联系最少且接口简单。8、白盒测试

法有哪些覆盖标准?试对他们的检错能力进行比较。白盒测试法的覆盖标准有:

语句覆盖、判定覆盖、条件覆 盖、判定/条件覆盖、条件组合覆盖、路径覆盖。

语句覆盖发现错误能力最弱。判定覆盖包含了语句覆盖,但它可能会使一些条件

的不到测试。条件覆盖对每一条件 进行单独检查,一般情况它的检错能力较判

定覆盖强,但有时达不到判定覆盖的要求。判定/条件覆盖包含了判定覆盖和条

件覆盖的要求,但由于计算机系统软件实 现方式的限制,实际上不一定达到条

件覆盖的标准。条件组合覆盖发现错误能力较强,凡满足其标准的测试用例,也

必须满足前四种覆盖标准。前五种覆盖标准把注 意力集中在单个判定或判定的

各个条件上,可能会使程序某些路径没有执行到。路径覆盖根据各判定表达式取

值的组合,使程序沿着不同的路径执行,查错能力强。 但由于它是从各判定的

整体组合出发设计测试用例的,可能使测试用例达不到条件组合覆盖的要求。

软件工程试题整理

简答题

1、可行性研究的任务是什么?

首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项

目的约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求

分析,抽象出该项 目的逻辑结构,建立逻辑模型。从逻辑模型出发,经

过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法

都要研究它的可行性,可从以下三个方 面分析研究每种解决方法的可行

性。㈠技术可行性:对要开发项目的功能、性能、限制条件进行分析,确

定在现有的资源条件下,技术风险有多大,项目是否能实 现。㈡经济可

行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目

是否值得投资开发。㈢社会可行性:要开发的项目是否存在任何侵犯、妨

碍等 责任问题,要开发项目的运行方式在用户组织内是否行得通,现有

管理制度、人员素质、操作方式是否可行。

2、什么是模块的影响范围?什么是模块的控制范围?他们之间应该

建立什么关系?

一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的

所有模块的集合。一个模块的控制范围指模块本身以及其所有下属模块

(直接或间接从属于 它的模块)的集合。一个模块的作用范围应在其控

制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。如

果再设计过程中,发现模块作用范围不在 其控制范围之内,可以用“上

移判点”或“下移受判断影响的模块,将它下移到判断所在模块的控制范

围内”的方法加以改进。

3、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模

块?

非渐增式测试与渐增式测试的测试方法有以下区别:㈠非渐增式测试

方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单

元测试,后一阶段 完成集成测试。而渐增式测试往往把单元测试与集成

测试和在一起,同时完成。㈡非渐增式需要更多的工作量,因为每个模块

都需要驱动模块和桩模块,而渐增式利 用已测试过的模块作为驱动模块

或桩模块,因此工作量较少。㈢渐增式可以较早的发现接口之间的错误,

非渐增式最后组装是才发现。㈣渐增式有利于排错,发生错 误往往和最

近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是

哪一部分接口出错。㈤渐增式比较彻底,已测试的模块和新的模块再测

试。㈥渐 增式占用的时间较多,但非渐增式须更多的驱动模块、桩模块

也占用一些时间。㈦非渐增式开始可并行测试所有模块,能充分利用人

力,对测试大型软件很有意义。 渐增式测试有以下两种不同的组装模块

的方法:㈠自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块

开始,沿被测程序的软件结构图的控制路径逐步向下 测试,从而把各个

模块都结合起来,它又有两种组合策略:①深度有先策略:先从软件结构

中选择一条主控制路径,把该路径上的模块一个个结合进来进行测试,以

便完成一个特定的子功能,接着再结合其它需要优先考虑的路径。②宽度

有先策略:逐层结合直接下属的所有模块。㈡自低向上结合。该方法仅需

编写驱动模块。其 步骤为:①把底层模块组合成实现一个个特定子功能

的族。②为每一个族编写一个驱动模块,以协调测试用例的输入和测试结

果的输出。③对模块族进行测试。④按 软件结构图依次向上扩展,用实

际模块替换驱动模块,形成一个个更大的族。⑤重复②至④步,直至软件

系统全部测试完毕。

4、软件质量与软件质量保证的含义是什么?

从实际应用来说,软件质量定义为:㈠与所确定的功能和性能需求的

一致性。㈡与所成文的开发标准一致性。㈢与所有专业开发的软件所期望

的隐含特性的一致 性。软件质量保证就是向用户及社会提供满意的高质

量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即

确定、达到和维护需要的软件质量而进 行的所有有计划、有系统的管理

活动。5、软件工程标准化的意义是什么?都有哪些软件工程标准?积极

推进软件工程标准化,其道理是显而易见的。仅就一个软件 开发项目来

说,有许多层次,不同分工的人员相互配合,在开发项目的各个部分以及

各开发阶段之间也都存在许多联系和衔接问题。如何把这些错综复杂的关

系协调 好,需要有一系列统一的约束和规定。在软件开发项目取得阶段

成果或最后完成是时,需要进行阶段评价和验收测试。投入运行的软件,

其维护工作中遇到问题又与 开发工作者有着密切的关系。软件的管理工

作则渗透到软件生存期的每一个环节。所有这些都要要求提供统一的行动

规范和衡量准则,使得各种工作都有章可循。软 件工程的标准主要有以

下三个:㈠FIPS135是美国国家标准局发布的《软件文档管理指南》㈡

NSAC ——39是美国核子安全分析中心发布的《安全参数显示系统的验证

与确认》。㈢ISO5807是国际标准化组织公布(现已成为中国的国家标准)

的《信息处理 —数据流程图、程序流程图、程序网络图和系统资源图的

文件编制符号及约定》。

5、需求分析阶段的基本任务是什么?

需求分析阶段的基本任务是要准确的定义新系统的目标,为了满足用

户需要,回答系统必须“做什么”的问题。本阶段要进行以下几方面的工

作:㈠问题识别。 双方确定对问题的综合需求,这些需求包括:功能需

求、性能需求、环境需求、用户界面需求,另外还有可靠性、安全性、保

密性、可移植性、可维护性等方面的需 求。㈡分析与综合,导出软件的逻

辑模型。分析人员对获取的需求,进行一致性的分析检查,在分析、综合

中逐步细化软件功能,划分成各个子功能。这里也包括对 数据域进行分

解,并分配到各个子功能上,以确定系统的构成及主要成份,并用图文结

合的形式,建立起新系统的逻辑模型。㈢编写文档。编写“需求规格说明

书”、编写初步用户使用手册、编写确认测试计划、修改完善软件开发计

划。

6、采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特

点?

㈠等价类划分。

等价类划分是将输入数据域按有效的或无效的(也称合理的或不合理

的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其它值

的测试。

㈡边界值分析。

该方法是将测试边界情况作为重点目标,选取正好等于,刚刚大于或

刚刚小于边界值的情况,根据这些情况选择测试用例。

㈢错误推测。

错误推测法没有确定的步骤,凭检验进行。它的基本思想是列出程序

中可能发生错误的情况,根据这些情况选择测试用例。

㈣因果图。

因果图能有效的检测输入条件的各种组合可能会引起的错误。因果图

的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定

表,最后为判定表的每一列设计一个测试用例。

7、说明动态建模的过程。

㈠准备脚本。

动态分析从寻找事件开始,然后确定各对象的可能事件的顺序。在分

析阶段不考虑算法的执行,算法是实现模型的一部分。

㈡确定事件。

确定所有外部事件。事件包括所有来自或发往用户的信息、外部设备

的信号、输入、转换和动作。

㈢准备事件跟踪表。

把脚本表示成一个事件跟踪表,对象为表中的列,给每一个对象分配

一个独立的列。

㈣构造状态图。

对各对象类建立状态图,反映对象接收和发送的事件,每个事件跟踪

都对应于状态图中一条路径。

8、软件生产经历了几个阶段?各有何特征?

软件生产至今已经历了三个阶段:㈠程序设计时代(1946-1956):这

个阶段的生产方式是个体手工劳动,使用的工具实际其语言、汇编语言。

开发方 法是追求编程技巧,追求程序运行效率。硬件特征是价格贵、存

储容量小,运行可靠性差。软件特征是只有程序、程序设计概念,不重视

程序设计方法。㈡程序系统 时代(1956-1968):这个阶段的生产方式是

作坊式的小集团合作生产,生产工具是高级语言,开发方法仍就靠个人技

巧,但开始提出结构化方法。硬件特 征是速度、容量、工作可靠性有明

显提高。软件特征是程序员数量猛增,但开发技术没有新的突破,开发人

员的素质和落后的开发技术不适应规模大、结构复杂的软 件开发,导致

软件危机的产生。㈢软件工程时代(1968至今):这个阶段的生产方式是

工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面向

对象技术来开发软件。硬件特征是向超高速、大容量、微型化以及网络化

方向发展。软件特征是开发技术有很大进步,但是未能获得突破性进展,

软件价格不断上 升,没有完全摆脱软件危机。5、简述Gantt图的功能及

不足。Gantt图常用水平线段来描述把任务分解成子任务,以及每个子任务

的进度安排,动态反映 软件开发进度情况,该图可以:表示任务分解成

子任务情况;表示每个任务的开始时间和完成时间,线段的长度表示子任

务完成所需要的时间;表示子任务之间的并 行和串行关系。Gantt图只能

表示任务之间的并行与串行的关系,难以反映多个任务之间存在的复杂关

系,不能直观表示任务之间相互依赖制约关系,以及哪些 任务是关键字

任务等信息,因此仅仅用Gantt图作为进度的安排是不够的。6、什么是数

据字典?其作用是什么?它有哪些条目?数据字典(简称DD)是用来 定

义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说

明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的

描述。他和数据 流图共同构成了系统的逻辑模型,是需求规格说明书的

主要组成部分。数据字典是为分析人员查找数据流图中有关名字的详细定

义而服务的,因此也像普通字典一 样,要把所有条目按一定的次序排列

起来,以便查阅。数据字典有以下四类条目:数据流、数据项、数据存储、

基本加工。数据项是组成数据流和数据存储的最小元 素。源点、终点不

在系统之内,故一般不在字典中说明。7、调试的目的是什么?调试有哪

些技术手段?调试的目的是确定错误的原因和位置,并改正错误,因此调

试也成为纠错。调试技术主要有:简单的调试方法,主要有在程序中插入

打印语句、运行部分程序等;归纳法调试,他从测试结果发现的线索(错

误迹象、征兆)入 手、分析他们之间的联系,导处错误原因的假设,然

后再证明或否定这个假设;演绎法调试,该方法列出所有可能的错误原因

的假设,然后利用测试数据排除不适当 的假设,最后再测试数据验证余

下的假设确实是出错的原因;回溯法调试,该方法从程序产生错误的地方

出发,人工沿程序的逻辑路径反向搜索,直到找到错误的原 因为止。

9、 如何做好软件质量保证工作?

软件质量保证工作是软件工程管理的重要内容,软件质量保证应做好

以下几个方面的工作:<1>采用技术手段和工具。质量保证活动要贯彻开

发 过程始终,必须从采用技术手段和工具,尤其是使用软件开发环境来

进行软件开发。<2>组织正式技术评审,在软件开发的第一个阶段结束时,

都要 组织正式的技术评审。国家标准要求单位必须采用审查、文档评审、

设计评审、审计和测试等具体手段来保证质量。<3>加强软件测试。软件

测试是 质量保证的重要手段,因为测试可发现软件可发现软件中大多数

潜在错误。<4>推选软件工程规范(标准)。用户可以自己指定软件工程

规范(标 准),但标准一旦确认就应贯彻执行。<5>对软件的变更进行控

制。软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的

修改和变 更。<6>对软件质量进行度量。即对软件质量进行跟踪,及时记

录和报告软件质量情况。

10、什么是数据流图?其作用是什么?

其中的基本符号各表示什么含义?数据流图简称DFD,是SA方法中

用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流

动和处理的过 程,由于它只反映系统必须完成的逻辑功能,所以它是一

种功能模型。数据流图有四种基本图形符号:“→”箭头表示数据流;

“○”圆或椭圆表述加工;“=”双 杠表示数据存储;“”方框表示数据

的源点或终点。

11、可行性研究的任务是什么?

首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项

目的约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求

分析,抽象出该项 目的逻辑结构,建立逻辑模型。从逻辑模型出发,经

过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法

都要研究它的可行性,可从以下三个方 面分析研究每种解决方法的可行

性。㈠技术可行性:对要开发项目的功能、性能、限制条件进行分析,确

定在现有的资源条件下,技术风险有多大,项目是否能实 现。㈡经济可

行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目

是否值得投资开发。㈢社会可行性:要开发的项目是否存在任何侵犯、妨

碍等 责任问题,要开发项目的运行方式在用户组织内是否行得通,现有

管理制度、人员素质、操作方式是否可行。

12、什么是模块的影响范围?什么是模块的控制范围?他们之间应该

建立什么关系?

一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的

所有模块的集合。一个模块的控制范围指模块本身以及其所有下属模块

(直接或间接从属于 它的模块)的集合。一个模块的作用范围应在其控

制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。如

果再设计过程中,发现模块作用范围不在 其控制范围之内,可以用“上

移判点”或“下移受判断影响的模块,将它下移到判断所在模块的控制范

围内”的方法加以改进。

13、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模

块?

非渐增式测试与渐增式测试的测试方法有以下区别:㈠非渐增式测试

方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单

元测试,后一阶段 完成集成测试。而渐增式测试往往把单元测试与集成

测试和在一起,同时完成。㈡非渐增式需要更多的工作量,因为每个模块

都需要驱动模块和桩模块,而渐增式利 用已测试过的模块作为驱动模块

或桩模块,因此工作量较少。㈢渐增式可以较早的发现接口之间的错误,

非渐增式最后组装是才发现。㈣渐增式有利于排错,发生错 误往往和最

近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是

哪一部分接口出错。㈤渐增式比较彻底,已测试的模块和新的模块再测

试。㈥渐 增式占用的时间较多,但非渐增式须更多的驱动模块、桩模块

也占用一些时间。㈦非渐增式开始可并行测试所有模块,能充分利用人

力,对测试大型软件很有意义。 渐增式测试有以下两种不同的组装模块

的方法:㈠自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块

开始,沿被测程序的软件结构图的控制路径逐步向下 测试,从而把各个

模块都结合起来,它又有两种组合策略:①深度有先策略:先从软件结构

中选择一条主控制路径,把该路径上的模块一个个结合进来进行测试,以

便完成一个特定的子功能,接着再结合其它需要优先考虑的路径。②宽度

有先策略:逐层结合直接下属的所有模块。㈡自低向上结合。该方法仅需

编写驱动模块。其 步骤为:①把底层模块组合成实现一个个特定子功能

的族。②为每一个族编写一个驱动模块,以协调测试用例的输入和测试结

果的输出。③对模块族进行测试。④按 软件结构图依次向上扩展,用实

际模块替换驱动模块,形成一个个更大的族。⑤重复②至④步,直至软件

系统全部测试完毕。

14、软件质量与软件质量保证的含义是什么?

从实际应用来说,软件质量定义为:㈠与所确定的功能和性能需求的

一致性。㈡与所成文的开发标准一致性。㈢与所有专业开发的软件所期望

的隐含特性的一致 性。软件质量保证就是向用户及社会提供满意的高质

量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即

确定、达到和维护需要的软件质量而进 行的所有有计划、有系统的管理

活动。5、软件工程标准化的意义是什么?都有哪些软件工程标准?积极

推进软件工程标准化,其道理是显而易见的。仅就一个软件 开发项目来

说,有许多层次,不同分工的人员相互配合,在开发项目的各个部分以及

各开发阶段之间也都存在许多联系和衔接问题。如何把这些错综复杂的关

系协调 好,需要有一系列统一的约束和规定。在软件开发项目取得阶段

成果或最后完成是时,需要进行阶段评价和验收测试。投入运行的软件,

其维护工作中遇到问题又与 开发工作者有着密切的关系。软件的管理工

作则渗透到软件生存期的每一个环节。所有这些都要要求提供统一的行动

规范和衡量准则,使得各种工作都有章可循。软 件工程的标准主要有以

下三个:㈠FIPS135是美国国家标准局发布的《软件文档管理指南》㈡

NSAC ——39是美国核子安全分析中心发布的《安全参数显示系统的验证

与确认》。㈢ISO5807是国际标准化组织公布(现已成为中国的国家标准)

的《信息处理 —数据流程图、程序流程图、程序网络图和系统资源图的

文件编制符号及约定》。

15、需求分析阶段的基本任务是什么?

需求分析阶段的基本任务是要准确的定义新系统的目标,为了满足用

户需要,回答系统必须“做什么”的问题。本阶段要进行以下几方面的工

作:㈠问题识别。 双方确定对问题的综合需求,这些需求包括:功能需

求、性能需求、环境需求、用户界面需求,另外还有可靠性、安全性、保

密性、可移植性、可维护性等方面的需 求。㈡分析与综合,导出软件的逻

辑模型。分析人员对获取的需求,进行一致性的分析检查,在分析、综合

中逐步细化软件功能,划分成各个子功能。这里也包括对 数据域进行分

解,并分配到各个子功能上,以确定系统的构成及主要成份,并用图文结

合的形式,建立起新系统的逻辑模型。㈢编写文档。编写“需求规格说明

书”、编写初步用户使用手册、编写确认测试计划、修改完善软件开发计

划。

16、采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特

点?

㈠等价类划分。等价类划分是将输入数据域按有效的或无效的(也称合理

的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对

该类其它值的测 试。㈡边界值分析。该方法是将测试边界情况作为重点

目标,选取正好等于,刚刚大于或刚刚小于边界值的情况,根据这些情况

选择测试用例。㈢错误推测。错误推 测法没有确定的步骤,凭检验进行。

它的基本思想是列出程序中可能发生错误的情况,根据这些情况选择测试

用例。㈣因果图。因果图能有效的检测输入条件的各种 组合可能会引起

的错误。因果图的基本原理是通过画因果图,把用自然语言描述的功能说

明转换为判定表,最后为判定表的每一列设计一个测试用例。

17、说明动态建模的过程。

㈠准备脚本。动态分析从寻找事件开始,然后确定各对象的可能事件

的顺序。在分析阶段不考虑算法的执行,算法是实现模型的一部分。㈡确

定事件。确定所有 外部事件。事件包括所有来自或发往用户的信息、外

部设备的信号、输入、转换和动作。㈢准备事件跟踪表。把脚本表示成一

个事件跟踪表,对象为表中的列,给每 一个对象分配一个独立的列。㈣

构造状态图。对各对象类建立状态图,反映对象接收和发送的事件,每个

事件跟踪都对应于状态图中一条路径。

18、软件生产经历了几个阶段?各有何特征?

软件生产至今已经历了三个阶段:㈠程序设计时代(1946-1956):这

个阶段的生产方式是个体手工劳动,使用的工具实际其语言、汇编语言。

开发方 法是追求编程技巧,追求程序运行效率。硬件特征是价格贵、存

储容量小,运行可靠性差。软件特征是只有程序、程序设计概念,不重视

程序设计方法。㈡程序系统 时代(1956-1968):这个阶段的生产方式是

作坊式的小集团合作生产,生产工具是高级语言,开发方法仍就靠个人技

巧,但开始提出结构化方法。硬件特 征是速度、容量、工作可靠性有明

显提高。软件特征是程序员数量猛增,但开发技术没有新的突破,开发人

员的素质和落后的开发技术不适应规模大、结构复杂的软 件开发,导致

软件危机的产生。㈢软件工程时代(1968至今):这个阶段的生产方式是

工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面向

对象技术来开发软件。硬件特征是向超高速、大容量、微型化以及网络化

方向发展。软件特征是开发技术有很大进步,但是未能获得突破性进展,

软件价格不断上 升,没有完全摆脱软件危机。5、简述Gantt图的功能及

不足。Gantt图常用水平线段来描述把任务分解成子任务,以及每个子任务

的进度安排,动态反映 软件开发进度情况,该图可以:表示任务分解成

子任务情况;表示每个任务的开始时间和完成时间,线段的长度表示子任

务完成所需要的时间;表示子任务之间的并 行和串行关系。Gantt图只能

表示任务之间的并行与串行的关系,难以反映多个任务之间存在的复杂关

系,不能直观表示任务之间相互依赖制约关系,以及哪些 任务是关键字

任务等信息,因此仅仅用Gantt图作为进度的安排是不够的。6、什么是数

据字典?其作用是什么?它有哪些条目?数据字典(简称DD)是用来 定

义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说

明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的

描述。他和数据 流图共同构成了系统的逻辑模型,是需求规格说明书的

主要组成部分。数据字典是为分析人员查找数据流图中有关名字的详细定

义而服务的,因此也像普通字典一 样,要把所有条目按一定的次序排列

起来,以便查阅。数据字典有以下四类条目:数据流、数据项、数据存储、

基本加工。数据项是组成数据流和数据存储的最小元 素。源点、终点不

在系统之内,故一般不在字典中说明。7、调试的目的是什么?调试有哪

些技术手段?调试的目的是确定错误的原因和位置,并改正错误,因此调

试也成为纠错。调试技术主要有:简单的调试方法,主要有在程序中插入

打印语句、运行部分程序等;归纳法调试,他从测试结果发现的线索(错

误迹象、征兆)入 手、分析他们之间的联系,导处错误原因的假设,然

后再证明或否定这个假设;演绎法调试,该方法列出所有可能的错误原因

的假设,然后利用测试数据排除不适当 的假设,最后再测试数据验证余

下的假设确实是出错的原因;回溯法调试,该方法从程序产生错误的地方

出发,人工沿程序的逻辑路径反向搜索,直到找到错误的原 因为止。

19、 如何做好软件质量保证工作?

软件质量保证工作是软件工程管理的重要内容,软件质量保证应做好

以下几个方面的工作:<1>采用技术手段和工具。质量保证活动要贯彻开

发 过程始终,必须从采用技术手段和工具,尤其是使用软件开发环境来

进行软件开发。<2>组织正式技术评审,在软件开发的第一个阶段结束时,

都要 组织正式的技术评审。国家标准要求单位必须采用审查、文档评审、

设计评审、审计和测试等具体手段来保证质量。<3>加强软件测试。软件

测试是 质量保证的重要手段,因为测试可发现软件可发现软件中大多数

潜在错误。<4>推选软件工程规范(标准)。用户可以自己指定软件工程

规范(标 准),但标准一旦确认就应贯彻执行。<5>对软件的变更进行控

制。软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的

修改和变 更。<6>对软件质量进行度量。即对软件质量进行跟踪,及时记

录和报告软件质量情况。

20、什么是数据流图?其作用是什么?

其中的基本符号各表示什么含义?数据流图简称DFD,是SA方法中

用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流

动和处理的过 程,由于它只反映系统必须完成的逻辑功能,所以它是一

种功能模型。数据流图有四种基本图形符号:“→”箭头表示数据流;

“○”圆或椭圆表述加工;“=”双 杠表示数据存储;“”方框表示数据

的源点或终点。

21、 什么是确认测试?该阶段有哪些工作?

确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与

需求规格说明书中确定的指标相符合。确认测试阶段有两项工作,进行确

认测试与软件配置 审查。<1>确认测试一般是在模拟环境中运用黑盒测试

方法,由专门测试人员和用户参加的测试。<2>软件配置审查的任务是检

查软 件的所有文档资料的完整性、正确性。如果发现遗漏和错误,应补

充和改正,同时要编排好目录,为以后的软件维护工作奠定基础。

22、详细设计的基本任务是什么?有哪几种描述方法?

详细设计是软件设计的第二阶段,其基本任务有:为每个模块进行详

细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设计,

即确定数据库的物 理结构;其它设计,根据软件系统类型,还可能要进

行代码设计、输入/输出格式设计、人机对话设计;编写详细设计说明书;

评审。详细描述处理过程常用三种工 具:图形、表格和语言。如结构化

程序流程图、盒图和问题分析图。IPO图也是详细设计的主要工具之一。

表格工具如判定表可作为详细设计中描述逻辑条件复杂 的算法。过程设

计语言(PDL)是一种用于描述模块算法设计和处理细节的语言工具。5、

什么是软件危机?其产生的原因是什么?当软件开发技术的进步不能跟

上硬件技术的进步,未能满足发展的要求,致软件开发中遇到的问题找不

到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危

机。主要表现为: <1>经费预算经常突破,完成时间一再拖延;<2>开发

的软件不能满足用户要求;<3>开发的软件可维护性差; <4>开发的软件

可靠性差。造成软件危机的原因是由于软件产品本身的特点以及开发软件

的方式、方法、技术和人员引起的。共产生原因主要有以下 几方面:<1>

软件的规模越来越大,结构越来越复杂;<2>软件开发管理困难而复杂;

<3>软件开发费用不断增加; <4>软件开发技术落后;<5>生产方式落后;

<6>开发工具落后,生产率提高缓慢。6、CASE工作台有哪些分 类?一个

CASE工作台是一组工具集,支持像设计、实现或测试等特定的软件开发

阶段。工作台工具能通过共享文件、共享仓库或共享数据结构来集成。它

能支持 大多数的软件过程活动。工作台有:<1>程序设计工作台;<2>分

析和设计工作台;<3>测试工作台;< 4>交叉开发工作台;<5>配置管理(CM)

工作台;<6>文档工作台<7>项目管理工作台。7、IDEF0 方法有什么特点?

<1>采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述活

动所受到的约束条件及实现机制。从侧面清楚的反映了系 统的功能。故

IDEF0图宜全为正式文档。<2>采用严格的自顶向下、逐层分解的方式建立

系统功能模型。顶层确定系统范围,采用抽象原则,然 后有控制的逐步

展开有关活动的细节,符合SA方法的分析策略。同时,IDEF0规定每张

图至少有3个、最多有6个方框,上界6保证采用层次性描述复杂问题 的

可理解性,下界3保证分解有意义。

23、软件维护的特点是什么?

主要体现在三个方面:<1>非结构化维护和结构化维护。软件的开发

过程对软件的维护有很大的影响。若不采用软件工程的方法开发软件,则

软 件只有程序而无文档,维护工作非常困难,这是一种非结构化的维护。

若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维

护工作,这是一种结 构化的维护。<2>维护的困难性。软件维护的困难性

是由于软件需求分析和开发方法的缺陷。软件生存周期中的开发阶段没有

严格而有科学的管理和 规划,就会引起软件运行时的维护困难。<3>软件

维护的费用。软件维护的费用在总费用中的比重是在不断增加的,这是软

件维护有形的代价。另外 还有无形的代价,即要占用更多的资源。软件

维护费用增加的主要原因是软件维护的生产率非常低。

24、什么是CASE?CASE工具有哪些分类?

CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段

进行软件开发。从学术研究角度讲,CASE是多年来在软件开发管理、软

件开发方法、 软件开发环境和软件工具等方面研究和发展的产物。CASE

把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架

中,并且吸引了CAD(计算 机辅助设计)、软件工程、操作系统、数据

库、网络和许多其它计算机领域的原理和技术。因而,CASE领域是一个

应用集成和综合的领域。从产业角度讲, CASE是种类繁多的软件开发和

系统集成的产品及软件工具的集合。CASE分类:<1>CASE技术种类CASE

系统所涉及到的技术有两类: 一类是支持软件开发过程本身的技术;另

一类是支持软件开发过程管理的技术。从CASE系统产生方式来看,还有

一种特殊的CASE技术,即元——CASE技 术。他是生成CASE系统的生

成器所采用的技术。该生成器可用来创建支持软件开发过程活动及过程管

理的CASE系统。<2>CASE工具的分 类对CASE工具分类的标准可分为:

①功能。功能是对软件进行分类的最常用的标准。②支持的过程。根据支

持的过程,工具可分为设计工具、编程工具、维护工 具等。③支持的范

围。根据支持的范围,可分为窄支持、较宽支持和一般支持工具。窄支持

指支持过程中特定的任务,较宽支持是指支持特定过程阶段;一般支持是

指支持覆盖软件过程的全部阶段或大多数阶段。1993年,Fuggetta根据CASE

系统对软件过程的支持范围,提出CASE系统可分为三类:①支持单 个过

程任务的工具。工具可能是通用的,或者也可能归组到工作台。②工作台

支持某一过程所有活动或某些活动。他们一般以或多或少的集成度组成工

具集。③环境 支持软件过程所有活动或至少大部分。他们一般包括几个

不同的工作台,将这些工作台以某种方式集成起来。

25、 说明容错软件的定义与容错的一般方法。

归纳容错软件的定义,有以下四种:⑴规定功能的软件,在一定程序

上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错

功能的软件。⑵规 定功能的软件,在一定程序上能从错误状态自动恢复

到正常状态,则称之为容错软件。⑶规定功能的软件,在因错误而发生错

误时,仍然能在一定程度上完成预期的 功能,则把该软件称为容错软件。

⑷规定功能的软件,在一定程度上具有容错能力,则称之为容错软件。实

现容错技术的主要手段是冗余,通常冗余技术分为四类。 ⑴结构冗余。

结构冗余是通常用的冗余技术。按其工作方式,它分为静态、动态和混合

冗余三种。⑵信息冗余。为检查或纠正信息在运算或传输中的错误须外加

一部 分信息,这种现象称为信息冗余。⑶时间冗余。是指以重复执行指

令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。⑷冗余

附加技术。是指为实现上 述冗余技术所需的资源和技术。包括程序、指

令、数据、存放和调动他们的空间和通道等。

26、软件概要设计阶段的基本任务是什么?

⑴设计软件系统结构(简称软件结构),具体为:①采用某种设计方

法,将一个复杂的系统按功能划分成模块。②确定每个模块的功能。③确

定模块之间的调用 关系。④确定模块之间的接口,即模块之间传递的信

息。⑤评价模块结构的质量。⑵数据结构及数据库设计,汉数据结构的设

计及数据库的设计。⑶编写概要设计文 档。主要有:概要设计说明书;

数据库设计说明书;用户手册;修订测试计划。⑷评审。5、快速原型模

型有几种?各有何特点?根据原型的不同作用,有三类原型 模型:⑴探

索型原型。这种类型的原型模型是把原型用于开发的需求分析阶段,目的

是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。它

主要针 对开发目标模糊,用户与开发着对项目都缺乏经验的情况,通过

对原型的开发来明确用户的需求。⑵实验型原型。这种原型主要用于设计

阶段,考核实现方案是否合 适,能否实现,对于一个大型系统,若对设

计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。⑶演

化型原型。这种原型主要用于及早向用户提交一 个原型系统,该原型系

统或者包含系统的框或者包含系统的主要功能。在得到用户的认可后,将

原型系统不断扩充演变为最终的软件系统,它将原型的思路扩展到软 件

开发的全过程。

27、在划分软件生存周期阶段时,应遵循的基本原则是什么?

软件生存周期的各个阶段有不同的划分。软件规模、种类、开发方式、

开发环境以及开发使用方法都影响软件生存周期的划分。在划分软件生存

周期阶段时,应 遵循的一条基本原则是各阶段的任务应尽可能相对独

立,同一阶段各项目任务的性质尽可能相同,从而降低每个阶段任务的复

杂程度,简化不同阶段之间的联系,有 利于软件项目开发的组织管理。

28、请说明软件文档的作用?

软件开发项目生存期各阶段都包含哪些文档?软件文档的作用是:提

高软件开发过程的能见度;提高开发效率;作为开发人员阶段工作成果和

结束标志;记录开 发过程的有关信息便于使用与维护;提供软件运行、

维护和培训有关资料;便于用户了解软件功能、性能。软件开发项目生存

期各阶段应包括得文档以及与各类人员 的关系如下:可行性研究报告、

项目开发计划、软件需求说明书、数据要求说明书、测试计划、概要设计

说明书、详细设计说明书、用户手册、操作手册、测试分析 报告、开发

进度月报、项目开发总结、程序维护手册(维护修改建议)。

29、软件开发成本估算方法有哪几种?

<1>自顶向下估算方法。估算人员参照以前完成的项目所耗费的总成

本(或总工作量),来推算将要开发的软件的总成本(或总工作量),然

后 把它们按阶段、步骤和工作单元进行分配,这样方法称为自顶向下的

估算方法。<2>自底向上估算方法。自底向上估算方法是将待开发的软件

细分, 分别估算每一个子任务所需要的开发工作量,然后将它们加起来,

得到软件的总开发量。<3>差别估算方法。差别估算是将开发项目与一个

或多个已 完成的类似项目进行比较,找出与某个相类似项目的若干不同

之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。<4>

专家估算法。 依靠一个或多个专家对要求的项目做出估算。<5>类推估算

法。<6>算式估算法。

30、简述SA方法的优缺点?

结构化分析方法是软件需求分析中公认的、有成效的、技术成熟、使

用广泛的一种方法,它较适合于开发数据处理类型软件的需求分析。该方

法利用图形等半形 式化工具表达需求,简明、易读,也易于使用,为后

一阶段的设计、测试、评价提供了有利的条件。但SA方法也存在有不足

之处:⑴传统的SA方法主要用于数据 处理方面的问题,主要工具DFD

体现了系统“做什么”的功能,但它仅是一个静态模型,没有反映处理的

顺序,即控制流程。因此,不适合描述实时控制系统。 ⑵SA方法使用DFD

在分析与描述“数据要求”方面是有限的,DFD应与数据库技术中的实体

联系图(ER图)结合起来。⑶DFD不是和描述人机界面系统的 需求。SA

方法则对这一部分用自然语言作补充,对这类系统可采取其它的分析方

法。⑷为了更精确地描述软件需求,提高软件系统的可靠性、安全性,也

便于实现 自动化,SA方法可与形式化方法结合起来。5、什么是软件工程?

它的目标和内容是什么?软件工程是一种用科学知识和技术原理来定

义、开发、维护软件的一门 学科。软件工程是一门工程性学科,目的是

成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:付出较

低的开发成本,达到要求的软件功能;取得较好 的软件性能;开发的软

件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;

开发的软件可靠性高。软件工程研究的主要内容是软件开发技术和 软件

开发管理两方面,在软件开发技术中,主要研究软件开发方法、软件开发

过程、软件开发工具和环境。在软件开发管理中,主要研究软件管理学、

软件经济学、 软件心理学等。6、简述容错系统的设计过程?容错系统的

设计过程包括以下设计步骤:⑴安设计任务要求进行常规设计,尽量保证

设计的正确。⑵对可能出现的错 误分类,确定实现容错的范围。⑶按照

成本—效益最优原则,选用某种冗余手段来实现对各类错误的屏蔽。⑷分

析或验证上述冗余结构的容错效果。如果效果没有达 到预期的程度,则

应重新进行冗余结构设计。如此重复,直到有一个满意的结果为止。7、

渐增模型有几种?各有何特点?渐增模型是瀑布模型的变种,它有两类:

⑴增量构造模型。它在瀑布模型基础上,对一些阶段进行整体开发,对另

一些阶段进行增量开发。也就是说在前面的开发阶段按瀑布模型进行整体

开发,后面的开发 阶段按增量方式开发。⑵演化提交模型。它在瀑布模

型基础上,所有阶段都进行增量开发,也就是说不仅是增量开发,也是增

量提交。8、试述系统开发的生命周 期。系统开发是管理信息系统建设中

最重要的一个阶段,从项目开发开始到结束的整个过程,称为系统开发的

生命周期。系统开发的生命周期一般分为以下阶段:⑴ 系统分析。这一

阶段的主要任务是明确用户的信息需求,提出新系统的逻辑方案。需要进

行的工作有系统的初步调查,可行性研究,现行系统的详细调查及新系统

逻 辑模型的提出等。⑵系统设计。这一阶段的主要任务是根据新系统的

逻辑方案进行软、硬件系统的设计,其中包括总体结构设计、输出设计、

输入设计、处理过程设 计、数据存储设计和计算机系统方案的选择等。

⑶系统实施。这一阶段将设计的系统付诸实施,主要工作有软件的程序编

制与软件包的购置、计算机与通讯设备的购 置、系统的安装、调试与测

试、新旧系统的转换等。

31、如何控制因修改而引起的副作用?

为了控制因修改而引起的副作用,要做到:⑴按模块把修改分组;⑵

自顶向下的安排被修改模块的顺序;⑶每次修改一个模块;⑷对每个修改

了的模块,在安排修改下一个模块之前要确定这个修改的副作用,可使用

交叉引用表、存储映像表、执行流程跟踪等。

32、什么是基本加工?

描述表达基本加工逻辑功能的结构化工具的特点?数据流图中所有

不进一步分解的加工,称为基本加工。描述表达基本加工逻辑功能的结构

化工具主要有:⑴自 然语言的文字叙述。⑵结构化语言。⑶决策树。⑷

决策表。⑸数学公式。⑹上述各工具的联合使用。其特点如下所述:⑴自

然语言语义丰富,语法灵活,可描述十分 广泛而复杂的问题,表达人们

丰富的感情和智慧。⑵结构化语言没有严格的语法规定,使用的词汇比形

式化的计算机语言广泛,但使用的语句类型很少,结构规范, 表达的内

容清晰、准确、易理解,不易产生歧义。⑶决策树清晰的表达了在什么情

况下应采取什么策略,不易产生逻辑上的混乱。是描述基本加工的逻辑功

能的有效 工具。⑷决策表将比较复杂的决策问题简洁、明确、一目了然

的描述出来。它是描述条件比较多的决策问题的有效工具。

33、开放式工作台有什么优点?

⑴易将某个工具加入到开放式工作台中,还可以用新的工具取代已有

的工具。⑵可以由一个配置管理系统来管理由工具输出的文件。⑶能不断

增强工作台的功 能,不断发展工作台。⑷工作台不依赖于某个供应商,

而能从不同销售商处购买工具。如果一个工具开发商不提供支持了,最多

影响该工作台的一部分工具,其余的 工具还可以继续使用。

34、增量模型的基本思想是什么?

为了克服瀑布模型的局限性,使开发过程具有一定的灵活性和可修改

性,于是产生了增量模型。它是在瀑布模型的基础上加以修改而形成的。

增量模型和瀑布模 型之间的本质区别是:瀑布模型属于整体开发模型,

它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而

增量模型属于非整体开发模型,它推迟 某些阶段或所有阶段中的细节,

从而较早的产生工作软件。增量模型是在项目的开发过程中以一系列的增

量方式开发系统。增量方式包括增量开发和增量提交。增量 开发是指在

项目开发周期内,以一定的时间间隔开发部分工作软件;增量提交是指在

项目开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应

文档。 增量开发和增量提交可以同时使用,也可以单独使用。5、对软件

开发环境的基本要求有哪些?⑴软件开发环境应是高度集成的一体化的

系统。⑵软件开发环境应具 有高度的通用性。⑶软件开发环境应易于定

制、裁剪或扩充以符合用户要求,即软件开发环境应具有高度的适应性和

灵活性。⑷软件开发环境不但可应用性要好,而 且是易使用的、经济高

效的系统。⑸软件开发环境应有辅助开发向半自动开发和自动开发逐步过

渡的系统。6、项目开发计划有哪些内容?项目开发计划是一个管理 性的

文档,它的主要内容如下:⑴项目概述:说明项目的各项主要工作;说明

软件的功能、性能;为完成项目应具备的条件;用户及合同承包者承担的

工作、完成期 限及其它条件限制;应交付的程序名称,所使用的语言及

存储形式;应交付的文档。⑵实施计划:说明任务的划分,各项任务的责

任人;说明项目开发进度,按阶段 应完成的任务,用图表说明每项任务

的开始时间和完成时间;说明项目的预算,各阶段的费用支出预算。⑶人

员组织及分工:说明开发该项目所需人员的类型、组成 结构、数量等。

⑷交付期限:说明项目最后完工交付的日期。7、软件设计的基本原理包

括哪些内容?模块化。是指解决一个复杂问题时自顶向下逐层把软件系统

化 分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块

按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块

化是软件解决复杂问题 所具备的手段。抽象。抽象是认识复杂现象过程

中使用的思维工具即抽出事物本质的共同的特性而暂不考虑它的细节,不

考虑其它因素。软件工程过程中的每一部都 可以看作是对软件解决方法

的抽象层次的一次细化。信息隐蔽。是指在设计和确定模块时,使得一个

模块内包含的信息(过程或数据),对于不需要这些信息的其它 模块来

说,是不能访问的。通过信息隐蔽,可以定义和实施对模块的过程细节和

局部数据结构的存取限制。数据独立性。指每个模块只完成系统要求的独

立的子功 能,并且与其它模块的联系最少且接口简单。8、白盒测试法有

哪些覆盖标准?试对他们的检错能力进行比较。白盒测试法的覆盖标准

有:语句覆盖、判定覆盖、条 件覆盖、判定/条件覆盖、条件组合覆盖、

路径覆盖。语句覆盖发现错误能力最弱。判定覆盖包含了语句覆盖,但它

可能会使一些条件的不到测试。条件覆盖对每一 条件进行单独检查,一

般情况它的检错能力较判定覆盖强,但有时达不到判定覆盖的要求。判定

/条件覆盖包含了判定覆盖和条件覆盖的要求,但由于计算机系统软 件实

现方式的限制,实际上不一定达到条件覆盖的标准。条件组合覆盖发现错

误能力较强,凡满足其标准的测试用例,也必须满足前四种覆盖标准。前

五种覆盖标准 把注意力集中在单个判定或判定的各个条件上,可能会使

程序某些路径没有执行到。路径覆盖根据各判定表达式取值的组合,使程

序沿着不同的路径执行,查错能力 强。但由于它是从各判定的整体组合

出发设计测试用例的,可能使测试用例达不到条件组合覆盖的要求。

35、什么是确认测试?该阶段有哪些工作?

确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与

需求规格说明书中确定的指标相符合。确认测试阶段有两项工作,进行确

认测试与软件配置 审查。<1>确认测试一般是在模拟环境中运用黑盒测试

方法,由专门测试人员和用户参加的测试。<2>软件配置审查的任务是检

查软 件的所有文档资料的完整性、正确性。如果发现遗漏和错误,应补

充和改正,同时要编排好目录,为以后的软件维护工作奠定基础。

36、详细设计的基本任务是什么?有哪几种描述方法?

详细设计是软件设计的第二阶段,其基本任务有:为每个模块进行详

细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设计,

即确定数据库的物 理结构;其它设计,根据软件系统类型,还可能要进

行代码设计、输入/输出格式设计、人机对话设计;编写详细设计说明书;

评审。详细描述处理过程常用三种工 具:图形、表格和语言。如结构化

程序流程图、盒图和问题分析图。IPO图也是详细设计的主要工具之一。

表格工具如判定表可作为详细设计中描述逻辑条件复杂 的算法。过程设

计语言(PDL)是一种用于描述模块算法设计和处理细节的语言工具。5、

什么是软件危机?其产生的原因是什么?当软件开发技术的进步不能跟

上硬件技术的进步,未能满足发展的要求,致软件开发中遇到的问题找不

到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危

机。主要表现为: <1>经费预算经常突破,完成时间一再拖延;<2>开发

的软件不能满足用户要求;<3>开发的软件可维护性差; <4>开发的软件

可靠性差。造成软件危机的原因是由于软件产品本身的特点以及开发软件

的方式、方法、技术和人员引起的。共产生原因主要有以下 几方面:<1>

软件的规模越来越大,结构越来越复杂;<2>软件开发管理困难而复杂;

<3>软件开发费用不断增加; <4>软件开发技术落后;<5>生产方式落后;

<6>开发工具落后,生产率提高缓慢。6、CASE工作台有哪些分 类?一个

CASE工作台是一组工具集,支持像设计、实现或测试等特定的软件开发

阶段。工作台工具能通过共享文件、共享仓库或共享数据结构来集成。它

能支持 大多数的软件过程活动。工作台有:<1>程序设计工作台;<2>分

析和设计工作台;<3>测试工作台;< 4>交叉开发工作台;<5>配置管理(CM)

工作台;<6>文档工作台<7>项目管理工作台。7、IDEF0 方法有什么特点?

<1>采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述活

动所受到的约束条件及实现机制。从侧面清楚的反映了系 统的功能。故

IDEF0图宜全为正式文档。<2>采用严格的自顶向下、逐层分解的方式建立

系统功能模型。顶层确定系统范围,采用抽象原则,然 后有控制的逐步

展开有关活动的细节,符合SA方法的分析策略。同时,IDEF0规定每张

图至少有3个、最多有6个方框,上界6保证采用层次性描述复杂问题 的

可理解性,下界3保证分解有意义。

37、软件维护的特点是什么?

主要体现在三个方面:<1>非结构化维护和结构化维护。软件的开发

过程对软件的维护有很大的影响。若不采用软件工程的方法开发软件,则

软 件只有程序而无文档,维护工作非常困难,这是一种非结构化的维护。

若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维

护工作,这是一种结 构化的维护。<2>维护的困难性。软件维护的困难性

是由于软件需求分析和开发方法的缺陷。软件生存周期中的开发阶段没有

严格而有科学的管理和 规划,就会引起软件运行时的维护困难。<3>软件

维护的费用。软件维护的费用在总费用中的比重是在不断增加的,这是软

件维护有形的代价。另外 还有无形的代价,即要占用更多的资源。软件

维护费用增加的主要原因是软件维护的生产率非常低。

38、什么是CASE?CASE工具有哪些分类?

CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段

进行软件开发。从学术研究角度讲,CASE是多年来在软件开发管理、软

件开发方法、 软件开发环境和软件工具等方面研究和发展的产物。CASE

把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架

中,并且吸引了CAD(计算 机辅助设计)、软件工程、操作系统、数据

库、网络和许多其它计算机领域的原理和技术。因而,CASE领域是一个

应用集成和综合的领域。从产业角度讲, CASE是种类繁多的软件开发和

系统集成的产品及软件工具的集合。CASE分类:<1>CASE技术种类CASE

系统所涉及到的技术有两类: 一类是支持软件开发过程本身的技术;另

一类是支持软件开发过程管理的技术。从CASE系统产生方式来看,还有

一种特殊的CASE技术,即元——CASE技 术。他是生成CASE系统的生

成器所采用的技术。该生成器可用来创建支持软件开发过程活动及过程管

理的CASE系统。<2>CASE工具的分 类对CASE工具分类的标准可分为:

①功能。功能是对软件进行分类的最常用的标准。②支持的过程。根据支

持的过程,工具可分为设计工具、编程工具、维护工 具等。③支持的范

围。根据支持的范围,可分为窄支持、较宽支持和一般支持工具。窄支持

指支持过程中特定的任务,较宽支持是指支持特定过程阶段;一般支持是

指支持覆盖软件过程的全部阶段或大多数阶段。1993年,Fuggetta根据CASE

系统对软件过程的支持范围,提出CASE系统可分为三类:①支持单 个过

程任务的工具。工具可能是通用的,或者也可能归组到工作台。②工作台

支持某一过程所有活动或某些活动。他们一般以或多或少的集成度组成工

具集。③环境 支持软件过程所有活动或至少大部分。他们一般包括几个

不同的工作台,将这些工作台以某种方式集成起来。

39、说明容错软件的定义与容错的一般方法。

归纳容错软件的定义,有以下四种:⑴规定功能的软件,在一定程序

上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错

功能的软件。⑵规 定功能的软件,在一定程序上能从错误状态自动恢复

到正常状态,则称之为容错软件。⑶规定功能的软件,在因错误而发生错

误时,仍然能在一定程度上完成预期的 功能,则把该软件称为容错软件。

⑷规定功能的软件,在一定程度上具有容错能力,则称之为容错软件。实

现容错技术的主要手段是冗余,通常冗余技术分为四类。 ⑴结构冗余。

结构冗余是通常用的冗余技术。按其工作方式,它分为静态、动态和混合

冗余三种。⑵信息冗余。为检查或纠正信息在运算或传输中的错误须外加

一部 分信息,这种现象称为信息冗余。⑶时间冗余。是指以重复执行指

令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。⑷冗余

附加技术。是指为实现上 述冗余技术所需的资源和技术。包括程序、指

令、数据、存放和调动他们的空间和通道等。

40、软件概要设计阶段的基本任务是什么?

⑴设计软件系统结构(简称软件结构),具体为:①采用某种设计方

法,将一个复杂的系统按功能划分成模块。②确定每个模块的功能。③确

定模块之间的调用 关系。④确定模块之间的接口,即模块之间传递的信

息。⑤评价模块结构的质量。⑵数据结构及数据库设计,汉数据结构的设

计及数据库的设计。⑶编写概要设计文 档。主要有:概要设计说明书;

数据库设计说明书;用户手册;修订测试计划。⑷评审。5、快速原型模

型有几种?各有何特点?根据原型的不同作用,有三类原型 模型:⑴探

索型原型。这种类型的原型模型是把原型用于开发的需求分析阶段,目的

是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。它

主要针 对开发目标模糊,用户与开发着对项目都缺乏经验的情况,通过

对原型的开发来明确用户的需求。⑵实验型原型。这种原型主要用于设计

阶段,考核实现方案是否合 适,能否实现,对于一个大型系统,若对设

计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。⑶演

化型原型。这种原型主要用于及早向用户提交一 个原型系统,该原型系

统或者包含系统的框或者包含系统的主要功能。在得到用户的认可后,将

原型系统不断扩充演变为最终的软件系统,它将原型的思路扩展到软 件

开发的全过程。

41、在划分软件生存周期阶段时,应遵循的基本原则是什么?

软件生存周期的各个阶段有不同的划分。软件规模、种类、开发方式、

开发环境以及开发使用方法都影响软件生存周期的划分。在划分软件生存

周期阶段时,应 遵循的一条基本原则是各阶段的任务应尽可能相对独

立,同一阶段各项目任务的性质尽可能相同,从而降低每个阶段任务的复

杂程度,简化不同阶段之间的联系,有 利于软件项目开发的组织管理。

42、请说明软件文档的作用?

软件开发项目生存期各阶段都包含哪些文档?软件文档的作用是:提

高软件开发过程的能见度;提高开发效率;作为开发人员阶段工作成果和

结束标志;记录开 发过程的有关信息便于使用与维护;提供软件运行、

维护和培训有关资料;便于用户了解软件功能、性能。软件开发项目生存

期各阶段应包括得文档以及与各类人员 的关系如下:可行性研究报告、

项目开发计划、软件需求说明书、数据要求说明书、测试计划、概要设计

说明书、详细设计说明书、用户手册、操作手册、测试分析 报告、开发

进度月报、项目开发总结、程序维护手册(维护修改建议)。

43、软件开发成本估算方法有哪几种?

<1>自顶向下估算方法。估算人员参照以前完成的项目所耗费的总成

本(或总工作量),来推算将要开发的软件的总成本(或总工作量),然

后 把它们按阶段、步骤和工作单元进行分配,这样方法称为自顶向下的

估算方法。<2>自底向上估算方法。自底向上估算方法是将待开发的软件

细分, 分别估算每一个子任务所需要的开发工作量,然后将它们加起来,

得到软件的总开发量。<3>差别估算方法。差别估算是将开发项目与一个

或多个已 完成的类似项目进行比较,找出与某个相类似项目的若干不同

之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。<4>

专家估算法。 依靠一个或多个专家对要求的项目做出估算。<5>类推估算

法。<6>算式估算法。

44、简述SA方法的优缺点?

结构化分析方法是软件需求分析中公认的、有成效的、技术成熟、使

用广泛的一种方法,它较适合于开发数据处理类型软件的需求分析。该方

法利用图形等半形 式化工具表达需求,简明、易读,也易于使用,为后

一阶段的设计、测试、评价提供了有利的条件。但SA方法也存在有不足

之处:⑴传统的SA方法主要用于数据 处理方面的问题,主要工具DFD

体现了系统“做什么”的功能,但它仅是一个静态模型,没有反映处理的

顺序,即控制流程。因此,不适合描述实时控制系统。 ⑵SA方法使用DFD

在分析与描述“数据要求”方面是有限的,DFD应与数据库技术中的实体

联系图(ER图)结合起来。⑶DFD不是和描述人机界面系统的 需求。SA

方法则对这一部分用自然语言作补充,对这类系统可采取其它的分析方

法。⑷为了更精确地描述软件需求,提高软件系统的可靠性、安全性,也

便于实现 自动化,SA方法可与形式化方法结合起来。5、什么是软件工程?

它的目标和内容是什么?软件工程是一种用科学知识和技术原理来定

义、开发、维护软件的一门 学科。软件工程是一门工程性学科,目的是

成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:付出较

低的开发成本,达到要求的软件功能;取得较好 的软件性能;开发的软

件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;

开发的软件可靠性高。软件工程研究的主要内容是软件开发技术和 软件

开发管理两方面,在软件开发技术中,主要研究软件开发方法、软件开发

过程、软件开发工具和环境。在软件开发管理中,主要研究软件管理学、

软件经济学、 软件心理学等。6、简述容错系统的设计过程?容错系统的

设计过程包括以下设计步骤:⑴安设计任务要求进行常规设计,尽量保证

设计的正确。⑵对可能出现的错 误分类,确定实现容错的范围。⑶按照

成本—效益最优原则,选用某种冗余手段来实现对各类错误的屏蔽。⑷分

析或验证上述冗余结构的容错效果。如果效果没有达 到预期的程度,则

应重新进行冗余结构设计。如此重复,直到有一个满意的结果为止。7、

渐增模型有几种?各有何特点?渐增模型是瀑布模型的变种,它有两类:

⑴增量构造模型。它在瀑布模型基础上,对一些阶段进行整体开发,对另

一些阶段进行增量开发。也就是说在前面的开发阶段按瀑布模型进行整体

开发,后面的开发 阶段按增量方式开发。⑵演化提交模型。它在瀑布模

型基础上,所有阶段都进行增量开发,也就是说不仅是增量开发,也是增

量提交。8、试述系统开发的生命周 期。系统开发是管理信息系统建设中

最重要的一个阶段,从项目开发开始到结束的整个过程,称为系统开发的

生命周期。系统开发的生命周期一般分为以下阶段:⑴ 系统分析。这一

阶段的主要任务是明确用户的信息需求,提出新系统的逻辑方案。需要进

行的工作有系统的初步调查,可行性研究,现行系统的详细调查及新系统

逻 辑模型的提出等。⑵系统设计。这一阶段的主要任务是根据新系统的

逻辑方案进行软、硬件系统的设计,其中包括总体结构设计、输出设计、

输入设计、处理过程设 计、数据存储设计和计算机系统方案的选择等。

⑶系统实施。这一阶段将设计的系统付诸实施,主要工作有软件的程序编

制与软件包的购置、计算机与通讯设备的购 置、系统的安装、调试与测

试、新旧系统的转换等。

45、如何控制因修改而引起的副作用?

为了控制因修改而引起的副作用,要做到:⑴按模块把修改分组;⑵

自顶向下的安排被修改模块的顺序;⑶每次修改一个模块;⑷对每个修改

了的模块,在安排修改下一个模块之前要确定这个修改的副作用,可使用

交叉引用表、存储映像表、执行流程跟踪等。

46、什么是基本加工?

描述表达基本加工逻辑功能的结构化工具的特点?数据流图中所有

不进一步分解的加工,称为基本加工。描述表达基本加工逻辑功能的结构

化工具主要有:⑴自 然语言的文字叙述。⑵结构化语言。⑶决策树。⑷

决策表。⑸数学公式。⑹上述各工具的联合使用。其特点如下所述:⑴自

然语言语义丰富,语法灵活,可描述十分 广泛而复杂的问题,表达人们

丰富的感情和智慧。⑵结构化语言没有严格的语法规定,使用的词汇比形

式化的计算机语言广泛,但使用的语句类型很少,结构规范, 表达的内

容清晰、准确、易理解,不易产生歧义。⑶决策树清晰的表达了在什么情

况下应采取什么策略,不易产生逻辑上的混乱。是描述基本加工的逻辑功

能的有效 工具。⑷决策表将比较复杂的决策问题简洁、明确、一目了然

的描述出来。它是描述条件比较多的决策问题的有效工具。

47、开放式工作台有什么优点?

⑴易将某个工具加入到开放式工作台中,还可以用新的工具取代已有

的工具。⑵可以由一个配置管理系统来管理由工具输出的文件。⑶能不断

增强工作台的功 能,不断发展工作台。⑷工作台不依赖于某个供应商,

而能从不同销售商处购买工具。如果一个工具开发商不提供支持了,最多

影响该工作台的一部分工具,其余的 工具还可以继续使用。

48、增量模型的基本思想是什么?

为了克服瀑布模型的局限性,使开发过程具有一定的灵活性和可修改

性,于是产生了增量模型。它是在瀑布模型的基础上加以修改而形成的。

增量模型和瀑布模 型之间的本质区别是:瀑布模型属于整体开发模型,

它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而

增量模型属于非整体开发模型,它推迟 某些阶段或所有阶段中的细节,

从而较早的产生工作软件。增量模型是在项目的开发过程中以一系列的增

量方式开发系统。增量方式包括增量开发和增量提交。增量 开发是指在

项目开发周期内,以一定的时间间隔开发部分工作软件;增量提交是指在

项目开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应

文档。 增量开发和增量提交可以同时使用,也可以单独使用。5、对软件

开发环境的基本要求有哪些?⑴软件开发环境应是高度集成的一体化的

系统。⑵软件开发环境应具 有高度的通用性。⑶软件开发环境应易于定

制、裁剪或扩充以符合用户要求,即软件开发环境应具有高度的适应性和

灵活性。⑷软件开发环境不但可应用性要好,而 且是易使用的、经济高

效的系统。⑸软件开发环境应有辅助开发向半自动开发和自动开发逐步过

渡的系统。6、项目开发计划有哪些内容?项目开发计划是一个管理 性的

文档,它的主要内容如下:⑴项目概述:说明项目的各项主要工作;说明

软件的功能、性能;为完成项目应具备的条件;用户及合同承包者承担的

工作、完成期 限及其它条件限制;应交付的程序名称,所使用的语言及

存储形式;应交付的文档。⑵实施计划:说明任务的划分,各项任务的责

任人;说明项目开发进度,按阶段 应完成的任务,用图表说明每项任务

的开始时间和完成时间;说明项目的预算,各阶段的费用支出预算。⑶人

员组织及分工:说明开发该项目所需人员的类型、组成 结构、数量等。

⑷交付期限:说明项目最后完工交付的日期。7、软件设计的基本原理包

括哪些内容?模块化。是指解决一个复杂问题时自顶向下逐层把软件系统

化 分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块

按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块

化是软件解决复杂问题 所具备的手段。抽象。抽象是认识复杂现象过程

中使用的思维工具即抽出事物本质的共同的特性而暂不考虑它的细节,不

考虑其它因素。软件工程过程中的每一部都 可以看作是对软件解决方法

的抽象层次的一次细化。信息隐蔽。是指在设计和确定模块时,使得一个

模块内包含的信息(过程或数据),对于不需要这些信息的其它 模块来

说,是不能访问的。通过信息隐蔽,可以定义和实施对模块的过程细节和

局部数据结构的存取限制。数据独立性。指每个模块只完成系统要求的独

立的子功 能,并且与其它模块的联系最少且接口简单。8、白盒测试法有

哪些覆盖标准?试对他们的检错能力进行比较。白盒测试法的覆盖标准

有:语句覆盖、判定覆盖、条 件覆盖、判定/条件覆盖、条件组合覆盖、

路径覆盖。语句覆盖发现错误能力最弱。判定覆盖包含了语句覆盖,但它

可能会使一些条件的不到测试。条件覆盖对每一 条件进行单独检查,一

般情况它的检错能力较判定覆盖强,但有时达不到判定覆盖的要求。判定

/条件覆盖包含了判定覆盖和条件覆盖的要求,但由于计算机系统软 件实

现方式的限制,实际上不一定达到条件覆盖的标准。条件组合覆盖发现错

误能力较强,凡满足其标准的测试用例,也必须满足前四种覆盖标准。前

五种覆盖标准 把注意力集中在单个判定或判定的各个条件上,可能会使

程序某些路径没有执行到。路径覆盖根据各判定表达式取值的组合,使程

序沿着不同的路径执行,查错能力 强。但由于它是从各判定的整体组合

出发设计测试用例的,可能使测试用例达不到条件组合覆盖的要求。

[

本帖最后由 arkofnoah 于 2006-2-24 22:30 编辑

]

词语解释题

1、需求分析:需求分析是指开发人员要准确理解用户的需求,进行细致

的调查分析,将用户非形式的需求陈述转化成完整的需求定义,再由需求

定义转换到相应的形式功能规约(需求规格说明)的过程。

2、白盒法:该方法把测试对象看作一个打开的盒子,测试人员须了

解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中

尽可能多的逻辑路 径进行测试,检查内部控制结构和数据结构是否有

错,实际的运行状态与预期的状态是否一致。白盒法也不可能进行穷举测

试。

3、黑盒法:该方法把被测试对象看成一个黑盒子,测试人员完全不

考虑程序的内部结构和处理过程,只在软件接口处进行测试,依照需求规

格说明书,检查程序是否满足功能要求。因此,黑盒测试又称为功能测试

或数据驱动测试。

4、渐增式测试:逐个把未经过测试的模块组装到已经过测试的模块

上去,进行集成测试。每加入一个新模块进行一次集成测试,重复此过程

直至程序组装完毕。

5、非渐增式测试:首先对每个模块分别进行单元测试,然后再把所

有的模块按设计要求组装在一起进行测试。

6、可执行的规格说明:这是一种使要求说明过程自动化的技术,通

过可执行的规格说明语言来描述预期的行为“做什么”,人们可以从直接

观察中用规格说明语言来规定任何系统行为。

7、经济可行性:对组织的经济状况和投资能力进行分析,对系统建

设,运行和维护费用进行估算,对系统建成后可能取得的社会及经济效益

进行估计。

8、系统设计说明书:是从系统总体的角度出发对系统建设中各主要

技术方面的设计进行说明,是系统设计阶段的产物,其着重点在于阐述系

统设计的指导思想以及所采用的技术路线和方法,编写系统设计说明书将

为后续的系统开发工作从技术和指导思想上提供必要的保证。

9、面向对象设计:是把分析阶段得到的需求转变成符合成本和质量

要求的、抽象的系统实现方案的过程。或者说,面向对象设计就是用面向

对象观点建立求解域模型的过程。

10、结构化设计:面向数据流的设计是以需求分析阶段产生的数据流

图为基础,按一定的步骤映射成软件结构,因此又称结构化设计(SD)。

11、结构化分析:是根据分解与抽象的原则,按照系统中数据处理的

流程,用数据图来建立系统的功能模型,从而完成需求分析工作。

12、基于脚本的设计:此方法主要用于解决要求的验证问题。一个脚

本将模拟在系统运行期间用户经历的事件,它提供了输入、处理、输出的

屏蔽,以及有关对话的一个模型,开发者能够给用户显示一个系统的逼真

视图。

13、IDEF方法:是美国空军在1981年针对集成化计算机辅助制造(简

称ICAM)工程项目中用于进行复杂系统分析和设计的方法,是在结构化

分析与设计技术的基础上提出来的。

14、JSP方法:定义了一组以数据结构为指导的映射过程,他根据输

入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构,

而不是软件的体系结构,因此该方法适于详细设计阶段。

15、软件概要设计:进入了设计阶段,要把软件“做什么”的逻辑模

型变换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结

果反应在“设计 规格说明书”文档中,所以软件设计是一个把软件需求

转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,

称为软件的概要设计或结构设计。

16、信息隐蔽:指在设计和确定模块时,使得一个模块内包含的信息

(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的。

17、系统流程图:是描述物理系统的传统工具,它用图形符号来表示

系统中的各个元素,例如人工处理、数据处理、数据库、文件、设备等。

它表达了系统中各个元素之间的信息流动的情况。

18、集成测试:是指在单元测试的基础上,将所有模块按照设计要求

组装成一个完整的系统进行的测试,故也称组装测试或联合测试。

19、附加策略:是将原型用于开发的全过程,原型由最基本的核心开

始,逐步增加新的功能和新的需求,反复修改反复扩充,最后发展为用户

满意的最终系统。

20、抛弃策略:是将原型用于开发过程的某一阶段,促使该阶段的开

发结果更加完整、准确、一致、可靠,该阶段结束后,原型随之作废。

21、抽象:是认识复杂现象过程中使用的思维工具,即抽出事物本质

的共同的特征而暂不考虑它的细节,不考虑其它因素。

22、参数化抽象:所谓参数化抽象,它是指当描述类的规格说明时并

不具体指定所要操作的数据类型,而是把数据类型作为参数。

23、静态测试:指被测试程序不在机器上运行,而是采用人工检测和

计算机辅助静态分析的手段对程序进行检测。

24、原型:是指模拟某种产品的原型模型。软件开发中的原型是软件

的一个早期可运行的版本,它反映了最终系统的重要特征。

25、事件:是指定时刻发生的某件事情。它是某事情发生的信号,它

没有持续时间,它是一种相对性的快速事件。

26、动态冗余:动态冗余的主要方式是多种模块待机储备,当系统检

测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。

这里须有检测、切换和恢复过程,故称其为动态冗余。

27、模块化:是指解决一个复杂问题是自顶向下逐层把软件系统划分

成若干模块的过程,每个模块完成一个特定的子功能,所有的模块按某种

方法组装起来,成为一个整体,完成整个系统所要求的功能。

28、JSP方法:定义了一组以数据结构为指导的映射过程,它根据输

入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构,

而不是软件的体系结构,因此该方法适于详细设计阶段。

29、模型:是为了理解事务而对事物做出一种抽象,它忽略不必要的

细节,它也是事物的一种抽象形式,一个规划,一个程式。

30、瀑布模型:是将软件生存各个活动规定为依线性顺序联接的若干

阶段的模型。它包括可行性分析、项目开发计划、需求分析、概要设计、

详细设计、编码、测试和维护。它规定了由前至后,相互衔接的固定次序,

如同瀑布流水,逐级下落。

31、增量模型:是在项目的开发工程中以一系列的增量方式开发系统。

增量方式包括增量开发和增量提交。增量开发是指在项目开发过程中以一

定的时间间隔 开发部分工作软件;增量提交是指在开发周期内,以一定

的时间间隔增量方式向用户提交工作软件及相应稳当。增量开发和增量提

交可以同时使用,也可单独使用。

32、喷泉模型:是一种以用户需求为动力,以对对象作为驱动的模型,

适合于面向对象的开发方法。他克服了瀑布模型不支持软件重用和多项开

发活 动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。系

统某些部分常常重复工作多次,相关功能在每次迭代中随之加入演化的系

统。无间隙是指在分析、 设计、实现等开发活动之间不存在明显的边界。

33、功能模型:描述了系统的所有计算,它表明一个计算如何从输入

值得到输出值,他不考虑所计算的次序。功能模型说明对象模型中操作的

涵义、动态模型中动作的意义以及对象模型中约束的意义。

34、动态模型:是与时间和变化有关的系统性质。该模型描述了系统

的控制结构,他表示了瞬时的、行为化的系统控制性质。它关心的是系统

的控制,操作的执行顺序。它从对象的事件和状态的角度出发,表现了对

象的相互行为。

35、对象模型:表示了静态的、结构化的系统数据性质,描述了系统

的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的

相互关系。

36、货币的时间价值:通常利用银行的存款利息来表示货币的时间价

值。设年利率为I,现存入p元,n年后得到本金和利息为F。若不计复利,

则P元在n 年后的价值为:F=P*(1+n*i)。反过来,若n年后能收入的本金

和利息为F,则将来F元的现在价值(本金)P为:P=F/(1+n*i)。可用这个 公

式来计算将来收入的现在价值。这是效益分析的最基本公式。

37、类:具有相同或相似性质的对象的抽象就是类。

38、对象:是人们要进行研究的任何事物,从最简单的整数到复杂的

飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、

计划或事件。类的具体化就是对象,也可以说类的实例是对象。

39、多态性:指相同的操作或函数、过程可作用于多种类型的对象上

并获得不同结果。不同的对象,收到同一消息可以产生不同的结果,这种

现象称为多态性。

40、风险分析:实际上就是贯穿在软件工程上的一系列风险管理步骤,

其中包括风险识别、风险估计、风险管理策略、风险解决和风险监督,它

能让人们主动“攻击”风险。

41、模块:模块在程序重视数据说明、可执行语句等程序对象的集合,

或者是单独命名和编址的元素,如高级语言中的过程、函数、子程序等等。

42、JSD方法:主要以活动事件为中心,通过有一串活动顺序组合构

成的进程,建立系统模型,最后实现该模型。

43、路径覆盖:指设计足够的测试用例,覆盖被测程序中所有可能的

路径。

44、判定/条件覆盖:指设计足够的测试用例,使得判定表达式中的每

个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结

果也至少出现一次。

45、条件组合覆盖:是指设计足够的测试用例,使的每个判定表达式

中条件的各种可能的值的组合都至少出现一次,条件组合覆盖是比较强的

覆盖标准。

46、条件覆盖:是指设计足够的测试用例,使得判定表达式中每个条

件的各种可能的值至少出现一次。满足条件覆盖并不一定满足判定覆盖。

47、原型模型:又称快速原型模型,它是在开发真实系统之前,构造

一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。

48、软件工程环境:美国国防部在STARS计划中定义如下:“软件工

程环境是一组方法、过程及计算机程序(计算机化的工具)的整体化构件,

他支持从需求定义、程序生成知道维护的整个软件生存期”。

49、程序图:是退化的程序流程图。也就是说,把程序流程图中每个

处理符号都退化成一个结点,原来连接不同处理符号的流线变成连接不同

结点的有向弧,这样得到的有向图就叫程序图。

填空题

1、可行性研究的目的是用最小的代价,在尽可能短的时间内,确定该项

目是否能够开发。

2、程序设计时代的生产方式是个体手工,程序系统时代的生产方式

是作坊式小团体,软件工程时代的生产方式是工程化。

3、喷泉模型是一种以需求分析为动力,以对象为驱动的模型。

4、需求分析阶段,分析人员要确定对问题的综合需求,其中最主要

的是功能需求。

5、可行性研究需要从以下三个方面分析研究每种解决方法的可行

性:技术可行性、经济可行性、社会可行性。

6、可行性研究的目的不是去开发一个软件项目,而是研究这个软件

项目是否值得开发,其中的问题能否解决。

7、判定树较判定表直观易读,判定表进行逻辑验证较严格,能把所

有的可能性全部都考虑到。可将两种工具结合起来,先用判定表做底稿,

在此基础上产生判定树。

8、软件工具的发展特点是软件工具有单一工具向多个工具集成化方

向发展。重视用户界面的设计,不断的采用新理论和新技术。软件工具的

商品化推动了软件产业的发展,而软件产业的发展,又增加了对软件工具

的需求,促进了软件工具的商品化进程。

9、环境集成主要有数据集成、界面集成、控制集成、平台集成、过

程集成。

10、 可行性研究实质上是进行一项简化、压缩了的需求分析、设计过

程。

11、 结构化方法有结构化分析、结构化设计、结构化程序设计构成,

它是一种面向数据流的开发方法。

12、 投资回收期就是累计的经济效益等于最初的项目投资所需的时

间。

13、 详细描述处理过程常用三种描述工具:图形、表格和语言。

14、 数据流图中,每个加工至少有一个输入流和一个输出流。

15、 结构化设计以数据流为基础映射成软件结构。

16、 当数据流图中某个加工的一组动作存在着多个条件复杂组合的判

断时,使用判定表或判定树较好。

17、 由于运用原型的目的和方式不同,在使用原型时也采取不同的策

略,有抛弃策略和附加策略。

18、有两类维护技术:在开发阶段是用来减少错误、提高软件可维护

性面向维护的技术,在维护阶段用来提高维护的效率和质量的维护支援技

术。

19、 软件开发中原型是软件的一个早期可运行的版本,它反映了最终

系统的重要特性。

20、 产品管理包括版本管理和配置管理。

21、 任何程序都可由顺序、选择、重复三种基本控制结构构造。

22、 测试用例应有输入数据和预期的输出数据两部分组成。这样便于

对照检查。

23、 需求分析阶段产生的最重要的文档之一是需求规格说明书。

24、 项目开发计划是一个管理性文档。

25、 软件配置管理,简称SCM,软件配置项简称SCI。

26、 在算法描述工具中,PAD图可自动生成程序。由机器自动通过

走树的办法生成相应的源代码,大大提高软件的生产率。

27、在CASE集成中,控制集成支持工作台或环境中一个工具对系统

中其它工具的访问。过程集成是指CASE系统嵌入了关于过程活动、阶段、

约束和支持这些活动所需的工具的知识。

28、 解决一个复杂问题,往往采取的策略是分解。

29、 效益分析有有形效益和无形效益两种。

30、 两个模块都是用同一张表,这种耦合称为公共耦合。

31、 一个模块把数值作为参数传送给另一个模块,这种耦合方式称为

数据耦合。

32、 一个模块内部各程序段都在同一张表上操作,这个模块的内聚性

称为通信内聚。

33、在SA方法的需求描述工具中,数据流图描述系统的分解,即描

述系统有哪几部分组成,各部分之间有什么联系等等。数据字典定义了数

据流图中每一个图形元素;结构化语言、判定表或判定树则详细描述数据

流图中不能被再分解的每一个加工。

34、IDEF图是一种功能模型,表示系统功能的图形称为活动图形,连

方框上的箭头有四种类型,他们分别是输入、输出、控制、机制。

35、软件项目计划是可行性研究阶段的结果产品。但由于可行性研究

是在高层次进行系统分析,未能考虑软件系统开发的细节情节,因此软件

项目计划一般在需求分析阶段完成后才定稿的。

36、信息隐蔽指在设计和确定模块时,使得一个模块内包含的信息(过

程或数据),对于不需要这些信息的其它模块来说,是不能访问的。

37、 同一个类中的共享是指同一个类中的对象有着相同的数据结构和

相同的行为特征。

38、 通过抽象,可以确定组成软件的过程实体。通过信息隐蔽,可以

定义和实施对模块的过程细节和局部数据结构的存取限制。

39、 IPO图描述分层图中一个模块的输入、输出和处理内容。

40、 软件是一种逻辑产品,它与物质产品有很大区别。

41、 数据流图中的箭头表示数据流。

42、 软件测试时需要三类信息:软件配置、测试配置、测试工具。

43、 基于IDEF0图的设计也是结构化设计技术之一,它以系统的功

能模型和信息结构为基础设计软件结构。

44、 系统流程图是描述物理模型的传统工具,用图形符号表示系统中

各个元素,表达了系统中各种元素之间的信息流动情况。

45、 桩模块是用来代替被测试模块所调用的模块,它的作用是返回被

测模块所需的信息。

46、 建立数据字典一般的两种形式是手工建立和利用计算机辅助建立

并维护。

47、 汇编语言是面向机器的,可以完成高级语言无法满足要求的特殊

功能,如与外部设备之间的一些接口操作。

48、黑盒测试是功能测试,因此设计测试用例时,需要研究需求规格

说明书和概要设计说明书中有关程序功能或输入、输出之间的关系等信

息,从而与测试后的结果进行分析比较。

49、在类层次中,子类只继承一个父类的数据结构和方法,则称为单

重继承。子类继承了多个父类的数据结构和方法,则称为多重继承。

50、 由于数据流是流动中的数据,所以必须有流向。除了与数据存储

之间的数据流不用命名外,数据流应该用名词或名词短语命名。

51、投资回收期就是使累计的经济效益等于最初的投资费用所需的时

间。项目的纯收入是指在整个生存周期之内的累计经济效益(折合成现在

值)与投资之差。

52、 程序设计语言的简洁性是指人们必须记住的语言成分的数量。人

们要掌握一种语言,需要记住的成分数量越多,简洁性越差。

53、 不同对象的同一属性可以具有相同或不同的属性值。

54、 软件开发划分的各阶段任务尽可能相对独立,同一阶段任务性质

尽可能相同。

55、 瀑布模型是将生存周期各活动规定为线性顺序联接的若干阶段的

模型。

56、 成本效益分析的目的是从经济角度评价开发一个软件项目是否可

行。

57、 在需求分析阶段要进行以下几方面的工作:问题识别、分析与综

合、导出软件的逻辑模型、编写文档。

58、 静态冗余常用的有:三模冗余TMR和多模冗余。

59、 McCabe质量度量模型,针对面向软件产品的运行、修正、转移。

60、程序设计语言的局部性是指语言的联想性。在编码过程中,由语

句组合成模块,由模块组装成系统结构,并在组装过程中实现模块的高内

聚,低耦合,使局部性得到加强。

61、 软件复杂性度量的参数主要有规模、难度、结构和职能度。

62、 项目开发计划的主要内容有:项目概述、实施计划、人员组织及

分工、交付期限。

63、 可行性研究要在较高层次上以较抽象方式进行需求分析和设计。

64、 软件工程是一门综合性交叉学科,计算机科学着重于原理和理

论,软件工程着重于建造软件系统。

65、 维护的副作用有编码副作用、数据副作用、文档副作用三种。

66、 若年利率为I,不计复利,P元在n年后的价值F=P*(1+n*i)

67、 软件结构是以模块为基础而组成的一种控制层次结构。

68、 软件设计阶段产生的最重要的文档之一是概要设计说明书。

69、独立路径是指包括一组以前没有处理的语句或条件的一条路径。

从程序图来看,一条独立路径是至少包含有一条在其它独立路径中未有过

的边的路径。

70、 各模块经过单元测试后,将各模块组装起来进行集成测试,以检

查与设计相关的软件系统结构的有关问题。

71、 开发过程管理包括项目计划和控制和任务管理等。

72、 临时维护小组采用“同事复审”或“同行复审”等方法来提高维

护工作的效率。

73、数据字典中的加工逻辑主要描述该加工做什么,即实现加工的策

略,而不是实现加工的细节,它描述如何把输入数据流变换为输出数据流

的加式规则。

74、 为了较完整的描述用户对系统的需求,DFD应与数据库中的ER

图结合起来。

75、 纯收入是软件生存周期内累计经济效益与投资之差。

76、 反映软件结构的基本形态特征是深度、宽度、扇入和扇出。

77、 若年利率为I,不计复利,n年后能收入F元的现在价值

p=F/(1+n*i)。

78、 在一个模块中,功能状态与接口反映模块的外部特性,逻辑反映

它的内部特性。

79、 硬件与软件一起构成完整的计算机系统。

80、 SA方法中主要描述工具是DFD与DD。

81、 软件生存周期模型是描述软件开发过程中各种活动如何执行的模

型。

82、 结构化设计对数据流有两种分析方法,他们是变换分析设计和事

务分析设计。

83、 数据字典中有四类条目:数据流、数据项、数据存储、加工。

84、常借用硬件可靠性的定量度量方法来度量软件的可靠性与可用

性。常用指标有平均失效等待时间MTTF和平均失效间隔时间MTBF。

85、 Lisp是一种函数型语言,Prolog是一种逻辑性语言。

86、 Jackson结构图能对结构进行自顶向下分解,因此可以表示层次

结构。

87、 变换模型是一种适合于形式化开发方法的模型,从软件需求形式

化说明开始,经过一系列变换,最终得到系统的目标程序。

88、 软件开发环境的主要目标是提高软件开发的生产率,改善软件质

量和降低软件成本。

89、 “软件”包含计算机程序及其说明程序的各种文档。

90、 开发过程依序包括需求分析、设计、编码、集成、软件安装和验

收等活动。

91、 社会可行性研究包括合同、责任、侵权、用户组织的管理模式及

规范,其他一些技术人员常常不了解的陷阱等。

92、 IDEF0方法中,将系统功能称为活动,将表示系统功能的图形称

为活动图形。

93、 数据库的设计指数据存储文件的设计,主要进行的设计方面有:

概念设计、逻辑设计、物理设计。

94、如果只有两个模块之间有公共数据环境,这种公共耦合有两种情

况:一是一个模块只是给公共数据环境送数据,另一个模块是只从公共环

境中去数据,这是比较松散的公共耦合;二是两个模块都往公共环境中送

数据又从里面取数据,这是紧密的数据耦合。

95、Jackson方法是面向数据结构的设计方法。早期的Jackson方法用

于开发模型较少的数据处理系统的设计,简称JSP。

96、 工程网络图只有一个开始点和一个终止点,开始点没有流入箭

头,称为入度为零;终止点没有流出箭头,称为出度为零。

97、为了确保每个开发过程的质量,防止把软件差错传递到下一个过

程,必须进行质量检验,检验的实施有实际运行检验(即白盒测试和黑盒

测试)和鉴定两种形式。

《软件工程》全国2005年1月试题

一、单项选择题(在每小题的四个备选答案中选出一个正确答案,并将其号

码填在题干的括号内。每小题1分,共20分)

1. 下列方法中不属于面向对象的开发方法有( )。

A. Booch方法 B. Coad方法

C. OMT方法 D. VDM方法

2. 系统流程图是一种传统工具,用于描绘( )。

A. 逻辑模型 B. 程序系统

C. 体系结构 D. 物理系统

3. 结构化分析方法是以数据流图、( )和加工说明等描述工具,即用直观的

图和简洁的语言来描述软件系统模型。

A. DFD图 B. PAD图

C. IPO图 D. DD

4. 信息隐蔽概念与( )这一概念直接的相关。

A. 模块的独立性 B. 模块类型的划分

C. 软件结构定义 D. 软件生命周期

5. 在软件的概要设计中,不使用的图形工具是( )图。

A. SC B. IPO

C. PAD D. IDEF0

6. 不属于详细设计的主要工具有( )。

A. IPO图 B. PAD图

C. PDL D. SC

7. 不属于序言性注释的有( )。

A. 模块设计者 B. 修改日期

C. 程序的整体说明 D. 语句功能

8. 单元测试阶段主要涉及( )的文档。

A. 需求设计 B. 编码和详细设计

C. 详细设计 D. 概要设计

9. 在软件测试中,白盒测试方法是通过分析程序的( )来设计测试用例的方

法。

A. 应用范围 B. 内部逻辑

C. 功能 D. 输入数据

10. 在维护中,为边界条件的逻辑测试做出修改而引起的是( )副作用。

A. 编码 B. 测试

C. 文档 D. 数据

11. 下列选项中,不属于快速原型模型的优点是( )。

A. 可及早发现问题,随时纠正错误

B. 减少技术应用风险,提高生产率

C. 容易作到彻底测试,更新文档较为容易

D. 适应需求变化,能有效提高系统质量

12. 需求分析是分析员经了解用户的要求,认真细致地调研、分析,最终

建立目标系统的逻辑模型并写出( )的过程。

A. 模块说明书 B. 软件规格说明

C. 项目开发计划 D. 合同文档

13. 数据耦合和控制耦合相比,则( )成立。

A. 数据耦合的耦合性强 B. 控制耦合的耦合性强

C. 两者的耦合性相当 D. 两者的耦合性需要根据具体情况分析

14. 鱼是一种水生动物。鱼与水生生物之间的关系是( )。

A. 分类关系 B. 组装关系

C. 整体成员关系 D. has a

15. McCall质量度量模型中,不属于面向软件产品操作的特性是( )。

A. 正确性 B. 完整性

C. 可重用性 D. 效率

16. 控制作为软件工程管理的内容,包括( )。

A. 文档资料的控制 B. 组织结构控制

C. 对软件功能的控制 D. 进度控制

17. 进度安排的好坏往往会影响整个项目的按期完成,下列属于软件进度

的方法有( )。

A. 程序结构图 B. 流程图

C. 工程网络图 D. E-R图

18. 以语言为中心的软件开发环境是支持软件生存期( )活动,特别强调对

编程、调试和测试活动的支持。

A. 前期 B. 后期

C. 中期 D. 初期

19. 系统因错误而发生错误时,仍然能在一定程度上完成预期的功能,则

把该软件称为( )。

A. 容错软件 B. 系统软件

C. 测试软件 D. 操作系统

20. 产品管理包括版本管理和( )。

A. 质量管理 B. 性能管理

C. 开发过程管理 D. 配置管理

二、填空题(每空2分,共20分)

1. 软件与物质产品很大的区别在于软件是一种__________产品。

2. 在可行性研究阶段,对于从逻辑模型出发,经过压缩的设计,探索出的

若干种可供选择的主要解决办法要从技术,经济和__________可行性研究

它们的可行性。

3. 在IDEF0方法中,一个活动可以无输入,但必须有一个__________。

4. __________________的设计是概要设计关键的一步,直接影响到下一阶段

详细设计与编码的工作。

5. 软件的详细设计也称为“过程设计”,主要确定每个模块的__________。

6. 在单元测试时,需要为被测模块设计__________。

7. 瀑布模型属于整体开发模型,增量模型属于__________开发模型。

8. 运用快速原型的策略主要有抛弃策略和__________策略。

9. 客观世界中的若干类,通常有两种主要的结构关系:即分类结构和

__________。

10. 软件质量评审通常是从开发者的角度进行评审,它是着眼于软件本身

的结构、__________,变更带来的影响而进行的评审活动。

三、名词解释(每小题3分,共15分)

1. 程序设计风格

2. 渐增式测试

3. 模块独立性

4. 对象

5. 容错软件

四、简答题(每小题5分,共20分)

1. 简述提高可维护性的方法有哪些。

2. 简述程序流程图的缺点和克服方法。

3. 简述CASE生存的各个步骤。

4. 简述软件产品的特点。

五、应用题(第1小题7分,第2小题8分,第3小题10分,共25分)

1. 某家公司有许多部门,部门名唯一地确定一个部门,每个部门生产多种

产品,每种产品仅由一个部门生产。要求:建立上述问题的对象模型。(7

分)

2. 画出下面用PDL写出的程序的PAD图。(8分)

WHILE A DO

IF X>0 THEN X1 ELSE X2 ENDIF

S1

IF Z>0 THEN Z1

IF W>0 THEN W1 ELSE W2 ENDIF

ELSE Z2

ENDIF

S2

ENDWHILE

3. 某学校将学生的基本情况文件(简称学生情况文件)和学生期末考试成绩

文件(简称成绩文件)合并成一个新文件。学生情况文件包含学生的学号、

姓名、通讯地 址。成绩文件包含学号和成绩。这两个文件均由学生记录

重复组成,学生记录包含以上数据项。新文件的数据结构包含学号、姓名、

通讯地址和成绩。

要求:

(1) 给出Jackson输入、输出的数据结构图。(6分)

(2) 用Jackson方法设计该程序结构图。(4分)

』 【软件工程】第一至三章习题解答

第一章

1.软件产品的特性是什么?P1

a.软件产品是一种逻辑产品。

b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研

制上,

软件开发完成后,复制就产生了大量软件产品。

c.软件产品不会用坏,不存在磨损\消耗问题。

d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰

分是“定做”的。

e.软件费用不断增加,成本相当昂贵。

2.软件产品有几个阶段?各有何特征?

阶段 特征

A.程序设计时代(1946-1956) 生产方式:个体手工劳动.

工 具:机器语言、汇编

开发方法:追求编和技巧,追求程序运行效率.

硬件特征:价格贵、存储容量小、运行可靠性差。

软件特征:只有程序、程序设计概念,不重视程序设计方法。

B.程序系统时代(1956-1968) 生产方式:小集团合作生产.

工 具:高级语言

开发方法:个人技巧,开始提出结构化方法。

硬件特征:速度、容量、工作可靠性有明显提高,价格降低,销售有爆炸

性增长。

软件特征:程序员数量猛增,已意识到软件开发的重要性,开发技术没有

新的突破

,大量软件开发的需求已提出,开发人员的素质和工程兵的开发技术不

适应规模大、结构复杂的软件开发,产生了尖锐矛盾,导致软件危机的产

C.软件工程时代(1968-今) 生产方式:工程化的生产

工具方法:数据库、开发工具、开发环境、网络、 分布式、面向对象技

硬件特征:向超高速、大容量、微型化以及网络化方向发展。

软件特征: 开发技术有很大进步,但未能获得突破性进展,软件价格不断

上升,没有完全摆脱软件危机。

3.什么是软件危机?其产生的原因是什么?

软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。一些

复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未

能满足发展的要求。

在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖

锐的矛盾,因而导致了软件危机。主要表现在以下几个方面:

a.经费预算经常突破,完成时间一再拖延。

b.开发的软件不通满足用户要求。

c.开发的软件可维护性差。

d. 开发的软件可靠性差。

软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方

法、技术和人员引起的:

a.软件的规模越来越大,结构越来越复杂。

b.软件开发管理困难而复杂。

c.软件开发费用不断增加。

d.软件开发技术落后。

e.生产方式落后。

f.开发工具落后,生产率提高缓慢。

4.什么是软件工程?它的目标和内容是什么?

软件工程:用科学知识和技术原理来定义、开发、维护软件的一门学科。

软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下

几个目标:

a.付出较低的开发成本;

b.面到要求的软件功能;

c.取得较好的软件性能;

d.开发的软件易于移植;

e.需要较低的维护费用;

f.能按时完成开发任务,及时交付使用;

g.开发的软件可靠性高;

软件工程的内容:

1) 软件开发技术:软件开发方法、软件开发过程、软件开发工具和环

境。

2) 软件开发管理:软件管理学、软件经济学、软件心理学。

5.软件工程面临的问题是什么?

软件工程面临的问题:

a.软件费用。b.软件可靠性。c.软件维护。d.软件生产率。e.软件重用。

6.什么是软件生存周期?它有哪几个活动?

软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个

时期。

软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、

详细设计、编码、测试、维护等.

7.什么是软件生存周期模型?有哪些主要模型?

软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。(模

型:是为了理解事物而对事物做

出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规

划、一个程式。)

软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变

换模型和基于知识的模型等

9.什么是软件开发的方法?有哪些主要方法?

软件开发的方法:是一种使用早已定义好的技术集及符号表示习惯来组织

软件生产的过程。

主要方法:结构方法、Jackson方法、维也纳开发方法(VDM)、面向对

象的开发方法。

liuqing :

第二章

1.可行性研究的任务是什么?

a.技术可行性:

考虑的因素(1).开发的风险(2)资源的有效性(3)技术(4)开发人员在主段技术

可行性时,一旦估计错误,

将会出现灾难性后果。

b.经济可行性。

c.社会可行性。

2.可行性研究有哪些步骤?

a.确定项目规模和目标

b.研究正在运行的系统

c.建立新系统的高层逻辑模型

d.导出和评价各种方案

e.推荐可行的方案

f.编写可行性研究报告

3。可行性研究报告有哪些就要内容?

a。引言

b.可行性研究前提

c.对现有系统的分析

d.所建议系统的技术可行性分析

e.所建议系统的经济可行性分析

f.社会因素可行性分析

g.其他可供选择方案

h.结论意见

4.成本---效益分析可用哪些指标进行度量?

有形效益度量:

a.货币的时间价值

b.投资回收期

c.纯收入

无形效益:主要从性质上、心理上进行衡量,很难直接进行量的比较。

通常以有形效益度量作为成本---效益分析的度量。

5.项目开发计划有哪些内容?

a.项目概述 b.实施计划c.人员组织及分工d.交付期限

------------------------------------------------------------------------------------

liuqing :

第三章

1.什么是需求分析?需求分析阶段的基本任务是什么?

需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,

将用户非形式的需求

陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规

约(需求规格说明)的过程。

需求分析阶段的基本任务是:

(1.问题识别:

双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需

求.

(2.分析与综合,导出软件的逻辑模型.

(3.编写文档

2.什么是结构化分析方法?该方法使用什么描述工具?

结构化分析方法:是面向数据汉进行需求分析的方法。

描 述 工 具:a.数据流图b.数据字典c.描述加工逻辑的结构化语言、判定

表、判定树.

3.结构化分析方法通过哪些步骤来实现?

结构化分析方法步骤:

a.了解当前系统的工作流程,获得当前系统的物理模型.

b.抽象出当前系统的逻辑模型.

c.建立上标系统的逻辑模型.

d.作进一步补充和优化.

4.什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?

数据流图:简称DFD,是SA(结构化分析)方法中用于表示系统逻辑模型的一

种工具.是一种功能模型.

作 用:它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必

须完成的逻辑功能.

基本符号有四种:

->,箭头,表示数据流; (),圆或椭圆,表示加工; =,双杠,表示数据存储; ||,方框,表

示数据的源点或终点.

5.画数据流图应该注意什么事项?

画数据流图注意事项:

a.命名.不论是数据流\数据存储还是加工,合适的命名使人们易于理解基

含义〃

b.画数据流而不是控制流〃

c.一般不画物质流〃

d.每个加工到少有一个输入数据流和一个输出数据流,反映出此加工数据

的来源与加工的结果〃

e.编号〃

f.父图与子图的平衡〃

g.局部数据存储〃

h.提高数据流图的易理解性〃

6.什么是字据字典?其作用是什么?它有哪些条目?

字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它

以一种准确的\无二义

性的说明方式为系统的分析设计及维护提供了有关元

素的一致的定义和详细的描述.

作 用:1)为系统的分析设计及维护提供了有关元素的一致的定义和详细

的描述.

2)为分析人员查找数据流图中有关名字的详细定义而服务的.

3)它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组

成部分.

条 目:数据流、数据项、数据存储、基本加工。

7.描述加工逻辑有哪些工具?

a,结构化语言b,判定表c.判定树

8.什么是IDEF方法?IDEF0方法有什么特点?

IDEF方法:是美国空军在1981年针对集成化计算机辅助制造(Integrated

Computer Aided Manufacturing,

简称ICAM)工程项目中用于进行复杂系统分析和设计的方法,是在结构

化分析与设计技术的基础上提出来的。

IDEF是ICAM Definition的缩写。

IDEF0方法特点:

a.采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述活动

所受到的约束及

实现机制。

b.采用严格的自顶向下、逐层分解的方式建立系统功能模型。

9。简述SA方法的优缺点。

优点:1)公认的、有成效的、技术成熟、使用广泛的一种方法,比较适合

于开发数据处理类型软件的需求分析。

2)该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,

为后一阶段的设计、测试、

评价提供了有利条件。

缺点:1)传统的SA方法主要用于数据处理方面的问题,主要工具DFD

体现了系统“做什么”的功能,但它仅

是一个静态模型,没有反映处理的顺序,即控制流程。因此,不适合描述

实时控制系统。

2)SA方法在使用DFD在分析与描述“数据要求”方面是有局限的。

3) DFD不适合描述人机界面系统的要求。

4)为了更精确地描述软件包需求,提高软件系统的可靠性、安全性,也

便于实现自动化,SA方法可与形式

方法结合起来。

该帖已被liuqing在2003-7-4 14:47:15时编辑过

liuqing :

后面这三题,我没把握,恳请大家指教

10.某银行的计算机储蓄系统功能是:将储户填写的存款单或取款单输入系

统,如果是存款,系统记录存款人姓名、住址、

存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,

系统计算清单储户。请用DFD和IDEF0描绘该

功能的需求,并建立相应的数据字典。

(1)数据流条目:

数据流名称:存款单

别 名:无

简 述:储户存款时填写的项目

来 源:储户

去 向:记帐

数据 流 量:未知

组 成:姓名+住址+存款类型+存款日期+利率

数据流名称:取款单

别 名:无

简 述:储户取款时填写的项目

来 源:储户

去 向:统计

数据 流 量:未知

组 成:姓名+住址+取款类型+取款日期+利率

数据流名称:清单

别 名:无

简 述:储户取款后得到的项目

来 源:记录

去 向:储户

数据 流 量:未知

组 成:姓名+住址+取款类型+取款日期+利率+余额

(2)数据存储条目:

数据存储名称:账单

别 名:无

简 述:存放储户信息及其账目

组 成:姓名+住址+余额+存款类型+最后修改日期+利率

组 织 方 式:未知

查 询 要 求:能立即查询

(3)数据项条目:

未知

(4)加工条目:

加工 名:分类检查

编 号:无

激发条件:接收到存/取款单

优 先 级:优先

输 入:存/取款单

输 出:存/取款单

加工逻辑:IF 存款单 THEN 把存款单输出到统计

ELSE

把取款单输出到统计

ENDIF

加工 名:统计

编 号:无

激发条件:取款单

优 先 级:无

输 入:取款单

输 出:清单

加工逻辑:根据账单检查此储户是否存在,不存在输出错误{

IF 取款数<余额 THEN 余额=余额-取款数

输出清单到储户,输出现金到储户

ELSE

输出错误清单到储户

ENDIF

}

加工 名:记录

编 号:无

激发条件:存款单

优 先 级:无

输 入:存款单

输 出:存款单

加工逻辑:根据账单检查此储户是否存在,不存在则建立此储户{

余额=余额+存款数

输出存款单到储户

}

11.某图书管理系统工程有以下功能:

(1)借书:输入读者借书证。系统首先检查借书证是否有效,对于第一次借

书的读者,在借书文件建立档案。

否则,查阅借书文件,检查该读者所借图书是否超过10本,若已达10本,

拒借,未达10本,办理借书(检查库存、

修改库存目录并将读者借书情况登入借书文件).

(2)还书:从借书文件中读出与读者有关的记录,查阅所借日期,如果超期

(3个月)作罚款处理。否则,

修改库存目录与借书文件。

(3)查询:可通过借书文件、库存目录文件查询读者情况、图书借阅情况及

库存情况,打印各种统计表。

请就以上系统功能画出分层的DFD图,并建立重要条目的数据字典。

liuqing :

12.某厂对部分职工重新分配工作的政策是:

年龄在伙岁以下者,初中文化程度脱产学习。高中文化程度当电工;年龄

在20岁到40岁之间者,中学

中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员。年龄

在40岁以上者,中学文化程度当材料

员,大学文化程序当技术员。请用结构化语言、判定表或判定树描述上述

问题的加工逻辑。

liuqing :

(1)结构化语言:

根据职工年龄和文化程序:

REPEAT

If 年龄<=20

If 初中文化 Then 脱产学习 endif

else if 高中文化 Then 电工 endif

endif

If 20<年龄<40

If 中学文化

If 男性 Then 钳工

else

车工

endif

else if 大学文化 Then 技术员

endif

endif

endif

If 年龄>=40

If 中学文化 Then 材料员

else if 大学文化 Then 技术员

endif

endif

endif

Until 没有剩余未分配员工

详细设计说明书

1 引言

1〃1编写目的

说明编写这份详细设计说明书的目的,指出预期的读者。

1〃2背景

说明:

a〃待开发软件系统的名称;

b〃本项目的任务提出者、开发者、用户和运行该程序系统的计算中

心。

1〃3定义

列出本文件中用到专门术语的定义和外文首字母组词的原词组。

1〃4参考资料

列出有关的参考资料,如:

a〃本项目的经核准的计划任务书或合同、上级机关的批文;

b〃属于本项目的其他已发表的文件;

c〃本文件中各处引用到的文件资料,包括所要用到的软件开发标准。

列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这

些文件的来源。

2 程序系统的结构

用一系列图表列出本程序系统内的每个程序(包括每个模块和子程

序)的名称、标识符和它们之间 的层次结构关系。

3 程序1(标识符)设计说明

从本章开始,逐个地给出各个层次中的每个程序的设计考虑。以下给

出的提纲是针对一般情况的。 对于一个具体的模块,尤其是层次比较低

的模块或子程序,其很多条目的内容往往与它所隶属的上一层 模块的对

应条目的内容相同,在这种情况下,只要简单地说明这一点即可。

3〃1程序描述

给出对该程序的简要描述,主要说明安排设计本程序的目的意义,并

且,还要说明本程序的特点(如 是常驻内存还是非常驻?是否子程序?

是可重人的还是不可重人的?有无覆盖要求?是顺序处理还是并发 处理

卜…〃〃等)。

3〃2功能

说明该程序应具有的功能,可采用IPO图(即输入一处理一输出图)

的形式。

3〃3性能

说明对该程序的全部性能要求,包括对精度、灵活性和时间特性的要

求。

3〃4输人项

给出对每一个输入项的特性,包括名称、标识、数据的类型和格式、

数据值的有效范围、输入的方式。 数量和频度、输入媒体、输入数据的

来源和安全保密条件等等。

3〃 5输出项

给出对每一个输出项的特性,包括名称、标识、数据的类型和格式,

数据值的有效范围,输出的形式、 数量和频度,输出媒体、对输出图形

及符号的说明、安全保密条件等等。

3〃6算法

详细说明本程序所选用的算法,具体的计算公式和计算步骤。

3〃7流程逻辑

用图表(例如流程图、判定表等)辅以必要的说明来表示本程序的逻

辑流程。

3〃8接口

用图的形式说明本程序所隶属的上一层模块及隶属于本程序的下一

层模块、子程序,说明参数赋值和调用方式,说明与本程序相直接关联的

数据结构(数据库、数据文卷)。

3〃9存储分配

根据需要,说明本程序的存储分配。

3〃10注释设计

说明准备在本程序中安排的注释,如:

a〃 加在模块首部的注释;

b〃加在各分枝点处的注释; 对各变量的功能、范围、缺省条件等所

加的注释;

d〃对使用的逻辑所加的注释等等。

3〃11限制条件

说明本程序运行中所受到的限制条件。

3〃12测试计划

说明对本程序进行单体测试的计划,包括对测试的技术要求、输入数

据、预期结果、进度安排、人员职责、设备条件驱动程序及桩模块等的规

定。

3〃13尚未解决的问题

说明在本程序的设计中尚未解决而设计者认为在软件完成之前应解

决的问题。

4 程序2(标识符)设计说明

用类似3的方式,说明第2个程序乃至第N个程序的设计考虑。

〃〃〃〃〃〃


本文标签: 软件 开发 系统 模块 设计