模块的命名:
(1)以功能做模块名:计算每月的利息
以功能的缩写做模块名:计算利息
已定义模块:打印出错信息
子程序:计算月销售额
(2)模块之间的调用关系和接口
(3)模块之间的信息传递
(4)标志模块A有条件的调用另一个模块B
模块的调用关系
模块的独立性三个基本属性
功能:描述该模块实现什么功能
逻辑:描述模块内部怎么做
状态:该模块使用时的环境和条件
模块的独立性:是指软件系统中给每个模块只能设计软件要求的具体的子功能
一般采用两个标准都量模块独立性和模块间的耦合和模块内聚。
模块间的耦合:模块间的独立性越差耦合越强
弱耦合
非直接模块:没有直接的联系,这就是非直接耦合
数据耦合:模块之间只存在数据耦合,如果一个模块访问另一个模块式彼此之间是通过 简单数据参数来交换输入输出信息的。
标记耦合:如果一组模块通过参数表初度记录信息
中耦合
控制耦合:如果有个模块通过传送开关,标志,名字等控制信息,明显的控制选择另一模块的功能,
外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而不是通过参数表传递该全局变量的信息
公共耦合:若一组模块都访问同一个模块
强耦合:内部耦合
尽量使用数据耦合,少用控制耦合,限制公共耦合,完全不用内容耦合。
模块内聚
功能内聚:一个模块中各个部分都是完成某一具体功能必不可少的部分是不可分割的(10 分)
信息内聚:完成多个功能,各个功能都能在同一数据结构上操作,每一项功能都有唯一的接 入点。(9分)
通讯内聚:如果各个模块的输入的信息都使用了同一信息(7分)
过程内聚:使用流程图作为工具设计程序时,把程序图中的某一部分划出组成模块就得到过 程内聚模块(5分)
时间内聚:模块中的任务必须在同一时间内完成。(3分)
逻辑内聚:若干个模块功能相同的模块组成,把几种相关的功能结合组合在一起。(1分)
不足:增加了模块之间的耦合强度,浪费内存
巧合内聚:联系很少或者没有联系0