模块独立性原理ppt课件_第1页
模块独立性原理ppt课件_第2页
模块独立性原理ppt课件_第3页
模块独立性原理ppt课件_第4页
模块独立性原理ppt课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、模块独立性原理,软件工程,菏泽学院计算机系 邵丽丽, 重点和难点,1. 理解模块独立的重要性 2. 掌握模块独立的概念 3. 重点掌握度量模块独立程度的两个标准: 耦合和内聚,5.2.1 模块化 5.2.2 抽象 5.2.3 逐步求精 5.2.4 信息隐藏和局部化 5.2.5 模块独立,1. 模块独立的概念: 是模块化、抽象、信息隐藏和局部化概念的直 接结果。 是指软件系统中每个模块只完成软件要求的具 体的子功能,而和软件系统中其他模块的接口 尽量简单。 2. 如何做到模块独立? 开发具有独立功能而且和其他模块之间没有过 多的相互作用的模块,就可以做到模块独立。,5.2.5 模块独立,1. 模

2、块独立的概念是: 2. 如何做到模块独立? 3. 模块独立的重要性: 有效的模块化的软件比较容易开发; 独立的模块比较容易测试和维护。,5.2.5 模块独立,4. 模块独立程度的度量标准,不同模块之 间的互联程 度的度量,模块内部彼此 结合的紧密程 度的度量,模块的独立程度可以由两个定性标准度量,5.2.5 模块独立,模块关系紧密,模块关系松散,模块独立程度示意图,(1)耦合( Coupling ),问题1. 耦合是越强越好还是越弱越好? 问题2. 耦合的强弱取决于什么? 模块之间接口的复杂程度 调用模块的方式 通过接口的数据,4. 模块独立程度的度量标准,(1)耦合( Coupling ),

3、问题3. 怎样具体区分模块间耦合程度的强弱呢?,4. 模块独立程度的度量标准, 非直接耦合(Nondirect Coupling) 两个模块没有直接关系,它们之间的联系完 全是通过主模块的控制和调用来实现的, 非直接耦合的模块独立性最强。, 数据耦合(Data Coupling) 两个模块彼此间通过参数来交换信息,而且 交换的信息仅仅是数据。 数据耦合属于松散耦合。,#include int Multiply(int x, int y) return (x * y); void main() int x = 0; int y = 0; scanf (%d%d, , 特征耦合(Stamp Cou

4、pling) 当把整个数据结构作为参数传递而被调用的 模块只需要使用其中一部分数据元素时,就 出现了特征耦合。, 控制耦合(Control Coupling) 两个模块彼此间通过参数来交换信息,如果传递 的信息中有控制信息,这种耦合称为控制耦合。,void output ( flag ) If ( flag ) printf (OK! ); else printf (NO! ); main() int flag; output ( flag ); , 公共环境耦合(Common Coupling) 当两个或多个模块通过一个公共数据环境相互 作用时,它们之间的耦合称为公共环境耦合。 公共数据环境

5、可以是全局数据结构、共享的通 信区、内存的公共覆盖区等。 公共耦合的复杂程度随耦合模块的个数增加而 显著增加。, 公共环境耦合(Common Coupling) 若只是两模块间有公共数据环境,则公共耦合 有两种情况:松散公共耦合和紧密公共耦合。,松散的公共耦合,紧密的公共耦合, 内容耦合(Content Coupling) 一个模块直接访问另一个模块的内部数据; 一个模块不通过正常入口转到另一模块内部; 两个模块有一部分程序代码重迭(只可能出现在 汇编语言中); 一个模块有多个入口。, 内容耦合,坚决避免使用内容耦合, 设计原则 尽量使用数据耦合, 少用控制耦合和特征耦合, 限制公共环境耦合的

6、范围, 完全不用内容耦合。,例1.分析下图,确定模块之间的耦合类型。 (模块p、t、u更新同一个数据库) 图1 一个程序的模块互联图,表1 模块接口描述,(2)内聚( Cohesion ) 问题1. 模块内聚程度是越高越好还是越低越好? 问题2. 内聚和耦合之间存在什么关系? 问题3. 内聚可以分为哪几类? 低内聚: 中内聚: 高内聚:,5.2.5 模块独立,偶然内聚,逻辑内聚,时间内聚,过程内聚,通信内聚,顺序内聚,功能内聚,5.2.5 模块独立,问题4. 怎样具体区分模块内聚程度的高低呢?,(2)内聚( Cohesion ), 偶然内聚(Coincidental Cohesion), 逻辑

7、内聚(Logical Cohesion), 时间内聚(Classical Cohesion), 时间内聚又称为经典内聚。这种模块大多 为多功能模块,但模块的各个功能的执行 与时间有关,通常要求所有功能必须在同 一时间段内执行。 例如,初始化模块和终止模块就是时间内 聚模块。, 过程内聚(Procedural Cohesion),A=2 OR X1,X=X+1,返回,T,入口,A1 AND B=0,T,F,F,X=X/A, 通信内聚(Communication Cohesion), 顺序内聚(Sequential Cohesion), 功能内聚(Functional Cohesion), 一个模块内所有处理元素属于一个整体,完 成一个单一的功能,则称为功能内聚。 功能内聚是最高程度的内聚,内聚性最强。,例2.分析下图的层次图,确定每个模块的内聚类型。 图2 计算多个地点日平均温度的程序,5.2.5 模块独立性原理,总结,1. 概念 2. 度量标准:耦合和内聚 3. 6种耦合方式 4. 7种内聚方式,练习1:判断主函数与子函数之间的耦合类型,#include int Multiply(int x, int y) return (x * y); void main() int x = 0; int y = 0; scanf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论