文档库

最新最全的文档下载
当前位置:文档库 > 软件工程期末考试简答题汇总

软件工程期末考试简答题汇总

1什么是软件工程?基本原理有哪些? (3)

2成本_效益分析可用哪些指标进行度量?(写出公式) (3)

3什么是数据流图?其中的基本符号各表示什么含义?画出定货系统基本数据流图。 (3)

4非渐增式测试与渐增式测试有什么区别? (3)

5试从基本符号和设计方法分析HC图与JACKSON图异同点 (4)

6软件测试的目的是什么? (4)

7结构化程序设计的思想是什么? (4)

8请解释极限编程和自适应软件开发,并说明其异同? (4)

9需求工程的起始阶段,需求工程师的主要工作是? (4)

10请画出“在餐厅使用信用卡付费”这一活动的完整用例图? (5)

11分析说明结构化分析和面向对象分析的区别? (5)

12 请简要给出评价软件设计质量的标准? (5)

13 一个良好的设计类需要满足四个特点,请详细描述这四个特点? (5)

14软件项目估算内容与步骤 (6)

15面向对象设计的准则是什么?有哪5个层次和4个部分? (6)

16简述软件工程目标和面临的主要问题。 (6)

17简述软件工程过程。 (6)

18简述模块独立性的原则。 (6)

19简述结构化程序设计方法的基本要点 (7)

20简述软件生命周期开发方法的基本过程及每个阶段的任务。 (7)

21复印机的工作流程大致如下: (7)

22简述文档在软件工程中的作用。 (8)

23简述软件项目管理过程。 (8)

24简述系统分析员应该具备的主要知识结构和基本素质。 (8)

25简述何谓软件开发方法?请列举四种主要方法。 (9)

26简述单元测试的基本内容。 (9)

27什么是软件生存周期模型?请至少列举四种主要模型? (9)

28衡量模块独立的两个标准是什么?它们各表示什么含义?(网上) (10)

29简述白盒测试的思想,并列举两种典型的测试技术。 (10)

30简述CMM(软件能力成熟度模型)5个等级的含义 (10)

31简述软件维护的定义 (11)

32简述软件测试的定义 (11)

33 UML建模中主要包括哪九种图?并说明类图的定义及其中常见的关系有哪些? (11)

34什么是字据字典?其作用是什么?它有哪些条目? (11)

35软件工程的两大范型分别是什么?它们有什么不同? (11)

36如何画分层数据流图? (12)

37面向对象程序设计有哪些优点? (12)

38在软件测试中,应注意哪些原则? (12)

39程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。 (13)

40面向对象分析与面向对象设计的关系? (13)

41成本-效益分析的目的是什么?可用哪些指标进行度量? (13)

42软件设计分哪几个阶段,它们的主要任务是什么? (13)

43用户需求和系统需求各有什么特点? (14)

44面向对象设计的准则? (14)

45需求分析过程主要有哪几个步骤? (14)

46软件设计分哪几个阶段,它们的主要任务是什么? (14)

47什么是软件结构图?它有哪些主要元素? (14)

48面向对象方法的特点是什么?为什么要用面向对象方法开发软件? (15)

49什么是编码风格?请根据自己的编程经验编写一个编程注意事项。 (15)

50软件生命期各阶段的任务是什么? (16)

51非渐增式测试与渐增式测试有什么区别? (16)

52面向对象程序设计有哪些优点? (17)

53模块间的耦合性有哪几种? (17)

54软件开发步骤包括哪些过程? (17)

55数据字典有哪几类元素构成? (17)

56大型软件系统的设计思想是什么? (17)

57、数据库设计一般分为哪几个阶段?形成哪三种模式?(P101) (17)

58什么是软件危机?其产生的原因是什么?(P7) (18)

59、概要设计的原则?(P72) (18)

60阐述结构化设计的主要思想?(P79) (18)

61软件工程主要研究哪些领域?(P16) (18)

62.以G.J.Myers的观点,简述对软件测试的目的。 (19)

63.就程序设计语言的工程特性而言,对程序编码有哪些要求? (19)

64模块的内聚性包括哪些类型? (19)

65可行性研究报告的主要内容有哪些? (19)

66系统设计的内容是什么? (20)

67什么是软件危机?软件危机的表现是什么?其产生的原因是什么? (20)

68.软件质量保证应做好哪几方面的工作? (21)

69软件复用 (22)

70、Case技术 (22)

71请说明软件文档的作用?软件开发项目生存期各阶段都包含哪些文档? (22)

72什么是数据字典?其作用是什么?它有哪些条目? (22)

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

74何谓软件生存周期?其可以划分为几个时期?每个时期又可分为几个阶段?每个阶段的主要任务是什么? (23)

75如何做好软件质量保证工作? (24)

76什么是软件工程?什么是软件危机? (24)

77软件的可行性研究主要研究哪些问题?并对此进行说明。 (24)

78什么是黑盒测试,适用的方法有哪些?什么是白盒测试,适用的方法有哪些? (24)

79什么是软件维护?软件维护包括哪四类活动? (25)

80有人说:软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。请问这句话对否?请解释你的回答。 (25)

81请将下述有关模块独立性的各种模块内聚,按其内聚度(强度)从高到低排列起来。 (25)

1什么是软件工程?基本原理有哪些?

软件工程是指导计算机软件开发和维护的工程学科。

用分阶段的生命周期计划管理、坚持阶段评审、实行严格产品控制、采用现代设计技术、结果审查、开发小组人员少而精、并不断改进方法。

2成本_效益分析可用哪些指标进行度量?(写出公式)

可用投资回收期、纯收入、投资回收率指标,通过P=F/(1+i)n计算求得。

3什么是数据流图?其中的基本符号各表示什么含义?画出定货系统基本数据流图。

用符号描绘信息在系统中流动的情况,源点、终点、处理、数据存储、数据流。

软件工程期末考试简答题汇总

4非渐增式测试与渐增式测试有什么区别?

两种都用于集成测试。渐增式是把下一个要测试的摸块同已经测试好的模块结合起来进行测试,每次增加一个模块。非渐增式先分别测每个模块,再把所有模块按设计要求放在一起结合成所要的程序。

5试从基本符号和设计方法分析HC图与JACKSON图异同点

答:HC图是面向DFD,而JACKSON图是面向数据结构的。符号省略。

6软件测试的目的是什么?

测试的目的是为了发现错误.

7结构化程序设计的思想是什么?

答:自上而下,逐步求精

8请解释极限编程和自适应软件开发,并说明其异同?

答:极限编程和自适应软件开发都属于敏捷过程模型。极限编程是应用最广泛的敏捷过程(2分)。按照计划、设计、编码和测试四个框架活动组织。极限编程建议一系列新颖和有力的技术,保证敏捷团队创建能力体现客户指定优先级特征和功能的频繁软件开发(2分)。自适应软件开发强调人的合作和团队的组织,按思考、协作和学习的三个框架活动组织,其使用迭代过程。该过程由自适应循环计划、相对严格的需求收集方法和一个迭代开发循环构成(2分)。

9需求工程的起始阶段,需求工程师的主要工作是?

答:需求工程的起始阶段,工程师的主要工作为:

1)建立基本的问题需求(2分)

2)定义最重要的项目约束以及陈述主要的特征和功能(2分)

3)与共利益的各方建立基本的谅解(2分)

10请画出“在餐厅使用信用卡付费”这一活动的完整用例图?

软件工程期末考试简答题汇总

11分析说明结构化分析和面向对象分析的区别?

答:分析建模的目标是创建各种表现形式,以描述软件信息、功能和行为的需求(2分)。为实现这一目标,可采用结构化分析和面向对象分析方法(1分)。结构化分析把软件看作信息装换器,辅助软件工程师识别数据对象、对象间的联系以及这些数据对象流经软件处理功能时转换的方式(2分)。面向对象分析就是检查定义为一组用例的问题域,尽量提取定义问题的类(1分)。

12请简要给出评价软件设计质量的标准?

答:评价软件设计质量的标准如下:

1)设计必须实现所有包含在分析模型中的明确需求,以及用户期望的所有隐含需求(2分)

2)对于那些生成代码的人和那些进行代码测试以及随后维护软件的人而言,设计必须是可读、可理解的指南(2分)

3)设计必须提供软件的全貌,从实现的角度水明数据域、功能域和行为域(2分)

13一个良好的设计类需要满足四个特点,请详细描述这四个特点?

答:一个良好的设计类需要满足:

1)完整性和充分性(1分)

2)原始性(2分)

3)高内聚性(2分)

4)低耦合性(1分)

14软件项目估算内容与步骤

15面向对象设计的准则是什么?有哪5个层次和4个部分?

准则:模块化、抽象、信息隐蔽、高内聚、低耦合、可重用

16简述软件工程目标和面临的主要问题。

目标:支付较低的开发成本、达到要求的软件功能、获取较好的软件性能、开发的软件易于移植、需要较低的维护费用、能按时完成开发任务,几时交付使用、开发的软件可靠性高

面临的主要问题是:软件费用软件可靠性软件维护软件生产率软件重用。

17简述软件工程过程。

软件工程过程是为获得软件产品,在软件工具支持下由软件工程师完成的一系列软件工程活动。软件工程过程通常包含四种基本的过程活动:

P(Plan):软件规格说明。规定软件的功能及其运行的限制;

D(Do):软件开发。产生满足规格说明的软件;

C(Check):软件确认。确认软件能够完成客户提出的要求;

A(Action):软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。

事实上,软件工程过程是一个软件开发机构针对某一类软件产品为自己规定的工作步骤,它应当是科学的、合理的,否则必将影响到软件产品的质量。

18简述模块独立性的原则。

模块独立性是指软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的

模块独立性的概念是模块化、抽象、信息隐蔽和局部话概念的直接结果

由耦合和内聚2个标准度量

19简述结构化程序设计方法的基本要点

1. 采用自顶向下,逐步求精的程序设计方法在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。

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

1)用顺序方式对过程分解,确定各部分的执行顺序。

2)用选择方式对过程分解,确定某个部分的执行条件。

3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。

4)对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。

3. 主程序员组的组织形式

20简述软件生命周期开发方法的基本过程及每个阶段的任务。

(1)问题定义阶段,尽可能清楚地描述问题,搞清楚要解决的问题是什么;(2)可行性研究阶段,主要是确定待解的问题是否有可行的解决办法。需要做经济可行性分析、技术可行性分析、操作可行性分析和法律可行性分析;(3)需求分析阶段,主要是确定目标系统必须具备的功能。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。

(4)总体设计阶段,从总体上解决问题,确定可实现的方案,并设计出软件的层次结构图;

(5)详细设计,把解法具体化,确定如何具体地实现这个系统。针对每个模块设计相应的算法;

(6)编码和单元测试阶段,把详细设计的结果翻译成选定的语言所写的程序,并对每个模块进行单元测试。

(7)测试阶段,系统地设计测试用例,尽可能多地发现软件中的错误,并调试改正软件中的错误;

(8)软件维护阶段,主要目的是通过修改软件使所开发的软件能够持久地满足用户的需要。

21复印机的工作流程大致如下:

未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令:如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。试用状态转换图描绘复印机

的行为。

从问题陈述可知,复印机的状态主要有闲置、复印、缺纸和卡纸。引起状态转换的事件主要是复印命令、完成复印命令、发现缺纸、装满纸、发生卡纸故障和排除了卡纸故障

软件工程期末考试简答题汇总

22简述文档在软件工程中的作用。

1、提高软件开发过程的能见度

2、实现对软件开发的工程管理

3、提高开发效率

4、作为开发人员在一定阶段的工作成果和结束标志

5、提供软件运行、维护和培训有关资料

6、记录开发过程中有关信息便于协调以后的软件开发使用和维护

7、便于用户了解软件功能、性能。

23简述软件项目管理过程。

24简述系统分析员应该具备的主要知识结构和基本素质。

系统分析员应该既是信息系统专家,又是企业管理专家,同时还应该是优秀的领导者。

系统分析员应该具有的知识结构为:首先应该具有深入扎实的信息系统方面的专业知识和实践经验,即他们必须具有计算机软硬件的知识和开发应用的实践经验,以及信息处理,包括MIS、网络、通讯、数据库等方面的知识和实践经验;其次,应该具有经济管理或企业管理方面较丰富的理论知识和实践经验;同时应该具有优秀领导者的素质、才能和领导艺术,在信息系统开发的实践中不断丰富自己、提高自己,使自己的知识结构更趋于合理。

25简述何谓软件开发方法?请列举四种主要方法。

软件开发方法是一中使用定义好的技术集和符号表示组织软件生产的过程。

结构化方法 jackson方法维也纳开发方法面向对象开发方法

26简述单元测试的基本内容。

测试构造软件系统的模块(对象和子系统)

模块接口主要检查数据能否正确通过模块;属性及对应关系是否一致

局部数据结构说明不正确或不一致;初始化或缺省值错误;变量名未定义或拼写错误;数据类型不相容;上溢下溢或地址错误等

重要的执行路径重要模块要进行基本路径测试,仔细地选择测试路径是单元测试的一项基本任务

错误处理主要测试程序对错误处理的能力,应检查是否不能正确处理外部输入错误或内部处理引起的错误;对发生的错误不能正确描述的

内容,难以理解;在错误处理之前,系统已经进行干预等

边界条件程序最容易在边界上出错,如输入输出数据的等价类边界,选择条件和循环条件的边界,复杂数据结构的边界等都应进行测试

27什么是软件生存周期模型?请至少列举四种主要模型?

软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。

常见的软件生存周期模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。

28衡量模块独立的两个标准是什么?它们各表示什么含义?(网上)

两个定性的度量标准:耦合与内聚性

耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。模块内元素联系越紧密,内聚性越高。

29简述白盒测试的思想,并列举两种典型的测试技术。

白盒测试又称结构测试,它把测试对象看作一个透明的盒子。测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态和预期的状态是否一致

典型测试技术:逻辑驱动、基本路径测试等

30简述CMM(软件能力成熟度模型)5个等级的含义

第一级基本集软件工程是混乱无序的,对工程几乎没有定义,成功依靠的是个人的才能和经验,管理方式属于反应式

第二级重复级建立了基本的项目管理来跟踪进度。费用和功能特征,制定了必要的项目管理,能够利用以前类似的项目应用取得成功

第三级确定级已经将软件管理和过程文档化,标准化,同时综合成该组织的标准软件过程,所有的软件开发都使用该标准软件

第四级管理级收集软件过程和产品质量的详细度量,对软件过程和产品质量有定量的理解和控制。

第五级优化级软件过程的量化反馈和新的思想和技术促进过程的不断改进

31简述软件维护的定义

在软件运行或维护阶段对软件产品所进行的修改,这些修改可能是改正软件中的错误,也可能是增加新的功能以适应新的需求,但一般不包括软件系统结构上的重大改变

32简述软件测试的定义

广义:软件产品生存周期内所有的检查评审和确认活动

狭义:对软件产品质量的检验和评价,一方面检查软件产品质量中存在的质量问题同时对产品质量进行客观的评价。

33 UML建模中主要包括哪九种图?并说明类图的定义及其中常见的关系有哪些?

用例图类图对象图状态图顺序图协作图活动图组件图分布图

类图描述系统的的静态结构。表示系统中类、类与类之间的关系以及类的属性和操作。

常见关系:关联(分为聚合和组合)、范化、依赖、实现

34什么是字据字典?其作用是什么?它有哪些条目?

数据字典是用于定义数据流图中的各个成分的具体含义。它以一种准确的无二义的说明方式为系统的分析设计及维护提供了有关元素的一致的定义和详细的描述

有4类条目:数据流、数据存储、数据项和加工

35软件工程的两大范型分别是什么?它们有什么不同?

分别是传统的结构化范型和面向对象范型。结构化范型要么面向行为要么面向数据,但没有既面向数据又面向行为的;而面向对象范型把数据和行为看

成同等重要,即将对象视作一个融合了数据及在其上操作的行为的统一的软件组件。面向对象相对于结构化技术,无论对象的内部细节如何变化,只要对象提供的方法即接口保持不变,则整个软件产品的其他部分就不会受到影响,不需要了解对象内部的变化。

36如何画分层数据流图?

第一步,画子系统的输入输出:把整个系统视为一个大的加工,然后根据数据系统从哪些外部实体接收数据流,以及系统发送数据流到那些外部实体,就可以画出输入输出图。这张图称为顶层图。

第二步,画子系统的内部:把顶层图的加工分解成若干个加工,并用数据流将这些加工连接起来,使得顶层图的输入数据经过若干加工处理后,变成顶层图的输出数据流。这张图称为0层图。从一个加工画出一张数据流图的过程就是对加工的分解。

37面向对象程序设计有哪些优点?

1)易维护采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。2)质量高在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。

3)效率高在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。

4)易扩展由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。

38在软件测试中,应注意哪些原则?

1)认真执行测试计划

2)“尽早和不断地进行软件测试/评审”

3)优选测试工具、技术和方法

4)精心设计测试用例

5)交叉进行软件检测

6)重点测试群集现象

7)全面检查并分析测试结果

8)妥善保管测试文档

39程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。

要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。

40面向对象分析与面向对象设计的关系?

面向对象分析与面向对象设计的任务相同,面向对象分析的结果可以作为开始面向对象设计的模型,面向对象的设计结果可以作为蓝图,利用面向对象编程方法最终实现一个系统。

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

成本/效益分析的目的是从经济角度论证开发一个特定的新系统开发是否划算,是决定是否投资开发新系统的依据。

(1)货币的时间价值:货币的价值本身随时间的增加而产生增值

(2)投资回收期:累计的经济效益等于最初的投资所需的时间。

(3)纯收入:在整个生存周期内系统的累计经济效益(折合现在的钱)与投资之差。

(4)投资回收率----投资的年利率

42软件设计分哪几个阶段,它们的主要任务是什么?

软件设计可以分为概要设计和详细设计两个阶段。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。

43用户需求和系统需求各有什么特点?

用户需求是从用户角度来描述系统功能和非功能需求,以便让不具备专业技术方面知识的用户能看懂。用户需求是描述系统的外部行为,用自然语言、图表和直观的图形来叙述。系统需求是比用户需求更详细的需求描述,是系统实现的基本依据,因此,是一个完全的、一致的系统描述,是软件工程人员系统设计的起点。系统需求描述可能包括许多不同的模型,如对象模型和数据流模型。

44面向对象设计的准则?

1)模块化

2)抽象

3)信息隐藏

4)弱耦合

5)强内聚

6)可重用

45需求分析过程主要有哪几个步骤?

需求分析过程主要有沟通、导出需求、分析与精化、可行性研究、协商与沟通、规格说明、需求验证、变更管理等步骤。

46软件设计分哪几个阶段,它们的主要任务是什么?

总体设计——概要设计、软件结构设计、高层设计,仔细地分析需求规格说明,研究开发产品的模块划分。

详细设计——(模块)过程设计、低层设计,为结构设计中的各个模块设计过程细节,确定模块所需的算法和数据结构等。

设计测试——测试和复审,确保设计的正确和优化。

47什么是软件结构图?它有哪些主要元素?

软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系。主要元素有:

48面向对象方法的特点是什么?为什么要用面向对象方法开发软件?

面向对象方法的特点是:

方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的。从生存期的一个阶段到下一个阶段的高度连续性,即生存期后一阶段的成果只是在前一阶段成果的补充和修改。

把面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)集成到生存期的相应阶段。

使用面向对象方法开发软件的好处是:

开发方法的唯一性,开发阶段的高度连续性,表示方式的一致性;

问题空间实体的自然表示,减轻了设计者的负担,在设计系统之初不必考虑一个很完整的解决方案。

建立稳定的系统结构,可促进复用性,易于维护,易于修改,可合理利用共同性,减少复杂性。

49什么是编码风格?请根据自己的编程经验编写一个编程注意事项。

是指一个人编制程序时所表现出来的特点、习惯和逻辑思路等。

注意事项:源程序文档化、数据说明、语句构造、输入输出、追求效率等。1)源程序文档化

(1)标识符应按意取名。

(2)程序应加注释。

2)数据说明原则

(1)数据说明顺序应规范,使数据的属性更易于查找,从而有利于测试、纠错与维护。例如按以下顺序:常量寿命、类型说明、全程量说明、局部量说明。

(2)一个语句说明多个变量时,各变量名按字典序排列。

(3)对于复杂的数据结构,要加注释,说明在程序实现时的特点。

3)语句构造原则:简单直接,不能为了追求效率而使代码复杂化

4)输入输出原则

(1)输入操作步骤和输入格式尽量简单。

(2)应检查输入数据的合法性、有效性,报告必要的输入状态信息及错误信息。

(3)输入一批数据时,使用数据或文件结束标志,而不要用计数来控制。

(4)交互式输入时,提供可用的选择和边界值。

(5)当程序设计语言有严格的格式要求时,应保持输入格式的一致性。

(6)输出数据表格化、图形化。

5)追求效率原则

(1)效率是一个性能要求,目标在需求分析给出。

(2)追求效率建立在不损害程序可读性或可靠性基础上,要先使程序正确,再提高程序效率,先使程序清晰,再提高程序效率。

50软件生命期各阶段的任务是什么?

答:软件生命期分为7个阶段:

1、问题定义:要解决的问题是什么

2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性

3、需求分析:系统必须做什么

4、总体设计:系统如何实现,包括系统设计和结构设计

5、详细设计:具体实现设计的系统

6、实现:编码和测试

7、运行维护:保证软件正常运行。

51非渐增式测试与渐增式测试有什么区别?

㈠非渐增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试往往把单元测试与集成测试和在一起,同时完成。

㈡非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。

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

㈣渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。

㈤渐增式比较彻底,已测试的模块和新的模块再测试。

㈥渐增式占用的时间较多,但非渐增式须更多的驱动模块、桩模块也占用一些时间。

㈦非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。

52面向对象程序设计有哪些优点?

53模块间的耦合性有哪几种?

(耦合度由高到低)

(1)内容耦合(2)公共耦合(3)外部耦合

(4)控制耦合(5)标记耦合(6)数据耦合

(7)非直接耦合

54软件开发步骤包括哪些过程?

需求分析解决系统做什么的问题

概要设计解决系统怎么做

详细设计每个模块内部过程的描述具体化设计软件详细规格说明书

编码设计根据详细设计说明书写出程序模块

系统测试发现和排除错误写出软件测试报告

55数据字典有哪几类元素构成?

数据流,在一个数据流中数据以数据流为单位进行传输

数据元素,也称数据项,数据的最小单位

数据存储,数据保留或保存的地方

处理,一段程序

外部实体,系统的人机界面,数据流从外部实体流入,又从系统向外部实体流出

56大型软件系统的设计思想是什么?

一个大型的软件系统是变换型结构和事务型结构的混合结构,通常采用变幻设计为主,事物设计为辅的方式进行软件结构设计,以达到高内聚低耦合,具有独立性,便于修改的目的。

57、数据库设计一般分为哪几个阶段?形成哪三种模式?(P101)

数据库的设计分为四个阶段,需求分析,概念设计,逻辑设计,物理设计。

形成概念模式,内模式,外模式三种模式。

58什么是软件危机?其产生的原因是什么?(P7)

当软件开发技术跟不上硬件技术的进步,不能满足开发的要求时,导致软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,从而导致了软件危机。

原因:1软件的规模越来越大,结构越来越复杂。2软件开发管理困难且复杂。5软件开发费用不断增加。4软件开发技术落后。5生产方式落后。6开发工具落后,生产效率缓慢。

59、概要设计的原则?(P72)

概要设计的原则的基本思想是:模块化设计,自顶向下逐步求精,模块独立性,信息隐蔽性。

模块化就是将程序划分成若干模块,每个模块完成某个子功能,然后吧这些模块集合起来组成一个整体,可以完成指定的功能来解决问题的要求。

自顶向下逐步求精是先设计顶层结构,在逐层向下设计。

模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系少且接口简单,独立性较强的模块应该是高内聚低耦合的模块。

信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息,对于不需要这些信息的其他模块来说是不能访问的,

60阐述结构化设计的主要思想?(P79)

结构化设计方法是基于模块化,自顶向下逐步求精,结构化程序设计等程序设计技术发展起来的。结构化设计可以非常方便的进行数据流框图到软件架构的转换。在结构化设计中,模块结构图能够表示出一个软件系统的层次分解关系,模块调用关系,模块之间数据流和控制信息流的传递关系,是结构化设计的主要工具。模块结构图是有数据流图转换而得到的。在将数据流图转换成软件结构之前,首先要进一步细化数据流图,然后对数据流图分类,确认是事务型还是变换型,不同的数据流图采用不同的设计过程。

61软件工程主要研究哪些领域?(P16)

1软件工程方法学。在软件开发生存周期全过程使用的一套技术的集合

2软件工具和软件支撑环境,软件工具是用来帮助开发,测试,分析维护其他计算机程序及其文档资料的一类程序。

3软件管理是软件工程中的一项非常重要的工作,许多软件项目的开发失败的主要原因就是管理不善。

4软件的规范与标准指软件开发过程中的作业标准化。

简述容错技术的四种主要手段,并解释。

结构冗余:包括静态冗余、动态冗余和混合冗余。

信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。

时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。

冗余附加技术:指为实现上述冗余技术所需的资源和技术。

62.以G.J.Myers的观点,简述对软件测试的目的。

软件测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发现的错误的测试。(3)一个成功的测试是发现至今尚未发现的错误的测试。

63.就程序设计语言的工程特性而言,对程序编码有哪些要求?

就程序设计语言的工程特性而言,对程序编码有如下要求:

(1)可移植性(2)开发工具的可利用性(3)软件的可重用性(4)可维护性

64模块的内聚性包括哪些类型?

模块的内聚性包括:

(1)偶然内聚(2)逻辑内聚(3)时间内聚(4)通信内聚(5)顺序内聚(6)功能内聚

65可行性研究报告的主要内容有哪些?

解:一个可行性研究报告的主要内容如下:

(1)引言:说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。

(2)可行性研究前提:说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。

(3)对现有系统的分析:说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。

(4)所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。