软件工程之模块的耦合与内聚

一个大而复杂的软件系统若想简单化,就要分解,这就引入了模块化的概念,模块化:把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。那么与模块化相对应的就是抽象化了,抽象化:软件系统进行模块设计时,可有不同的抽象层次。

模块(Module)一般具有如下三个基本属性:

功能:描述该模块实现什么功能;

逻辑:描述模块内部怎么做;

状态:该模块使用时的环境和条件。

模块的独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能。一般采用两个准则度量模块独立性,即模块间耦合和模块内聚。

(一)模块耦合












功能内聚:一个模块中各个部分都是完成某一具体功能必不可少的组成部分,是不可分割的。

信息内聚:这种模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能都有一个唯一的入口点。

通信内聚:如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。

过程内聚:使用流程图做工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。即:模块内上一部的结果就是下一步的数据。

时间内聚:时间内聚模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。

逻辑内聚:这种模块把几种相关的功能组合在一起。

巧合内聚:巧合内聚模块内各部分之间没有联系,或者即使有联系,这种联系也很松散。


那么整个的原则是:低耦合高内聚

科学有序的设计一款软件需要使用结构化的设计方法。

首先研究、分析和审查数据流图,然后根据数据流图决定问题的类型。数据处理问题典型的类型有两种:变换型和事务型。针对两种不同的类型分别进行分析处理。

在系统结构图中的模块具体有:传入模块、传出模块、变换模块、协调模块。每一种模块在软件开发中占有重要的地位。

小编对于模块的耦合和内聚理解的还不到位,若有错误,请各位大神指正,小编将感激不尽。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年5月16日
下一篇 2016年5月16日

相关推荐