|
图3.5 程序的层次结构图示例
|
1、程序结构的深度
程序结构的层次数称为结构的深度。结构的深度在一定意义上反映了程序结构的规模和复杂程度。
2、程序结构的宽度
层次结构中同一层模块的最大模块个数称为结构的宽度。
3、模块的扇入和扇出
扇出表示一个模块直接调用(或控制)的其它模块数目。扇入则定义为调用(或控制)一个给定模块的模块个数。多扇出意味着需要控制和协调许多下属模块。而多扇入的模块通常是公用模块。
程序结构是软件的过程表示,但并未表明软件的某些过程性特征。比如,进程序列、事件�M决策的顺序或其它的软件动态特性。
4、结构划分
程序结构可以按水平方向或垂直方向进行划分。
水平划分按主要的程序功能来定义模块结构的各个分支。顶层模块是控制模块,用来协调程序各个功能之间的通信和运行。其下级模块的最简单的水平划分方法是建立三个分支:输入、处理(数据变换)和输出。
这种划分的优点是:由于主要的功能相互分离,易于修改、易于扩充,且没有副作用。缺点是:需要通过模块接口传递更多的数据,使程序流的整体控制复杂化。
垂直划分也叫做因子划分。主要用在程序的体系结构中,且工作自顶向下逐层分布:顶层模块执行控制功能,少做实际处理工作,而低层模块是实际输入、计算和输出的具体执行者。
这种划分的优点是:对低层模块的修改不太可能引起副作用的传播,而恰恰对计算机程序的修改常常发生在低层的输入、计算或输出模块中。因此,程序的整体控制结构不太可能被修改,便于将来的维护。
|
|