"结构化设计:从 DFD 到 MSD"
在软件工程中,结构化设计是指将数据流图(DFD)转化为模块化结构图(MSD)的过程。本文将详细介绍如何将 DFD 转化为 MSD,并讨论相关的设计规则和启发式规则。
将 DFD 转化为 MSD 的步骤
将 DFD 转化为 MSD 需要经过两个步骤:
Step 1:将 DFD 转化为初始的 MSD
在这个步骤中,我们需要将 DFD 分类为变换型数据流图和事务型数据流图。变换型数据流图用于描述系统的变换过程,而事务型数据流图用于描述系统的事务过程。然后,我们可以根据 DFD 中的信息,生成初始的 MSD。
Step 2:将初始的 MSD 转化为最终的 MSD
在这个步骤中,我们需要根据设计规则和启发式规则,对初始的 MSD 进行精化和优化。设计规则包括耦合、内聚、模块化度量等,而启发式规则则包括改进软件结构、提高模块独立性、模块规模适中等。
耦合和内聚
耦合(Coupling)是指不同模块之间的相互依赖程度的度量。耦合类型包括内容耦合、公共耦合、控制耦合、标记耦合和数据耦合。内聚(Cohesion)是指一个模块之内各成分之间的相互依赖程度的度量。内聚类型包括偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。
设计规则和启发式规则
设计规则包括:
* 耦合:不同的模块之间应尽量减少耦合度。
* 内聚:一个模块之内的各成分应具有高的内聚度。
* 模块化度量:模块规模适中,每页 60 行语句。
* 深度、宽度、扇入和扇出适中。
* 模块的作用域力争在控制域之内。
* 降低模块接口的复杂性。
* 模块功能应该可以预测。
启发式规则包括:
* 改进软件结构,提高模块独立性。
* 模块规模适中 - 每页 60 行语句。
* 深度、宽度、扇入和扇出适中。
* 模块的作用域力争在控制域之内。
* 降低模块接口的复杂性。
* 模块功能应该可以预测。
示例:数字仪表板系统
数字仪表板系统是一个复杂的系统,需要将 DFD 转化为 MSD。在这个示例中,我们可以根据 DFD 中的信息,生成初始的 MSD,然后根据设计规则和启发式规则,对初始的 MSD 进行精化和优化。
本文详细介绍了结构化设计的过程,包括将 DFD 转化为 MSD 的步骤、耦合和内聚的概念、设计规则和启发式规则等。这些知识点对于软件工程师来说非常重要,可以帮助他们更好地设计和开发软件系统。