软件工程学概述12

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

LOGOEmail:liangsun@dlut.edu.cn大连理工大学计算机科学与技术学院1软件工程主讲:孙亮4.2设计原理4.模块独立性(moduleindependence)概括了把软件划分为模块时要遵守的准则,也是判断模块构造是否合理的标准。一般地,坚持模块独立性是获得良好设计的关键两个定性度量标准-内聚和耦合耦合用于衡量不同模块彼此之间相互依赖(连接)的紧密程度24.2设计原理内聚用于衡量一个模块内部各个元素间彼此结合的紧密程度模块独立的概念:模块化、信息隐蔽和局部化的直接结果•完成特定功能•模块之间关系简单需要模块独立的原因•易开发•易测试34.2设计原理耦合强度取决于模块接口的复杂程度、通过接口的数据等应该追求尽可能松散耦合的系统:影响系统的可理解性、可测试性、可靠性和可维护性耦合的七种类型44.2设计原理耦合强度非直接耦合/无耦合:最低数据耦合:低耦合/可以只包括该耦合控制耦合:中耦合/通常模块分解可以用数据耦合公共环境耦合:全程变量、共享通信区、内存公共覆盖区、存储介质上文件或设备等;复杂程度随耦合模块个数变化;/一读一取;属松散耦合;既读又取;介于数据耦合与控制耦合之间54.2设计原理内容耦合:最高程度耦合无直接耦合:两个模块没有直接关系(模块1和模块2),模块独立性最强64.2设计原理实例讲评:无直接耦合示例74.2设计原理数据耦合:一模块调用另一模块时,被调用模块的输入、输出都是简单的数据(若干参数)。属松散耦合实例讲评:数据耦合示例84.2设计原理实例讲评:数据耦合程序示例94.2设计原理特征耦合•也称标记耦合(复合型耦合)•如两个模块通过传递数据结构(不是简单数据,而是纪录、数组等)加以联系,或都与一个数据结构有关系,则称这两个模块之间存在标记耦合104.2设计原理实例讲评:特征耦合实例114.2设计原理实例讲评:特征耦合示例124.2设计原理实例讲评:特征耦合示例134.2设计原理将特征耦合修改为数据耦合举例144.2设计原理实例讲评:将特征耦合修改为数据耦合示例154.2设计原理控制耦合模块向下属模块传递的信息(开关量、标志等控制被调用模块决策的变量)控制了被调用模块的内部逻辑164.2设计原理实例讲评:控制耦合示例174.2设计原理去除模块间控制耦合的方法控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖•将被调用模块内的判定上移到调用模块中进行•被调用模块分解成若干单一功能模块184.2设计原理改控制耦合为数据耦合举例194.2设计原理实例讲评:改控制耦合为数据耦合示例204.2设计原理外部耦合一组模块与同一外部环境关联(例如,I/O模块与特定的设备、格式和通信协议相关联),它们之间便存在外部耦合外部耦合必不可少,但这种模块数目应尽量少公共耦合(公共数据区耦合)一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)公共数据区指:全局数据结构、共享通讯区,内存公共覆盖区等214.2设计原理实例讲评:公共耦合实例224.2设计原理实例讲评:公共耦合示例234.2设计原理公共耦合存在的问题1.软件可理解性降低2.诊断错误困难3.软件可维护性差4.软件可靠性差(公共数据及全程变量无保护措施)慎用公共数据区和全程变量!!!244.2设计原理内容耦合254.2设计原理耦合设计原则尽量使用数据耦合少用控制耦合限制公共环境耦合范围完全不用内容耦合264.2设计原理内聚概念:衡量一个模块内部各元素彼此结合的紧密程度简单地说,理想内聚的模块只做一件事情。设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多。但是,坚决不要使用低内聚274.2设计原理内聚类型:七种类型低内聚:偶然内聚:出现错误的概率比其他类型的模块要高/0分;284.2设计原理偶然内聚(巧合内聚)实例讲评:偶然内聚示例294.2设计原理逻辑内聚:把几种相关功能(逻辑上相似的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能修改困难/1分304.2设计原理实例讲评:逻辑内聚示例314.2设计原理时间内聚时间内聚,比逻辑内聚好一些/3分。模块完成的功能必须在同一时间内执行,这些功能只因时间因素关联在一起实例讲评:时间内聚示例例如:初始化系统模块、系统结束模块、紧急故障处理模块等均是时间性聚合模块324.2设计原理实例讲评:时间内聚:初始化模块334.2设计原理过程内聚(顺序性组合)过程内聚:程序流程图作为工具设计软件时得到模块/5分模块内各处理成分相关,且必须以特定次序执行属中内聚344.2设计原理实例讲评:过程内聚:定时器与中断标志354.2设计原理实例讲评:过程内聚364.2设计原理通信内聚模块内各部分使用相同的输入数据,或产生相同的输出结果通信内聚:7分属中内聚374.2设计原理实例讲评:通信内聚示例384.2设计原理实例讲评:通信内聚示例394.2设计原理顺序内聚数据流图作为工具设计软件时得到的模块/9分信息内聚模块完成多个功能,各功能都在同一数据结构上操作,每一功能有唯一入口属高内聚404.2设计原理实例讲评:顺序内聚示例414.2设计原理功能内聚最高内聚/理想内聚只做一件事/10分模块仅包括为完成某个功能所必须的所有成分模块所有成分共同完成一个功能,缺一不可内聚性最强属高内聚424.2设计原理实例讲评:功能内聚示例434.2设计原理内聚设计原则:力求高内聚中等内聚也可以采用低内聚不要用与耦合关系:高内聚意味松耦合实践表明,内聚更重要,应该把更多注意力集中到提高模块的内聚程度上44LOGO45

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功