结构图
反映程序中模块之间的层次调用关系和联系。
- 模块
- 模块的调用关系和接口
- 模块A有条件调用另一个模块
- 模块化
把大而复杂软件系统划分成易于理解的比较单纯的模块结构。
- 抽象化
有不同的抽象层次。
功能抽象: 抽象层次1:用问题所处环境的术语来描述这个软件。
抽象层次2:任务需求的描述。在这个抽象层次上,未给出“怎样做”的信息,不能直接实现。
抽象层次3:程序过程表示。
数据抽象 :在不同层次上的描述数据局对象的细节,定义与该数据对象相关的操作。
信息隐蔽:数据发生变化不影响其他模块,模块所包含的信息不允许其他模块使用。
模块的独立性:每个模块只涉及软件要求的具体子功能,一般采用两个准则度模块独立性,即模块间耦合性和模块内聚。
- 结构设计原则:1.改进软件结构提高模块独立性
2.模块规模应该适中
3.适当选择深度、宽度、扇出和扇入
4.作用域应该在控制欲之内
5.降低模块接口的复杂程度
6.设计单入口单出口的模块
7.功能可以预测
- 模块的基本属性:1.功能:描述模块实现什么功能
2.逻辑:描述模块内部怎摸做
3.状态:该模块使用时的环境和条件
-
模块间的耦合
非直接耦合:两个模块之间没有任何直接关系
数据耦合:一个模块让问另一个模块时之间通过简单数据参数来交换输入、输出信息。
标记耦合(特征耦合):通过参数表传递记录信息。
控制耦合:一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能。
外部耦合:一组模块都访问同一全局变量而不是同一全部数据结构,而且不是通过参数表传递该全局变量的信息。(连接外部环境)
公共耦合:一组模块都访问同一公共数据环境
内容耦合
结论:尽量使用数据耦合,少用控制耦合,限制公共耦合,完全不用内容耦合
模块内聚
一个模块中各个部分都是完成某一具体功能必不可少的组成部分,是不可分割的。
信息内聚 |
模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。 |
通讯内聚 |
模块内部个各个功能部分都使用相同的输入数据,或产生了相同的输出数据。 |
过程内聚 |
当一个模块当中包含一种任务,当这种任务必须按某一特定顺序执行的时候。 |
时间内聚 |
模块中任务必须在同一时间段内执行。 |
逻辑内聚 |
把相关的功能组合在一起。 |
巧合内聚 |
模块内各部分之间没有联系,或者即使有也很松散。 |
- 系统结构图中的模块
- 变换型系统结构图
- 事务型系统结构图
结构一项事务,根据事务处理特点和性质,选择分派一个适当的处理单元,然后给出结果。
来源:CSDN
作者:weixin_44621107
链接:https://blog.csdn.net/weixin_44621107/article/details/104106706