UML规范定义了两种主要的UML图: 结构图和 行为图。
1、结构图 显示了系统及其部件在不同抽象和实现级别上的静态结构以及它们如何相互关联。结构图中的元素表示系统的有意义的概念,并且可以包括抽象的,现实的和实现的概念。
2、行为图 显示了系统中对象的动态行为,可以将其描述为系统随时间的一系列更改。
1、结构图:
图 | 目的 | 元素 |
---|---|---|
类图Class Diagram | 显示设计的系统,子系统或组件作为相关类和接口的结构,其特征,约束和关系 - 关联,概括,依赖等。 | 类Class, 接口Interface, 特征Feature, 约束Constraint, 关联Association,泛化Generalization, 依赖Dependency。 |
对象图Object Diagram | 实例级别图,显示类和接口(对象)的实例规范,具有值规范的插槽和链接(关联实例)。对象图 在现在已经过时的UML 1.4.2规范中被定义 为 “实例的图形,包括对象和数据值。静态对象图是类图的一个实例,它显示了一个系统的详细状态的快照时间点。” 它还表示,对象图是 “具有对象和没有类的类图”。UML 2.5规范简单地不提供对象图的定义。 | 实例规范Instance Specification, 对象Object, 插槽Slot, 链接link。 |
封装图Package Diagram | 显示包 之间的包和关系。 | 封装Package, 可封装元素Packageable element, 依赖关系Dependency, 元素导入ElementImport, 封装导入PackageImport, 封装合并PackageMerge。 |
模型图Model Diagram | UML辅助结构图显示系统的一些抽象或具体视图,以描述系统的架构,逻辑或行为方面。例如,它可以显示多层(也称多层)应用程序的体系结构 - 参见多层应用程序模型。 | 模型Model, 封装Package, 可封装元素PackageableElement, 依赖关系Dependency。 |
复合结构图Composite Structure Diagram | 图可用于显示:分类器的内部结构合作的行为 | |
内部结构图Internal Structure Diagram | 显示分类器的内部结构 - 将分类器分解为其属性,部件和关系。 | 结构化类StructuredClass, 部分Part, 端口Port, 连接器Connector,使用Useage。 |
协作使用图Collaboration Use Diagram | 显示系统中的对象彼此协作以产生系统的一些行为。 | 协作Collaboration, 连接Connector, 部分Part, 依赖Dependency。 |
组件图Component Diagram | 显示它们之间的组件和依赖关系。这种类型的图用于基于 组件的开发(CBD),以描述具有面向服务架构(SOA)的系统。 | 组件Component, 接口Interface, 提供的接口, 必需的接口requiredInterface, 类class, 端口port, 连接器connector, 工程artifact,组件实现componentRealization, 使用usage。 |
显示图Manifestation Diagram | 而组件图 显示组件和分类器之间,以及部件和关系部署图 - 部署 工件来部署目标的,缺少一些中间图是 表现图 被用于显示 表现 的(执行)的组件 由工件 和工件的内部结构。由于 UML 2.5规范未定义显示图,因此可以使用组件图或部署图来显示组件的显示。 | 表现manifestation, 组件component, 工程artifact。 |
部署图Deployment Diagram | 显示系统的架构,将软件工件部署(分发)部署 到部署目标。 请注意,组件 直接部署到UML 1.x部署图中的节点。在UML 2.x 工件 部署到节点,工件可以 显示(实现)组件。组件通过工件间接部署到节点。规范级部署图 (也称为类型级别)显示了部署 到部署目标 的工件的一些概述 ,而不引用工件或节点的特定实例。实例级部署图 显示部署 的情况下的文物 ,以具体实例部署目标。例如,可以使用特定构建或部署服务器或设备的名称/ ids来显示部署到开发,分期或生产环境的差异。 | 部署deployment, 工程artifact, 部署目标deploymentTarget, 节点node, 设备device, 执行环境executionEnviroment, 通信路径CommunicationPath, 部署规范DeploymentSpecification。 |
网络架构图Network Architecture Diagram | 部署图可用于显示系统的逻辑或物理网络架构。这种部署图 - 在UML 2.5中没有正式定义 - 可以称为网络架构图。 | 节点Node, 交换机Switch, 路由器Router, 负载均衡器load, 防火墙balancer, 通信路径communicationPath, 网段networkSegment, 骨干网backbone。 |
资料图Profile Diagram | 辅助UML图,允许将自定义构造型,标记值和约束定义为UML标准的轻量级扩展机制。配置文件允许适应不同的UML元模型平台(如J2EE或.NET)或域(如实时或业务流程建模)。简介图在UML 2.0中首次引入。 | 配置文件profile, 元类metaclass, 构造型stereotype, 扩展名extension, 参考文件reference, 配置文件应用程序profileApplication。 |
2、行为图:
图 | 目的 | 元素 |
---|---|---|
用例图Usecase Diagram | 描述一些系统或系统(主题)应该或可以与系统的一个或多个外部用户(演员)合作执行的一组动作(用例),以向演员或其他利益相关者提供可观察和有价值的结果系统(S)。 请注意,UML 2.4.1规范(参见“16.4图”)指出,用例图是Class Diagram的专用化,因此显示的分类器仅限于Actors或Use Cases。 类图 是结构图。 | 用例UseCase, 演员Actor, 主题Subject, 扩展Extension, 包含Include,关联Association。 |
信息流程图 | 显示系统实体之间在某种高抽象层面的信息交换。信息流可能有助于通过代表尚未完全指定的模型或较少细节的模型来描述通过系统的信息流通。 | 信息流InformationFlow, 信息项InformationItem, 演员Actor, 类Class。 |
活动图 | 显示协调较低级行为的顺序和条件,而不是哪些分类器拥有这些行为。这些通常称为控制流和对象流模型。 | 活动Activity, 分区Partition, 动作Action, 对象Object, 控制Control,活动边ActivityEdge。 |
状态机图 | 用于通过有限状态转换建模离散行为。除了表达系统的一部分的行为之外,状态机还可以用于表示系统的一部分的使用协议。这两种状态机被称为 行为状态机 和协议状态机。 | |
行为状态机图 | 通过有限状态转换 显示设计系统的一部分的离散行为。 | 行为状态BehavioralState, 行为过渡BehavioralTransition, 伪影Pseudostate。 |
协议状态机图 | 显示 一些分类器的使用协议或生命周期,例如在分类器的每个状态下可以调用分类器的哪些操作,在哪个特定条件下,以及在分类器转换到目标状态之后满足一些可选的后置条件。 | 协议状态ProtocolState, 协议转换ProtocolTransition, 伪节点pseudostate。 |
交互图 | 交互图包括几种不同类型的图表:序列图,通信图(在UML 1.x中称为协作图),时序图,互动概览图。 | |
序列图 | 最常见的交互图,重点是生命线(对象)之间的消息交换 。 | 生命线Lifeline, 执行规范ExecutionSpecification, 消息Message, 组合片段CombinedFragment, 交互使用InteractionUse, 状态不变StateInvariant, 销毁发生DestructionOccurence。 |
通讯图(协作图) | 重点关注生命线之间的相互作用, 其中内部结构的架构以及它与消息传递的对应关系如何 。消息的排序通过序列编号方案给出。 | 生命线Lifeline, 消息Message。 |
时序图 | 当图表的主要目的是推理时间时,显示交互。时序图集中在沿着线性时间轴在生命线之内和之间变化的条件。 | 生命线Lifeline, 状态或条件时间轴StateOrConditionTimeline, 破坏事件DestructionEvent, 持续时间约束DurationConstraint, 时间约束TimeConstraint。 |
交互概览图 | 通过活动图的变体定义交互 ,以促进控制流的概述。交互概述图集中在节点交互或交互使用的控制流程概述 。生命线和消息不会出现在此概览级别。 | 初始节点InitialNode, 流最终节点FlowFinalNode, 活动最终节点ActivityFinalNode, 决策节点DecisionNode, 合并节点MergeNode, 叉节点ForkNode, 连接节点JoinNode, 交互Interaction, 交互使用InteractionUse,持续时间约束DurationConstraint, 时间约束TimeConstraint。 |