UMl——静态图
来源:互联网 发布:大守护者升级数据 编辑:程序博客网 时间:2024/05/21 08:49
类图
一、What?
用于定义系统中的类,包括描述类的内部结构和类之间的关系。主要用于描述系统的静态结构
二、关系
1、依赖关系(Dependency) :
依赖表示两个或多个模型元素之间语义上的关系。它表示了这样一种情形,对于一个元素(提供者)的某些改变可能会影响或提供消息给其他元素(客户),即客户以某种形式依赖于其他类元。根据这个定义,关联、实现和泛化都是依赖关系,但是它们有更特别的语义。
表示方法:(虚线+箭头)依赖用一个从客户指向提供者的虚箭头表示,用一个构造型的关键字来区分它的种类
UML定义了4种基本依赖类型
(1)使用依赖。使用依赖都是非常直接的,通常表示客户使用提供者提供的服务以实现它的行为。
(2)抽象依赖。抽象依赖用来表示客户与提供者之间的关系,依赖于在不同抽象层次上的事物。
(3)授权依赖。授权依赖表示一个事物访问另一个事物的能力。提供者通过规定客户的权限,可以控制和限制对其内容访问的方法。
(4)绑定依赖。绑定依赖是较高级的依赖类型,用于绑定模板以创建新的模型元素。
2、关联关系(Association):
关联关系是一种结构关系,它指明一个事物的对象与另一个事物的对象之间的联系。也就是说,关联描述了系统中对象或实例之间的离散连接。
表示方法:(实线+箭头)关联关系用一条连接两个类的实线表示 。
关联关系有6种对应的修饰:
(1)、名称(Name):
名称用来描述关联的性质,通常使用一个动词或动词短语来命名关联。名称以前缀或后缀一个指引阅读的方向指示符以消除名称含义上可能存在的歧义,方向指示符用一个实心的三角形箭头表示。
(2)、角色(Role):
角色是关联关系中一个类对另一个类所表现出来的职责。角色名称是名词或名词短语,以解释对象是如何参与关联的。
(3)、多重性(Multiplicity):
约束是 UML 三大扩展机制之一,多重性是其中使用最广泛的一种约束。关联的多重性是指有多少对象可以参与该 关联,多重性可以用来表达一个取值范围、特定值、无限定的范围或一组离散值。
(4)、聚合关系(Aggregation):
聚合关系表示整体和部分关系的关联。聚合关系描述了“has a”的关系。
表示方法:(空心菱形+实线+箭头)用带空心菱形的实线来表示,其中菱形指向整体。
(5)、组合关系(Composition):
组合关系是聚合关系中的一种特殊情况,是更强形式的聚合,又被称为强聚合。在组合中,成员对象的生命周期取决于聚合的生命周期,聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和析构。
表示方法:(实心菱形+实线+箭头)用带实心菱形的实线来表示,其中菱形指向整体。
(6)、导航性(Nevigation):
导航性描述的是一个对象通过链(关联的实例)进行导航访问另一个对象,即对一个关联端点设置导航属性意味着本端的对象可以被另一端的对象访问。
表示方法:可以在关联关系上加箭头表示导航方向。注:只在一个方向上可以导航的关联称为单向关联(Unidirection Association), 用一条带箭头的实线来表示。 在两个方向上都可以导航的关联称为双向关联(Bidirection Association),用一条没有箭头的实线来表示。 另外使用导航性可以降低类之间的耦合度,在也是好的面向对象分析与设计的目标之一。
3、泛化关系(Generalization):
泛化关系是一种存在于一般元素和特殊元素之间的分类关系,它只使用在类型上,而不是实例上。在类中,一般元素被称为超类或父类,而特殊元素被称为子类。
表示方法:(空心三角+实线)泛化关系用一条从子类指向父类的空心三角箭头的实线表示。
4、实现关系(Realization):
实现是规格说明和其实现之间的关系,它将一种模型元素与另一种模型元素连接起来,比如类和接口。泛化和实现关系都可以将一般描述与具体描述联系起来。泛化将同一语义层上的元素连接起来,并且通常在同一模型内。实现关系则将不同语义层 内的元素连接起来,通常建立在不同的模型内。
实现关系通常在两种情况下被使用:在接口与实现该接口的类之间;在用例以及实现该用例的协作之间。
表示方法:(空心三角+虚线)实现关系的符号与泛化关系的符号类似,用一条带指向接口的空心三角箭头的虚线示。
注: 一般关系表现为继承或实现关系(is a), 关联关系表现为变量(has a ), 依赖关系表现为函数中的参数(use a)。
※在百度上看到了有对这类图关系简略的解释 :
关联:类A与类B的实例之间存在在特定的对应关系
依赖:类A访问类B提供的服务
聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成
泛化:类A继承类B
实现:类A实现了类B接口
对象图(Object Diagram)
一、What?
1.对象图是类图的一个实例,几乎使用与类图完全相同的标识,描述了系统在具体时间点上所包含的对象以及各对象之间的关系,由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
2.可以使用对象图来说明数据结构,类图中的类或组件等的实例的静态快照。对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。 对象也和合作图相联系,合作图显示处于语境中的对象原型(类元角色)。
二、表示法
对于UML对象图来说无需提供单独的形式。类图中就包含了对象,所以只有对象而无类的类图就是一个"对象图"。然而,"对象图"这条短语在刻画各方面特定使用时非常有用。
三、附一张表:(类图与对象图的区别)
四、最后附上我画的有关机房系统的对象图:
- UMl——静态图
- UML——静态图
- UML静态图—机房
- 【UML图】——静态图
- UML总结——系统静态图
- UML静态视图——类图、对象图、包图
- UML——类图、对象图(静态图)
- UML——类图、对象图(静态图)
- UML—静态图(类图、对象图)
- [UML]静态视图——类图
- UML之系统静态模型—类图
- UML中的静态图
- UML静态图
- UML静态模型图
- UML--静态图
- 【UML】静态图
- UML之静态图
- uml静态图---对象图
- 6 XML和Tomcat的入门知识
- hadoop 2.7.3 源码分析(三):hadoop远程调试
- Java线程(十)----CAS
- Cannot open precompiled header file: 'Debug/****.pch': No such file or directory
- Java线程(十一)----Fork/Join-Java并行计算框架
- UMl——静态图
- 记一次坑爹的内存不足troubleshooting
- 虚函数
- Activity生命周期
- VBA,我的第一门语言(带你走进VBA的世界)
- spring之外部化配置
- Java线程(十二)----线程本地变量ThreadLocal
- Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果
- Oracle中sys用户和system用户的区别