模块独立性指:模块只完成系统要求的独立子功能,且与其他模块的联系最少,接口简单。
两个定性的度量标准:耦合性和内聚性。
耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。
模块之间联系越紧密,其耦合性就越强,模块的独立性越差。
模块间耦合的高低取决于模块接口的复杂性,调用的方式及传递的信息。
耦合性分类(低——高):
- 无直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
- 数据耦合:两个模块之间有调用关系,传递的是简单数据值,相当于高级语言的值传递。
- 标记耦合:两个模块间传递的是数据结构,如高级语言中的数组名,记录名,文件名等这些名字标记。实际传递的是数据结构的地址。
- 控制耦合:两个模块间有调用关系,传递的是控制变量(如开关,标志等),被调用模块通过该控制变量的值有选择地执行某一块内功能。
- 公告耦合:通过一个公共数据环境相互作用的那些模块间的耦合。公共耦合的复杂程度随耦合模块的个数增加而增加。
- 内容耦合:一个模块直接访问另一模块内容,则称这两个模块为内容耦合。
内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
若一个模块内各元素的联系越紧密,则它的内聚性越高。
内聚性分类(高——低):
- 功能内聚:模块内所有元素的各个组成部分全部都为完成同一个功能而存在,共同完成一个单一的功能,模块已不可再分。
- 顺序内聚:一个模块中各个处理元素和同一个功能关系密切,而且这些处理必须顺序执行。通常前一个处理元素的输出是后一个处理元素的输入。
- 通信内聚:模块内所有处理元素都在同一个数据结构上操作。
- 时间内聚:需要同时执行的动作组合在一起形成的模块。
- 逻辑内聚:模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
- 偶然内聚:一个模块内各处理元素之间没有任何联系。
高内聚低耦合