- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章软件设计-Read.ppt
1.软件的总体结构主要回答的问题 软件的组成部分 软件的层次关系 模块的内部处理逻辑 模块之间的界面 2. 软件设计的问题 4. 软件设计分为两个阶段: (1)概要设计(总体设计) 确定软件的结构以及各组成成分 (子系统或模块)之间的相互关系。 6.2.1 软件体系结构 软件体系结构包括两部分: (1)过程构件(模块)的层次结构 (2)数据构件 控制结构(程序结构) 控制结构是软件模块间 关系的表示 控制结构图示: 1. 控制结构的层次规则 只有一个顶层(0层)模块 0层外任一模块都会在它 的邻层存在一模块与它有关 同层模块间不发生联系 2. 软件结构度量术语 6.2.2 软件过程 软件过程用以描述各模 块的处理细节(算法的详 细描述),包括对下层模 块控制的操作细节。 6.2.3 模块化 (Modularity) 模块化是好的软件设计的一个基本准则 高层模块 从整体上把握 问题,隐蔽细节 复杂问题 较小问题 分解 可减小解题所需的总的工作 6.2.6 抽象(Abstraction) 6.2.5 信息隐蔽(Information Hiding) 模块所包含的信息,不允许其它不需要这些信息的模块访问 独立的模块间仅仅交换为完成系统功能而必须交换的信息。 信息隐蔽的目的: 提高模块的独立性,减少修改或维护时的影响面。 6.2.6 信息局部化 把关系密切的软件元素物理地放得彼此靠近。 §6.3 模块的独立性 6.3.1 模块独立性的概念 模块独立的含义: 模块完成独立的功能 符合信息隐蔽和信息局部化原则 模块间关连和依赖程度尽量小 6.3.2 模块独立性的度量 模块独立性取决于模块的 内部和外部特征。 内聚是指度量一个给定的程序内的多行代码的单一功能性,以确定是否达到该程序所要实现的目的 1.模块独立性的度量之一:耦合性 模块间相对独立性(相互依赖程度)的度量 耦合强度依赖的因素: 一模块对另一模块的引用 一模块向另一模块传递的数据量 一模块施加到另一模块的控制的数量 模块间接口的复杂程度 模块间耦合的类型 低 无直接耦合 耦 数据耦合 合 标记耦合 性 控制耦合 外部耦合 公共耦合 高 内容耦合 (1) 无直接耦合 两个模块没有直接关系(模块1和模块2),模块独立性最强。 (2) 数据耦合 一模块调用另一模块时,被调用模块的输入、输出都是简单的数据(若干参数)。 属松散耦合。 数据耦合举例 (3) 标记耦合(特征耦合) 如两个模块通过传递数据结构 (不是简单数据,而是记录、数组 等)加以联系,或都与一个数据 结构有关系, 则称这两个模块 间存在标记偶合。 标记耦合举例 将标记耦合修改为数据耦合举例 (4) 控制耦合 一模块向下属模块传递的信息 (开关量、标志等控制被调用模块决策的变量) 控制了被调用模块的内部逻辑。 控制耦合举例 控制耦合增加了理解和编程的复 杂性,调用模块必须知道被调模 块的内部逻辑,增加了相互依赖 改控制耦合为数据耦合举例 (5) 外部耦合 一组模块均与同一外部环境关联 (例如,I/O模块与特定的设备、 格式和通信协议相关联),它们之 间便存在外部耦合。 (6) 公共耦合(公共数据区耦合) 一组模块引用同一个公用数据区 (也称全局数据区、公共数据环境)。 公共耦合举例 公共耦合存在的问题: (1)软件可理解性降低 (2)诊断错误困难 (3)软件可维护性差, (6)软件可靠性差 (公共数据区及全程变量无保护措施) (7) 内容耦合 模块化设计的原则和目标 耦合是影响软件复杂程度和设计 质量的重要因素 如何降低模块间耦合度: (1) 尽量使用数据耦合 少用控制耦合 限制公共耦合的范围 坚决避免使用内容耦合 2. 模块独立性的度量之二:内聚性 一个模块内部元素在功能上相互 关联的强度 模块的内聚性类型 低 偶然内聚 0分 逻辑内聚 1分 内 时间内聚 3分 聚 过程内聚 5分 性 通信内聚 7分 信息内聚 9分 高 功能内聚10分 低内聚模块举例 为工程分析包执行错误处理的模块,当计算的数据超出预定义的边界时调用该模块,它完成下列任务: (1)根据初始计算的数据计算补充数据; (2)在用户的工作站上生成错误报告;
文档评论(0)