总体设计-第三节:启发规则

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了总体设计-第三节:启发规则相关的知识,希望对你有一定的参考价值。

一:启发规则

(1)改进软件结构提高模块独立性

(2)模块规模应该适中

(3)深度、宽度、扇入和扇出应适当

  • 深度:表示软件结构中控制的层数
  • 宽度:软件结构内同一个层次上到的模块总数的最大值
  • 扇出:一个模块直接控制或调用的模块数目**。扇出过大意味着模块过分复杂**。一般一个设计的好的典型系统的平均扇出是3或4,扇出的上限是5或9
  • 扇入:指有多少上级模块调用它,扇入大说明上级模块共享该模块的数目多

好的软件结构应该是顶层扇出较高,中层扇出较少,底层模块有高扇入

(4)模块的作用域应该在控制欲之内

  • 作用域:指受该模块内一个判定影响的所有模块的集合
  • 控制域:是这个模块本身以及所有直接或者间接从属于它的模块的集合

(5)力争降低模块接口的复杂程度

(6)设计单入口单出口的模块

(7)模块功能应该可以预测

二:描绘软件结构的图形工具

(1)层次图和HIPO图

层次图用于描绘软件的层次结构,其中一个矩形框代表一个模块,方框间的连线表示调用关系而不像层次方框图那样表示组成关系

HIPO图本质就是层次图加编号

(2)结构图

结构图不仅描述调用关系,还描述传递的信息和调用方式

  • 方框代表模块
  • 箭头或直线表示调用关系
  • 尾部是空心圆表示传递的是数据;若是实心圆则表示传递的是控制信息

模块调用分为

  • 简单调用
  • 循环调用
  • 选择调用

三:面向数据流设计方法(结构化设计方法SD)

(1)数据流分类

A:变换流

输入、变换中心和输出三个部分组成

B:事物流

在多种事物中选择一个执行

(2)变换分析

把具有变换流特点的数据流图映射为软件结构

以上是关于总体设计-第三节:启发规则的主要内容,如果未能解决你的问题,请参考以下文章

软件工程概论-第三节:软件生命周期

软件构造第五章第三节 可复用的设计模式

面向对象设计-第三节:系统分解和设计问题域子系统

数据库设计-第三节:概念结构设计

JavaScript设计模式:面向对象编程(第三节)

软件构造第三章第三节 抽象数据型(ADT)