一、类图classdiagram
1.类图表示类、接口及其关联->用于静态对象建模,并不特定于透视图(概念或软件)
2.类元(classifier)
(1)定义:类元是描述行为和结构特性的模型元素,是对众多UML元素的泛化,这些元素包括类、接口、用例和参与者。
二、设计类图(design class diagram,DCD)
1.设计类图是使用在软件透视图和设计透视图中的类图的建模术语。
2.设计模型:包括所有DCD、UML交互图、包图。
三、表示UML属性的方法:属性文本和关联线
1.结构化特性(structural property):即类元的属性。
(一)属性文本表示法的完整格式:
可见性 名字:类型 多重性=默认值 {特性字符串}
(1)如果没有给出可见性,默认属性是私有的。
e.g.
(二)关联线表示属性:
(1)导航性箭头(navigability arrow):由源对象指向目标对象,表示源对象的一个属性是目标对象
【注】别忘了设计类图中的关联线要画刺形箭头!!!!
(2)【注】关联线表示属性时,多重性和角色名(rolename)只放在目标一端(但是放在源端也合法)
①角色名(rolename)/关联端点名(assiciation end name):用于表示属性名称。
(3)【注】与领域模型不同(领域模型类图中的关联需要指明关联名称),设计类图中的关联不需要关联名称(但是有也合法)。
e.g.
![]() |
(4)特性字符串:{ordered}表示集合中的元素是有序的;{unique}表示一组唯一元素。
e.g.
2.准则:对数据类型对象使用属性文本表示法,对其他对象使用关联线。
e.g.
四、其他内容
1.(1)注解符号(note symbol):表示为折角矩形,并用虚线连接到要注解的元素上
(2)UML约束(constraint):必须用“{}”括起来
2.操作和方法
(1)操作的语法形式:
可见性 名字 (参数列表):返回类型 {特性字符串}
~特性property
【注】如果操作没有注明可见性,默认操作是公共的!!!(这点不同于属性)
(2)操作≠方法
操作是声明,其中包含名称、参数、返回类型、异常列表、可能的前置和后置条件约束等。总之,操作不是实现,而方法是实现。
(3)方法在类图中的表示:通过《method》注解符号定义方法体
~~当使用UML注解来表示方法时,实际是在同一个图中混合了动态视图(方法体定义了动态行为)和静态视图(UML类图)。
(4)交互图中的create消息通常被映射为构造器的定义;通常对构造函数冠以《constructor》
(5)访问操作(即get和set)通常不包含在类图中
3.关键字(keyword)
(1)定义:关键字是对模型元素分类的文本修饰。
(2)大部分关键字使用《》表示,有些关键字使用{}表示。
e.g.定义类元框图类别为接口的关键字是《interface》;
定义类元是参与者的关键字是《actor》;
表示具有强制顺序的一组对象的关键字是{ordered};
表示是抽象元素,不能实例化的关键字是{abstract}
4.构造型(stereotype)
(1)定义:构造型表示对现有建模概念的精化,并且定义在UML简档(profile)中。
~简档(profile)是一组相关构造型、标记和约束的集合,其目的是使用UML专用于特定领域或平台。
(2)表示:与关键字一样,也是使用《》表示。
(3)UML预定义了大量构造型,同时允许用户自定义构造型(∴UML中构造型提供了扩展机制)
(4)构造型使用属性语法声明一组标记(tag)。
5.泛化generalization:
(1)定义:泛化是普通类元与特殊类元之间的分类学关系。特殊类元的每个实例也是普通类元的间接实例。特殊类元间接地拥有了普通类元的特性。
(2)表示:子类到超类的实线+空心三角箭头
五、依赖(dependency)
1.依赖关系表示客户元素(任何种类,包括类、包、用例等)了解其他提供者元素,并且表示当提供者有所改变时会对客户产生影响。
~可以将依赖看成是耦合的另一个版本,即某元素耦合或依赖于另一元素。
2.表示:从客户到提供者的虚线箭头线
~依赖线可以用于任何图形。
e.g.
3.常见的依赖类型:
(1)拥有提供者类型的属性。
(2)向提供者发送消息。对提供者的可见性可能是:属性、参数变量、局部变量 、全局变量或类的可见性(调用静态或类方法)
(3)接收提供者类型的参数。
(4)提供者是超类或接口。
4.可以给依赖线附加关键字或构造型以表示依赖类型。~~称为依赖标签
5.约束constraint:用花括号表示
6.限定关联(qualified association)具有限定符(qualifier),限定符用于从规模较大的相关对象集合中,依据限定符的键选择一个或多个对象。
~~对于限定关联,要注意多重性的变化,通常是多变一
7.关联类(association class):允许将关联本身作为类,并且使用属性。操作和其他特性对其建模。
8. 在UML类框图中,具有下划线的属性或方法表示静态(类级别)成员,而不是实例成员!!!!!!!!!!
六、接口(interface)
1.接口包括客户的接口和接口依赖(必要接口)。
2.接口实现(interface realization)
(1)插座线表示法(socket notation):表示“类X需要(使用)接口Y”
(2)棒棒糖表示法:表示提供接口
七、组合(composition)优于聚合(aggregation)
(一)聚合(aggregation)——一种模糊的关联
(二)组合(composition)/组成聚合(composite aggregation)
1.组合关系的含义:
(1)在某一时刻,部分的实例只属于一个组成实例;
(2)部分必须总是属于组成,即不允许存在游离的部分!!!
(3)组成要负责创建和删除其部分,(可以自己创建/删除,也可以和其他对象协作创建/删除部分)∴如果组成被销毁,其部分也必须被销毁,或者依附于其他组成。
2.组合的表示:实心菱形箭头,菱形位于整体一侧。
![]() |
整理不易,亲亲点个赞呗~~