包图

合集下载

包图

包图

包图包图是在UML中用类似于文件夹的符号表示的模型元素的组合。

系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中。

使用包图可以相关元素归入一个系统。

一个包中可包含附属包、图表或单个元素。

一个"包图"可以是任何一种的UML图组成,通常是UML用例图或UML 类图。

包是一个UML结构,它使得你能够把诸如用例或类之类模型元件组织为组。

包被描述成文件夹,可以应用在任何一种UML图上。

虽然包图并非是正式的UML图,但实际上他们是很有用处的,创建一个包图是为了∶描述你的需求高阶概述。

描述你的设计的高阶概述。

在逻辑上把一个复杂的图模块化。

组织Java源代码。

指南∶类包图创建类包图,以在逻辑上组织你的设计创建UML组件图,以在物理上组织你的设计把子包放置在母包的下面垂直地分层类包图用例包图创建用例包图,以组织你的需求在用例包图上包含角色水平地排列用例包图包包的命名要简单、具有描述性应用包是为了简化图包应该连贯在包上用版型注明架构层避免包间的循环依赖包依赖应该反映内部关系一、类包图1.创建类包图,以在逻辑上组织你的设计图1描述了一个组织成包的UML类图。

除了以下介绍的包原则之外,应用下列的规则来把UML类图组织到包图里:把一个框架的所有类放置在相同的包中。

一般把相同继承层次的类放在相同的包中。

彼此间有聚合或组合关系的类通常放在相同的包中。

彼此合作频繁的类,信息能够通过UML顺序图和UML合作图反映出来的类,通常放在相同的包中。

图1.一个类包图。

2.创建UML组件图,以在物理上组织你的设计。

如果你的组件比较接近技术,例如那些通过Enterprise Java Beans ( EJB)或Visual Basic的组件,你应该优先选择UML组件图来描述物理设计,而不是包图。

图1的版本源自于组件图章节中。

就像你看到的,这个图最适用于物理设计。

永远记住遵循敏捷建模(AM) ( Ambler 2002)的实践--应用合适的Artifact,为工作挑选最好的模型。

包图 构件图 与部署图

包图 构件图 与部署图
12
包图中的关系
2、泛化关系 包间的泛化关系类似于类间的泛化关系,使
用一般包的地方,可以用特殊包代替。 在系统设计中,对某一个特定的功能,有多
种实现方法。例如,实现多数据库支持;实 现B/S和C/S双界面。这时就需要定义一 些高层次的“抽象包”和实现高层次功能的 “实现包”。
13
泛化关系
例如,说明GUI有 两种风格:一种是基 于WinForm的 C/S风格,一种是 WebForm的B/S 风格。
15
创建包图
1.标识候选包的原则:
把类图中关系紧密的类放到一个包中; 在类继承类层次中,把不同层次的类放在不同
的包中。
也可以把用例模型作为包的来源。然而,用 例横跨分析包是非常普遍的——一个用例可 以由几个不同包中的类实现。
16
创建包图
2.调整候选包 在已经识别一组候选包后,然后减少包间依
《import》关系:最普遍的包依赖类型,说明提供者包的命 名空间将被添加到客户包的命名空间中,客户包中的元素也能 够访问提供者包的所有公共元素。
《access》关系:如果只想使用提供者包中的元素,而不想将 两个包合并,则应使用该关系。在客户包中必须使用路径名,才 能访问提供者包中的所有公共元素。
分解 是软件开发中控制软件复杂性的重要
手段。 在OO方法中, 需要考虑如何把相关的类放
在一起。 把语义相近并倾向于同一变化的元素组织起
来加入同一个包中,以便于理解和处理整个 模型。
2
为什么要包
包的作用是: 1)对语义上相关的元素进行分组 2)定义模型中的“语义边界” 3)提供配置管理单元 4)在设计时,提供并行工作的单元 5)提供封装的命名空间,其中所有名称必 须唯一
3

包图

包图

一个大型系统中往往包含了数量庞大的模型元素,如何组织管理这些元素是一个十分重要的问题。

包是一种常规用途的有效的组合机制。

包类似于文件系统中的文件夹或者是目录结构,它是一个容器,用来对模型元素进行分组,并且为这些元素提供一个命名空间。

UML中的一个包直接对应于Java中的一个包。

在Java中,一个包可能含有其他包、类或者同时含有这两者。

进行建模时,通常使用逻辑性的包,用于对模型进行组织。

而包图是由包和包之间的联系组成的,它是维护和控制系统总体结构的重要建模工具。

本章将详细介绍包图的各种概念、表示方法和实例应用。

1.包图的概念1.1包图和包当对大型系统进行建模时,经常需要处理大量的类、借口、构件、节点和图,这时就很有必要将这些元素进行分组,即把那些语义相近并倾向于一起变化的元素组织起来加入同一包中,这样便于理解和处理整个模型。

同时也便于控制包中元素的可见性。

包图是描述包及其关系的图。

与所有UML的其它图一样,包图可以包括注释、约束。

通过各个包与包之间关系的描述,展现出系统的模块与模块之间的关系。

图1是一个包图模型。

包是包图中最重要的概念,它包含了一组模型的元素和图,如图1中的Package A和Package B就是两个包。

Package BPackage A在面向对象软件开发的过程中,类显然是构建整个系统的基本元素。

但是对于大型的软件系统而言,其包含的类将是成百上千,再加上类间的关联关系、多重性等,必然是大大超出了人们对系统的理解和处理能力。

为了便于管理这些类,我们引入了“包”这种分组元素。

在包中可以拥有各种其它元素,包括类、接口、构件、节点、协作、用例,甚至是其它子包或图。

一个元素只能属于一个包。

包的作用是:1)对语义上相关的元素进行分组。

如,把功能相关的用例放在一个包中。

2)提供配置管理单元。

如,以包为单位,对软件进行安装和配置。

3)在设计时,提供并行工作的单元。

如,在设计阶段,多个设计小组,可以同时对几个相互独立包中的类进行详细设计。

第五章 包图

第五章 包图

• •
构造性
<<system>>
<<subsystem>>
说明
表示正在建模的整个系统
表示正在建模的系统中某个独立的部分。 对于较大的系统,经常需要将其划分为几个独 立的子系统,每个子系统从较低的抽象层次观 察的时候就像一个较小的系统
<<facade>> <<stub>>
描述一个只引用其他包内元素的包,主要 用来为其他一些复杂的包提供简略视图 一个代理包,通常应用于分布式系统的建 模中,它服务于某个其他包的公共内容
总结:
本章介绍了UML包图,应用包图的目的是为了简化图, 通常当一个图变得庞大且在单一页中无法打印的时候引入 包。 • 包图中可以包含任何一种UML图,但通常更多的是用例 图或类图; • 创建用例包图,可以帮助组织需求,对需求进行高层次 的概述; • 创建类包图,可以在逻辑上组织类,对设计进行高层次 的概述。
在Rational Rose 中,支持4种包的构造型,如图5-6~
5-9。
5.2.4 子系统

系统是组织起来以完成一定目的的连结单元的集合,由 一个高级子系统建模,该子系统间接包含共同完成现实世 界目的的模型元素的集合。 子系统是指有单独说明和实现部分的包。它表示具有 对系统其他部分存在接口的连贯模型单元。 子系统使用具有构造型关键字subsystem的包表示,如 下图所示。
包的依赖性可以加上许多构造型规定它的语义,其中最 常见的是引入依赖。引入依赖(Import Dependency)是包与 包之间的一种存取依赖关系。 • 引入是指允许一个包中的元素存取另一个包中的元素, 引入依赖是单向的。引入依赖的表示方法是在虚箭线上标有构 造型Inport,箭头从引入方的包指向输出方的包。 • 如图所示

第06章 包图

第06章 包图

2.包的表示 包的表示
简单包名
路径包名
3.包中元素的可见性 包中元素的可见性 包中的元素对其他包可以访问,也可以隐藏, 包中的元素对其他包可以访问,也可以隐藏, 可见性具有可见、保护和私有三种形式。 可见性具有可见、保护和私有三种形式。
可见 保护 私有
6.2 包的关系
1. 依赖关系 如果一个包要访问或导入另外一个包中的元素, 如果一个包要访问或导入另外一个包中的元素, 则两个包之间存在依赖关系。 则两个包之间存在依赖关系。 包的依赖关系用UML中的虚线箭头来表示,由 中的虚线箭头来表示, 包的依赖关系用 中的虚线箭头来表示 源包指向被依赖的独立包。 源包指向被依赖的独立包。 在依赖关系上标注《 的构造型。 在依赖关系上标注《import》导入的构造型。 》导入的构造型
第6章 包图
6.1 包图 6.1 包的概念 6.2 包的关系 6.3 包的设计原则 6.4 包图
● —— 重要知识点
2. 泛化关系 包之间也可以存在泛化关系。 包之间也可以存在泛化关系。特殊包继承一般 包的特性。 包的特性。
泛化
依赖
3. 包的嵌套 包之中可以嵌套子包。 包之中可以计包时,应遵循以下原则: 在设计包时,应遵循以下原则:
● 重用等价原则 ● 共同闭包原则 ● 共同重用原则 ● 非循环依赖原则
6.4 包图
包图由包和包之间的联系构成, 包图由包和包之间的联系构成,包图中 由包和包之间的联系构成 的图形元素是包, 的图形元素是包,包之间用依赖关系或泛 化关系连接。包图是对系统结构建模的重 化关系连接。包图是对系统结构建模的重 要工具。 要工具。
书店图书管理的包图: 书店图书管理的包图:
● 小结
3、共同重用原则 、

UML之包图

UML之包图

UML之包图包图的基本概念: 包图是⽤来描述模型中的包和所包含元素的组织⽅式的图,是维护和控制系统总体结构的重要内容。

包图能够组织许多UML中的元素,不过其最常⽤的⽤途是⽤来组织⽤例图和类图。

包图中包含包元素以及包之间的关系。

与其他图类似,包图中可以创建注解和约束。

包的概念: 包是⽤于把模型组织成层次结构的通⽤机制,它不能执⾏。

包名:包有简单名、路径名包中的元素:包中可以容纳各种⾼级的模型元素,如类和类的关系、状态机、⽤例图、交互、协作等,甚⾄是⼀个完整的UML图。

另外,包中还可以含有包,这被称为包的嵌套。

包元素的可见性:控制包外元素对包内元素的访问权限。

公有(+):只要当前包被引⼊,包内的公共元素即对引⼊者可见。

保护(#):仅对当前包的⼦包可见。

私有(-):仅对该包可见,外部⽆法访问。

另外,如果某元素对于⼀个包是可见的,则它对于嵌套在这个包中的任何包都是可见的。

包的构造型:可以使⽤构造型来描述包的种类。

UML预定义了⼀些构造型,⽤户也可⾃⾏定义新的构造型。

⾼内聚,低耦合:在外部观察包时,可以将内部元素视作⼀个整体,⽅便将多个元素⼀同处理。

包内部的元素应该保证有相似、相同的语义,或者其元素有同时更改和变化的性质。

注:在实际应⽤中,包对包含的元素的作⽤相当于C++和C#中命名空间的概念或Java中的包概念。

和这些概念不同的是,UML包中的内容不限于类和接⼝,包中的元素种类要丰富的多。

元素的分包原则:1)元素不能“狡兔三窟”:树形结构的⼀个节点不能同时拥有两个⽗节点,⼀个元素也不允许在两个包中重复出现。

2)相同包内元素不能重名:包所具有的命名空间的作⽤要求⽤⼀个包中的同种类元素名称必须是唯⼀的。

3)包内元素要紧密联系:分在同⼀个包中的元素应该具有某些相同的性质,即包的⾼内聚性。

4)包与包尽可能保持独⽴:包和包之间需要尽可能减少耦合度,要求包内元素与外部元素有尽可能少的依赖关系。

包的依赖关系:包之间的依赖关系实际上是从⼀个更⾼的层次来描述包内某些元素之间的依赖关系。

包图PPT课件

包图PPT课件
7.8包图
.
1
包图就是用来描述包及其关系的图 ,常用包图来描述系统、子系统的宏观 组成和结构,或者用包图对成组元素分 组,以方便系统开发、维护和管理。
.
2
3
➢ 模型需要有自己的内部组织结构,一方面能够将一个 大系统进行分解,降低系统的复杂度;另一方面能够 允许多个项目开发小组同时使用某个模型而不发生过 多的相互牵涉。
Java中的一个包。在Java中,一个包可能含有其
他包、类或者同时含有这两者。UML中的包可以
包含子包、类、接口、构件和用例。
➢ 图5-1是一个典型的包,
包的名称是Client,包
中有2个类: OrderForm、
Order。
图5-1 包
.
包的表示
5
➢ 在UML中一个包由2个矩形框组成,上面是一 个小矩形,下面是一个大矩形。图5-2就是最 常见的包表示法。
.
14
6.访问权限
假设包X中的元素要访问包Y中的元素,则,表5-1列出了包间关系 、被访问元素的可见性与访问权限的关系。
表5-1 包X访问包Y中元素的条件
包Y(包Y中元素的可 见性)
包X(包X中元素素可以访问Y中可见性是+的
元素
#
若X继承了Y,则X中的任何元素可以访问Y中可见性是#的
图5-6 元素的2种表示方法
.
10
2.包中的元素是用例
图5-7 包中的元素是用例
图5-7表示,包ATM中包含两个用例,
它们是:取款用例和超额. 取款用例。
11
3.包中元素是包
12
包中元素是包时,就是包嵌套。图5-8所示,就是包嵌套的 例子。外部包System:Web里面嵌入了一个包UI,UI包中有 一个类Page。

包图组件图部署图

包图组件图部署图

包(Package)
引入与输出:引入(import)允许一个包中的元素单向访问另一包中的元素 允许一个包中的元素单向访问另一包中的元素. 引入与输出 引入 允许一个包中的元素单向访问另一包中的元素
在UML中,用一个由构造型import修饰的依赖为 引入关系建模.通过把抽象包装秤有含义的组块, 然后用引入关系控制对它们的访问,就能控制 大量抽象的复杂性. 输出(export)就是包的公共部分 就是包的公共部分. 输出 就是包的公共部分 一个包输出的部分仅对显示地引入这个包 的其他包中的元素是可见的 注:引入和访问依赖是不可传递的.
虚包(Generic Package): 虚包
虚子程序(Generic Subprogram): 虚子程序
接口(Interface)
概述: 概述 在组件图中,组件可以通过其他组件的接口来使用其他组件中定义
的操作.通过使用命名的接口,可以避免在系统中各个组件之间直接发生依 赖关系,有利于组件的替换 接口和组件之间的关系: 实现关系(Realization): 依赖关系(Dependency): 组件接口的分类: 导入接口(import interface):供访问操作的组件使用 导出接口(export interface):由提供操作的组件提供
组件图(Component Diagram)
背景: 背景:在软件建模的过程中,使用用例图可以推断系统希望的行为;使用类图
可以描述系统中的词汇;使用时序图、组件图、状态图和活动图可以说明这些词 汇中的事物如何相互作用以完成某些行为。在完成系统的逻辑设计之后,下一步 要定义设计的物理实现,如可执行文件、库、表、文件和文档等。对面向对象系 统的物理方面进行建模时要用到两种图:组件图和配置图。 概述: 概述:使用组件图能够可视化物理组件以及它们之间的关系,并描述其构造细节. 组件图描述了软件的各种组件和它们之间的依赖关系.在UML中,组件图是系统实 现视图的图形表示,而其中的一个组件图只能表示系统实现视图的一部分,也即任 何一个组件图都不能描述系统实现的所 有方面,只有系统中的组件组合起来 才能表示完整的系统实现视图
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第9章 包图(Package Diagram)
9.1 9.2 9.3 9.4 基于包的系统静止状态下的结构建模 包图 包图的表示方法 总结
2015-4-10
3
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
第9章 包图(Package Diagram)
9.1 9.2 9.3 9.4 基于包的系统静止状态下的结构建模 包图 包图的表示方法 总结
2015-4-10
5
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.1 基于包的系统静止状态下的结构建模
UML 包图(Package Diagram)是一种有效的建模工具,它为基 于包(Package) 的系统在静止状态下的结构建模 在UML包图中,每个包如同操作系统中的文件夹,我们根据需 要建立相应的文件夹结构,然后,把相应的模型和模型元件放 入其中 这样在我们查找某个模型或模型元件时,我们知道它们在哪里 因为用例图和类图在设计和开发中更倾向于扩张,所以,包图 最常见的是用于用例图中的用例和类图中的类的分群,以便保 持用例图和类图在系统功能上的清晰划分 实际上包图可以应用于任何UML建模图中,这完全取决于建模 是子系统或某种区分的需要
图9-3包security及其中元素的另一种表示方法
2015-4-10
17
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.3.1 包
系统自身定义了最外层的命名空间,它是所 有名字的基础 它是一个包,通常还带有几层嵌套的包,直 到得到最终基本元素的名字为止
2015-4-10
2015-4-10
6
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
第9章 包图(Package Diagram)
9.1 9.2 9.3 9.4 基于包的系统静止状态下的结构建模 包图 包图的表示方法 总结
2015-4-10
7
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
包中元素的表示方式有两种,一是在包中用 矩形画出这些元素,这种方法下,包的名称 就可以放在包图左上部的标签中
security
Credentials IdentityVerifier
2015-4-10
图9-2 包security及其中元素
15
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
18
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.3.1 包
java
util
Date
图9-4 嵌套的包
2015-4-10 19
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.3.1 包
如果用图9-4的形式表示多层的嵌套将很麻 烦,UML用双分号(::)隔开的命名空间的 形式来表示这种嵌套关系
2015-4-10
13
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.3.1 包
UML使用一个左上部带有标签的矩形表示包
security
图9-1包security
2015-4-10
14
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.3.1 包
2015-4-10
32
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
2.导入
security users User security::Credentials security::IdentityVerifier 《import》 +Credentials +IdentityVerifier
User
《import》
+IdentityVerifier
-MD5Crypt
图9-7 具有访问关系的包图
2015-4-10
31
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
2.导入
这个例子表示包users中的元素可以访问包 security中的元素Credentials和 IdentityVerifier
9.3 包图的表示方法
9.3.1 包 9.3.2 包中元素的可见性 9.3.3 包之间的关系
2015-4-10
12
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.3 包图的表示方法
9.3.1 包 9.3.2 包中元素的可见性 9.3.3 包之间的关系
9.3.1 包
第二种表示方法是用实线将包和包中的元素 连接起来 这种包含关系用接近包那一端的带有加号的 圆圈来表示
2015-4-10
16
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.3.1 包
security
Credentials
IdentityVerifier
2015-4-10
22
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.3 包图的表示方法
9.3.1 包 9.3.2 包中元素的可见性 9.3.3 包之间的关系
2015-4-10
23
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.3.3 包之间的关系
2015-4-10
10
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
第9章 包图(Package Diagram)
9.1 9.2 9.3 9.4 基于包的系统静止状态下的结构建模 包图 包图的表示方法 总结
2015-4-10
11
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
2015-4-10
25
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
1. 访问
包的访问关系详细的说明了被导入的元素具 有私有的可见性 UML用构造型<<access>>加在虚线上表示 包之间的访问关系
2015-4-10
26
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
2015-4-10 34
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.3.3 包之间的关系
1.访问(Access) 2.导入(Import) 3.合并(Merge)
9.2 包图
UML包图展示了包和它们 关系 Package Diagram = Package + Relationship
2015-4-10
9
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.2 包图
UML包图的语义简单,但意义重大,它用 UML符号表示模型元素的组合 系统中的每个元素都只能为一个包所有,一 个包可嵌套在另一个包中 使用包图可以将相关元素归入一个系统 一个包中可包含附属包、图表或单个元素
2015-4-10 28
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.3.3 包之间的关系
1.访问(Access) 2.导入(Import) 3.合并(Merge)
2015-4-10
29
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
包之间有三种关系:
访问(Access) 导入(Import) 合并(Merge)
UML用带开箭头的虚线来表示包之间的关系
2015-4-10
24
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
9.3.3 包之间的关系
1.访问(Access) 2.导入(Import) 3.合并(Merge)
java::util
Date
java::util::Date
(a)
2015-4-10
(b)
20
袁涛 孔蕾蕾
图9-5 用双分号(::)隔开的命名空间表示嵌套的包
统一建模语言UML –包图(Package Diagram)
9.3 包图的表示方法
9.3.1 包 9.3.2 包中元素的可见性 9.3.3 包之间的关系
9.2 包图
包提供了一种分类相关UML元素和定义命名 空间(Namespace)的方法。几乎所有的UML 元素都可以用包来分组,而且包还可以嵌套 包的本质意义在于下面三点:
在逻辑上把一个复杂的模型模块化 按一定的规律为相关元素分组 定义命名空间
2015-4-10
8
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
1. 访问
security users 《access》 User +Credentials +IdentityVerifier -MD5Crypt
图9-6 具有访问关系的包图
2015-4-10
27
袁涛 孔蕾蕾
统一建模语言UML –包图(Package Diagram)
1. 访问
该例中,users被称为源包(Source Package),security被称为目标包(Target Package) 这个例子表示包users要用到包security中的 元素 由于可见性的原因,users中的元素User只 能使用security中的元素Credentials和 IdentityVerifier,而不能使用MD5Crypt
相关文档
最新文档