设计原理
模块化的设计原则,模块是指由边界元素限定的相邻的程序语句的序列,有一个聚合标识符
内聚
内聚是模块内部紧密结合的程度,内聚程度从低到高可分为:
- 偶然内聚——一个模块执行完全不相干的操作
- 逻辑内聚——一个模块执行一系列相关操作,每个操作模块由调用模块来选择
- 时间内聚——一个模块执行一系列与事件有关的操作
- 过程内聚——一个模块要执行的操作与产品要遵循的步骤顺序有关
- 通信内聚——过程内聚+相同的数据
- 功能内聚——只执行一个操作或只达到一个目标的模块
- 信息内聚——一个模块执行许多操作,每个操作都有各自的入口,每个操作的代码相对独立,而且所有操作在相同的数据上完成
各种内聚的比较
耦合
耦合是两个模块之间交互的程度,耦合程度从低到高可分为:
- 内容耦合——一个模块读取另外一个模块的内部数据
- 公共耦合——两个模块存取相同的全局数据
- 控制耦合——一个模块向另外一个模块传递控制要素
- 标记耦合——把数据结构作为参数传递,但参数并未全部使用,只使用了一部分
- 数据耦合——把数据结构作为参数传递,且参数全部使用
描绘软件结构的图形化工具
层次图和HIPO图
HIPO图
结构图
- 圆点实心箭头线代表传递控制信息
- 圆点空心箭头线代表传递数据信息
面向数据流的设计方法
概念
面向数据流的设计方法,把信息流映射成软件结构,信息流的类型决定了映射的方法,信息流有两种类型:
-
变换流
根据基本系统模型信息通常以“外部世界”的形式进入软件系统,经过处理以后,再以“外部世界”的形式离开系统
-
事务流
原则上所有的信息流都可归结为变换流,但是,当数据流图具有和图5.9类似的情况时,这种数据流是以“事务为中心的”,也就是说事务沿输入通道到达一个处理T,这个处理根据书数据的类型,在若干动作序列中选出一个来执行。这类数据流用划分为事务流。图5.9中的处理T称为事务中心,他完成下述任务。- 接收输入数据(输入数据又称为事务)
- 分析每个事物已确定它的类型
- 根据事物类型选取一条活动通路
事务流具有分析器和派发器