第五章包图课件.ppt

上传人:小飞机 文档编号:1545811 上传时间:2022-12-03 格式:PPT 页数:28 大小:182.50KB
返回 下载 相关 举报
第五章包图课件.ppt_第1页
第1页 / 共28页
第五章包图课件.ppt_第2页
第2页 / 共28页
第五章包图课件.ppt_第3页
第3页 / 共28页
第五章包图课件.ppt_第4页
第4页 / 共28页
第五章包图课件.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《第五章包图课件.ppt》由会员分享,可在线阅读,更多相关《第五章包图课件.ppt(28页珍藏版)》请在三一办公上搜索。

1、第五章 包图,本章要点: 理解包图和包的关系 理解包和包之间的关系基础内容:模型的组织结构重点掌握:包中的模型元素一般了解:包的嵌套,5.1 包图的定义,包是用于把元素组织成组的通用机制。 UML模型中的组织是通过包(Package)来实现的,包可以把所建立的各种模型组织起来,形成各种功能或用途的模块。 在UML中对类或者其它模型元素分组时则使用包图。包是用来对一个图的元素(如类和用例)进行分组的。把分组后的元素用一个带有标签的文件夹图标包围起来,就完成了对其打包。,模型的组织结构,对系统模型的内部组织结构通常采用先分层再细分成包的方式。 系统分层常用一种方式是将系统分为三层结构,即用户界面层

2、、业务逻辑层和数据访问层。,用户界面层,业务逻辑层,数据访问层,用户界面层代表与用户进行交互的界面,既可以是Form窗口,也可以是Web的界面形式。一个应用可能有很多不同的界面表示形式,通过对界面中数据的采集和处理,以及响应用户的请求与业务逻辑层进行交换。业务逻辑层是用来处理系统的业务流程,它接受用户界面请求的数据,并根据系统的业务规则返回最终的处理结果。它将系统的业务规则抽象出来,按照一定的规则形成在一个应用层上。数据访问层是程序中和数据库进行交互的层。,包图和包,包是包图中最重要的概念,它包含了一组模型元素和图,如图5-2所示。 组成包图的元素有:包、子系统、依赖关系,5.2 包的组成,在

3、UML中,包的标准形式是使用两个矩形来表示的,即一个小矩形(标签)和一个大矩形,小矩形紧紧连结在大矩形的左上角上,包的名称位于大矩形的中间,如图所示。,5.2 包的组成,和其他模型元素的名称一样,每个包都必须有一个与其他包相区别的名称。包的名称是一个字符串,它有两种形式:简单名(Simple Name)和路径名(Path Name)。如:包名domain就是一个简单名 路径名com:bookshop:domain,包的可见性,包的可见性用来控制包外元素对包内元素的访问权限。包的可见性: (1)- 被private关键字定义的私有元素对包外部元素完全不可见。意味着包中的元素只能被拥有或引用该元素

4、的包存取和使用。 (2)# 被protected关键字定义的被保护的元素只对那些与包含这些元素的包有泛化关系的包可见。 (3)+ 被 public定义的公共元素对所有引入的包以及它们的后代都可见。即允许其他元素存取和使用包中内容。,一个包只能看到其他包中被指定为具有公共可见性的元素。具有受保护可见性的元素只对包含它的包的后代包具有可见性。一个类的后代可以看到它的祖先中具有公共或受保护可见性的成员,而其他类则只能看到具有公共可见性的成员。,5.2.3 构造型,在UML中所有的扩展机制都适用于包,可以用标记值描述包的新特性,用构造性描述包的新种类。包具有不同的构造型,表现为不同的特殊类型的包。 在

5、Rational Rose 中,支持4种包的构造型,如图5-65-9。,5.2.4 子系统,系统是组织起来以完成一定目的的连结单元的集合,由一个高级子系统建模,该子系统间接包含共同完成现实世界目的的模型元素的集合。 子系统是指有单独说明和实现部分的包。它表示具有对系统其他部分存在接口的连贯模型单元。 子系统使用具有构造型关键字subsystem的包表示,如下图所示。,5.3 包图中的关系,包之间的关系总的来讲包括:依赖关系和泛化关系。1、 依赖关系对于由对象类组成的包,也就是如果两个包中的任意两个类存在依赖关系,则称为包之间存在依赖关系。,在创建包的依赖关系时,尽量避免如图5-14所示的循环依

6、赖关系。为解决循环依赖关系,需要将Package A包或者Package B包中的内容进行分解,将依赖于另一个包中的内容转移到另外一个包中。如图5-15所示,Package A中依赖Package B中的类转移到Package C中。,包的依赖性可以加上许多构造型规定它的语义,其中最常见的是引入依赖。引入依赖(Import Dependency)是包与包之间的一种存取依赖关系。引入是指允许一个包中的元素存取另一个包中的元素,引入依赖是单向的。引入依赖的表示方法是在虚箭线上标有构造型Inport,箭头从引入方的包指向输出方的包。 如图所示,2、泛化关系 泛化关系表示事物的一般和特殊的关系。如果两

7、个包之间存在泛化关系,就是指其中的特殊性包必须遵循一般性包的接口。 就像类的继承一样,包可以替换一般的元素,并可以增加新的元素。如图5-17所示,5.4 包的嵌套,包可以将其他包作为包内的元素,子包又可以拥有自己的子包,这样就可以构成一个系统的嵌套结构,以表达系统模型元素的静态结构关系。包的嵌套可清晰地表现系统模型元素之间的关系,但在建立模型时包的嵌套不宜过深,包的嵌套层数一般以2到3层为宜。 如图5-18所示。,包图举例,包图举例,包图举例,其中:AWT是Java中管理GUI类的包。,包图另一种划分方式,实例:建立“医院病房监护系统”的包图,将系统中具有依赖关系的模型元素放在一起构成包,通过

8、分组机制建立包图。包图按照层次结构组织,分为用户层、应用层和数据库层。,通过前面的分析,得到下面的类: 值班护士、医生、病人、病症监视、标准病症信号 标准病症信号库、 病历库、病历、中央监护系统 病情报告、报警信号、病人病症信号,对“医院病房监护系统”进行分析,确定系统的主要功能如下:1. 病症监视器可以将采集到的病症信号(组合),格式化后实时的传送到中央监护系统。2. 中央监护系统将病人的病症信号分解后与标准的病症信号库里的病症信号的正常值进行比较,当病症出现异常时系统自动报警。3. 当病症信号异常时,系统自动更新病历并打印病情报告。4. 值班护士可以查看病情报告并进行打印。5. 医生可以查

9、看病情报告,要求打印病情报告,也可以查看或要求打印病历。6. 系统定期自动更新病历。,包建模的技巧,(1)包的命名要简单,可以用描述性的名称为包命名;(2)将高内聚的模型元素放在一个包中,例如,属于继承关系的父类和子类应放入相同个包内; 类与类之间组成关联关系时,这些类应放入相同的包中; 如果类与类之间有紧密的协作关系时,这些类应当放入相同的包内。(3)注意命名含义,即被导入到一个包中的元素并不知道导入它的包对它做了什么。,(4)避免包间的循环依赖:包A依赖于包B,包B依赖于包C,而包C依赖于包A,这就形成一个循环:ABCA。循环依赖是一个很好的信号,意味着需要重构一个或多个包,把导致循环依赖

10、的因素从包中除掉。(5) 包依赖应该反映内部关系:当一个包依赖于另一个包时,意味着这两个包的内容间存在着一个或多个的关系。例如,如果是一个用例包图,那么就有可能两个用例之间存在include 、extend、 inheritance关系,而两个用例分别处于不同的包中。,总结:,本章介绍了UML包图,应用包图的目的是为了简化图,通常当一个图变得庞大且在单一页中无法打印的时候引入包。 包图中可以包含任何一种UML图,但通常更多的是用例图或类图; 创建用例包图,可以帮助组织需求,对需求进行高层次的概述; 创建类包图,可以在逻辑上组织类,对设计进行高层次的概述。,在创建类包图的时候,一般会采用垂直分层的方式组织包中的类,以显示类以及类之间的关系。一般的,应该把相同继承层次的类、彼此间有聚合或组合关系的类、彼此合作频繁且信息能够通过UML顺序图和UML协作图反映出来的类组织在相同的包中。用例包图可以包含角色,可以水平地排列用例包图,应该把关联的用例放在一起,即将具有include 、extend、 generalization关系的用例放在相同的包中。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号