当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++ Builder教程

软件开发中的结构图

    Yourdon提出的结构图是进行软件结构设计的另一个有力工具。结构图和层次图类似,也是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。因为按照惯例总是图中位:rlL方的方框代表的模块调用下方的模块,即使不用箭头也不会产生二义性.为了简单起见,可以只用直线而不用箭头表示模块问的调用关系..
    在结构图中通常还用带注释的箭头表示模块调用过程中来叫传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。图4。8是结构图的一个例子。

 

    以上介绍的是结构图的基本符号,也就是最经常使用的符号。此外,还有一些附加的符号,可以表示模块的选择调用或循环调用。图4.9表示当模块M中某个判定为真时调用模块A,为假时调用模块B。图4.10表示模块M循环调用模块A、B和C。

 

 

    注意,层次图和结构图并不严格表示模块的调用次序。虽然多数人习惯于按调用次序从左到右画模块,但并没有这种规定,出于其他方面的考虑(例如为了减少交叉线),也完全可以不按这种次序画。此外,层次图和结构图并不指明什么时候调用下层模块。通常上层模块中除了调用下层模块的语句之外还有其他语句,究竟是先执行调用下层模块的语句还是先执行其他语句,在图中丝毫没有指明。事实上,层次图和结构图只表明一个模块调用哪些模块,至于模块内还有没有其他成分则完全没有表示。


    通常用层次图作为描绘软件结构的文档。结构图作为文档并不很合适,因为图上包含的信息太多有时反而降低了清晰程度。但是,利用IPO图或数据字典中的信息得到模块调用时传递的信息,从而由层次图导出结构图的过程,却可以作为检查设计正确性和评价模块独立性的好方法。传送的每个数据元素是否都是完成模块功能所必须的,反之,完成模块功能必须的每个数据元素是否都传送来了,所有数据元素是否都只和单一的功能有关?如果发现结构图上模块间的联系不容易解释,则应该考虑是否设计上有问题。

相关内容
赞助商链接