结构化分析工具之判定表
什么是判定表?
也称决策表,能表示输入条件的组合,以及与每一输入组合对应的动作组合。与因果图法相似判定表法主要侧重输入条件之间的逻辑关系。用于描述数据是如何被加工处理的。
判定表(Decision table)是一种表达逻辑判断的工具。是分析和表达多逻辑条件下执行不同操作的情况的工具。在一个程序中,如果输入输出比较多,输入之间和输出之间相互制约的条件较多,在这种情况下应用决策表很合适,它可以很清楚地表达它们之间的各种复杂关系。
决策表是把作为条件的所输入的各种组合值以及对应输出值都罗列出来而形成的表格。它能够将复杂的问题按照各种可能的情况全部列举出来,简明并可以避免遗漏。因此利用决策表能够设计除完整的测试用例集合。
判定表的组成
判定表通常有以下无个部分组成:
- 条件桩(Condition Stub):在左上部,列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
- 动作桩(Action Stub):在左下部,列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
- 条件项(Condition Entry):在右上部,列出针对它左列条件的取值。在所有可能情况下的真假值。
- 动作项(Action Entry):在右下部,列出在条件项的各种取值情况下应该采取的动作。
- 规则:一种条件取值组合与其对应的动作组合(即判定表中贯穿条件项和动作项的一列)构成判定表的一个规则。条件组合的数目就是规则的数目。
如图所示:
决策表的构造
- 确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2的n次方种规则。
- 列出所有的条件桩和动作桩。
- 填入条件项。
- 填入动作项。得到初始判定表。
- 简化.合并相似规则(相同动作)。
对于N个条件的决策表,相应有2^n规则(每个条件分别取真、假值),当n比较大时,决策表很庞大。实际使用决策表时,常常先将它简化。决策表的简化以合并相似规则为目标,即若表种有两条或两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件。
判断表的优缺点
优点:
缺点:
其缺点是判定表的建立过程较烦杂,且表达方式不如前两种简便。判定表在用于知识表达中,有许多其他方式所达不到的作用。
适用情况:
1、条件和动作、规则比较明确,容易转换成判定表的
不适用情况(以下情况不太好直接使用判定表,但经过一定变形后也可以用):
1、条件数量太多
2、条件的取值不止true和false,而是有多种,比如范围0-100等
3、条件之间有顺序关系的,当顺序变动会影响动作结果