专题3:软件设计原理.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:软件设计原理

专题: 软件设计原理;本讲要点;1 软件设计的任务;1 软件设计的任务;1 软件设计的任务;软件需求分析与设计的关系;2.1 两种设计思路;两种设计思想的比较;2.2 软件设计的构成;2.2.1 概要设计(总体设计) ;总体结构设计;软件总体结构示意图;2.2.2 过程设计;过程设计示意图;2.2.3 数据设计;2.2.3 数据设计;数据设计示意图;2.2.4 设计复审;2.2.4 设计复审;3 软件设计的模块化思想;3.1 模块化;3.1 模块化;模块划分的数量与成本的关系;模块化;3.2 抽象;过程抽象;数据抽象;3.3 信息隐藏和局部化(1/2);3.3 信息隐藏和局部化(2/2);3.4 模块独立性;3.4.1 耦合度(1/3);模块间的耦合;数据耦合 (Data Coupling) 一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。;模块间的耦合;耦合的类型-标记耦合转数据耦合;控制耦合 (Control Coupling) 如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的 功能,就是控制耦合。;耦合的类型-控制耦合的解耦;耦合的类型-控制耦合的解耦;外部耦合(External Coupling) 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。 公共耦合(Common Coupling) 若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。; 公共耦合的复杂程度随耦合模块的个数增加而显著增加。 若只是两模块间有公共数据环境,则公共耦合有以下两种情况: ;内容耦合 (Content Coupling) 如果发生下列情形,两个模块之间就发生了内容耦合。 (1) 一个模块直接访问另一个模块的内部数据; (2) 一个模块不通过正常入口转到另一模块内部; (3) 两个模块有一部分程序代码重迭(只可能出现在汇编语言中); (4) 一个模块有多个入口。; ;如何降低模块间的耦合度;如何降低模块间的耦合度;3.4.2 内聚度(1/3);功能内聚 (Functional Cohesion) 一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。 如:计算实发工资,打印发票等;顺序内聚 一个模块能完成多个操作,前一个操作处理的输出是下一个操作处理的输入,模块中各成份的工作是有次序的,各成份的关系也较紧密,则称为顺序聚合。;通信内聚 (Communication Cohesion) 如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。 通常,通信内聚模块是通过数据流图来定义的。;3 软件设计的模块化思想;过程内聚(Procedural Cohesion) 一个模块内各处理成分的动作各不相同,彼此也没什么关系,但它们都受一个控制流的支配,且决定了它们的执行次序。;模块内聚;时间内聚(Classical Cohesion) 时间内聚又称为经典内聚。 这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。 例如:初始化模块和终止模块。;逻辑内聚(Logical Cohesion) 这种模块把几种 相关的功能组合 在一起,每次被 调用时,由传送 给模块的判定参 数来确定该模块 应执行哪一种功 能。;巧合内聚(Coincidental Cohesion) 巧合内聚 (偶然内聚)。当模块内各部分之间没有联系,或者即使有联系,这种联系也很松散,则称这种模块为巧合内聚模块,它是内聚程度最低的模块。;模块内聚判定树;4 软件设计的原则;4.1 提高模块独立性;不可以将两者合为一个,势必设置许多查询开关,如(f);模块过大:可理解程度下降,考虑对该模块分解 模块过小:开销大于有效操作,系统接口复杂, 考虑是否同它的调用模块合并 几种情况下的小模块不合并: 模块具有独立的功能 模块功能可能会发生变化 模块的复用性好,或者其调用模块很复杂 模块的大小,可以用模块中所含语句的数量的多少来衡量。通常规定其语句行数在50~100左右,保

文档评论(0)

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

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

1亿VIP精品文档

相关文档