通常使用层次图描绘软件的层次结构。在图4.3中已经非正式地使用了层次图。在层次图中一个矩形框代表一个模块,框间的连线表示调用关系(位于上方的矩形框所代表的模块调用位于下方的矩形框所代表的模块)。图4.4是层次图的一个例子,最顶层的矩形框代表正文加工系统的主控模块,它调用下层模块以完成正文加工的全部功能;第二层的每个模块控制完成正文加工的一个主要功能,例如,“编辑”模块通过调用它的下属模块,可以完成六种编辑功能中的任何一种。在自顶向下逐步求精设计软件的过程中,使用层次图很方便。
HIPO图是美国IBM公司发明的“层次图加输人/处理/输出图”的英文缩写。为了使HIPO图具有可追踪性,在H图(即层次图)里除了顶层的方框之外,每个方框都加了编号。编号方法与本书第3章3.5.2节中介绍的数据流图的编号方法相同,例如,把图4.4加了编号之后得到图4.5。
和H图中的每个方框相对应,应该有一张IP0图描绘这个方框代表的模块的处理过程。
IP0图使用的基本符号既少又简单,因此很容易学会使用这种图形工具。它的基本形式是在左边的框中列出有关的输入数据,在中间的框内列出主要的处理,在右边的框内列出产生的输出数据。处理框中列出处理的次序暗示了执行的顺序,但是用这些基本符号还不足以精确描述执行处理的详细情况。在哟图中还用类似向量符号的粗大箭头清楚地指出数据通信的情况。图4.6是一个主文件更新的例子,通过这个例子不难了解肿图的用法。
本书建议使用一种改进的IPO图(也称为IPO表),这种图中包含某些附加的信息,在软件设计过程中将比原始的IPO图更有用。如图4.7所示,改进的IPO图中包含的附加信息主要有系统名称、图的作者,完成的}|期,本图描述的模块的名字,模块在层次图中的编号,调用本模块的模块清单,本模块调用的模块的清单、注释以及本模块使用的局部数据元素等。