uml建模第五章 包图

合集下载

UML面向对象分析、建模与设计课件第五章 类图

UML面向对象分析、建模与设计课件第五章 类图
即可变、只增与冻结。
类——操作
操作是一个可以由类的对象请求以影响其行为的服务的实现,也即 是对一个对象所做的事情的抽象,并且由这个类的所有对象共享。
操作是类的行为特征或动态特征。 操作的语法格式为:
可见性OPT 操作名 ⌊(参数列表)⌋OPT ⌊:返回类型⌋OPT ⌊{特性}⌋OPT
操作名:操作的标识符。在描述操作时,操作名是必须的,其他部 分可选。
Student
+monitor 1
1..*
自关联
类图中的关系——关联关系
关联名称:放在关联路径的旁边,但远离关联端。 角色:放在靠近关联端的部分,表示该关联端连接的类在这一关联
关系中担任的角色。角色名上也可使用可见性修饰符号。 多重性:放在靠近关联端的部分,表示在关联关系中源端的一个对
象可以与目标类的多少个对象之间有关联。 导航性:一个布尔值,用来说明运行时刻是否可能穿越一个关联。 限定符:是二元关联上的属性组成的列表的插槽,其中的属性值用
/WorksForCompany
Department * +department 1 WorksForDepartment
* Person
类图中的关系——泛化关系
泛化关系定义为一个较普通的元素与一个较特殊的元素之间的类元 关系。其中描述一般的元素称为父,描述特殊的元素称为子。
通过泛化对应的继承机制使子类共享父类的属性和操作,小了模型 的规模,同时也防止了模型的更新所导致的定义不一致的意外。
法了,此时称之为N元关联。
类图中的关系——关联关系
class Logical View
ClassA
AssociationName
+rolename 0..*

包图

包图

包图包图是在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,为工作挑选最好的模型。

包图

包图

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

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

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

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

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

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

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

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

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

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

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

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

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

图1是一个包图模型。

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

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

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

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

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

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

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

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

2)提供配置管理单元。

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

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

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

静态视图—类图对象图和包图

静态视图—类图对象图和包图

1.1 类图概述——重要性
类图表述系统中类的静态结构,不仅描述 了系统中的类,还表示了类之间的各种关 系,比如:关联、依赖、泛化、实现等
James Rumbaugh对类的定义:类 (Classs)是具有相似结构、行为和关系 的一组对象的描述符 类 + 类的关系 = 类图
1.2 类图概述——类图的作用
salary:Dollars
Student
major:String
3.5 关联关系(Association)
关联是一种结构关系,它指明一个类与 另一个类在类间的联系,表示类之间的 连接,它使一个类的可见属性和方法被 另一个类使用
关联关系包括:双向关联,单向关联, 聚合和反射关联
除聚合关系外,关联关系通常使用实线 +箭头的方式表示
3.2 依赖关系(Dependency)
如果有两个类A与B,当我们修改A类时 会引起B类的修改,我们称类B依赖于类 A。
依赖关系可能由各种原因引起,比如一 个类向另一个类发送消息;一个类是另 一个类的数据成员,一个类是另一个类 的某个操作参数等(use a关系)
UML中包含了4种依赖关系:使用(Usage) 依赖,抽象(Abstraction)依赖,授权 (Permission)依赖和绑定(Binding)依赖
3.3.1 泛化关系的表示
在UML语言中,采用空心箭头+实线 (如果父类是接口,则采用虚线)的 方式表示泛化关系,箭头指向父类
类的继承
接口的继承
3.3.1 泛化关系的表示举例
BankAccount
owner:String balance:Dollars deposit(amount:Dollars) withdrawl(amout:Dollars)

uml-05包图与OCL

uml-05包图与OCL

3、共同重用原则
把将会同时,或使用时间相隔不长的建模元 素放到同一个包中。不会一起使用的类不要放 在同一个包中。
4、非循环依赖原则
包之间的依赖关系不要形成循环:即A依赖 B,B依赖C,C又依赖A。
9.1.4 包图
包图由包和包之间的联系构成,包图中 的图形元素是包,包之间用依赖关系或泛 化关系连接。包图是对系统结构建模的重 要工具。
解释:
⑵ 实型
i1 = i2 等于,布尔型 (<>,>,<,<=,>=) i1 + i2 加法,实型 ( -, *, / ) i1.abs 取绝对值,实型
i1.max(i2) 取最大数,实型(min)
r1.round 四舍五入取整, 整型 r1.floor 向下取整, 整型
解释:
⑶ 字符串型
s1.conscat(s2) 连接,字符串 s1.size 字符串长度,整型 s1.toLwer 转换成为小写字母,字符串
包是一个“容器” ,包中可以包含类、接口、构件、用
例、结点、活动、状态、包等其他模型元素。 包是对软件模型进行分解、组织的有效的模型元素。
2.包的表示
UML用带把的矩形框来表示包。
简单包名
路径包名
路径包名中位于前面的是外围包,后面的是内部包。 注意包的嵌套层数不应过多。
3.包中元素的可见性
包中的元素对其他包可以访问,也可以隐藏, 可见性具有可见、保护和私有三种形式。
表示订单的税金是订单和的6.5% 。
● 蕴涵
context 订单 inv
订单的文章->size = 0 implies 订单和 = 0
表示 “订单的文章”的数量如果等于0,则“订 单”的“订单和”也必须等于0

uml建模第五章 包图

uml建模第五章 包图
第5章 包图
5 .1 包图的概念
5.2 包的表示 5.3 包图中的关系 5.4 阅读包图
5.5 创建包图 5.6 包图建模
精选2021版课件
1
5.1 包图的概念
1.包 包就像一个“容器”,可用于组织模型中
的相关元素,以便容易理解。 将相关的各种类型的模型元素组织成组的
通用机制。 包的实例没有任何语义。 仅在建模时有意义,而不必转换到可执行
精选2021版课件
23
设计包的原则
设计包时,应遵循以下原则:
① 重用等价原则 ② 共同闭包原则 ③ 共同重用原则 ④ 非循环依赖原则
精选2021版课件
24
设计包的原则
① 重用等价原则
② ——把类放入包中时,应考虑把包作为可重 用的单元。
② 共同闭包原则
——把那些需要同时改变的类放在同一个包中。
若一个类的行为或结构的改变要求另一个类做相应的 改变;
5.4 创建包图
绘制包图的基本步骤如下:
① 分析系统的模型元素(通常是对象类),把概念 上或语义上相近的模型元素归入同一个包。
② 对于每一个包,标出其模型元素的可视性,确定 包内每个元素的访问属性,是公共、保护或私有。
③ 确定包与包之间的依赖联系,特别是“引入”关 系。
④ 确定包与包之间的泛化关系。 ⑤ 绘制包图。
1.包的符号表示 嵌套包及其表示
✓一个包可以包含其他 的包; ✓嵌套包可以访问自身 的元素; ✓应尽量避免使用嵌套 包,一般2-3层最好。
Library Users Librarian Borrower
嵌套包
精选2021版课件
7
5.2 包的表示
1.包的符号表示 嵌套包及其表示

第5章 信息系统分析与设计 包图

第5章 信息系统分析与设计 包图

显现
隐藏
5.1.1 包的定义 5.包成员 包成员是包中的元素,例如下图中的“检索 图书”用例就是“处理订单”包的成员。
包成员
5.1.2 包的命名
1. 包名
包名应由标识符表示,并且用能够表示包含 义的名字。包的名字放到包的顶部,或包的内 面。例如:
5.1.2 包的命名
2. 包成员的命名
包中成员的名字不允许相同。 非限定名:成员的名字,不包括包的名字。 例如,下图“货品” 限定名: 成员前面缀包名。例如, B::货品
5.2.1 依赖关系
2. 包依赖的类型
2)抽象:如果一个包的元素是对另外一个包元 素的抽象,则两个包之间存在抽象关系 。
5.2.1 依赖关系
2. 包依赖的类型
3)跟踪:如果一个包的元素是对另外一个包元 素的的深化,则两个包之间存在跟踪关系 。
5.2.2 导入关系 1. 导入关系的含义
导入(import)是指将A包的元素导入到B包中,使得导入
1、重用等价原则
对于同类可重用的模型元素尽量放到一个包
中,不要把可重用模型元素和不可重用的模型
元素混到一个包中。
2、共同重用原则
把同一个应用要重用的多个模型元素放到同一
个包中,以减少包间的依赖,提高包的独立性。
3、共同封闭原则
把可能同时修改,同时维护的模型元素放到 一个包中,以便于维护和升级。
5.1.3 包的可见性
包的可见性是指包中成员被其他包或模 型元素访问的程度 ,分以下三种情况:
可见public : + 受限protected : # 私有private : -
5.1.4 包图
包图用来展现包和包之间的关系。
书店图书管理的包图:

第5章UML包图

第5章UML包图

17
5.6.2 调整候选包
在已经识别一组候选包后,减少包间依赖,最小化每个包中public、 protected元素的个数,最大化每个包中private元素的个数。做法如 下。 (1) 在包间移动类。 (2) 添加包、分解包、合并包或删除包。 通常,在分析阶段,将类封装为包模型时,应该尽量使包模型简单。 起初,将类图转换为包图时,不需考虑包间的泛化和依赖关系,仅 当使用诸如包泛化和依赖关系能简化包模型时,才使用这些包整理 技术。 除了保持简单,还应该避免嵌套包。包的嵌套结构越深,模型变得 越难理解。我们曾见过非常深层的嵌套包,而每个包仅包含一个或 两个类。这些模型更像是标准的、自上而下的功能分解,而不是包 模型。 作为经验法则,希望每个包具有4~10个分析类。然而,对于所有的 经验法则,却存在例外,如果打破某个法则使得模型更加清晰,就 采用这个法则。有时,必须引入只带有一个或者两个类的包,因为 需要断开包模型中的循环依赖,在这种情况下是完全合理的。
14
5.5 包的传递性
当客户包与提供者包之间是<<access>>依赖 时,提供者包中的公共元素就成为客户包中的 私有元素,这些私有元素在包外是不可以访问 的。如图5-15所示,Z包中的公共元素成为Y包 的私有元素,而X包只能访问Y包中的公共元素, 因此,X包不能访问Z包中的公共元素。所以, X、Y、Z包间的<<access >>关系不存在传递 性。
22
5.8 小

本章首先解释了几种常见的包图表示法, 并通过了一个简单的例子来说明包的可见 性、依赖关系、泛化等概念。其次,概要 地说明了5种包的构造型。 最后说明如何寻找包、确定包之间的依赖 关系,从而绘制出一个表明软件体系结构 的包图,并简要介绍了用包图表示系统体 系结构的建模方法。

05-类图-对象图-包图

05-类图-对象图-包图

类的泛化
泛化(Generalization)定义了一般元素和特殊元素 之间的分类关系。在UML中,泛化表示为一头为 空心三角形的连线。 A generalization is a taxonomic relationship between a more general element and a more specific element. The more specific element is fully consistent with the more general element and contains additional information.
聚集和组合(cont)
UML中聚集和组合的表示:
Car
Company
Wheel
Department
类图的抽象层次
在软件开发的不同阶段使用的类图具有不同的抽 象层次。一般地,类图可分为三个层次,即概念 层,说明层和实现层。 类的概念层,说明层和实现层的划分最先是由 Steve Cook和John Daniels引入的。
边界类


边界类处理系统环境与系统内部之间的通 信,为用户或另一个系统提供了接口。 边界类组成了系统中依赖于环境的部分, 边界类用于为系统的接口建模,代表了系 统和系统外的一些实体之间的接口。
边界类
实体类

实体类是模拟必须被存储的信息和关联行为的 类。 实体对象是实体类的实例,被用来保存或更新 关于某个现象的信息,通常是持久性的。 实体类通常是独立于他们的环境,对于系统环 境如何与系统通信是不敏感的。
实体类
控制类



控制类是用来为特定于一个或几个用例的控 制行为建模的类。 控制对象是控制类的实例,它经常控制其他 的对象,所以控制对象的行为是协调类型的, 控制类协调实现用例的规定行为所需要的事 件。 控制类封装了特定于用例的行为,通常依赖 于应用程序的类。

第05章 类图、对象、包图

第05章 类图、对象、包图
概念层( 概念层(Conceptual): ): - 在需求分析阶段,类图主要用于领域内的一些概念类的描述,形成概念模型; 规格说明层:( :(Specification): 规格说明层:( ): - 在设计阶段,类图着重描述类与类之间的接口等外部特性,形成设计模型; 实现层( 实现层(Implementation): ): - 在实现阶段,类图主要用于描述类的在软件系统中的内部实现。
Page 2
(类目 分类器) 类目、 Classifiers (类目、分类器)
A classifier is a mechanism that describes structural and behavioral features. Classifiers include classes data types, signals, components, nodes, use cases, and subsystems.
Page 10
属性的类型
type :Examples of built-in attribute data types include Double, Int (short for Integer), and String . An attribute type can also be a user-defined type or the name of a class.
Page 7
属性 attribute
The full form of a UML attribute declaration is as follows:
[visibility] name [: type] [multiplicity] [= default-value] [{property-string}] visibility Name type multiplicity default-value property-string + (public), # (protected), - (private) e.g. CustomerName, DiscountRate e.g. Point, String, Date, etc. e.g. [0..1], [2..*] e.g. =(0,0), = null changeable (default), addOnly, frozen

UML结构图之包图总结

UML结构图之包图总结

UML结构图之包图总结[注] 本⽂不是包图的基础教程, 只是包图的图形总结.学习UML图形包图主要⽤来表现包和它所包含元素的组织, 包图最常⽤的⽤途是⽤来组织⽤例图和类图, 尽管它不局限于这些UML元素. 〇概述包图可使⽤的⼯具集(EA⼯具箱)有:UML-Package⼀包图元素1. 包UML_UseCase_packagePackage, 图形表⽰为⼀个⽂件夹, 包的版型(StereoType)有:1) 普通包, 表⽰为⼀个⽂件夹, 如图Package1和Package42) 其它包, 表⽰为⼀个⽂件夹+书名号包含的具体版型或特殊符号, 如图Package2和Package32. 类Class, 图形表⽰为⼀个实⼼矩形或圆形(椭圆)[+⼀系列附加符号], 类的版型(StereoType)有:1) 普通类, 表⽰为⼀个实⼼矩形, 如图Class12) 边界类, 表⽰为⼀个实⼼圆形+实竖线, 如图Class23) 实体类, 表⽰为⼀个实⼼圆形+实横线, 如图Class34) 控制类, 表⽰为⼀个实⼼圆形+在圆周上的箭头, 如图Class45) 其它类, 表⽰为⼀个实⼼矩形或圆形(椭圆)+书名号包含的具体版型或特殊符号, 如图Class 5, 6, 7 ...[注1] 类图标变化最⼤, 版型最多, 必须根据所属的视图或图形进⾏识别, 如Class2在包图和类图中称为边界类, 在活动图中同样的图标应称为边界对象.[注2] 类图标的矩形表⽰和Artifact相似, 都是实⼼矩形, 区别⽅法是Artifact图标会含有Icon, ⽽类图标⼀般⼏何元素拼凑.[注3] 类图标的椭圆表⽰和⽤例相似, 都是实⼼椭圆, 但⽤例不会出现在类图上, 类也不应该出现在⽤例图上, 因此不会冲突.[注4] 包图上的类⼀般引⽤类图, 类图内部的画法, 参见类图部分. (下同)3. 接⼝Interface, 图形表⽰为⼀个实⼼矩形+书名号包含的interface字样, 接⼝没有版型(StereoType).接⼝是特殊的类, 因此图标和类相同, 书名号包含的interface是其区别与类的唯⼀⽅式.注意: 接⼝如果没有明确的详细操作,也可以画成⼀个圆环。

UML包图详解

UML包图详解
学习包图的基本概念 学习包图的组成要素
Stylish templates can be a valuable aid to creative professionals.
包图的基本概念
Stylish templates can be a valuable aid to creative professionals.
分析系统的模型元素,把概念或语义上相近
的元素归入同一个包 对于每个包,标出其模型元素的可视性,确 定元素的访问属性是公共、保护或者私有 确定包之间的依赖联系 确定包与包之间的泛化关系 绘制包图,对结果进行细化
根据以下对象类,进行包的设计
商品类,商品类别,商品供应商类,订单类, 订单明细类,订货人类,配送单类,配送人 类,配送车辆类,支付接口,银联支付类, 快捷支付类
包之间关系的描述,展现出系统的模块与模 块之间的依赖关系。
对语义上相关的元素进行分组
提供配置管理单元 提供并行工作的单元 提供封装的命名空间,同一个包中,元素的
名称必须唯一
包图的组成要素
Stylish templates can be a valuable aid to creative professionals.
根据图书管理系统类的分析结果,实现图书管理 系统包的设计和包图的设计。

接口 组件 节点 协作 用例 图 其他包
一个模型元素不能被一个以上的包所拥有
如果包被撤销,其中的元素也要被撤销
包名
包内对象
可见性: + public # protect - private
包的依赖关系通常是指这两个包所包含的模
型元素之间存在一个和多个依赖的关系

UML 包图 Package Diagram

UML 包图 Package Diagram

A.0、Package Diagram(包图)
包图描述了成包的模型元素的组织结构和包之间的依赖关系,包括包导入和包扩展。

它还提供了相应命名空间的可视化。

B、包之间的关系
B.1、nesting(嵌套)
嵌套连接器是另一种表示一个模型元素包含或嵌套在另一个模型元素中的图形化标记。

它是最适宜用于显示在包图中包的嵌套。

B.2、Package Import(包导入)
包导入关系是从源包指向一个内容被导入的目的包。

源包的命名空间可以访问目的包中所有非私有类。

而目的包不受影响。

目的包的私有成员不能被导入。

这种关系通常在包图中被使用。

B.3、Package Merge(包合并)
在包图中,包合并表示两个包之间的关系,目的包的内容被合并到源包中。

目的包中私有内容不会被合并。

适用于一个包的合并地址,在任何情况下,多个包包含同名元素。

Package Merge合并被合并包中的所有匹配元素,包括关系和行为。

注意到一个包合并基本上是执行概括和重定义所有匹配元素。

但被合并包中独立元素的表述依然存在,不会受到影响。

UML统一建模实用教程-包图

UML统一建模实用教程-包图
20
设计包的原则
• 重用等价原则 重用等价原则(Reuse Equivalency Principle)
– 把类放入包中时 应考虑把包作为可重用的单元 把类放入包中时, 应考虑把包作为可重用的单元.
• 共同闭包原则(Common Closure Principle) 共同闭包原则
– 把需要同时改变的类放在同一个包中 把需要同时改变的类放在同一个包中.
包图中的关系
• (3) 《access》关系 • 如果只想使用提供者包中的元素,而不想将两个包合并,则应使用该 关系。在客户包中必须使用路径名,才能访问提供者包中的所有公共元 素。 • (4)《trace》关系 • 想表示一个包到另一个包的历史发展,则需要使用《trace》关系来表 示
包图中的关系
创建包图
• 绘制包图的基本过程主要有三个步骤:第一,寻找包;第二,确定包 之间的关系;第三,标出包内元素的可见性。 • 绘制包图的“最小化系统间的耦合关系”的原则: • 最大限度减少包之间的依赖,包封装时,避免包之间的循环依赖;最 小化每个包的public、protected元素的个数,最大化每个包中private 元素的个数。 • 1 寻找包 • 通过把具有很强语义联系的建模元素分组,找出分析包。分析包必须 反映元素的真实的语义分组,而不仅是逻辑架构的理想视图。 • 我们以对象模型和用例模型为依据,把关系紧密的类分到同一个包中, 把关系松散的类分到不同的包中。
包的表示
• 包的构造型 • 为了表示包的新特性,用构造型来描述包的新特征。包的构造型有5 种,下面分别举例说明。 • 1.《system》构造型:《system》构造型的包表示整个系统. • 2.《subsystem》构造型:subsystem》构造型的包则表示正在建模 的系统中某个独立的子系统. • 3.《facade》构造型:只是某个其它包的视图,它主要用来为其它 一些复杂的包提供简略视图 • 4.《stub》构造型:是一个代理包,它服务于某个其他包的公共内 容,这通常应用于分布式系统的建模中 . • 5.《framework》构造型:用来表示一个框架的,框架是一个领域 内的应用系统提供可扩充模板的体系结构模式

静态视图—建立类图_对象图和包图

静态视图—建立类图_对象图和包图

常是UML用例图或类图。包是一个 UML结构,它能够把诸如用例或类之 类的模型元素组织成组
包图可以应用在任何一种UML图上
3.5.1 包图的作用
1. 描述需求的高阶概述(用例图)
2. 描述设计的高阶概述(类图) 3. 在逻辑上把一个复杂的图模块化
4. 组织源代码(命名空间)
3.5.2 类包图
Enrollment
Select course
概念层
说明层
实现层
1.2 建立类图的步骤
1. 研究分析问题领域确定系统需求 2. 确定类,明确类的含义和职责,确定 属性和操作 3. 确定类之间的关系
1.3 类的识别方法
类的识别需要大量的技巧,下面介绍一
1.
2.
3.
4.
些类的识别方法: 名词识别法 根据用例描述确定类 CRC分析法 根据边界类、控制类、实体类的划分来 帮助分析系统中的类
1.3.4 边界类、控制类和实体类
报表以及通信协议类都属于此,他们直 接与外界打交道 控制类是控制其它类工作的类,主要用 于调控和协调各个类之间的关系,比如 定时器 实体类保存要放进持久存储体的信息, 包括数据库,文件等
边界类位于系统与外界的交界处,窗口、
1.4 使用类图的一些原则
1. 简化的原则 在项目的初始阶段不要使用所有的符号, 只要能够有效表达就可以了 2. 分层理解的原则 根据项目开发的不同阶段,使用不同层 次的类图来进行表达,便于理解,不要一开 始就陷入到实现的细节当中 3. 关注关键点的原则 不要为每个事物都画一个模型,只把精 力放在关键领域
3.7.1 包建模技术的步骤
分析系统模型元素,把概念或语义上相
近的模型元素归纳到一个包中 对于每一个包,标识模型元素的可见性 确定包与包之间的依赖关系,特别是输 入依赖 确定包与包之间的泛化关系,确定包元 素的多态性与重载 绘制包图 进一步完善包图

UML第5章 包图

UML第5章 包图
• (1)在包间移动类。 • (2)添加包、分解包、合并包或删除包。
5.6.3 消除包的循环依赖
•应该尽量避免包模型中的循环依赖。 •如果包A以某种方式依赖包B,并且包B以某种方式依赖包A, 就应该合并这两个包,这是消除循环依赖非常有效的方法。 但是经常起作用的、更好的方法是,从A,B两个包中提起公 共元素,把它们封装为第三个包C。 •消除循环包的过程是一个多次迭代的过程。 •示例显示在后面图5-18中。
一种是在第二栏中列出包的所有元素名;另一种是在第二栏中 画出包中所有元素的图形和关系(参见图5-6)。
图5-6 元素的2种表示方法
• 2.包中的元素是用例
图5-7 包中的元素是用例
图5-7表示,包ATM中包含两个用例, 它们是:取款用例和超额取款用例。
3.包中元素是包 包中元素是包时,就是包嵌套。图5-8所示,就是包嵌套的 例子。外部包System:Web里面嵌入了一个包UI,UI包中有一 个类Page。
UI
System:Web:UI
(a)简单名
(b)含路径名(全名)
图5-5 包称的2种书写格式
5.2.2 包中的元素
一个包中包含的元素可能是系统、子系统、子包、 用例、构件、接口和类。下面介绍包中元素的表示方 法和元素的可见性。
• 1.包中元素是类和接口 • 当包中的元素是类和接口时,可以有两种表示类和接口的方法:
称的书写格式有两种,即简单名和全名。 • 1.包名称的书写位置 • 包名称可以有两种书写位置:一种方式是将包名写在第一栏中,另一种方式是将包名
写在第二栏中。 • (1)包名写在第一栏 • 如图5-3所示,包名Server写在第一栏。在第二栏列出了该包包含的类。
图5-3 包名写在第一栏
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

呈现
举 例
业务
数据
设计包的原则
在考虑如何对类进行分组并放入不同的包时, 主要依据类之间的依赖关系进行分组。包中的类 应该是功能相关的,在建包时,应把概念上和语 义上相近的模型元素纳入一个包。依赖关系其实 是耦合的一种体现,如果两个包中的类之间存在 依赖关系,那么这两个包之间就有了依赖关系, 也就存在耦合关系。好的设计要求体现高内聚、 低耦合的特性。
包名放在第二栏 包名放在第一栏
PackageName
PackageName ClassName-1 ClassName-2 …..
PackageName 类名
Rose常用表示法
第二栏列出 包含的类名
在第二栏画出所 包含的类图形表示
5.2 包的表示
1.包的符号表示 嵌套包及其表示 一个包可以包含其他 的包; 嵌套包可以访问自身 的元素; 应尽量避免使用嵌套 包,一般2-3层最好。
5.1 包图的概念
3.包中的元素 包中的元素:类、接口、组件、节点、协作、用 例、图以及其他包。 一个模型元素不能被一个以上的包所拥有。 如果包被撤销,其中的元素也要被撤销。
5.2 包的表示
1.包的符号表示


UML中,用文件夹符号来表示一个包。包由一个矩形表 示,它包含2栏。 最常见的几种包的表示法,如图5-2所示:
设计包的原则

共同重用原则
——把不会一起使用的类不要放在同一个包中。

非循环依赖原则
——包之间的依赖关系不要形成循环。
设计包的原则
举例
根据功能模块组织包:
包 SocketClient DataAccess UI 分析与功能 .NET支持包 负责连接Internet服务 .Sockets 器,获取实时股票信息 负责从数据库读写实时 System.Data.Sqlclie nt 股票信息
负责响应用户输入和选 System.Windows.Fo rms 择,并展现信息 GraphicGenerate 负责根据数据库的信息 System.Drawing 生成相应的图表
5.1 包图的概念
2.包图 描述包及其关系的图。图5-1是一个典型的包图。

包图(Package Diagram) 是维护和控制系统总 体结构的重要建模工具。
5.1 包图的概念
3.包的作用 对语义上相关的元素进行分组。 提供配置管理单元。 提供并行工作的单元。 提供封装的命名空间,同一个包中,其元素的名 称必须唯一。
5.2 包的表示
4.包的可见性 包内元素的可见性控制了包外部元素访问包内 部元素的权限。 可见性 公有的 Public 受保护的 Protected 私有的 private 含义 此元素可以被任何引用该 包的包中的元素访问。 此元素可被继承该包的包 中的元素访问。 此元素只能被同一个包中 的元素访问。 前缀符号 + # -
第5章 包图
5 .1 包图的概念
5.2 包的表示 5.3 包图中的关系 5.4 阅读包图 5.5 创建包图 5.6 包图建模
5.1 包图的概念
1.包 包就像一个“容器”,可用于组织模型中 的相关元素,以便容易理解。 将相关的各种类型的模型元素组织成组的 通用机制。 包的实例没有任何语义。 仅在建模时有意义,而不必转换到可执行 的系统中。
GUI
WindowsGUI
ButtonsGUI
5.4 阅读包图
阅读包图的方法如下: 了解每个包的语义及其包含元素语义。 ② 理解包间的关系。 ③ 找到依赖复杂的包,从最复杂的包开始阅读, 然后依次是简单的包。

5.4 阅读包图
举例
例子描述 分析系统工作流程: 1)通过Internet连接到股票信息服务器,获取 实时的股票信息,并存入数据库中。 2)根据用户的输入和选择,从数据库中获取相 应的信息,展现在屏幕中。 3)在数据的展现过程中,将需要绘制大量的图 表。
提供者
客户
5.3 包图中的关系
1.依赖关系 ④ 跟踪关系《trace》:通常表示一个元素历史地 发展成为另一个进化版本。 分析模型是设计模型的元模型,元模型的元 素进化为设计模型,这时指的是模型之间的关 系,不是元素之间的关系。
分析模型
元模型
设计模型
5.3 包图中的关系
2.泛化关系 包间的泛化关系与类之间的泛化关系类似。
Library Users Librarian Borrower
嵌套包
5.2 包的表示
1.包的符号表示 嵌套包及其表示
外部表示法
5.2 包的表示
2.包的名称 每个包必须有一个与其他包相区别的名称。 :Web:UI
System.Web.UI
5.2 包的表示
3.包的元素 在一个包中可以拥有各种其他元素,这是一种组 成关系。 每一个包就意味着一个独立的命名空间,两个不 同的包,可以具有相同的元素名。 在包中表示拥有的元素时,有两种方法:一种是 在第二栏中列出所属元素名,一种是在第二栏中 画出所属元素的图形表示。
5.2 包的表示
4.包的可见性 ① 公有的(public) “+” ② 受保护的(protected) “#” ③ 私有的(private)“-”
设计包的原则
设计包时,应遵循以下原则:




重用等价原则 共同闭包原则 共同重用原则 非循环依赖原则
设计包的原则

重用等价原则
——把类放入包中时,应考虑把包作为可重用的 单元。

共同闭包原则
——把那些需要同时改变的类放在同一个包中。

若一个类的行为或结构的改变要求另一个类做相应的 改变; 删除了一个类后,另一个类成多余的; 两个类之间有大量的消息发送。
5.3 包图中的关系
包之间可以有两种关系:


引用和访问依赖:在一个包中引入另一个包输 出的元素 泛化:说明包的家族
5.3 包图中的关系
1.依赖关系 ① 使用关系《use》:说明客户包中的元素以某种方式使用 提供者包的公共元素。 ② 包含关系《import》:提供者包命名空间的公共元素被 添加为客户包命名空间上的公共元素 ③ 访问关系《access》:提供者包命名空间的公共元素被 添加为客户包命名空间上的私有元素。
相关文档
最新文档