UML结构分为三大部分:基本构造块、规则、公共机制
UML主要包括三种构造块:
1)事物:
构成模型图的一些基本图示符号,它们表示一些面向对象的基本概念。
2)关系:
表示基本图示符号之间的关系。
3)图:
特定的视角对系统所作的抽象描述。
事物是对模型中最具有代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。
UML中的事物分为结构事物、行为事物、分组事物和注记事物,具体内容如下:
结构事物 | 行为事物 | 分组事物 | 注记事物 |
1.Class 2.Interface 3.Collaboration 4.Use Case 5.Active Class 6.Components 7.Nodes | 1.Interaction 2.State Mechanism | 1.Package | 1.Notes |
1)类(Class)
类是对一组具有相同属性、方法、关系和语义的对象的描述。一个类实现一个或多个接口。
2)接口(Interface)
接口描述了一个类或构件的一个服务的操作集。
3)协作(Collaboration)
协作定义了一个交互,它是由一组共同工作以提供某协作的角色和其它元素构成的群体,这些协作行为大于所有元素的各自行为d的总和。协作有结构、行为和维度。
4)用例(Use Case)
用例是对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者(actor)有价值且可观察的结果。
5)主动类(Active Class)
是这样的类,其对象至少拥有一个进程或线程,因此它能启动控制活动。
6)构件(Component)
构件是系统中物理的、可替代的部件,它遵循且提供一组接口的实现。
7)节点(Node)
节点是在运行时存在的物理元素,它表示了一种可计算的资源,它通常至少有一些记忆能力处理能力。在UML中用立方体来表示。
行为事物:
1)交互:
由在特定语境中共同完成一定特定任务的一组对象之间交换的消息组成。一个对象群体的行为或单个操作的行为可用一个交互来描述。
2)状态机(State Machine)
状态机描述了一个对象或一个交互在生命期内相应时间所经历的状态序列。单个类或一组类之间协作的行为可以用状态机来描述。
分组事物:
包是UML中唯一的组织机制,可以拥有其它元素,一个包形成了一个命名空间。在一个包中同一种元素的名称必须是唯一的。
注释事物:
注解(Note)是一种主要的注释事物,依附于一个元素或一组元素之上,对它进行约束或解释的简单符号。
UML中一共有4种关系:关联(Association)、依赖(Dependency)、泛化(Generalization)和实现(Realization)
关联用一条横线来表示、依赖用一条虚线加一个箭头表示、泛化用一条横线和一个空心三角形表示、实现是一条虚线加一个空心的三角形表示。
关联关系描述了两个或多个类之间的结构性关系。
泛化是一种特殊、一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素共享了父元素的结构和行为。
实现是类元之间的语义关系,在该关系中一个类元描述了另一个类元保证实现的契约。
UML包括9种图:
1.用例图:用来描述用户的需求,从用户的角度描述系统的功能,并指出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。
2.静态图包括类图和对象图:
2.1类图:用于定义系统中的类,包括描述类的内部结构和类之间的关系。类图主要用于描述系统的静态结构。
2.2对象图:对象图是类图的一个实例,描述了系统在具体时间点上所包含的对象以及各个对象之间的关系。
3.行为图:用来描述系统的动态模型和对象之间的交互关系:包括状态图、活动图和交互图。
3.1状态图(Statechart diagrams):用来描述类的对象所有可能的状态以及事件发生时状态的转移条件。
3.2活动图(Activity diagrams):用来描述满足用例要求所要进行的活动以及活动间的约束关系,使用活动图有利于识别系统的并行活动。
3.3交互图:用来描述对象之间的交互关系,包括序列图和协作图。
3.3.1序列图(Sequence diagrams):描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序,强调对象之间消息的发送顺序,同时也显示对象之间的交互过程。
3.3.2协作图(Collaboration diagrams):描述对象之间的合作关系,更侧重于说明哪些对象之间有消息的传递。
序列图和协作图之间可相互转化。
4.实现图
4.1构件图:(Component diagrams):构件图用来描述代码构件的物理结构以及各构件之间的依赖关系。
4.2实施图:(Deployment diagrams):部署图定义了系统中硬件的物理体系结构,用来描述实际的物理设备以及它们之间的连接关系。
UML有用于描述如下事物的语义规则:
- 命名为事物、关系和图起名
- 范围给一个名称以特定含义的语境
- 可见性怎样让其他人使用或看见名称
- 完整性事物如何正确、一致地相互联系
- 执行运行或模拟动态模型的含义是什么
-
UML中有4种贯穿整个语言且一致应用的公共机制:分别是规格说明、修饰、
通用划分和扩展机制