软件工程导论复习重点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
29
模块
7.6 白盒测试技术
7.6 白盒测试技术 白盒法又称为逻辑覆盖法,其测试用例选择, 是按照不同覆盖标准确定的。

语 句 覆 盖 判 定 覆 盖 条 件 覆 盖 判 定 条 件 覆 盖 条 件 组 合 覆 盖

30
白盒法常用的覆盖标准 白盒法常用的覆盖标准
语句覆盖: 选择足够的测试用例, ① 语句覆盖: 选择足够的测试用例,使得程序中每个语 句至少都能被执行一次。 句至少都能被执行一次。 判定覆盖: 执行足够的测试用例, ② 判定覆盖: 执行足够的测试用例,使得程序中每个判 定至少都获得一次“ 值和“ 定至少都获得一次“真”值和“假”值。 条件覆盖:执行足够的测试用例, ③ 条件覆盖 : 执行足够的测试用例 , 使得判定中的每个 条件获得各种可能的结果。 条件获得各种可能的结果。 判定/ 条件覆盖: 执行足够的测试用例, ④ 判定 / 条件覆盖 : 执行足够的测试用例 , 使得判定中 每个条件取到各种可能的值, 每个条件取到各种可能的值,并使每个判定取到各种可能 的结果。 的结果。 条件组合覆盖: 执行足够的例子, ⑤ 条件组合覆盖: 执行足够的例子,使得每个判定中条 件的各种可能组合都至少出现一次。 件的各种可能组合都至少出现一次。
22
6.5 程序复杂程度的定量度量
6.5.1 McCabe方法 McCabe方法
McCabe方法根据程序控制流的复杂程度定量度量程 方法根据程序控制流的复杂程度定量度量程 序的复杂程度,这样度量出的结果称为程序的环形复杂 序的复杂程度, 度。 为了突出表示程序的控制流,人们通常使用流图 也称 为了突出表示程序的控制流,人们通常使用流图(也称 为程序图)。所谓流图实质上是“退化了的”程序流程图, 为程序图 。所谓流图实质上是“退化了的”程序流程图, 它仅仅描绘程序的控制流程, 它仅仅描绘程序的控制流程,完全不表现对数据的具体 操作以及分支或循环的具体条件。 操作以及分支或循环的具体条件。
PAD图 6.3.3 PAD图
使用PAD图提供的定义功能来逐步求精的例子 图6.6 使用 图提供的定义功能来逐步求精的例子
19
6.4 面向数据结构的设计方法
6.4 面向数据结构的设计方法
Jackson方法和 方法和Warnier方法是最著名的两个面 方法和 方法是最著名的两个面 向数据结构的设计方法
+或
+ 互斥
4
2.4 数据流图
举例: 举例:
5
订票系统
第3章 需求分析
1.需求分析的基本任务是什么?P46-P48 需求分析的基本任务是什么? 462.分析建模 2.分析建模
2.1什么是模型? 模型:就是为了理解事物而对事物做出的一种 什么是模型? 模型: 什么是模型 抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形 抽象,是对事物的一种无歧义的书面描述。通常, 符号和组织这些符号的规则组成。 符号和组织这些符号的规则组成。 2.2数据模型(E-R)、 功能模型(2.4节数据流图)、 行为模型 功能模型(2.4节数据流图 节数据流图)、 2.2数据模型( 数据模型 (状态转换图是行为模型的基础) 状态转换图是行为模型的基础) 行为模型的基础
7.2 软件测试基础
软件测试:为发现程序中的错误而执行程序的过程。 软件测试:为发现程序中的错误而执行程序的过程。 软件测试的准则(尽早和不断的测试、 软件测试的准则(尽早和不断的测试、彻底测试的不 可能、软件测试是有风险的行为、 可能、软件测试是有风险的行为、并非所有的软件错误 都能恢复、反向思维逻辑、由小到大的测试范围、避免 都能恢复、反向思维逻辑、由小到大的测试范围、 检查自己的代码、追溯至用户需求) 检查自己的代码、追溯至用户需求) 测试方法(黑盒测试和白盒测试) 测试方法(黑盒测试和白盒测试) 测试步骤(模块测试、子系统测试、系统测试、 测试步骤(模块测试、子系统测试、系统测试、验收 测试、平行运行) 测试、平行运行)
12
6.1 结构程序设计
6.1 结构程序设计
图6.1
3种基本的控制结构 种基本的控制结构
13
6.1 结构程序设计
其他常用的控制结构
图6.2 其他常用的控制结构
14
6.3.1 程序流程图
程序流程图是最早出现且使用较为广泛的算法表达工具 之一,能够有效地描述问题求解过程中的程序逻辑结构。程 序流程图中经常使用的基本符号如图6.3所示。
2
第2章 可行性研究
1.可行性研究的目的是什么?P25 2. 2.应从哪些方面研究可行性?P25 P25 3.如何画系统流程图?P27—P30 4.如何画数据流图?P30—P37 5.了解数据字典及成本效益分析。
3ห้องสมุดไป่ตู้
2.4 数据流图
2.4 数据流图(DFD) 数据流图(DFD)
数据流图( Diagram, DFD) 数据流图 ( Data Flow Diagram , DFD ) 是描述系统中数据流 程的图形工具,它标识了一个系统的逻辑输入和逻辑输出, 程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以 及把逻辑输入转换为逻辑输出所需的加工处理。 及把逻辑输入转换为逻辑输出所需的加工处理。
软件工程导论复习
1 软件工程学概述 2 可行性研究 3 需求分析 4 形式化说明技术 5 总体设计 6 详细设计 7 实现 8 维护 9 面向对象相关内容 10 软件项目管理
1
第1章 软件工程学概述
1.什么是软件危机?P1 什么是软件危机? 2.软件危机产生的原因有哪些?P3 软件危机产生的原因有哪些? 3.什么是软件工程?P5 什么是软件工程? 4.软件工程方法学包含哪些要素?P9 软件工程方法学包含哪些要素? 在软件过程中有哪些模型? 5.在软件过程中有哪些模型 ?他们各自的特点是 哪些? 15 P 哪些?P15—P22
20
Jackson图 6.4.1 Jackson图
(a) )
(b) ) (c) )
图6.8 三种基本结构在Jackson图中的表示符号 (a) 顺序结构;(b) 选择结构;(c);循环结构
21
6.5 程序复杂程度的定量度量
定量度量程序复杂程度的方法很有价值: 定量度量程序复杂程度的方法很有价值:把程序的 复杂程度乘以适当常数即可估算出软件中错误的数量以 复杂程度乘以适当常数即可估算出软件中错误的数量以 乘以适当常数即可估算出软件中错误的数量 及软件开发需要用的工作量,定量度量的结果可以用来 软件开发需要用的工作量, 比较两个不同的设计或两个不同算法的优劣; 比较两个不同的设计或两个不同算法的优劣;程序的定 量的复杂程度可以作为模块规模的精确限度。 量的复杂程度可以作为模块规模的精确限度。
图6.3 程序流程图中使用的符号
15
N6.3.2 N-S图
N-S图又称为盒图,它是为了保证结构化程序设计而由 Nassi和Shneiderman共同提出的一种图形工具。 在N-S图中,所有的程序结构均使用矩形框表示,它可以 清晰地表达结构中的嵌套及模块的层次关系。 N-S图中,基本控制结构的表示符号如图6.4所示。
23
6.5 程序复杂程度的定量度量
图6.16 把程序流程图影射成流图
24
6.5.1 计算环形复杂度的方法
环形复杂度定量度量程序的逻辑复杂度。有了描绘程 序控制流的流图之后,可以用下述3 序控制流的流图之后,可以用下述3种方法中的任何一种来 计算环形复杂度。 (1) 流图中的区域数等于环形复杂度。 (2) 流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的 流图G的环形复杂度V(G)=E-N+2,其中,E 条数,N 条数,N是结点数。 (3) 流图G的环形复杂度V(G)=P+1,其中,P是流图中判定 流图G的环形复杂度V(G)=P+1,其中,P 结点的数目。
8
5.2 设计原理
5.2.1 模块化
模块是程序对象有名字的集合。例如,过程、函数、子程 。 序、宏等,是构成软件系统结构的基本元素。 模块化就是将系统划分为若干个模块,每个模块完成一个 子功能。模块化的目的是将系统“分而治之”,模块化能够 。 降低问题的复杂性,使软件结构清晰,易阅读、易理解,易 于测试和调试,因而也有助于提高软件的可靠性。
25
第7章
1.编码
实现
2.测试技术P139—P169 3.调试的途径有哪些?P168 4.软件可靠性和可用性的基本概念P169
26
实现
编码和测试
编码:把软件设计结果翻译成用某种程序语言书写的 程序。 测试:软件测试的目的是在软件投入生产性运行前, 尽可能多的发现软件中的错误。
27
7.2 软件测试基础
11
第6章 详细设计
1.结构程序设计中有哪几种基本控制结构?P108 结构程序设计中有哪几种基本控制结构? 2.了解人机界面的设计。 了解人机界面的设计。 3.掌握过程设计的工具(程序流程图、盒图、PAD图, 掌握过程设计的工具(程序流程图、盒图、PAD图 判定树)P114—P119 判定树) 114— 4.面向数据结构的设计方法(Jackson图) 面向数据结构的设计方法(Jackson图 5.程序复杂度的定量度量(McCabe) 程序复杂度的定量度量(McCabe)
16
N6.3.2 N-S图
图6.4 盒图的基本符号
17
PAD图 6.3.3 PAD图
PAD中基本符号 图6.5 PAD中基本符号 (a)顺序结构;(b) 分支结构;(c) 多分支CASE结构; (a)顺序结构; 分支结构; 多分支CASE结构; 顺序结构 CASE结构 当型循环;(e);直到型循环; 语句标号;( ;(g (d) 当型循环;(e);直到型循环;(f) 语句标号;(g)定义 18
3.要从哪些方面验证软件需求?P60 要从哪些方面验证软件需求?
7
第5章 总体设计
1.在设计过程中,总体设计一般有哪两个主要 阶段组成?P81 2.什么模块化?模块独立性包含哪些内容?度 量准则是什么?P85—P89 3.启发规则有哪些?P90—P92 4.描绘软件结构的图形工具P92-P94 5.面向数据流的设计方法P95—P102
一、数据流图的图符 四种基本图形符号: 四种基本图形符号: 数据流 处 理
数据流名
还有一些辅助的图例: 还有一些辅助的图例:
箭头
A C T A T C B T C A C A B A C T
*
加工名 圆或椭圆 A B
*
+
B
B T C
数据存储 数据源点 或终点
单或双杠
文件名 实体名
+
+
B
T
+
矩形框
* 与
28
7.3.1 单元测试重点
7.3 单元测试
也称模块测试( 也称模块测试(module testing )
测试内容
模块接口测试 参数值的个数、 I/O 参数值的个数、类 次序、 型、次序、格式是否正 I/O文件属性 文件属性、 确,I/O文件属性、操作 是否正确等。 是否正确等。 边界条件测试 边界条件常包括循环边 最大最小值、 界,最大最小值、控制 流中等于、大于、 流中等于、大于、小于 的比较值等。 的比较值等。 错误处理测试 检查“ 检查“错误处 理程序” 理程序”本身 的错误。 的错误。 重要路径测试 重要路径通常是指完成 重要路径通常是指完成 模块功能的主要路径, 模块功能的主要路径, 一般是控制结构。 一般是控制结构。 局部数据结构测试 数据说明是否正确、 数据说明是否正确、 一致, 一致,变量及其初 值定义是否正确等。 值定义是否正确等。
5.2.5 模块独立性
模块独立性的度量标准是两个定性准则: 模块独立性的度量标准是两个定性准则: 耦合性 内聚性 用于描述模块之间联系的紧密程度。 用于描述模块之间联系的紧密程度。 用于描述模块内部联系的紧密程度。 用于描述模块内部联系的紧密程度。
模块独立性比较强的模块应该是具有高内聚性和的低耦 合度。 合度。
9
5.2.5 模块独立
模块化降低软件复杂度的简单证明 模块化降低软件复杂度的简单证明
5.2.5 模块独立
“模块”,又称“构件”,一般指用一个名字可调用的一段程 模块” 又称“构件” 模块 它一般具有如下三个基本属性 三个基本属性: 序。它一般具有如下三个基本属性: 即指该模块实现什么功能,做什么事情。必须注意: ⑴功能 即指该模块实现什么功能,做什么事情。必须注意:模块 功能,应是该模块本身的功能加上它所调用的所有子模块的功能。 功能,应是该模块本身的功能加上它所调用的所有子模块的功能。 即描述模块内部怎么做。 ⑵逻辑 即描述模块内部怎么做。 即该模块使用时的环境和条件。 ⑶状态 即该模块使用时的环境和条件。 所谓模块的独立性,是指软件系统中每个模块只涉及软件要 所谓模块的独立性, 求的具体的子功能, 和软件系统中其他模块的接口是简单的。 求的具体的子功能,而和软件系统中其他模块的接口是简单的。 即功能专一,模块之间无过多的相互作用的模块。 即功能专一,模块之间无过多的相互作用的模块。 这种类型的模块可以并行开发,模块独立性越强, 这种类型的模块可以并行开发,模块独立性越强,开发越容 独立性强的模块,还能减少错误的影响,使模块容易组合、 易。独立性强的模块,还能减少错误的影响,使模块容易组合、 修改及测试。 修改及测试。 10
相关文档
最新文档