4软件工程02777.ppt

  1. 1、本文档共142页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.2.1.1软件结构 软件结构是软件要求的各个元素及相互关系的描述。一般软件元素就是功能模块。通过调用关系,将软件元素组合在一起,即得到软件结构。 由功能模块连接而得到的软件结构最普通的形式就是树型结构和网状结构。 控制结构示意图: 4.2.1.2 过程 软件过程用以描述各模块的处理细节(算法的详细描述),包括对下层模块控制的操作细节。 4.2.2 模块化 (Modularity) 模块:一种独立且可以标识的程序单位。它可以 单独编译,也可与其他程序单位组合,并装入计算机内 存中。 模块化:把一个程序按功能分解成若干个彼此具 有一定独立性,同时也具有一定联系的组成部分。模 块化是好的软件设计的一个基本准则; 4.2.2.2 抽象与逐步求精 §4.2.2.3 信息隐蔽和局部化 (Information Hiding) 信息隐蔽 模块所包含的信息,不允许其它不需要这些信息 的模块访问,独立的模块间仅仅交换为完成系统功能 而必须交换的信息。 信息隐蔽的目的:提高模块的独立性,减少修改 或维护时的影响面。 信息局部化 把关系密切的软件元素物理地放得彼此靠近。这 样能使得系统有很好的可护性、可靠性和可理解性。 4.2.2.4 模块独立性( Module Independence ) 模块独立的概念是模块化、抽象、信息隐蔽和局 部化概念的直接结果。 模块独立的含义: 1.模块完成独立的功能; 2.模块符合信息隐蔽和信息局部化原则; 3.模块间的关联和依赖程度尽量小。 模块的独立性,取决于模块内部和外部模块的特 征。 SD方法为模块独立性给出了两个定性的度量标准: 两个模块之间的关系——耦合性 模块自身各组成部分之间的关系——内聚性 4.2.2.5 耦合性 Coupling 耦合性是对一个软件结构内部两个不同模块之间 相互关联程度的度量。 耦合的强与弱取决于模块间接口的复杂程度。耦 合性越高,模块独立性就越弱。 (1)非直接耦合(Nondirect Coupling) 两个模块没有直接关系,它们的联系完全是通 过主模块的控制和调用实现,这就是非直接耦合。 这种耦合的模块独立性最强。 一模块调用另一模块时,被调用模块的输入、输 出都是简单的数据。 数据耦合属于松散耦合。 (3) 标记耦合(特征耦合) stamp coupling 如两个模块通过传递数据结构(不是简单数据, 而是记录、数组等)加以联系,或都与一个数据结构 有关系, 则称这两个模块间存在标记耦合。 标记耦合举例 可将标记耦合修改为数据耦合 (4) 控制耦合 Control Coupling 一模块向下属模块传递的信息 (开关量、标志等控制被调用模块决策的变量) 控制了被调用模块的内部逻辑。 控制耦合举例 控制耦合增加了理解和编程的复杂 性,调用模块必须知道被调模块的内部 逻辑,从而增加了模块间的相互依赖关 系。 消除模块间控制耦合的方法 首先将被调用模块内的判定上移到 调用模块中;然后将被调用模块分解成 若干个单一功能的模块。 改控制耦合为数据耦合,将B模块分解成B1和B2两个模块。 (5) 外部耦合 External Coupling 一组模块均与同一外部环境关 联(例如,I/O模块与特定的设备、 格式和通信协议相关联),它们之间 便存在外部耦合。外部偶合必不可 少,但这种模块数目应尽量少。 (6) 公共耦合(公共数据区耦合) Common Coupling 一组模块引用了同一个公用数据区 (也称全局数据区、公共数据环境)的数据。 公用数据区指: 全局数据结构 共享通讯区 内存公共覆盖区等 公共耦合举例 公共耦合存在的问题: (1)软件可理解性降低 (2)诊断错误困难 (3)软件可维护性差, (4)软件可靠性差 (公共数据区及全程变量无保护措施) 慎用公共数据区和全程变量!!! 4.2.2.6 内聚性Cohesion 内聚性是对模块内的各个组成部分 在功能上相互关联程度的度量。内聚性 越高,模块独立性就越强。 设计目标:高内聚(模块在软件过 程中完成单一的任务) (1)偶然内聚(巧合内聚) Coincidental Cohesion (2) 逻辑内聚 Logical Cohesion 把几种相关功能

文档评论(0)

cai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档