结构图:结构图反映程序中模块之间的层次调用关系和联系
模块: --模块名(不相同)用矩形框表示
模块的调用关系和接口
模块间的信息传递
表示模块A有选择的调用另一个模块B
模块化:能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构
抽象化:软件系统进行模块设计时,可有不同的抽象层次
数据抽象:在不同层次上描述数据对象的细节,定义与该数据对象相关的操作
模块的独立性
模块(Module)
模块一般具有如下三个基本属性:功能—描述该模块实现什么功能;逻辑—描述模块内部怎么做;状态—该模块使用的环境和条件
模块独立性是指软件系统中每个模块只涉及软件要求的具体的子功能
一般采用两个准则度量模块对立性,即模块间耦合和模块内聚
非直接耦合(Nondirect Coupling):如果两个模块之间没有直接关系,就是非直接耦合
数据耦合(Data Coupling):如果一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合
标记耦合(Stamp Coupling):如果一组模块通过参数表传递记录信息,就是标记耦合
控制耦合(Control Coupling):如果一个模块通过传送开关、标志、名字等控制信息,明显的控制选择另一模块的功能,就是控制耦合