软件工程课本讲解第3章软件设计理论(第3章+第8章)知识分享.ppt

软件工程课本讲解第3章软件设计理论(第3章+第8章)知识分享.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
结构图(SC);① 模块:模块用矩形框表示,并用模块的名字标记它。;② 模块的调用关系和接口:模块之间用单向箭头联结,箭头从调用模块指向被调用模块。;④ 两个辅助符号:在模块A的箭头尾部标以一个菱形符号,表示模块A有条件地调用另一个模块B。当一个在调用箭头尾部标以一个弧形符号,表示模块A反复调用模块C和模块D。;⑤程序的系统结构图(主从关系);同一名字的模块在结构图中仅出现 调用关系只能从上到下 不严格表示模块的调用次序,习惯从左到右,有时为减少交叉,适当调整同一层模块左右位置 ;模块化;模块的独立性;在描述一个模块时,还必须按模块的外部特性与内部特性分别描述 模块的外部特性 模块的模块名、参数表、其中的输入参数和输出参数,以及给程序以至整个系统造成的影响 模块的内部特性 完成其功能的程序代码和仅供该模块内部使用的数据;模块独立性 模块独立性, 是指软件系统中每个模块只涉及软件要求的具体的子功能, 而和软件系统中其它的模块的接口是简单的 例如, 若一个模块只具有单一的功能且与其它模块没有太多的联系, 则称此模块具有模块独立性 一般采用两个准则度量模块独立性。即模块间耦合性和模块的内聚性; 耦合是模块之间的互相连接的紧密程度的度量。 内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。 模块独立性比较强的模块应是高内聚低耦合的模块。;模块间的耦合;模块间耦合的类型;无耦合-没有依赖关系; ;数据耦合 (Data Coupling) 一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。;标记耦合 (Stamp Coupling) 一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。;标记耦合举例;将标记耦合修改为数据耦合举例;控制耦合 (Control Coupling) 如果一个模 块通过传送开 关、标志、名 字等控制信息, 明显地控制选 择另一模块的 功能,就是控 制耦合。;控制耦合举例;控制耦合增加了理解和编程的复 杂性,调用模块必须知道被调模 块的内部逻辑???增加了相互依赖 去除模块间控制耦合的方法: (1)将被调用模块内的判定上移到调 用模块中进行 (2)被调用模块分解成若干单一功 能模块;改控制耦合为数据耦合举例;(本书将其合并到公共耦合)外部耦合 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。 ;公共耦合(Common Coupling) 若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。;公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合。;(1)软件可理解性降低 (2)诊断错误困难 (3)软件可维护性差, (4)软件可靠性差 (公共数据区无保护措施) 慎用公共数据区和全程变量!!!;内容耦合 (Content Coupling) 如果发生下列情形,两个模块之间就发生了内容耦合 (1) 一个模块直接访问另一个模块的内部数据; (2) 一个模块不通过正常入口转到另一模块内部; (3) 两个模块有一部分程序代码重迭(只可能出现在汇编语言中); (4) 一个模块有多个入口。;模块化设计的原则和目标;如何降低模块间耦合度:; ;功能内聚 (Functional Cohesion) 一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。;顺序内聚 如果一个模块内的处理元素是密切相关于同一功能且必须顺序执行,前一功能的输出就是下一功能元素的输入,则称为顺序内聚。 使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到顺序内聚模块。例如,把流程图中的循环部分、判定部分、计算部分组成一个模块,这一个模块内各元素就是顺序内聚模块。;顺序内聚模块;通信内聚(信息内聚) (Informational Cohesion) 这种模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该执行哪一个功能。由于这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。;几个加工同时引用一个共同的数据;通信内聚的另一种 (Communication Cohes

文档评论(0)

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

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

1亿VIP精品文档

相关文档