软件工程学 第4章 总体设计2_第1页
软件工程学 第4章 总体设计2_第2页
软件工程学 第4章 总体设计2_第3页
软件工程学 第4章 总体设计2_第4页
软件工程学 第4章 总体设计2_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、4.2 设计原理4. 模块独立性(module independence)概括了把软件划分为模块时要遵守的准则,也是判断模块构造是否合理的标准。一般地,坚持模块独立性是获得良好设计的关键两个定性度量标准内聚和耦合耦合用于衡量不同模块彼此之间相互依赖(连接)的紧密程度14.2 设计原理内聚用于衡量一个模块内部各个元素间彼此结合的紧密程度模块独立的概念:模块化、信息隐蔽和局部化的直接结果完成特定功能模块之间关系简单需要模块独立的原因易开发易测试24.2 设计原理耦合强度取决于模块接口的复杂程度、通过接口的数据等应该追求尽可能松散耦合的系统:影响系统的可理解性、可测试性、可靠性和可维护性耦合的七种类

2、型34.2 设计原理耦合强度非直接耦合无耦合:最低数据耦合:低耦合可以只包括该耦合控制耦合:中耦合通常模块分解可以用数据耦合公共环境耦合:全程变量、共享通信区、内存公共覆盖区、存储介质上文件或设备等;复杂程度随耦合模块个数变化;一读一取;属松散耦合;既读又取;介于数据耦合与控制耦合之间44.2 设计原理内容耦合:最高程度耦合无直接耦合:两个模块没有直接关系(模块1和模块2),模块独立性最强54.2 设计原理实例讲评:无直接耦合示例64.2 设计原理数据耦合:一模块调用另一模块时,被调用模块的输入、输出都是简单的数据(若干参数)。属松散耦合实例讲评:数据耦合示例74.2 设计原理实例讲评:数据耦

3、合程序示例84.2 设计原理特征耦合也称标记耦合(复合型耦合)如两个模块通过传递数据结构(不是简单数据,而是纪录、数组等)加以联系,或都与一个数据结构有关系,则称这两个模块之间存在标记耦合94.2 设计原理实例讲评:特征耦合实例104.2 设计原理实例讲评:特征耦合示例114.2 设计原理实例讲评:特征耦合示例124.2 设计原理将特征耦合修改为数据耦合举例134.2 设计原理实例讲评:将特征耦合修改为数据耦合示例144.2 设计原理控制耦合模块向下属模块传递的信息(开关量、标志等控制被调用模块决策的变量)控制了被调用模块的内部逻辑154.2 设计原理实例讲评:控制耦合示例164.2 设计原理

4、去除模块间控制耦合的方法控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖将被调用模块内的判定上移到调用模块中进行被调用模块分解成若干单一功能模块174.2 设计原理改控制耦合为数据耦合举例184.2 设计原理实例讲评:改控制耦合为数据耦合示例194.2 设计原理外部耦合一组模块与同一外部环境关联(例如,I/O模块与特定的设备、格式和通信协议相关联),它们之间便存在外部耦合外部耦合必不可少,但这种模块数目应尽量少公共耦合(公共数据区耦合)一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)公共数据区指:全局数据结构、共享通讯区,内存公共覆盖区等204.

5、2 设计原理实例讲评:公共耦合实例214.2 设计原理实例讲评:公共耦合示例224.2 设计原理公共耦合存在的问题软件可理解性降低诊断错误困难软件可维护性差软件可靠性差(公共数据及全程变量无保护措施)慎用公共数据区和全程变量!234.2 设计原理内容耦合244.2 设计原理耦合设计原则尽量使用数据耦合少用控制耦合限制公共环境耦合范围完全不用内容耦合254.2 设计原理内聚概念:衡量一个模块内部各元素彼此结合的紧密程度简单地说,理想内聚的模块只做一件事情。设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多。但是,坚决不要使用低内聚264.2 设计原理内聚类型:七

6、种类型低内聚:偶然内聚:出现错误的概率比其他类型的模块要高0分;274.2 设计原理偶然内聚(巧合内聚)实例讲评:偶然内聚示例284.2 设计原理逻辑内聚:把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能修改困难1分294.2 设计原理实例讲评:逻辑内聚示例304.2 设计原理时间内聚时间内聚,比逻辑内聚好一些3分。模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起实例讲评:时间内聚示例例如:初始化系统模块、系统结束模块、紧急故障处理模块等均是时间性聚合模块314.2 设计原理实例讲评:时间内聚:初始化模块324.2 设计原理过程内聚(

7、顺序性组合)过程内聚:程序流程图作为工具设计软件时得到模块5分模块内各处理成分相关,且必须以特定次序执行属中内聚334.2 设计原理实例讲评:过程内聚:定时器与中断标志344.2 设计原理实例讲评:过程内聚354.2 设计原理通信内聚模块内各部分使用相同的输入数据,或产生相同的输出结果通信内聚:7分属中内聚364.2 设计原理实例讲评:通信内聚示例374.2 设计原理实例讲评:通信内聚示例384.2 设计原理顺序内聚数据流图作为工具设计软件时得到的模块9分信息内聚模块完成多个功能,各功能都在同一数据结构上操作,每一功能有唯一入口属高内聚394.2 设计原理实例讲评:顺序内聚示例404.2 设计原理功能内聚最高内聚理想内聚只做一件事10分模块仅包括为完成某个功能所必须的所有成分模块所有成分共同完成一个功能,缺一不可内聚性最强属高

温馨提示

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

评论

0/150

提交评论