1
 软件工程
1.5.3.4 3.3.4 加工说明的描述工具

3.3.4 加工说明的描述工具

由于自然语言不够精确、简练,不适合编写加工说明。目前有许多适用加工说明的描述工具。下面介绍几种最常用的工具:结构化语言(Structured Language)、判定表(Decision Table)和判定树(Decision Tree)。

1.结构化语言

自然语言的优点是容易理解,但是不精确,可能有多义性。程序设计语言的优点是严格精确,但其语法规定太死板,使用不方便。结构化语言则是介于自然语言和程序设计语言之间的一种语言,是带有一定结构的自然语言。在我国,通常采用较易为用户和开发人员接受的结构化汉语。

在用结构化语言描述问题时只允许使用3种基本逻辑结构:顺序结构、选择结构和循环结构。配合这3种结构所使用的词汇主要有3类:陈述句中的动词;在数据字典中定义的名词;某些逻辑表达式中的保留字、运算符、关系符等。后面我们还会具体说明这3种语句的使用方式。

为了减少复杂性,便于人们理解,编写加工说明需要注意以下几点:

(1)避免结构复杂的长句;

(2)所用名词必须在数据字典中有定义;

(3)不要用意义相同的多种动词,用词应始终如一(例如,“修正”、“修改”、“更改”含义相同,一旦确定使用其中一个以后,就不要再用其余两个);

(4)为提高可读性,书写时可采用阶梯形格式;

(5)嵌套使用各种结构时,应避免嵌套层次过多而影响可读性。

2.判定表

对于具有多个互相联系的条件和可能产生多种结果的问题,用结构化语言描述显得不够直观和紧凑,这时可以用以清晰、简明为特征的判定表来描述。

判定表采用表格形式来表达逻辑判断问题,表格分成4部分:左上角为条件说明;左下角为行动说明;右上角为各种条件的组合说明;右下角为各条件组合下相应的行动。

下面举例说明如何使用判定表。

表3-1为使用判定表描述订货折扣政策问题。其中,C1~C3为条件,A1~A4为行动,1~8为不同条件的组合,Y表示条件满足,N表示条件不满足,X为该条件组合下的行动。例如,条件4表示:若交易额在5万元以上或最近3个月中有欠款且与本公司交易在20年以下,则可享受5%的折扣率。

判定表是根据条件组合进行判断的,上面表格中每个条件只存在“Y”和“N”两种情况,所以3个条件共有8种可能性。在实际使用中,有的条件组合可能是矛盾的,需要剔除,有的则可以合并。因此需在原始判定表的基础上进行整理和综合,才能得到简单明了且实用的判定表。同时,在整理过程中,还可能对用户的原有业务过程进行改进和提高。表3-2所示的是由表3-1合并得到的,其中“—”表示“Y”或“N”均可。

表3-1 判定有描述的折扣政策

img26

表3-2 合并整理后的判定表

img27

判定表的内容十分丰富,除了以上介绍的有限判定表(Limited Entry Table)外,根据表中条件取值的状态不同,还有扩展判定表(Extended Entry Table)和混合判定表(Mixed Entry Table)等,它们各有特色,若能合理选择和灵活运用,则可描述、处理更广泛、复杂的判断过程。详细的内容可参阅有关的书籍。

3.判定树

判定树是用于表示逻辑判断问题的一种图形工具。它用“树”来表达不同条件下的不同处理,比语言、表格的方式更为直观。判定树的左侧(称为树根)为加工名,中间是各种条件,所有的行动都列于最右侧。

表3-1所描述的折扣政策可以用如图3-12所示的判定树来进行描述。

img28

图3-12 判定树描述的折扣政策

4.几种表达工具的比较

以上介绍的3种用于描述加工说明的工具各自具有不同的优点和不足,它们之间的比较如表3-3所示。通过比较可以看出它们的适用范围。

(1)结构化语言最适用于具有判断或循环动作组合顺序的问题。

(2)判定表较适用于含有5~6个条件的复杂组合,条件组合过于庞大则将造成不便。

(3)判定树适用于行动在10~15之间的一般复杂程度的决策,必要时可将判定表上的规则转换成判定树,以便用户使用。

(4)判定表和判定树也可用于软件开发的其他阶段,并被广泛地应用于其他学科。

表3-3 几种表达工具的比较

img29