面向对象软件工程与UML 教学课件 作者 张京 第3章.pptVIP

面向对象软件工程与UML 教学课件 作者 张京 第3章.ppt

  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、HIPO图 IBM公司发明的HIPO图: 层次图 + 输入 / 处理 /输出图 (H图) (IPO图) (Hiberarchy Input Process Output) 带编号的层次图(H图) 传统的IPO图举例 结构图主要成分: 模块——用方框表示,方框中写有模块的名字,一个模块的名字应适当地反映这个模块的功能,这就在某种程度上反映了块内联系; 调用——从一个模块指向另一个模块的箭头表示前一模块中含有对后一模块的调用; 数据——调用箭头边上的小箭头表示调用时从一个模块传入送给另一个模块的数据,小箭头也指出了传送的方向。 结构图的主要基本符号约定: SC中的四种模块 SC中的选择调用 SC中的循环调用 结构图(SC)举例 模块化(Modularization) 例:将问题(P1+P2)分解为P1,P2 设函数C(x)定义问题 x 的复杂程度 函数E(x)确定解决问题 x 需要的工作量 对问题P1和P2,如: C(P1) C(P2) 显然: E(P1) E(P2) 有规律:C(P1+P2) C(P1)+C(P2) E(P1+P2) E(P1)+E(P2) "各个击破"理论 模块度 抽象(Abstraction) 抽象原则应用举例 Windows 一体化的I/O系统设计 数据耦合举例 一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)。 公共数据区指: 全局数据结构 共享通讯区 内存公共覆盖区等 公共耦合举例 公共耦合存在的问题 (1)软件可理解性降低 (2)诊断错误困难 (3)软件可维护性差, (4)软件可靠性差 (公共数据区及全程变量无保护措施) 慎用公共数据区和全程变量!!! 控制耦合举例 控制耦合增加了理解和编程的复 杂性,调用模块必须知道被调模 块的内部逻辑,增加了相互依赖。 去除模块间控制耦合的方法: (1)将被调用模块内的判定上移到调 用模块中进行 (2)被调用模块分解成若干单一功 能模块 改控制耦合为数据耦合举例 内容耦合 模块化设计的原则和目标 耦合是影响软件复杂程度和设计质量的重要因素。 目标:建立模块间耦合度尽可能    松散的系统。 如何降低模块间耦合度: 1、尽量使用数据耦合 限制公共耦合的范围   少用控制耦合   坚决避免使用内容耦合 2、降低接口的复杂性 模块的内聚性和耦合性:两个相互对立且又密切相关的概念。 是同一事物的两个方面,模块的高内聚性往往就意味着模块间的低耦合性。 在进行模块化设计时,耦合性和内聚性都是必须考虑的重要指标。但经实践证明,保证模块的高内聚性比低耦合性更为重要,在软件设计时应将更多的注意力集中在提高模块的内聚性上。 偶然内聚 模块内各部分间无联系 逻辑内聚模块 时间内聚模块中的各个部分在时间上的联系,其内聚程度比逻辑内聚高一些。 往往会和其他相关模块有着紧密的联系,因而会造成耦合性的增加。 过程内聚模块 (5) 通信内聚: 一个模块中的各个部分使用同一个输入数据或产生同一个输出数据,则称该模块的内聚为通信内聚。 由于通信内聚模块中的各个部分都与某个共同的数据密切相关,因此内聚性高于前几种内聚。 通信内聚模块例 内聚与耦合密切相关,同其 它模块强耦合的模块意味者 弱内聚,强内聚模块意味着 与其它模块间松散耦合. 设计目标: 力争强内聚、弱耦合 1、改进软件结构,提高模块独立性。 (降低模块的耦合性,提高模块的内聚性) 尽可能采用内聚性高的模块,最好实现功能内聚;尽量只使用数据耦合,限制公共耦合的使用,避免控制耦合的使用,杜绝内容耦合的出现。 3.4 面向数据流的设计方法 SD以数据流图为基础,它定义了把DFD变换成软件结构的不同映射方法。 3.4.1 基本概念 系统结构特征可归纳为两种典型形式 变换型结构 事务型结构 数据流图可分为两种类型: 变换型数据流 事务型数据流 1、基本模型特征 2、基本模型 3、变换型数据流举例 4、事务型数据流图举例 5、大型系统DFD中,变换型和事务型结构往往共存: 第一级分解后的SC 步骤: (3)第二级分解(分解SC各分支) 自顶向下分解,设计出每个分支的中、下层模块 传入分支的分解(1) 传入分支的分解(2) 传出分支的分解(1)、(2) 中心加工分支的分解 二、事务分析设计方法 1、步骤: (1)在DFD上划分边界、确定事务中心、接收部分和发送部分。 (2)画出SC框架,把DFD上的三部分分别映射

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档