chap07 软件设计基础
1.信息隐藏、内聚度和耦合度(在七种级别里应该注意什么原则)的概念
1.信息隐藏
模块独立的概念
采用信息隐藏原理指导模块设计优点:
2.内聚度
模块内部各成分彼此结合的紧密程度。
内聚度按其高低程度可分为七级,内聚度越高越好。
低级内聚度
(1)偶然性内聚
模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散。
(2)逻辑性内聚
模块完成的诸任务逻辑上相关,如,一个模块产生所有与类型无关的输出。
(3)时间性内聚
模块包含的诸任务必须在同一时间段内执行,如一个初始化模块。
中级内聚度
(1)过程性内聚
模块具有过程性内聚度指,模块内成分彼此相关,并且必须按特定的次序执行;
(2)通信性内聚
模块中各成份都将对数据结构的同一区域进行操作,以达到通信的目的。
高级内聚度
(1)顺序性内聚
模块内的各处理成份均与同一功能相关,且这些处理必须顺序执行,则称顺序内聚。
(2)功能性内聚
模块内所有成分形成一个整体,完成单个功能。
设计软件时,应该能够识别内聚度的高低,并通过修改设计尽可能提高模块内聚度,从而获得较高的模块独立性.
3.耦合度
耦合度
软件结构中模块间关联程度的一种度量。
耦合度也分为七级:
(1)非直接耦合:两模块中任一个都不依赖对方能独立工作, 这类耦合度最低。
(2)数据耦合:两模块通过参数交换信息,信息仅限于数据。
(3)控制耦合:传递的信息含有控制信息。控制耦合通常会增加系统的复杂性,适当分解模块可望消除控制耦合。
(4)特征耦合:介于数据耦合与控制耦合之间
(5)外部耦合:当若干模块均与同一个外部环境关联,如,I/O处理使所有I/O模块与特定的设备、格式和通信协议相关联。
外部耦合尽管需要,但应限制在少数几个模块上。
(6)公共耦合:若干模块通过全局的数据环境相互作用, 全局数据环境中可能含有全局变量、公用区、内存公共复盖区、任何存储介质上的文件、物理设备等。
(7)内容耦合:一个模块使用另 一模块内部的数据或控制信息;一个模块直接转移到另一模块内部等等。
2.程序结构的相关术语(扇入、扇出、良好的程序结构)
模块的可见域指,该模块可直接或间接引用的一组模块;
模块的连通域指,模块可直接引用的模块。
3.详细设计的任务是什么?工具有哪些?
仅用“顺序”、“分枝”和“循环”三种基本的控制构件即能构造任何单入口单出口程序,这个结论奠定了结构程序设计的理论基础。
采用自顶向下逐步求精的设计方法和单入口单出口的控制构件。
4.软件设计中复审的目的是什么?
软件总体结构、 数据结构、
结构的界面、 模块过程细节。
软件结构能否满足需求?
结构的形态是否合理?
层次是否清晰?
模块的划分是否遵循模型化和信息隐藏的思想?
系统的人机界面,各模块的接口,以及出错处理是否恰当?模块的设计能否满足功能与性能要求?
选择的算法与数据结构是否合理,能否适应编程语言?
等等。
复审
正式复审
软件开发人员、用户代表和领域专家参加
采用答辩形式,与会者提前审阅了文档,设计人员在对设计方案详细说明后,答复与会者的问题并记下各种重要的评审意见。
非正式复审
同行切磋、不拘时间、不拘形式。采用 “走查”法,一 名设计人员到会,与同事逐行审阅文档,记录发现的问题。
chap10 软件测试
1.白盒测试和黑盒测试的基本概念及两者的区别
①软件的功能是否可操作;
②程序能否适当地接收输入数据并产生正确的输出结果或在可能的场景中事件驱动的效果是否尽如人意;
③能否保持外部信息(如数据文件)的完整性。
2.白盒测试及黑盒测试的方法有哪些?利用相关方法设计测试用例
逻辑驱动测试
语句覆盖
为使程序中每个语句至少执行一次,只需设计一个能通过路径ace的例子就可以了,例如选择输入数据为: A=2,B=0,X=3 就可达到“语句覆盖”标准
分支覆盖
① A=3,B=0,X=1 (沿路径acd执行);
② A=2,B=1,X=3(沿路径abe执行)
条件覆盖
例1的程序有四个条件:
A>1、 B=0、A=2、X>1
为了达到“条件覆盖”标准,需要执行足够的测试用例使得在a点有:
A>1、A≤1、B=0、B≠0
等各种结果出现,以及在b点有:
A=2、A≠2、X>1、X≤1
等各种结果出现。
现在只需设计以下两个测试用例就可满足这一标准:
① A=2,B=0,X=4 (沿路径ace执行);
② A=1,B=1,X=1 (沿路径abd执行)。
分支/条件覆盖
① A=2,B=0,X=4 (沿ace路)
② A=1,B=1,X=1 (沿abd路)
是满足这一标准的。
条件组合覆盖
再看例1的程序,我们需要选择适当的例子,使得下面 8种条件组合都能够出现:
1) A>1, B=0 2) A>1, B≠0
3) A≤1, B=0 4) A≤1, B≠0
5) A=2, X>1 6) A=2, X≤1
7) A≠2, X>1 8) A≠2, X≤1
5)、 6)、 7)、8)四种情况是第二个 IF语句的条件组合,而X的值在该语句之前是要经过计算的,所以还必须根据程序的逻辑推算出在程序的入口点X的输入值应是什么。
下面设计的四个例子可以使上述 8种条件组合至少出现一次:
① A=2,B=0,X=4
使 1)、5)两种情况出现;
② A=2,B=1,X=1
使 2)、6)两种情况出现;
③ A=1,B=0,X=2
使 3)、7)两种情况出现;
④ A=1,B=1,X=1
使 4)、8)两种情况出现。
路径测试
测试用例 | 通过路径 |
A=2、B=0、X=3 | ace |
A=1、B=0、X=1 | abd |
A=2、B=1、X=1 | abe |
A=3、B=0、X=1 | acd |