除了概要设计说明书之外.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文档。上传文档
查看更多

3.3.3信息隐蔽和局部化模块所包含的信息,不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息。由Parnas方法提倡的信息隐蔽是指,每个模块的实现细节对于其它模块来说是隐蔽的。也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。信息隐蔽(InformationHiding)优点:1,支持模块的并行开发;2,减少修改或维护时的工作量;3,提高模块的独立性。扩充功能只需插入新模块。分解、信息隐藏和模块独立性,是实现模块化设计的重要指导思想。信息局部化把关系密切的软件元素物理地放得彼此靠近。优点:可维护性好可靠性好可理解性好有助于实现信息隐藏3.3.4模块的独立性“模块”,又称“组件”,它一般具有如下三个基本属性:功能:描述该模块实现什么功能逻辑:描述模块内部怎么做状态:该模块使用时的环境和条件在描述一个模块时,还必须按模块的外部特性与内部特性分别描述模块的外部特性模块的模块名、参数表、其中的输入参数和输出参数,以及给程序以至整个系统造成的影响模块的内部特性完成其功能的程序代码和仅供该模块内部使用的数据若一个模块在不需要另一个模块的情况下,能够完整地执行其功能,则称此模块具有模块独立性。模块独立的含义:模块完成独立的功能符合信息隐蔽和信息局部化原则模块间关连和依赖程度尽量小模块的独立性概念:模块独立性取决于模块的内部和外部特征。SD方法提出的定性的度量标准:模块之间的耦合性(Coupling)模块自身的内聚性(Cohesion)耦合是模块之间的相对独立性的度量内聚是模块功能相对强度(一个模块内部各个元素彼此结合的紧密程度)的度量。1.模块独立性的度量之一:耦合描述模块间相对独立性(相互依赖程度)的度量无耦合-没有依赖关系松散耦合-有少量依赖关系紧密耦合-有很多依赖关系耦合强度依赖的因素:一模块对另一模块的引用一模块向另一模块传递的数据量一模块施加到另一模块的控制的数量模块间接口的复杂程度耦合性越高,模块独立性越弱。耦合强度的等级

如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。这种耦合的模块独立性最强。(1)非直接耦合(NondirectCoupling)如果一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。属于松散耦合开发票计算水费单价数量金额(2)数据耦合(DataCoupling)两个模块都要使用同一数据结构的一部分,不是采用全程公共数据区共享,而是通过模块接口传递数据结构的一部分(不是简单的数据),称为特征耦合。(不是简单数据,而是记录、数组等)加以联系,或都与一个数据结构有关系,则这两个模块间存在标记偶合。(3)特征耦合(StampCoupling)(标记耦合)举例计算水电费计算水费计算电费住户情况住户情况“住户情况”是一个数据结构,图中模块都与此数据结构有关.“计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合.水费电费将特征耦合修改为数据耦合举例计算水电费计算水费计算电费本月用水量本月用电量水费电费(4)控制耦合(ControlCoupling)如果两个模块之间通过参数交换信息,而传递的信息中含有控制信息,就是控制耦合。如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,如右图。控制耦合举例A计算平均分或最高分B平均/最高(控制信号)成绩读入分数输出结果计算平均分计算最高分平均/最高?B控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖,降低了独立性。去除模块间控制耦合的方法:(1)将被调用模块内的判定上移到调用模块中进行(2)被调用模块分解成若干单一功能模块改控制耦合为数据耦合举例AB1计算平均分平均成绩最高成绩计算最高分B2(5)外部耦合(ExternalCoupling)一组模块均与同一外部环境关联(例如,I/O模块与特定的设备、格式和通信协议相关联),它们之间便存在外部耦合。一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。外部偶合必不可少,但这种模块数目应尽量少。(6)公共耦合(CommonCoupling)(1)软件可维护性差,修改一个数据会影响所有模

文档评论(0)

198****5791 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档