网站大量收购独家精品文档,联系QQ:2885784924

4.2-软件设计原理与优化准则.pptVIP

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.2-软件设计原理与优化准则

第四章 软件设计 二、软件设计原理与优化准则 1、软件结构与过程 软件结构与过程 软件设计在开发阶段中的重要性 软件设计过程的目标 衡量设计的技术标准 软件结构的划分过程 树状结构和网状结构的特点 2、模块化 软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。 把问题/子问题的分解与软件开发中的系统/子系统或系统/模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。 模块的基本属性 “模块”,又称“组件”。一般有四个基本属性 模块的外部特性与内部特性 3、模块化的特征 4、模块的独立性 模块的划分 模块独立性的度量 模块间的耦合 *非直接耦合 *数据耦合 一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。 *标记耦合 一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。 *控制耦合 如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。 *外部耦合 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。 *公共耦合 若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。 公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合。 *内容耦合 影响耦合度的因素 连接方式的类型: 接口的复杂性: 传送的信息流的类型: 耦合的时间: 降低耦合度的方法: 模块的内聚 模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割。则称该模块为功能内聚模块。 *信息内聚 *通信内聚 *过程内聚 使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。 *时间内聚 *逻辑内聚 这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。 *巧合内聚(偶然内聚) 当模块内各部分之间没有联系,或者即使有联系,这种联系也很松散,则称这种模块为巧合内聚模块,它是内聚程度最低的模块。 5、软件设计优化的准则 思考题 耦合度是评价程序质量的重要指标,耦合度越小,则每个模块越容易独立地被理解、编写和修改,同时每个模块的错误越不容易扩散蔓延到其他模块。 对需要了解的内容,隐含的改为明显的,便于理解; 连接的方式尽量标准化,避免直接引用; 减少公共区,将公共区划分为若干个逻辑子区; 输入输出应局限在少量模块,不要分散在全系统; c 模块中多个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。模块根据不同的要求,确定执行哪一个功能。模块内所有功能都基于同一个数据结构。 信息内聚模块可以看成是多个功能内聚模块的组合,并且达到信息的隐蔽。即把某个数据结构、资源或设备隐蔽在一个模块内,不为别的模块所知晓。 如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。通常,通信内聚模块是通过数据流图来定义的。 时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。 内聚实例 T MOV A TO B READ Card file MOV C TO D P Q R S 巧合内聚 此例中A、B、C、D、T之间各不相干,只因为P、Q、R、S都要用到它们,为了节省一些存储空间,将它们放在一个模块中。 问题:这种模块不易取名,模块含义不易理解,难以测试,不易修改。当P、Q有不同要求(如P要求MOVE A TO B)时 T的修改会很复杂。因为它们本来互不相关,所以变动的可能性很大。 当存储空间不是很紧张时,应尽量避免巧合性内聚。 内聚实例 模块内各处理单元相关,按特定次序执行,采用数据流图时往往会出现此种内聚。

文档评论(0)

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

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

1亿VIP精品文档

相关文档