UML简介
一、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、部署视图
部署视图用来展示系统的物理架构和部署情况,例如计算机(结点)和设备(结点)以及它们之间的连接方式。