2019年自考软件工程章节复习指导汇总

发布日期:2019-07-25 14:04:58 编辑整理:新疆自考网 【字体: 【学历咨询】
立即购买

《自考视频课程》名师讲解,轻松易懂,助您轻松上岸!低至199元/科!

《软件工程》是计算机应用专业(本科)非常重要的一门专业课,该课程包括笔试和试验两部分,并且也是课程设计的科目之一。学习 《软件工程》,考生不仅需要掌握至少一门程序设计语言,还需要对数据结构、数据库、操作系统等课程有一定的了解,可以说综合性很强。

从2002年起,《软件工程》的教材改由新疆大学出版,相应的考试命题工作,也改由新疆大学负责。

为了广大考生能更好的学习《软件工程》,我总结了全书的基础知识点、历年考试题型、试验题目于下,希望可以帮助大家完成《软件工程》的学习。

学习《软件工程》必备书籍:

1.教材,《软件工程》(黑皮),新疆大学出版,2002年,王立福等

2辅导,《计算机上机实验考试应试指导》(蓝皮),新疆大学出版,2003年,孙家肃

《软件工程》笔试分为理论部分和设计部分,比例大致相当,在下面的复习大纲中将随即提到,不再细分。另外,实验部分也会在文中提及,希望读者注意。

 

第一章 软件工程概论

1. 软件工程的目的:

倡导以工程的原理、原则和方法进行软件开发,以解决当时出现的软件危机。

2. 软件危机:

在计算机软件开发和维护过程中所遇到的一系列问题。

3. 软件及组成:

计算机系统中的程序和文档称为软件,程序是计算机任务的处理对象和处理规则的描述,文档是为了理解程序所需的阐述性资料。

4. 软件工程定义:

软件工程是一类求解软件的工程,它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。软件工程是一门指导计算机软件开发和维护的工程学科。

5. 软件工程框架及其内容:

目标、活动和原则。软件工程的目标为,生产具有正确性、可用性以及开销合宜的产品。软件工程活动定义为,生产一个最终满足需求且达到工程目标的软件产品所需要的步骤,主要包括需求、设计、实现、确认以及支持等活动。软件工程设计原则为,选取适宜的开发模型,采用合适的设计方法,提供高质量的工程支持,重视开发过程的管理。(参考教材教材第2页图1.1,更有利于记忆)

6. 软件工程研究的内容:

软件开发模型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE)、软件经济学等。

7. 软件开发方法学定义:

是一种已定义好的技术集和符号表示习惯,来组织软件开发的过程,一般表示为一系列步骤,包括结构化方法、面向对象方法、Jackson方法等等。
 

第二章 软件开发模型

1. 软件开发模型定义:

是软件开发全部过程、活动和任务的结构框架。

 

2. 瀑布模型内容及特点:

瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的软干阶段工作,是一种线性模型。各阶段活动为,提出系统需求、提出软件需求、需求分析、设计、编码、测试和运行。每个开发阶段具有以下特征,从上一阶段接受本阶段工作的对象作为输入,对上述输入实施本阶段的活动,给出本阶段的工作成果作为输出传入下一阶段,对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段工作,否则返回前一阶段甚至更前阶段。瀑布模型最为突出的缺点是该模型缺乏灵活性。

 

3. 演化模型内容及特点:

演化模型主要针对事先不能完整定义需求的软件开发,其开发过程一般是首先开发核心系统,当核心系统投入运行后,软件开发人员根据用户的反馈,实施开发的迭代过程,每一迭代过 程均由需求、设计、编码、测试、集成等阶段组成,直到软件开发结束。演化模型在一定程度上减少了软件开发活动的盲目性。

 

4. 螺旋模型内容及特点:

它是在瀑布模型和演化模型的基础上,加入两者所忽略的风险分析所建立的一种软件开发模型。沿螺旋模型顺时针方向,依次表达了四个方面的活动,制定

计划、风险分析、实施工程、客户评估。

 

5. 喷泉模型内容及特点:

它体现了软件创建所固有的迭代和无间隙特征,喷泉模型主要用于支持面向对象开发过程。

 

6. 增量模型内容:

在设计了软件系统整体体系结构之后,首先完整的开发系统的一个初始子集,继之,根据这一子集,建造一个更加精细的版本,如此不断的进行系统的增量开发。

 

7. 瀑布模型、演化模型、螺旋模型之间的联系:相同点是这三个模型都分为多个阶段,而瀑布模型一次完成软件,演化模型分为多次完成,每次迭代完成软件的一个部分,螺旋模型也分为多次完成,每次完成软件的一个新原型,并考虑风险分析。

 

8. 演化模型和增量模型之间的区别

演化模型首先开发核心系统,每次迭代为系统增加一个子集,整个系统是增量开发和增量提交,增量模型首先完整的开发系统的一个初始子集,然后不断的建造更精细的版本。
 

第三章 结构化设计

1. 软件设计阶段的主要任务、方法、阶段:

需求分析阶段的主要任务是确定系统必须“做什么”,形成软件的需求规格说明书,软件设计阶段的主要任务是确定系统“怎么做”,从软件需求规格说明书出发,形 成软件的具体设计方案,软件设计可以采用多种方法,如结构化设计方法、面向数据结构的设计方法、面向对象的设计方法等,结构化软件设计可以分为总体设计和详细设计两个阶段。

 

2. 总体设计阶段的主要任务及其内容:

总体设计阶段的主要任务是把系统的功能需求分配给软件结构,形成软件的模块结构图(MSD),在结构图中矩形表示功能单元,称为“模块”,连接上下层模块的线段表示它们之间的调用关系,在总体设计阶段,每个模块还处于黑盒子级,模块通过外部特征标识,名字、输入、输出。

 

3. 总体设计的表示形式及其内容(层次图、HIPO图、结构图):

层次图是软件总体设计阶段最常使用的表示形式之一,用来描绘软件的层次结构,图中的每个方框代表一个模块,方框间的连线表示模块的调用关系,层次图很适合于在自顶向下设计软件的过程中使用;

HIPO图是由美国IBM公司发明的“层次图+输入/处理/输出图”的英文缩写,HIPO图实际上由H图和IPO图两部分组成,H图就是上面提到的层次图,为了能使HIPO图具有可跟踪性,在H图里除了最顶层的方框之外,每个方框都加了编号;

结构图和层次图类似,图中每个方框代表一个模块,方框之间的箭头(或直线)表示模块的调用关系,在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息,尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。

 

4. 模块及其组成:

模块是执行一个特殊任务或实现一个特殊的抽象数据类型的一组例程和数据结构,模块由两部分组成,接口和实现模块功能的执行机制。

 

5. 面向数据流的设计方法(综合应用):

面向数据流的设计方法把数据流图映射成为软件结构,数据流图的类型决定了映射的方法,数据流图可以分为变换型数据流图和事务型数据流图,具有较明显的输入、变换(或称主加工)和输出界面的数据流图称为变换型数据流图,数据沿输入通路到达一个处理模块,这个处理模块根据输入数据的类型在若干动作序列中选出一个来执行,这类数据流图称为事务型数据流图,并且称这个模块为事务中心,它完成如下任务,接收输入数据、分析数据并确定数据类型、根据数据类型选取一条活动通路。

 

6. 评价软件设计质量的主要准则(模块化、抽象、耦合、内聚)及详细内容:

模块化是好的软件设计的一个基本准则;

抽象就是抽出事务的本质特性而暂时不考虑它们的细节,模块是按照不同的抽象级别安排的,高层抽象模块向读者隐藏了功能实现的细节,这就是信息隐蔽,模块之间相互隐藏自身的实现细节对一个好的设计来说是至关重要的;

耦合是对不同模块之间相互依赖程度的度量,紧密耦合是指两个模块之间存在着很强的依赖关系,松散耦合是指两个模块之间存在一些依赖关系,但他们之间的连接比较弱,无耦合是指模块之间根本没有任何连接;

耦合的强度依赖于以下四个因素,一个模块对另一个模块的引用,一个模块向另一个模块传递的数据量,一个模块施加到另一个模块的控制的数量,模块之间接口的复杂程度;

从强到弱的几种常见的耦合类型,内容耦合,一个模块直接修改或操作另一个模块的数据;公共耦合,两个以上的模块共同引用一个全局数据项;控制耦合,一个模块在界面上传递一个信号控制另一个模块,接收信号的模块的动作根据信号值进行调整,称为控制耦合;标记耦合,若两个模块至少有一个通过界面传递的公共参数包含内部结构;数据耦合,模块间通过参数传递基本类型的数据,数据耦合是最简单的耦合形式,系统中至少必须存在这种类型的耦合;

内聚度量的是一个模块内部各成分之间相互关联的强度,如果一个模块的所有成分都直接参与并且对于完成同一功能来说都是最基本的,则该模块是高内聚的;

 

从低到高的几种常见的内聚类型,偶然内聚,一个模块的各个成分之间毫无关系;逻辑内聚,几个逻辑上相关的功能被放在同一模块中;时间内聚,一个模块完成的功能必须在同一时间内执行,但这些功能只是因为时间因素关联在一起;过程内聚,一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行;通信内聚,一个模块的所有成分都操作同一数据集或生成同一数据集;顺序内聚,一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个的成分;功能内聚,最理想的内聚是功能内聚,模块的所有成分对于完成单一的功能都是基本的;

内聚和耦合是密切相关的,在进行软件设计时,应力争做到强内聚、弱耦合。

 

7. 结构化设计的启发式规则:

改进软件结构提高模块独立性,模块规模应该适中,深度、宽度、扇入和扇出应适中,模块的作用域应该在控制域之内,力争降低模块接口的复杂性,模块功能应该可以预测;

模块的作用域定义为受该模块内一个判定影响的所有模块的集合,模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。

 

8. 结构化分析与结构化设计的区别:

结构化分析得到数据流图、数据字典等,属于逻辑模型,结构化设计得到模块结构图,属于程序模型。

 

9. 详细设计阶段的目标、表现、内容:

详细设计阶段的根本目标是确定怎样具体的实现所要求的系统,详细设计以总体设计阶段的工作为基础,但又不同于总体设计,主要表现在,在总体设计阶段,数据项和数据结构以比较抽象的方式描述,详细设计要提供关于算法的更多细节;

详细设计的模块包含实现对应的总体设计的模块所需要的处理逻辑,主要有,详细的算法,数据表示和数据结构,实施的功能和使用的数据之间的关系。

 

10.结构化程序的三种基本结构,结构化设计的目标:

结构化程序设计技术采用自顶向下逐步求精的设计方法和单入口单出口的控制结构,并且只包含顺序、选择和循环三种结构,结构化程序设计的目标之一是使程序的控制流程线性化,即程序的动态执行顺序符合静态书写结构,结构化程序设计的观点是要求设计好结构的程序。

 

11.详细设计的任务,详细设计的工具及其内容特点:

详细设计的任务是给出软件模块结构中各个模块的内部过程描述,也就是模块内部的算法设计,详细设计的工具可以分为图形、表格、语言三种,包括程序流程图、盒图(N-S图)、PAD图、类程序设计语言(PDL);

程序流程图中使用的主要符号包括顺序、选择、循环结构,它的主要缺点如下,程序流程图本质上不是逐步求精的好工具,它诱使程序员过早的考虑程序的控制流程,而不去考虑程序的全局结构,程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制,程序流程图不易表示数据结构;

PAD是问题分析图的英文缩写,它用二维树形结构的图表示程序的控制流,PAD图的主要优点如下,使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序,PAD图所描述的程序结构十分清晰,用PAD图表现程序逻辑,易读、易懂、易记,很容易将PAD图转换成高级语言源程序,既可用于表示程序逻辑,也可用于描述数据结构,PAD图的符号支持自顶向下逐步求精的使用,PAD图是面向高级程序设计语言的;

类程序设计语言也称为伪码,它是用正文形式表示数据结构和处理过程的设计工具,PDL具有以下特点,关键字的固定语法,提供了结构化控制结构、数据说明和模块化的手段,自然语言的自由语法,用于描述处理过程和判定条件,数据说明的手段,既包括简单的数据结构,又包括复杂的数据结构,模块定义和调用的技术,提供各种 接口描述模式;

PDL作为一种设计工具有如下一些优点,可以作为注释直接插在源程序中间,可以使用普通的正文编辑程序或文字处理系统,很方面的完成PDL的书写和编辑工作,已经有自动处理程序存在,而且可以自动由PDL生成程序代码,PDL的缺点是不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表或判定树清晰简单。

本章设计题为DFD到模块结构图的转换和详细设计工具的具体应用,为笔试和试验的必考题型,非常重要,请考生参考辅导第256页(1)~(7)题,务必每一种题型都熟练掌握。



第四章 面向对象方法

1.基本概念:

(1)对象 在系统分析和系统构造中,对象是对客观世界事务的一种抽象,是由数据(属性)及其上操作(行为)组成的封装体。

(2)类 是具有相同结构、行为和关系的一组对 象的描述。

(3)属性 每一对象的属性是一些有着确定值的、用于描述对象状态信息的数据。

(4)服务 为了完成某一任务,一个对象所提供的、并体现其责任的操作。

(5)消息 一个对象为实现其责任而与其他对象的通信,在面向对象方法中,对象之间只能通过消息进行通信。

(6)继承 表达类之间相似性的一种机制,即在已有的类的基础之上增量构造新的类,前者称为父类(或超类),后者称为子类,如果子类只从一个父类继承,则称为单继承,如果子类从一个以上父类继承,则称为多继承。

(7)操作 是类的实例被要求执行的服务。

(8)关联 把一组具有相同结构特性、行为特征和语义的链的描述称为关联。

(9)链 是对象引用的元组(列表)。

(10)依赖 一个依赖规约了两个模型元素(或两个模型元素集合)之间的一种语义关系。

(11)状态 一个状态是在对象的生命期内的一个条件,或在对象满足某个条件,进行某个动作或等待某个事件的期间内的一个交互。

(12)事件 指可以引发状态转换的所发生的事情。

 

2.对象的特点:

自治性,对象具有一定的独立计算能力,封闭性,对象具有信息隐蔽的能力,通信性,对象具有与其他对象通信的能力。

 

3.面向对象方法同结构化方法的比较:

结构化方法强调过程抽象和模块化,将现实世界映射为数据流和加工,加工之间通过数据流进行通信,数据作为被动的实体被主动地操作所加工,是以过程(或操作)为中心来构造系统和设计程序的;

面向对象方法把世界看成是独立对象的集合,对象将数据和操作封装在一起,提供有限的接口,其内部的实现细节、数据结构及对它们的操作是外部不可见的,对象之间通过消息相互通信,面向对象方法具有的继承性和封装性支持软件复用,并易于扩充,能较好的适应复杂大系统不断发展和变化的要求。

 

4.Coad-Yourdon方法:

该方法认为,人类在认识和理解现实世界的过程中,普遍运用着下面三个构造法则,区分对象及其属性,区分整体对象及其组成部分,不同对象类的形成及区分。

 

5.面向对象方法分析阶段的五个主要活动及其内容:

标识类及对象、标识结构、标识主体、定义属性及实例连接、定义服务及消息连接;

两层矩形符号表示类及对象,内层矩形表示类,分为三部分,类名、属性名、服务名,外层矩形表示该类的对象;

标识的结构有两种,一般/特殊结构和整体/部分结构;

精炼主题可以从问题域和接口复杂性两方面入手;

可以从四方面考虑标识属性,原子概念,规范化,标识机制,保持一个可导出的属性。

 

6.面向对象设计(OOD):

OOD分为四部分,问题域部分,保持系统总体结构的稳定性,人机交互部分,任务管理部分,简化总体设计和编码,数据管理部分,包括数据存放方法的设计和相应服务的设计。

 

7.三种面向对象的设计模型(OSA模型):

对象关系模型、对象行为模型、对象相互作用模型。

 

8.面向对象中特殊的关系集合:

一般关系(is a),一个对象类中的每一对象是另一对象类的一个对象,聚合关系(is part of),一个对象,称之为聚合,是由一些称之为成分的对象构成的,联合关系(is member of),该关系用于生成一个由对象构成的集合,并把该集合看作是一个对象,is member of关系总是二元关系;

成员类

是联合的子集,对象是成员类的子集,对象是联合子集的子集。

 

9.对象关系模型图(ORM),对象行为模型,对象交互模型:

对了构造ORM图,OSA给出了五个基本概念,对象、关系、对象类、关系集合、约束为了构造对象行为模型,OSA集中于三个基本概念,状态、触发、动作,OSA借助于状态网,描述对象间 的同步交互。

 

10.统一软件开发过程(USDP)及其阶段:

USDP是以用况为驱动的、以体系结构为中心的、迭代、增量的过程,分为初始、细化、构造、移交四个阶段。

本章设计题为标识类、对象,及其属性与操作等,一般与DFD建模题在一起,考参考辅导

第264页建模题的第2问,另外,对象标识在试验考试中也会出现,希望考生多加练习,重点掌握。

本章的理论比较灵活,需理解的记忆,考试的时候要做到举一反三,不能只局限于文字定义。
 

第五章 软件测试

1.两种常用的测试技术:

软件产品与其他产品不同,其最大的成本是检验软件的错误、修正错误的成本,以及为了发现这些错误所进行的设计测试程序和运行测试程序的成本,两种常用的测试技术为,基于“白盒” 的路径测试技术和基于“黑盒”的事务处理流程测试技术,白盒测试技术依据的是程序的逻辑结构,黑盒测试技术依据的是软件行为的描述。

 

2.软件测试及其目标:

软件测试可以定义为,按照规定规程,发现软件错误的过程,软件测试有两个目标,一为预防错误,二为发现错误。

 

3.软件测试和软件调试的区别:

测试从一个侧面证明程序员的“失败”,而调试是为了证明程序员的正确,测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序员是否通过测试,调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的,测试是有计划的,并要进行测试设计,而调试是不受时间约束的,测试是一个发现错误、改正错误、重新测试的过程,而调试是一个推理过程,测试的执行是有规程的,而调试的执行往往要求程序员进行必要推理以至直觉的“飞跃”,测试经常是由独立的测试组在不了解软件的条件下完成的,而调试必须由了解详细设计的程序员完成,大多数测试的执行和设计可由工具支持,而调试时,程序员能利用的工具主要是调试器。

 

4.测试用例:

指的是为了发现程序中的故障而专门设计的一组或多组数据。

 

5.测试过程模型:

环境模型、对象模型、错误模型。

 

6.软件错误类别:

结构错误、数据错误、编程错误、接口错误。

 

7.控制流程图及组成:

控制流程图是程序控制结构的图形表示,其基本元素是过程块、节点、判定,控制流程图与程序流程图之间的差异是在控制流程图中,不显示过程块的细节,而在程序流程图中,着重于过程属性的描述。

 

8.路径测试的基本策略:

路径测试技术的三种基本策略为,路径测试(PX),执行所有可能的穿过程序的控制流程路径,语句测试(P1),至少执行程序中所有语句一次,100%语句覆盖率(C1)的逻辑覆盖程序最弱,分支测试(P2),至少执行程序中每一分支一次(至少每个判定都获得一次“真”和“假”),100%分支覆盖率(C2)比100%语句覆盖在逻辑上要强,条件组合测试,在逻辑上比C1,C2更强。

 

9.路径选取的一般规则:

选取最简单的、具有一定功能含义的入口/出口路径,对已选的路径进行演化,选取无循环的路径、短路径、简单路径,选取没有明显功能含义的路径。

 

10.路径测试的目标:

执行足够的测试,以确保最小的C1+C2覆盖率。

 

11.事务处理流程图与控制流程图的区别与联系:

事务处理流程图与控制流程图的类同点是使用了相同的概念成分,不同之处是事务流程图是一种数据流程图,链支和过程块的定义有所差异,另外事务流程图的判定节点可能是一个复杂的过程,从而事务流程图中的判定只能是“抽象”,第三点不同之处是事务流程图中存在“中断”的作用,中断可以把一个过程等价的变换为具有繁多出口的链支,对此也要予以抽象。

 

12.事务处理流程测试的步骤:

获得事务处理流程图,浏览、复审,用例设计。

 

13.事务处理流程测试要解决的问题:

路径选取、激活、测试设备、测试数据库。

 

14.合理的测试序列:

单元测试、集成测试、有效性测试、系统测试。

 

15.单元测试及其内容:

单元测试主要检验软件设计的最小单位—模块,单元测试一般采用白盒测试技术,在单元测试期间,通常考虑模块的四个特征,模块接口、局部数据结构、“重要的”执行路径、错误执行路径,单元测试步骤分四部分,首先测试穿过模块接口的数据流,继之进行数据结构的测试,还要进行执行路径的选择测试,边界测试是单元测试中的最后工作,也是最重要的工作。

 

16.集成测试及其内容:

集成测试是软件组装的一个系统化技术,其目标是发现与接口有关的 错误,集成测试是以主控模块为测试驱动模块,设计承接模块替代其直接的下属模块,依据所选取的测试方式,在组合模块时进行测试。

 

17.有效性测试及其手段:

有效性测试的目标是发现软件实现的功能与需求规格说明书不一致的错误,有效性测试通常采用黑盒测试技术。
 

第六章 软件测试

1.两种常用的测试技术:

软件产品与其他产品不同,其最大的成本是检验软件的错误、修正错误的成本,以及为了发现这些错误所进行的设计测试程序和运行测试程序的成本,两种常用的测试技术为,基于“白盒”的路径 测试技术和基于“黑盒”的事务处理流程测试技术,白盒测试技术依据的是程序的逻辑结构,黑盒测试技术依据的是软件行为的描述。

 

2.软件测试及其目标:

软件测试可以定义为,按照规定规程,发现软件错误的过程,软件测试有两个目标,一为预防错误,二为发现错误。

 

3.软件测试和软件调试的区别:

测试从一个侧面证明程序员的“失败”,而调试是为了证明程序员的正确,测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序员是否通过测试,调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的,测试是有计划的,并要进行测试设计,而调试是不受时间约束的,测试是一个发现错误、改正错误、重新测试的过程,而调试是一个推理过程,测试的执行是有规程的,而调试的执行往往要求程序员进行必要推理以至直觉的“飞跃”,测试经常是由独立的测试组在不了解软件的条件下完成的,而调试必须由了解详细设计的程序员完成,大多数测试的执行和设计可由工具支持,而调试时,程序员能利用的工具主要是调试器。

 

4.测试用例:

指的是为了发现程序中的故障而专门设计的一组或多组数据。

 

5.测试过程模型:

环境模型、对象模型、错误模型。

 

6.软件错误类别:

结构错误、数据错误、编程错误、接口错误。

 

7.控制流程图及组成:

控制流程图是程序控制结构的图形表示,其基本元素是过程块、节点、判定,控制流程图与程序流程图之间的差异是在控制流程图中,不显示过程块的细节,而在程序流程图中,着重于过程属性的描述。

 

8.路径测试的基本策略:

路径测试技术的三种基本策略为,路径测试(PX),执行所有可能的穿过程序的控制流程路径,语句测试(P1),至少执行程序中所有语句一次,100%语句覆盖率(C1)的逻辑覆盖程序最弱,分支测试(P2),至少执行程序中每一分支一次(至少每个判定都获得一次“真”和“假”),100%分支覆盖率(C2)比100%语句覆盖在逻辑上要强,条件组合测试,在逻辑上比C1,C2更强。

 

9.路径选取的一般规则:

选取最简单的、具有一定功能含义的入口/出口路径,对已选的路径进行演化,选取无循环的路径、短路径、简单路径,选取没有明显功能含义的路径。

 

10.路径测试的目标:

执行足够的测试,以确保最小的C1+C2覆盖率。

 

11.事务处理流程图与控制流程图的区别与联系:

事务处理流程图与控制流程图的类同点是使用了相同的概念成分,不同之处是事务流程图是一种数据流程图,链支和过程块的定义有所差异,另外事务流程图的判定节点可能是一个复杂的过程,从而事务流程图中的判定只能是“抽象”,第三点不同之处是事务流程图中存在“中断”的作用,中断可以把一个过程等价的变换为具有繁多出口的链支,对此也要予以抽象。

 

12.事务处理流程测试的步骤:

获得事务处理流程图,浏览、复审,用例设计。

 

13.事务处理流程测试要解决的问题:

路径选取、激活、测试设备、测试数据库。

 

14.合理的测试序列:

单元测试、集成测试、有效性测试、系统测试。

 

15.单元测试及其内容:

单元测试主要检验软件设计的最小单位—模块,单元测试一般采用白盒测试技术,在单元测试期间,通常考虑模块的四个特征,模块接口、局部数据结构、“重要的”执行路径、错误执行路径,单元测试步骤分四部分,首先测试穿过模块接口的数据流,继之进行数据结构的测试,还要进行执行路径的选择测试,边界测试是单元测试中的最后工作,也是最重要的工作。

 

16.集成测试及其内容:

集成测试是软件组装的一个系统化技术,其目标是发现与接口有关的错误, 集成测试是以主控模块为测试驱动模块,设计承接模块替代其直接的下属模块,依据所选取的测试方式,在组合模块时进行测试。

 

17.有效性测试及其手段:

有效性测试的目标是发现软件实现的功能与需求规格说明书不一致的错误,有效性测试通常采用黑盒测试技术。



关注新疆自考网微信公众号

其他人还看了:
免责声明

《新疆自考网》免责声明:

1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。

2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。联系邮箱:812379481@qq.com。

新疆自考-便捷服务

2019年自考软件工程章节复习指导汇总

编辑:新疆自考网  时间:2019-07-25 14:04:58  阅读(
立即购买

《自考视频课程》名师讲解,轻松易懂,助您轻松上岸!低至199元/科!

《软件工程》是计算机应用专业(本科)非常重要的一门专业课,该课程包括笔试和试验两部分,并且也是课程设计的科目之一。学习 《软件工程》,考生不仅需要掌握至少一门程序设计语言,还需要对数据结构、数据库、操作系统等课程有一定的了解,可以说综合性很强。

从2002年起,《软件工程》的教材改由新疆大学出版,相应的考试命题工作,也改由新疆大学负责。

为了广大考生能更好的学习《软件工程》,我总结了全书的基础知识点、历年考试题型、试验题目于下,希望可以帮助大家完成《软件工程》的学习。

学习《软件工程》必备书籍:

1.教材,《软件工程》(黑皮),新疆大学出版,2002年,王立福等

2辅导,《计算机上机实验考试应试指导》(蓝皮),新疆大学出版,2003年,孙家肃

《软件工程》笔试分为理论部分和设计部分,比例大致相当,在下面的复习大纲中将随即提到,不再细分。另外,实验部分也会在文中提及,希望读者注意。

 

第一章 软件工程概论

1. 软件工程的目的:

倡导以工程的原理、原则和方法进行软件开发,以解决当时出现的软件危机。

2. 软件危机:

在计算机软件开发和维护过程中所遇到的一系列问题。

3. 软件及组成:

计算机系统中的程序和文档称为软件,程序是计算机任务的处理对象和处理规则的描述,文档是为了理解程序所需的阐述性资料。

4. 软件工程定义:

软件工程是一类求解软件的工程,它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量、降低成本的目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。软件工程是一门指导计算机软件开发和维护的工程学科。

5. 软件工程框架及其内容:

目标、活动和原则。软件工程的目标为,生产具有正确性、可用性以及开销合宜的产品。软件工程活动定义为,生产一个最终满足需求且达到工程目标的软件产品所需要的步骤,主要包括需求、设计、实现、确认以及支持等活动。软件工程设计原则为,选取适宜的开发模型,采用合适的设计方法,提供高质量的工程支持,重视开发过程的管理。(参考教材教材第2页图1.1,更有利于记忆)

6. 软件工程研究的内容:

软件开发模型、软件开发方法、软件过程、软件工具、软件开发环境、计算机辅助软件工程(CASE)、软件经济学等。

7. 软件开发方法学定义:

是一种已定义好的技术集和符号表示习惯,来组织软件开发的过程,一般表示为一系列步骤,包括结构化方法、面向对象方法、Jackson方法等等。
 

第二章 软件开发模型

1. 软件开发模型定义:

是软件开发全部过程、活动和任务的结构框架。

 

2. 瀑布模型内容及特点:

瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的软干阶段工作,是一种线性模型。各阶段活动为,提出系统需求、提出软件需求、需求分析、设计、编码、测试和运行。每个开发阶段具有以下特征,从上一阶段接受本阶段工作的对象作为输入,对上述输入实施本阶段的活动,给出本阶段的工作成果作为输出传入下一阶段,对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段工作,否则返回前一阶段甚至更前阶段。瀑布模型最为突出的缺点是该模型缺乏灵活性。

 

3. 演化模型内容及特点:

演化模型主要针对事先不能完整定义需求的软件开发,其开发过程一般是首先开发核心系统,当核心系统投入运行后,软件开发人员根据用户的反馈,实施开发的迭代过程,每一迭代过 程均由需求、设计、编码、测试、集成等阶段组成,直到软件开发结束。演化模型在一定程度上减少了软件开发活动的盲目性。

 

4. 螺旋模型内容及特点:

它是在瀑布模型和演化模型的基础上,加入两者所忽略的风险分析所建立的一种软件开发模型。沿螺旋模型顺时针方向,依次表达了四个方面的活动,制定

计划、风险分析、实施工程、客户评估。

 

5. 喷泉模型内容及特点:

它体现了软件创建所固有的迭代和无间隙特征,喷泉模型主要用于支持面向对象开发过程。

 

6. 增量模型内容:

在设计了软件系统整体体系结构之后,首先完整的开发系统的一个初始子集,继之,根据这一子集,建造一个更加精细的版本,如此不断的进行系统的增量开发。

 

7. 瀑布模型、演化模型、螺旋模型之间的联系:相同点是这三个模型都分为多个阶段,而瀑布模型一次完成软件,演化模型分为多次完成,每次迭代完成软件的一个部分,螺旋模型也分为多次完成,每次完成软件的一个新原型,并考虑风险分析。

 

8. 演化模型和增量模型之间的区别

演化模型首先开发核心系统,每次迭代为系统增加一个子集,整个系统是增量开发和增量提交,增量模型首先完整的开发系统的一个初始子集,然后不断的建造更精细的版本。
 

第三章 结构化设计

1. 软件设计阶段的主要任务、方法、阶段:

需求分析阶段的主要任务是确定系统必须“做什么”,形成软件的需求规格说明书,软件设计阶段的主要任务是确定系统“怎么做”,从软件需求规格说明书出发,形 成软件的具体设计方案,软件设计可以采用多种方法,如结构化设计方法、面向数据结构的设计方法、面向对象的设计方法等,结构化软件设计可以分为总体设计和详细设计两个阶段。

 

2. 总体设计阶段的主要任务及其内容:

总体设计阶段的主要任务是把系统的功能需求分配给软件结构,形成软件的模块结构图(MSD),在结构图中矩形表示功能单元,称为“模块”,连接上下层模块的线段表示它们之间的调用关系,在总体设计阶段,每个模块还处于黑盒子级,模块通过外部特征标识,名字、输入、输出。

 

3. 总体设计的表示形式及其内容(层次图、HIPO图、结构图):

层次图是软件总体设计阶段最常使用的表示形式之一,用来描绘软件的层次结构,图中的每个方框代表一个模块,方框间的连线表示模块的调用关系,层次图很适合于在自顶向下设计软件的过程中使用;

HIPO图是由美国IBM公司发明的“层次图+输入/处理/输出图”的英文缩写,HIPO图实际上由H图和IPO图两部分组成,H图就是上面提到的层次图,为了能使HIPO图具有可跟踪性,在H图里除了最顶层的方框之外,每个方框都加了编号;

结构图和层次图类似,图中每个方框代表一个模块,方框之间的箭头(或直线)表示模块的调用关系,在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息,尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。

 

4. 模块及其组成:

模块是执行一个特殊任务或实现一个特殊的抽象数据类型的一组例程和数据结构,模块由两部分组成,接口和实现模块功能的执行机制。

 

5. 面向数据流的设计方法(综合应用):

面向数据流的设计方法把数据流图映射成为软件结构,数据流图的类型决定了映射的方法,数据流图可以分为变换型数据流图和事务型数据流图,具有较明显的输入、变换(或称主加工)和输出界面的数据流图称为变换型数据流图,数据沿输入通路到达一个处理模块,这个处理模块根据输入数据的类型在若干动作序列中选出一个来执行,这类数据流图称为事务型数据流图,并且称这个模块为事务中心,它完成如下任务,接收输入数据、分析数据并确定数据类型、根据数据类型选取一条活动通路。

 

6. 评价软件设计质量的主要准则(模块化、抽象、耦合、内聚)及详细内容:

模块化是好的软件设计的一个基本准则;

抽象就是抽出事务的本质特性而暂时不考虑它们的细节,模块是按照不同的抽象级别安排的,高层抽象模块向读者隐藏了功能实现的细节,这就是信息隐蔽,模块之间相互隐藏自身的实现细节对一个好的设计来说是至关重要的;

耦合是对不同模块之间相互依赖程度的度量,紧密耦合是指两个模块之间存在着很强的依赖关系,松散耦合是指两个模块之间存在一些依赖关系,但他们之间的连接比较弱,无耦合是指模块之间根本没有任何连接;

耦合的强度依赖于以下四个因素,一个模块对另一个模块的引用,一个模块向另一个模块传递的数据量,一个模块施加到另一个模块的控制的数量,模块之间接口的复杂程度;

从强到弱的几种常见的耦合类型,内容耦合,一个模块直接修改或操作另一个模块的数据;公共耦合,两个以上的模块共同引用一个全局数据项;控制耦合,一个模块在界面上传递一个信号控制另一个模块,接收信号的模块的动作根据信号值进行调整,称为控制耦合;标记耦合,若两个模块至少有一个通过界面传递的公共参数包含内部结构;数据耦合,模块间通过参数传递基本类型的数据,数据耦合是最简单的耦合形式,系统中至少必须存在这种类型的耦合;

内聚度量的是一个模块内部各成分之间相互关联的强度,如果一个模块的所有成分都直接参与并且对于完成同一功能来说都是最基本的,则该模块是高内聚的;

 

从低到高的几种常见的内聚类型,偶然内聚,一个模块的各个成分之间毫无关系;逻辑内聚,几个逻辑上相关的功能被放在同一模块中;时间内聚,一个模块完成的功能必须在同一时间内执行,但这些功能只是因为时间因素关联在一起;过程内聚,一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行;通信内聚,一个模块的所有成分都操作同一数据集或生成同一数据集;顺序内聚,一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个的成分;功能内聚,最理想的内聚是功能内聚,模块的所有成分对于完成单一的功能都是基本的;

内聚和耦合是密切相关的,在进行软件设计时,应力争做到强内聚、弱耦合。

 

7. 结构化设计的启发式规则:

改进软件结构提高模块独立性,模块规模应该适中,深度、宽度、扇入和扇出应适中,模块的作用域应该在控制域之内,力争降低模块接口的复杂性,模块功能应该可以预测;

模块的作用域定义为受该模块内一个判定影响的所有模块的集合,模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。

 

8. 结构化分析与结构化设计的区别:

结构化分析得到数据流图、数据字典等,属于逻辑模型,结构化设计得到模块结构图,属于程序模型。

 

9. 详细设计阶段的目标、表现、内容:

详细设计阶段的根本目标是确定怎样具体的实现所要求的系统,详细设计以总体设计阶段的工作为基础,但又不同于总体设计,主要表现在,在总体设计阶段,数据项和数据结构以比较抽象的方式描述,详细设计要提供关于算法的更多细节;

详细设计的模块包含实现对应的总体设计的模块所需要的处理逻辑,主要有,详细的算法,数据表示和数据结构,实施的功能和使用的数据之间的关系。

 

10.结构化程序的三种基本结构,结构化设计的目标:

结构化程序设计技术采用自顶向下逐步求精的设计方法和单入口单出口的控制结构,并且只包含顺序、选择和循环三种结构,结构化程序设计的目标之一是使程序的控制流程线性化,即程序的动态执行顺序符合静态书写结构,结构化程序设计的观点是要求设计好结构的程序。

 

11.详细设计的任务,详细设计的工具及其内容特点:

详细设计的任务是给出软件模块结构中各个模块的内部过程描述,也就是模块内部的算法设计,详细设计的工具可以分为图形、表格、语言三种,包括程序流程图、盒图(N-S图)、PAD图、类程序设计语言(PDL);

程序流程图中使用的主要符号包括顺序、选择、循环结构,它的主要缺点如下,程序流程图本质上不是逐步求精的好工具,它诱使程序员过早的考虑程序的控制流程,而不去考虑程序的全局结构,程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制,程序流程图不易表示数据结构;

PAD是问题分析图的英文缩写,它用二维树形结构的图表示程序的控制流,PAD图的主要优点如下,使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序,PAD图所描述的程序结构十分清晰,用PAD图表现程序逻辑,易读、易懂、易记,很容易将PAD图转换成高级语言源程序,既可用于表示程序逻辑,也可用于描述数据结构,PAD图的符号支持自顶向下逐步求精的使用,PAD图是面向高级程序设计语言的;

类程序设计语言也称为伪码,它是用正文形式表示数据结构和处理过程的设计工具,PDL具有以下特点,关键字的固定语法,提供了结构化控制结构、数据说明和模块化的手段,自然语言的自由语法,用于描述处理过程和判定条件,数据说明的手段,既包括简单的数据结构,又包括复杂的数据结构,模块定义和调用的技术,提供各种 接口描述模式;

PDL作为一种设计工具有如下一些优点,可以作为注释直接插在源程序中间,可以使用普通的正文编辑程序或文字处理系统,很方面的完成PDL的书写和编辑工作,已经有自动处理程序存在,而且可以自动由PDL生成程序代码,PDL的缺点是不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表或判定树清晰简单。

本章设计题为DFD到模块结构图的转换和详细设计工具的具体应用,为笔试和试验的必考题型,非常重要,请考生参考辅导第256页(1)~(7)题,务必每一种题型都熟练掌握。



第四章 面向对象方法

1.基本概念:

(1)对象 在系统分析和系统构造中,对象是对客观世界事务的一种抽象,是由数据(属性)及其上操作(行为)组成的封装体。

(2)类 是具有相同结构、行为和关系的一组对 象的描述。

(3)属性 每一对象的属性是一些有着确定值的、用于描述对象状态信息的数据。

(4)服务 为了完成某一任务,一个对象所提供的、并体现其责任的操作。

(5)消息 一个对象为实现其责任而与其他对象的通信,在面向对象方法中,对象之间只能通过消息进行通信。

(6)继承 表达类之间相似性的一种机制,即在已有的类的基础之上增量构造新的类,前者称为父类(或超类),后者称为子类,如果子类只从一个父类继承,则称为单继承,如果子类从一个以上父类继承,则称为多继承。

(7)操作 是类的实例被要求执行的服务。

(8)关联 把一组具有相同结构特性、行为特征和语义的链的描述称为关联。

(9)链 是对象引用的元组(列表)。

(10)依赖 一个依赖规约了两个模型元素(或两个模型元素集合)之间的一种语义关系。

(11)状态 一个状态是在对象的生命期内的一个条件,或在对象满足某个条件,进行某个动作或等待某个事件的期间内的一个交互。

(12)事件 指可以引发状态转换的所发生的事情。

 

2.对象的特点:

自治性,对象具有一定的独立计算能力,封闭性,对象具有信息隐蔽的能力,通信性,对象具有与其他对象通信的能力。

 

3.面向对象方法同结构化方法的比较:

结构化方法强调过程抽象和模块化,将现实世界映射为数据流和加工,加工之间通过数据流进行通信,数据作为被动的实体被主动地操作所加工,是以过程(或操作)为中心来构造系统和设计程序的;

面向对象方法把世界看成是独立对象的集合,对象将数据和操作封装在一起,提供有限的接口,其内部的实现细节、数据结构及对它们的操作是外部不可见的,对象之间通过消息相互通信,面向对象方法具有的继承性和封装性支持软件复用,并易于扩充,能较好的适应复杂大系统不断发展和变化的要求。

 

4.Coad-Yourdon方法:

该方法认为,人类在认识和理解现实世界的过程中,普遍运用着下面三个构造法则,区分对象及其属性,区分整体对象及其组成部分,不同对象类的形成及区分。

 

5.面向对象方法分析阶段的五个主要活动及其内容:

标识类及对象、标识结构、标识主体、定义属性及实例连接、定义服务及消息连接;

两层矩形符号表示类及对象,内层矩形表示类,分为三部分,类名、属性名、服务名,外层矩形表示该类的对象;

标识的结构有两种,一般/特殊结构和整体/部分结构;

精炼主题可以从问题域和接口复杂性两方面入手;

可以从四方面考虑标识属性,原子概念,规范化,标识机制,保持一个可导出的属性。

 

6.面向对象设计(OOD):

OOD分为四部分,问题域部分,保持系统总体结构的稳定性,人机交互部分,任务管理部分,简化总体设计和编码,数据管理部分,包括数据存放方法的设计和相应服务的设计。

 

7.三种面向对象的设计模型(OSA模型):

对象关系模型、对象行为模型、对象相互作用模型。

 

8.面向对象中特殊的关系集合:

一般关系(is a),一个对象类中的每一对象是另一对象类的一个对象,聚合关系(is part of),一个对象,称之为聚合,是由一些称之为成分的对象构成的,联合关系(is member of),该关系用于生成一个由对象构成的集合,并把该集合看作是一个对象,is member of关系总是二元关系;

成员类

是联合的子集,对象是成员类的子集,对象是联合子集的子集。

 

9.对象关系模型图(ORM),对象行为模型,对象交互模型:

对了构造ORM图,OSA给出了五个基本概念,对象、关系、对象类、关系集合、约束为了构造对象行为模型,OSA集中于三个基本概念,状态、触发、动作,OSA借助于状态网,描述对象间 的同步交互。

 

10.统一软件开发过程(USDP)及其阶段:

USDP是以用况为驱动的、以体系结构为中心的、迭代、增量的过程,分为初始、细化、构造、移交四个阶段。

本章设计题为标识类、对象,及其属性与操作等,一般与DFD建模题在一起,考参考辅导

第264页建模题的第2问,另外,对象标识在试验考试中也会出现,希望考生多加练习,重点掌握。

本章的理论比较灵活,需理解的记忆,考试的时候要做到举一反三,不能只局限于文字定义。
 

第五章 软件测试

1.两种常用的测试技术:

软件产品与其他产品不同,其最大的成本是检验软件的错误、修正错误的成本,以及为了发现这些错误所进行的设计测试程序和运行测试程序的成本,两种常用的测试技术为,基于“白盒” 的路径测试技术和基于“黑盒”的事务处理流程测试技术,白盒测试技术依据的是程序的逻辑结构,黑盒测试技术依据的是软件行为的描述。

 

2.软件测试及其目标:

软件测试可以定义为,按照规定规程,发现软件错误的过程,软件测试有两个目标,一为预防错误,二为发现错误。

 

3.软件测试和软件调试的区别:

测试从一个侧面证明程序员的“失败”,而调试是为了证明程序员的正确,测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序员是否通过测试,调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的,测试是有计划的,并要进行测试设计,而调试是不受时间约束的,测试是一个发现错误、改正错误、重新测试的过程,而调试是一个推理过程,测试的执行是有规程的,而调试的执行往往要求程序员进行必要推理以至直觉的“飞跃”,测试经常是由独立的测试组在不了解软件的条件下完成的,而调试必须由了解详细设计的程序员完成,大多数测试的执行和设计可由工具支持,而调试时,程序员能利用的工具主要是调试器。

 

4.测试用例:

指的是为了发现程序中的故障而专门设计的一组或多组数据。

 

5.测试过程模型:

环境模型、对象模型、错误模型。

 

6.软件错误类别:

结构错误、数据错误、编程错误、接口错误。

 

7.控制流程图及组成:

控制流程图是程序控制结构的图形表示,其基本元素是过程块、节点、判定,控制流程图与程序流程图之间的差异是在控制流程图中,不显示过程块的细节,而在程序流程图中,着重于过程属性的描述。

 

8.路径测试的基本策略:

路径测试技术的三种基本策略为,路径测试(PX),执行所有可能的穿过程序的控制流程路径,语句测试(P1),至少执行程序中所有语句一次,100%语句覆盖率(C1)的逻辑覆盖程序最弱,分支测试(P2),至少执行程序中每一分支一次(至少每个判定都获得一次“真”和“假”),100%分支覆盖率(C2)比100%语句覆盖在逻辑上要强,条件组合测试,在逻辑上比C1,C2更强。

 

9.路径选取的一般规则:

选取最简单的、具有一定功能含义的入口/出口路径,对已选的路径进行演化,选取无循环的路径、短路径、简单路径,选取没有明显功能含义的路径。

 

10.路径测试的目标:

执行足够的测试,以确保最小的C1+C2覆盖率。

 

11.事务处理流程图与控制流程图的区别与联系:

事务处理流程图与控制流程图的类同点是使用了相同的概念成分,不同之处是事务流程图是一种数据流程图,链支和过程块的定义有所差异,另外事务流程图的判定节点可能是一个复杂的过程,从而事务流程图中的判定只能是“抽象”,第三点不同之处是事务流程图中存在“中断”的作用,中断可以把一个过程等价的变换为具有繁多出口的链支,对此也要予以抽象。

 

12.事务处理流程测试的步骤:

获得事务处理流程图,浏览、复审,用例设计。

 

13.事务处理流程测试要解决的问题:

路径选取、激活、测试设备、测试数据库。

 

14.合理的测试序列:

单元测试、集成测试、有效性测试、系统测试。

 

15.单元测试及其内容:

单元测试主要检验软件设计的最小单位—模块,单元测试一般采用白盒测试技术,在单元测试期间,通常考虑模块的四个特征,模块接口、局部数据结构、“重要的”执行路径、错误执行路径,单元测试步骤分四部分,首先测试穿过模块接口的数据流,继之进行数据结构的测试,还要进行执行路径的选择测试,边界测试是单元测试中的最后工作,也是最重要的工作。

 

16.集成测试及其内容:

集成测试是软件组装的一个系统化技术,其目标是发现与接口有关的 错误,集成测试是以主控模块为测试驱动模块,设计承接模块替代其直接的下属模块,依据所选取的测试方式,在组合模块时进行测试。

 

17.有效性测试及其手段:

有效性测试的目标是发现软件实现的功能与需求规格说明书不一致的错误,有效性测试通常采用黑盒测试技术。
 

第六章 软件测试

1.两种常用的测试技术:

软件产品与其他产品不同,其最大的成本是检验软件的错误、修正错误的成本,以及为了发现这些错误所进行的设计测试程序和运行测试程序的成本,两种常用的测试技术为,基于“白盒”的路径 测试技术和基于“黑盒”的事务处理流程测试技术,白盒测试技术依据的是程序的逻辑结构,黑盒测试技术依据的是软件行为的描述。

 

2.软件测试及其目标:

软件测试可以定义为,按照规定规程,发现软件错误的过程,软件测试有两个目标,一为预防错误,二为发现错误。

 

3.软件测试和软件调试的区别:

测试从一个侧面证明程序员的“失败”,而调试是为了证明程序员的正确,测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序员是否通过测试,调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的,测试是有计划的,并要进行测试设计,而调试是不受时间约束的,测试是一个发现错误、改正错误、重新测试的过程,而调试是一个推理过程,测试的执行是有规程的,而调试的执行往往要求程序员进行必要推理以至直觉的“飞跃”,测试经常是由独立的测试组在不了解软件的条件下完成的,而调试必须由了解详细设计的程序员完成,大多数测试的执行和设计可由工具支持,而调试时,程序员能利用的工具主要是调试器。

 

4.测试用例:

指的是为了发现程序中的故障而专门设计的一组或多组数据。

 

5.测试过程模型:

环境模型、对象模型、错误模型。

 

6.软件错误类别:

结构错误、数据错误、编程错误、接口错误。

 

7.控制流程图及组成:

控制流程图是程序控制结构的图形表示,其基本元素是过程块、节点、判定,控制流程图与程序流程图之间的差异是在控制流程图中,不显示过程块的细节,而在程序流程图中,着重于过程属性的描述。

 

8.路径测试的基本策略:

路径测试技术的三种基本策略为,路径测试(PX),执行所有可能的穿过程序的控制流程路径,语句测试(P1),至少执行程序中所有语句一次,100%语句覆盖率(C1)的逻辑覆盖程序最弱,分支测试(P2),至少执行程序中每一分支一次(至少每个判定都获得一次“真”和“假”),100%分支覆盖率(C2)比100%语句覆盖在逻辑上要强,条件组合测试,在逻辑上比C1,C2更强。

 

9.路径选取的一般规则:

选取最简单的、具有一定功能含义的入口/出口路径,对已选的路径进行演化,选取无循环的路径、短路径、简单路径,选取没有明显功能含义的路径。

 

10.路径测试的目标:

执行足够的测试,以确保最小的C1+C2覆盖率。

 

11.事务处理流程图与控制流程图的区别与联系:

事务处理流程图与控制流程图的类同点是使用了相同的概念成分,不同之处是事务流程图是一种数据流程图,链支和过程块的定义有所差异,另外事务流程图的判定节点可能是一个复杂的过程,从而事务流程图中的判定只能是“抽象”,第三点不同之处是事务流程图中存在“中断”的作用,中断可以把一个过程等价的变换为具有繁多出口的链支,对此也要予以抽象。

 

12.事务处理流程测试的步骤:

获得事务处理流程图,浏览、复审,用例设计。

 

13.事务处理流程测试要解决的问题:

路径选取、激活、测试设备、测试数据库。

 

14.合理的测试序列:

单元测试、集成测试、有效性测试、系统测试。

 

15.单元测试及其内容:

单元测试主要检验软件设计的最小单位—模块,单元测试一般采用白盒测试技术,在单元测试期间,通常考虑模块的四个特征,模块接口、局部数据结构、“重要的”执行路径、错误执行路径,单元测试步骤分四部分,首先测试穿过模块接口的数据流,继之进行数据结构的测试,还要进行执行路径的选择测试,边界测试是单元测试中的最后工作,也是最重要的工作。

 

16.集成测试及其内容:

集成测试是软件组装的一个系统化技术,其目标是发现与接口有关的错误, 集成测试是以主控模块为测试驱动模块,设计承接模块替代其直接的下属模块,依据所选取的测试方式,在组合模块时进行测试。

 

17.有效性测试及其手段:

有效性测试的目标是发现软件实现的功能与需求规格说明书不一致的错误,有效性测试通常采用黑盒测试技术。



关注新疆自考网微信公众号

《新疆自考网》免责声明:

1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。

2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。联系邮箱:812379481@qq.com。