需求方法重点解析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * 耦合 标记耦合 stamp coupling 如果两个模块都要使用同一数据结构的一部分,不是采用全局公共数据区共享,而是通过模块结构传递数据结构的一部分,则它们之间为标记耦合。 数据耦合 data coupling 被调用模块的输入与输出是简单的参数或者是数据结构(该数据结构中的所有元素为被调用的模块使用),则它们之间为数据耦合。 非直接耦合 no direct coupling 两个模块之间没有联系,则它们之间为非直接耦合。 ? The most desirable. 耦合 实现低耦合,采取下列措施: 耦合方式 采用非直接耦合,不采用融合耦合。 传递信息类型 尽量使用数据耦合,少采用控制耦合,外部耦合和公共耦合限制使用。 耦合数量 模块间相互调用时,传递参数最好只有一个。 原则:尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合。 2. 模块规模适中:过大分解不充分不易理解;太小则开销过大、接口复杂。注意分解后不应降低模块的独立性。 3. 适当控制 —— 深度 = 分层的层数。过大表示分工过细。 宽度 = 同一层上模块数的最大值。过大表示系统复杂度大。 1. 争取低耦合、高内聚(增加内聚 减少耦合) 启发性规则 启发性规则 系统结构 ? 扇出 = 一个模块直接调用\控制的模块数。 3 ? fan-out ? 9 A A的扇出 A A的扇入 ? 扇入 = 直接调用该模块的模块数 在不破坏独立性的前提下,fan-in 大的比较好。 启发性规则 启发性规则 尽可能减少高扇出结构,随着深度增大扇入。 如果一个模块的扇出数过大,就意味着该模块过分复杂,需要协调和控制过多的下属模块。应当适当增加中间层次的控制模块。 一般来说,顶层扇出高,中间扇出少,低层高扇入。 ? 控制域 M A C B M的控制域为 {M,A,B,C} ? 作用域:M中的一个判定所影响的模块。 启发性规则 作用域是指该模块中一个判断所影响的所有其它模块; 控制域指该模块本身以及所有直接或间接从属于它的模块。 4. 模块的作用范围保持在该模块的控制范围内 例: A: ………… if …… then goto B1 ………… ………… B: ………… ………… B1: ………… ………… 作用域在控制域内 A: ………… if …… then goto M1 ………… ………… M: ………… ………… M1: goto C1 ………… ………… 作用域超出了控制域 上例中A的作用超出了控制域。 改进方法之一,可以把A中的 if 移到M中; 改进方法之二,可以把C移到A下面。 M A C B 5、降低接口的复杂程度:模块接口的复杂性是引起软件错误的一个主要原因。接口设计应该使得信息传递简单并且与模块的功能一致。 6、单出单入,避免内容耦合,易于理解和维护。 7、模块功能可预测 —— 相同输入必产生相同输出。反例:模块中使用全局变量或静态变量,则可能导致不可预测。 启发性规则 小结 软件设计的重要性 设计过程 设计的基本原理 抽象、细化、模块化、体系结构、控制层次、数据结构、软件过程、信息隐藏。 模块化设计 内聚、耦合,启发规则。 * * * * * * * * * * * * * * * * * * * * * * 模块化 模块化和软件成本 如何确定地预测最小成本区? 成本 成本 / 模块 最小成本区 接口成本 软件总成本 模块数目 模块化 如何确定模块的大小: 模块可分解性 模块可组装性 模块可理解性 模块连续性 模块保护 设计基本原理 4. 软件体系结构 Architecture 是过程构件(模块)的层次结构、模块间交互的方式以及其使用的数据结构。 软件结构的演变从确定问题开始,当该问题的每个部分用一个或多个软件加以解决以后,整个问题的解也就有了。 软件体系结构 结构的演化 P3 P1 P2 P4 P5 S1 S2 S3 S4 S5 体系结构 设计基本原理 5. 控制层次 Control Hierarchy 也称为程序结构 深度:表示控制的层数。 宽度:表示控制(同一层次)总跨度。 扇出数:指由一模块直接控制的其他模块的数目。 扇入数:指有多少个模块直接控制一个给定的模块。 上级模块 从属模块 控制层次 M c b a l k e d m f g i h j n o p q r Width Depth Fan-out Fan-in 控制层次 控制层次代表了两种不同的体系结构特征:可见性 visibility 和连接性 connectivity 。 可见性:构件集合可

文档评论(0)

挺进公司 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档