上一篇总结是把之前的大知识连起来,但是为了更好的理解,我们还要对知识进行一定的细化。下面我们来说说程序的模块结构。 模块一词使用很广泛,通常对应于用一个名字就可以调用的一段程序语句。模块具有输入和输出、逻辑功能、运行程序、内部数据四种属性。
上一篇总结是把之前的大知识连起来,但是为了更好的理解,我们还要对知识进行一定的细化。下面我们来说说程序的模块结构。
模块一词使用很广泛,通常对应于用一个名字就可以调用的一段程序语句。模块具有输入和输出、逻辑功能、运行程序、内部数据四种属性。
我们可以通过模块结构图(MSC)来反映程序中模块之间分层次调用和联系模块,进行物理描述。
模块结构图中的主要成分有:
模块:用长方形表示
调用:用箭头表示(从调用模块指向被调用模块。分为循环调用和条件调用)喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgICAgICAgICA8aW1nIHNyYz0="http://www.2cto.com/uploadfile/Collfiles/20141117/20141117092746196.png" alt="\">
弧形表示循环调用,菱形表示条件调用
数据:用带圆圈的小箭头表示从一个模块传递给另一个模块的数据(有实义)
控制信息:用带涂黑圆圈的小箭头表示一个模块传送给另一个模块的控制信息
系统划分成易于理解的模块结构。然后抽象化,即去掉非本质的因素,只考虑本质因素。
在将模块进行划分的时候,我们要注重模块之间的相对独立性,这就产生了模块间的耦合与模块的内聚两个标准。我们最好要做到高内聚,低耦合。
耦合:模块和模块之间的联系程度
内聚:模块内部各元素之间的联系程度
耦合的类型有:数据耦合、标记耦合、控制耦合、公共环境耦合、内容耦合(原则:尽量使用数据耦合,少用控制耦合,限制公共耦合,完全不用内容耦合。)
内聚的类型有:偶然内聚、逻辑内聚、时间内聚、步骤内聚、通信内聚、顺序内聚、功能内聚
模块的扇入是指有多少个上机模块调用它。
模块的扇出数是指模块的直属下层模块的个数。
深度表示模块的层次(最好不要超过7层)。
宽度表示最大的一层的模块数。
在了解了我们要做的系统软件之后,一定要分成模块,将各个模块之间的关系搞清楚,有一个全局观,才能更全面的考虑问题,把持住大方向!
让我们将一些知识细化,更好的进行理解……