第三章结构化.ppt

  1. 1、本文档共93页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章结构化.ppt

第3章 结构化方法 A.数据耦合 如果两个模块间的通讯信息是若干参数,其中每一个参数都是一个数据元素,称这种耦合为数据耦合。这是模块之间影响最小的耦合关系。 B.标记耦合 如果两个模块都与同一个数据结构有关,则称为标记耦合。 “特征耦合”图与“数据耦合”图的相互转换 住户详情数据结构中包括“本月用水量”、“本月用电量”。上面的“标记耦合”图可改进为下面的“数据耦合”图。 C.控制耦合 如果模块A向模块B所传递的信息控制了模块B的内部逻辑,那么A和B之间的耦合称为控制耦合。 控制信息可以看作是一个开关量,它传递了一个控制信息或状态的标志。控制信息不同于数据信息,数据信息一般通过处理过程处理被处理的数据,而控制信息则是控制处理过程中的某些参数。 D.公共耦合 如果两个模块都和同一个公共数据域有关,则称为公共耦合。 公用耦合是一种不良的耦合关系,它给模块的维护和修改带来困难。如公共数据要作修改,很难判定有多少模块应用了该公共数据,故在模块设计时,一般不允许有公共耦合关系的模块存在。 E.内容耦合 如果一个模块和另一个模块的内部属性(即运行程序和内部数据)有关,则称为内部耦合。 例如:模块A TRC:...... 模块B GOTO TRC 模块A与模块B存在内容耦合,这是一种最坏的耦合。 因此,在设计模块时,应以数据耦合为主,辅以特征耦合与控制耦合,消除公共耦合和内容耦合。 模块的内聚 模块的内聚(cohesion)是指一个模块内部的各个组成部分的紧凑性,其处理动作的组合强度。 内聚有七种形式。 A.功能内聚 如果一个模块内部的各组成部分的处理动作全都为执行同一个功能而存在,并且只执行一个功能,则称为功能内聚。 判断一个模块是不是功能内聚,只要看这个模块是“做什么”,是完成一个具体的任务,还是完成多任务。 B.顺序内聚 如果一个模块内部的各个组成部分执行的几个处理动作有这样的特征:前一个处理动作所产生的输出数据是后一个处理动作的输入数据,称为顺序内聚。 顺序内聚维护起来不如功能内聚方便,要修改模块中的一个功能,会影响到同一个模块中的其他功能。 C.通讯内聚 上图中有两个工作: 按配件编号查询“数据存储”,获得单价。 按配件编号查询“数据存储”,获得库存量。 这两个处理动作都使用相同的输入数据,称为通讯内聚 D.过程内聚 如果一个模块内各组成部分的处理动作各不相同,彼此也没有联系,但它们都受同一个控制流支配,决定它们的执行次序,称为过程内聚。例如: E.时间(暂时)内聚 如果一个模块内的各组成部分的处理动作和时间有关,则称为时间内聚。时间内聚模块的处理动作必须在特定的时间内完成。 例如:程序设计中的初始化模块。 F.逻辑内聚 如果一个模块内部的各组成部分的处理动作在逻辑上相似,但功能都彼此不同或无关,则称为逻辑内聚。 一个逻辑内聚模块往往包括若干个逻辑相似的动作,使用时可以选用一个或几个功能。 例如:把编辑各种输入数据的功能放在一个模块中。 G.偶然(机械)内聚 如果一个模块的内部各组成部分的处理动作彼此没有任何联系,则称为机械内聚。 模块内聚性的判断: 模块聚合性的比较 模块的分解 分解是指把一个模块分解成若干个从属于它的下层模块。 一般按功能分解,分解到成为一个小的功能单一的模块为止。 一般一个模块内包含的语句在30~50条左右较好(指高级语言)。 保持高扇入/低扇出的规则 扇入数指调用该模块的模块个数(一个模块的直接上级模块的个数) 扇出数指该模块调用的模块个数(一个模块拥有的直属下级模块的个数) 扇入高则上级模块多,说明模块分解得好,通用性强,冗余度低。能增加利用率 扇出低则下级模块少,能减少复杂度 扇出数以3-4为宜,最好不超过5-7 软件结构通常具有“瓮”形或“清真寺”形的形状 把作用域保持在控制域之内的规则 一个模块的控制域,等于模块本身加上其下级模块。 一个模块的作用域,是受这个模块中的判定所影响的模块。 规则的含义是: a. 作用域不要超过控制域的范围; b. 软件系统的判定,其位置离受它控制的模块越近越好。 降低模块接口的复杂程度 模块接口复杂是软件发生错误的一个主要原因。应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致 接口复杂或不一致(即看起来传递的数据之间没有联系),是紧联结或低聚合的征兆,应该重新分析这个模块的独立性。 小结 结构化方法是一种传统的面向数据流开发方法 以数据流为中心构建软件的分析模型和设计模型 在结构化分析方面,本章介绍结构化分析的基本思想和分析过程,详细介绍了分层数据流图的画法,分层数据流图的审查,数据字典各条目的描述内容以及基本加工小说明的描述方法 在结构化设计方面,本章介绍如何将分析的结果(DFD)映射成初始的程序结构图,包括变换分析和事务分析,并介绍对初

文档评论(0)

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

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

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档