高山仰止,景行行止。虽不能至,心向往之。
文章目录
第五章 总体设计
- 总体设计阶段: 主要由系统设计阶段、结构设计阶段组成。
模块独立
- 模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。
模块独立重要的原因:
1、有效的模块化的软件易于开发出来
2、独立的模块比较容易测试与维护
- 模块独立的标准可以由内聚和耦合两个定性标准度量
耦合
- 耦合是对一个软件结构不同模块之间互连程度的度量
- 数据耦合是低耦合
- 内容耦合是高耦合
内聚
- 内聚标志着一个模块内各个元素彼此结合的紧密程度,他是信隐藏和局部话概念的自然扩展。
描绘软件结构的图形工具
- 层次图和HIPO图以及结构图
面向数据流的设计方法 (重点)
- SA 结构化分析方法
- SD 结构化设计方法
[SA System Analysis,系统分析师]
[SD Systems Designer, 系统设计师]
-
面向数据流的设计方法把信息映射成软件结构,信息流类型决定了映射的方法。
-
信息流有以下两种类型:变换流、事务流。
-
注意:变换分析以及事务分析
数据流图 -> 映图
第六章 详细设计
结构程序设计
-
顺序、选择、循环
-
结构程序设计: 程序的代码块仅仅通过顺序、选择、循环这三种基本结构进行连接,并且每个代码块只有一个入口和一个出口(尽可能少使用GO TO 语句的程序设计方法)。
-
扩展的结构程序设计:如果再允许 DO_CASE ; DO_UNTIL
-
修正的结构程序设计 : LEAVE 或 BREAK 结构
过程设计的工具(重要)
- 过程设计的工具用于描述程序处理过程的工具,可以分为图形,表格以及语言。
程序流程图
盒图(N-S)(重点)
程序复杂度的定量度量
McCabe方法
-
程序的环形复杂度,根据程序程序控制流的复杂程度定量度量程序的复杂程度。
-
数据流图的箭头代表数据流
-
程序流程图的箭头代表控制流
计算环形复杂度的方法
(1)流图中线性无关的区域数等于环形复杂度
(2)V(G) = E - N + 2
(E、N分别代表 边数以及节点数)
(3)V(G) = P+1
(P 代表判定结点的个数)
关于 V(G) = M - N + 2
中,MN 分别是什么记忆方法 跳转链接
第七章 实现
- 通常把
编码
和测试
统称为实现
软件测试基础
测试方法
黑盒测试 (功能测试)
白盒测试 (结构测试)
测试步骤
- 1、模块测试(单元测试) 发现编码以及详细设计中的错误
- 2、子系统测试 着重测试模块的接口
- 3、系统测试
不论是子系统测试还是系统测试,都兼有检测和组装的两重含义,通常称为集成测试。
- 4、验收测试 (确认测试)
- 5、平行运行
白盒测试 (重要)
逻辑覆盖
- 语句覆盖 (最弱覆盖)
- 判定覆盖
- 条件覆盖
- 判定/条件覆盖
- 条件组合覆盖
- 点覆盖
- 边覆盖
- 路径覆盖(最强覆盖)
基本路径测试
典型例题 :
P166
(1) 根据过程设计结果画出相应的流图
- ②③ 体现了 将复合条件分解为若干的简单条件
- value[i] <> -999 体现为是否为有效值
(2) 计算流图的环形复杂度
寻找方法 : - 分支结点回溯
- 至少包含一条未使用过的边、而不是全部
黑盒测试 (重要)
- 白盒测试在测试的早期阶段、黑盒测试在测试的后期
等价划分
- 把程序的输入域划分成若干数据类,从每一数据类选取少数有代表性数据做为测试用例。在各数据类中,各输入数据对揭露程序中的错误
等效。
划分等价类
①有效等价类:合理,有意义输入数据构成集合。
②无效等价类:不合理,无意义输入数据构成的集合。
尽可能多覆盖尚未覆盖的有效等价类、为防止冗余
礼貌之于人就犹如温暖之于蜡。