软件工程第剖析.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通信内聚 (Communication Cohesion) 如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。通常,通信内聚模块是通过数据流图来定义的。 过程内聚 (Procedural Cohesion) 使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。 时间内聚 (Classical Cohesion) 时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。 逻辑内聚(Logical Cohesion) 这种模块把几种 相关的功能组合在 一起,每次被调用 时,由传送给模块 的判定参数来确定 该模块应执行哪一 种功能。 巧合内聚(Coincidental Cohesion) 巧合内聚 (偶然内聚)。当模块内各部分之间没有联系,或者即使 有联系,该联 系也很松散, 则称这种模 块为巧合内 聚模块,它 是内聚程度 最低的模块。 各种内聚关系(内聚的定义请参见教材 P88页内容) 第三章 软件设计 耦合: 内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。 耦合是模块之间的互相连接的紧密程度的度量。 模块独立性比较强的模块应是高内聚低耦合的模块。 模块间的耦合 非直接耦合(Nondirect Coupling) 两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。 非直接耦合的模块独立性最强。 数据耦合 (Data Coupling) 一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。 标记耦合 (Stamp Coupling) 一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。 控制耦合 (Control Coupling) 如果一个模 块通过传送开 关、标志、名 字等控制信息, 明显地控制选 择另一模块的 功能,就是控 制耦合。 外部耦合(External Coupling) 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。 公共耦合(Common Coupling) 若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。 公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合。 内容耦合 (Content Coupling) 如果发生下列情形,两个模块之间就发生了内容耦合 (1) 一个模块直接访问另一个模块的内部数据; (2) 一个模块不通过正常入口转到另一模块内部; (3) 两个模块有一部分程序代码重迭(只可能出现在汇编语言中); (4) 一个模块有多个入口。 3.3 启发式规则 1、改进软件结构提高模块独立性 软件结构设计力求降低耦合,提高内聚。例如:多个模块共有的一个子功能可以独立成一个模块,由这些模块调用。 有时可以通过分解或合并模块以减少控制信息的传递及全程数据的引用,并且降低接口复杂度。 2、模块规模应适中 一个模块的规模不应过大,教材上讲“不超过60行语句”实际上没有这样小,一般在100—500行。一个模块也不应过小。 3、深度、宽度、扇入和扇出都应适当。 一般深度为7级(最大);一般宽度不好定义,宽度太大系统复杂度高。平均扇出一般为3或4(最大为5-9);扇入越大则共享该模块的上级模块数目越多,是有好处的。 第三章 软件设计 一个设计良好的系统结构: 顶层扇出比较高; 中层扇出较少; 底层扇入到公共的实用模块中去。 第三章 软件设计 4. 模块的作用域应该在控制域之内 模块的作用域:该模块本身以及所有直接或间接从属于它的模块集合。模块A的控制域是A、B、C、D、E、F。若不是这样,会造成软件难于

文档评论(0)

四月 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档