一、UML简介

UML(Unified Modeling Language)即统一建模语言,是一种通用的可视化建模语言。UML主要包括事物、关系和图。

二、事物

UML中的事物分为:结构事物、行为事物、分组事物和注释事物。

1、结构事物

结构事物包括:类、接口、协作、用例、活动类(主动类)、组件(构件)和节点。

  • 类(Class)

类是指具有相同属性、方法、关系和语义的对象的集合。

  • 接口(Interface)

接口是指类或组件所提供的服务(操作),描述了类或组件对外可见的动作。

  • 协作(Collaboration)

描述合作完成某个特定任务的一组类及其关联的集合。

  • 用例(Use Case)

定义了参与者和系统之间通过交互实现的一个业务目标,即从使用者的角度看到的系统的功能。

  • 活动类(Active Class)

活动类是一种特殊的类,其对象至少拥有一个进程或线程,且能启动控制活动。

  • 组件(Component)

组件是系统中物理的、可替代的部分。组件可以是源代码、二进制文件或可执行文件。

  • 节点(Node)

节点是系统在运行时存在的物理元素,代表一个可计算的资源,具有处理能力,通常占用一些内存。一个组件可以驻留在一个节点内,也可以从一个节点迁移到另一个节点。

2、行为事物

行为事物是指UML模型中的动态部分,表示模型里随着时空不断变化的部分,包括交互和状态机。

  • 交互(Interaction)

交互是一组对象为达到特定的目的而发生的一系列动作。

  • 状态机(State Machine)

状态机由一系列对象的状态组成。

3、分组事物

分组事物是UML模型中的组织部分,在所有的分组事物中,最主要的分组事物是包。包是模型元素的集合:为了方便对系统进行模块划分,一般用包将模型元素分组。

4、注释事物

注释事物是UML模型的解释部分,用来描述、说明和标注模型中的任何元素;其中一种最常用的注释事物为注解。

三、关系

UML中的关系是将事物联系在一起的方式,包括:关联关系、依赖关系、泛化关系和聚合关系等。

1、关联关系(Association)

关联是最常见的一种关系,描述对象之间连接的结构关系,用实线箭头表示;关联可以是双向的也可以是单向的(导航关联)。

2、依赖关系(Dependency)

如果改变其中一个元素可能会导致另一个元素发生变化,则这两个元素之间存在依赖关系。

3、泛化关系(Generalization)

泛化也被称为继承,表示通用元素和具体元素间的一种分类关系。

4、实现关系(Implementation)

实现与泛化类似,表示类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约,通常表示接口和实现类的关系。

5、聚合关系(Aggregation)

聚合是特殊的关联关系,表示事物之间整体与部分的关系。

6、组合关系(Composition)

组合与聚合类似,如果构成整体的部分完全隶属于整体,则用组合关系表示。

四、图

UML中常用的9种图为:用例图、类图、对象图、顺序图、协作图、状态图、活动图、组件图、部署图,使用这些图可以从不同的角度对系统建模。

1、用例图

用例图中包含系统、角色和用例三种元素,用来表示角色(actor)以及这些角色与系统提供的用例之间的连接关系。

2、类图

类图表示系统中的类以及类与类之间的关系,是对系统静态结构的描述。

3、对象图

对象图是类图的变体,与类图的区别之处在于对象图表示的是类的实例,而不是真实的类。它及时具体地反映了系统执行到某处时的状况。

4、顺序图

顺序图用来反映对象间的动态协作关系,即对象之间随时间是如何交互的。

5、协作图

协作图和顺序图类似,也是表示对象间的动态协作关系;它除了显示对象间的交互之外,还显示了对象的关系。

6、状态图

状态图是对类所描述事物的补充说明,它表示类的所有对象可能具有的状态,以及引起状态变化的事件。

7、活动图

活动图反映一个连续的活动流,经常用于描述某个操作执行时的活动状况。

8、组件图

组件图用来反映代码的物理结构。

9、部署图

部署图用来表示系统中软件和硬件的物理架构;通常用来显示实际的计算机或设备(用结点表示)之间的关系。

五、UML视图

UML用模型来描述系统的结构或静态特征、以及行为或动态特征,它从不同的视角为系统的架构建模,形成系统不同的视图,包括:用例视图、逻辑视图、并发视图、组件视图和部署视图。

1、用例视图

用例视图描述系统应该具有的功能集,强调从用户的角度看到的或需要的系统功能。

2、逻辑视图

逻辑视图展示系统内部的设计和协作状况,用系统的静态结构(由类图和对象图描述)和动态行为(由状态图、顺序图、协作图和活动图描述)来刻画系统功能。

3、并发视图

并发视图用来展示系统的并发工作状况,主要考虑资源的有效利用、代码的并行执行以及异步事件的处理和线程之间的通信和同步。它由状态图、顺序图、活动图、构件图等来描述。

4、组件视图

组件视图由组件图构成,描述了系统的实现模块和它们之间的关系,例如代码组件的组织方式。

5、部署视图

部署视图用来展示系统的物理架构和部署情况,例如计算机(结点)和设备(结点)以及它们之间的连接方式。

参考资料: