- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九讲 包图
目录
包图的概念
包的表示
包图中的关系
阅读包图
创建包图
包图建模
2
1. 包图的概念
模型的组织结构
系统的三层结构
先分层再细分成包的方式
用户界面代表与用户进行交互的界面
业务逻辑层用来处理系统的业务流程
数据访问层是程序中和数据库进行交互的层
3
1. 包图的概念
对复杂系统进行建模时,经常需要处理大量的类、接口、构件、节点和图,有必要将这些元素进行分组,就是把语义相近并倾向于一起变化的元素组织起来加入同一包,这样方便理解和处理整个模型,而且也便于轻松地控制这些元素的可见性,使一些元素在包外可见,一些元素隐藏在包内。
4
1. 包图的概念
1.包图(Package Diagram)
是一种维护和描述系统总体结构的模型的重要建模工具,通过对图中各个包以及包之间关系的描述,展现出系统的模块与模块之间的依赖关系。
包图
5
1. 包图的概念
2. 包图的作用
对语义上相关的元素进行分组
提供配置管理单元
在设计时,提供并行工作的单元
提供封装的命名空间
3. 包图中的元素
在包中可以拥有各种其他元素,包括类、接口、构件、节点、协作、用例,甚至是其它子包或图 。
一个元素只能属于一个包!
6
2. 包的表示
UML中,用文件夹符号来表示一个包,它包含2栏。
PageName
PageName
ClassName-1
ClassName-2
…..
PageName
类名
Rose常用表示法
包名放在第一栏
在第二栏画出所
包含的类图形表示
第二栏列出
包含的类名
包名放在第二栏
System:Web
UI
class
嵌套包
包的表示法
7
2. 包的表示
包的名称
每个包必须有一个与其它包相区别的名称。标识包名称的格式有两种:简单名(Simple Name)和路径名(Path Name)。
简单名:仅包含一个名称字符串;
路径名:用该包的外围包的名字作为前缀,加上包本身的名字。
8
2. 包的表示
2. 包的元素
在一个包中可以拥有各种元素,包括类、接口、构件、节点、协作、用例,甚至是其它包或图
这是一种组成关系,意味着元素是在这个包中声明的,一个元素只能属于一个包。
每一个包就意味着一个独立的命名空间,两个不同的包,可以具有相同的元素名,但由于所位于的包名不同,因此其全名仍然是不同的。
在包中表示拥有的元素时,有两种方法:一是在第二栏中列出所包含的元素名,二是在第二栏中画出所包含的元素的图形表示。
9
2. 包的表示
3. 包的可见性
像类中的属性和方法一样,包中的元素也有可见性,包内元素的可见性控制了包外部元素访问包内部元素的权限。
包A中元素的可见性
包B中元素的访问权限
+
若B引用了A,则B中的任何元素可以访问A中可见性是+的元素
#
若B继承了A,则B中的任何元素可以访问A中可见性是#的元素
-
可见性是-的元素,只能被同一个包中的其它元素访问
可见性与访问权限(假设包B中的元素访问包A中的元素)
包的可见性有3种:可以用“+”来表示“public”;用“#”来表示“protected”;用“-”来表示“private” 。
10
2. 包的表示
包内元素的可见性,标识了外部元素访问包内元素的权限。
包元素的可见性
11
2. 包的表示
4. 包的构造型
为了表示包的新特性,用构造型来描述包的新特征。包的构造型有5种:
《system》构造型:表示正在建模的整个系统。
《subsystem》构造型:表示正在建模的系统中某个独立的子系统。
《facade》构造型:只是某个其它包的视图,它主要用来为其它一些复杂的包提供简略视图。是包的一种扩充,它只拥有对其他包内元素的引用,本身不包含任何定义的元素模型。
《stub》构造型:作为代理的包,它服务于某个其他包的公共内容。这通常应用于分布式系统的建模中。
《framework》构造型:用来表示一个框架的,框架是一个领域内的应用系统提供可扩充模板的体系结构模式 。
12
3. 包图中的关系
包图中的关系包括依赖关系和泛化关系。
1 依赖关系
依赖关系又可以分为4种。在依赖关系中 ,我们把箭尾端的包称为客户包,把箭头端的包称为提供者包。
《use》关系:是一种默认的依赖关系 ,说明客户包(箭尾端的包)中的元素以某种方式使用提供者包(箭头端的包)的公共元素,也就是说客户包依赖于提供者包。如果没有指明依赖类型,则默认为《use》关系。
《import》关系:是最普遍的包依赖类型,说明提供者包的命名空间将被添加到客户包的命名空间中,客户包中的元素也能够访问提供者包的所有公共元素。
13
2019-6-26
14
可编辑
3
文档评论(0)