UML图详解(一)基本概念

UML官网:http://www.uml.org/

一、UML视图

  UML中的各种组件和概念之间没有明显的划分界限,但为方便起见,我们用视图来划分这些概念和组件。视图只是表达系统某一方面特征的UML建模组件的子集。视图的划分带有一定的随意性,但我们希望这种看法仅仅是直觉上的。在每一类视图中使用一种或两种特定的图来可视化地表示视图中的各种概念。
视图被划分成三个视图域:

  • 结构分类:描述了系统中的结构成员及其相互关系。类元包括类、用例、构件和节点。类元为研究系统动态行为奠定了基础。
    类元视图包括静态视图、用例视图和实现视图
  • 动态行为:描述了系统随时间变化的行为。行为用从静态视图中抽取的系统的瞬间值的变化来描述。
    动态行为视图包括状态机视图、活动视图和交互视图
  • 模型管理:说明了模型的分层组织结构。包是模型的基本组织单元。特殊的包还包括模型和子系统。模型管理视图跨越了其他视图并根据系统开发和配置组织这些视图。

  UML还包括多种具有扩展能力的组件包括约束、构造型和标记值,这些组扩展能力有限但很有用,它们适用于所有的视图元素。

  下表列出了UML视图和视图所包括的图以及与每种图有关的主要概念。不能把这张表看成是一套死板的规则,应将其视为对UML常规使用方法的指导,因为UML允许使用混合视图。

1.1 静态视图

  静态视图主要是由类及类间相互关系构成,这些相互关系包括:关联、泛化和各种依赖关系,如使用和实现关系。类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联。静态视图用类图来实现,正因为它以类为中心,所以称其为类图。

  在类图中类用矩形框来表示,它的属性和操作分别列在分格中。如不需要表达详细信息时,分格可以省略。一个类可能出现在好几个图中。同一个类的属性和操作可只在一种图中列出,在其他图中可省略。详见:UML图详解(三)——类图

  关系用类框之间的连线来表示,不同的关系用连线上 和 连线端 头处的修饰符来区别。

  类可用不同的精确度和抽象级别来描述。在设计的初期阶段,所建立的模型只是问题的逻辑模型,到了设计的后期,模型中会增添许多设计结论和有关系统实现的细节。UML中的大部分视图都可不断进行类似的细化。

1.2 用例视图

  用例视图是被称为参与者的外部用户所能观察到的系统功能的模型图。用例是系统中的一个能能单元,可以被描述为参与者与系统之间的一次交互作用。用力模型的用途是列出系统中的用例和参与者,并显示哪个参与者参与了哪个用例的执行。详见:UML图详解(二)——用例图

1.3 交互视图

  交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系。类元是对在系统内交互关系中起特定作用的一个对象的描述,这使它区别于同类的其他对象。交互视图显示了跨越多个对象的系统控制流程。交互视图可用两种图来表示:顺序图和协作图,它们各有不同的侧重点。详见:UML图详解(七)——交互图(时序图与协作图)

1.3.1 顺序图

  顺序图也称为时序图,表示了对象之间传送消息的时间顺序。每一个类元角色用一条生命线来表示—即用垂直线代表整个交互过程中对象的生命期。生命线之间的箭头连线代表消息。顺序图可以用来进行一个场景说明—即一个事务的历史过程。

  顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。

1.3.2 协作图

  协作图也称为通信图,对在一次交互中有意义的对象和对象间的链建模。对象和关系只有在交互的语境中才有意义。类元角色描述了一个对象,关联角色描述了协作关系中的一个链。协作图用几何排列来表示交互作用中的各角色。附在类元角色上的箭头代表消息。消息的发生顺序用消息箭头处的编号来说明。

  协作图的一个用途是表示一个类操作的实现。协作图可以说明类操作中用到的参数和局部变量以及操作中的永久链。当实现一个行为时,消息编号对应了程序中嵌套调用结构和信号传递过程。

1.4 状态机视图

  状态机视图是一个类对象所可能经历的所有历程的模型图。状态机由对象的各个状态和连接这些状态的转换组成。每个状态对一个对象在其生命期中满足某种条件的一个时间段建模。当一个事件发生时,它会触发状态间的转换,导致对象从一种状态转化到另一新的状态。与转换相关的活动执行时,转换也同时发生。状态机用状态图来表达。详细参考:UML图详解(八)——状态机(状态图和活动图)的状态图

1.5 活动视图

  活动图是状态机的一个变体,用来描述执行算法的工作流程中涉及的活动。活动状态代表了一个活动:一个工作流步骤或一个操作的执行。活动图描述了一组顺序的或并发的活动。活动视图用活动图来体现。详见:UML图详解(八)——状态机(状态图和活动图)的活动图

1.6 物理视图

  前面介绍的视图模型按照逻辑观点对应用领域中的概念建模。物理视图对应用自身的实现结构建模,例如系统的构件组织和建立在运行节点上的配置。这类视图提供了将系统中的类映射成物理构件和节点的机制。物理视图有两种:实现视图和部署视图。
  实现视图为系统的构件建模—构件即构造应用的软件单元—还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响。

实现视图用构件图来表现。详见:UML图详解(五)——组件图

部署视图用部署图来表达。详见:UML图详解(六)——配置图

1.7 模型管理视图

  模型管理视图对模型自身组织建模。一系列由模型元素(如类、状态机和用例)构成的包组成了模型。包可能包含其他的包,因此,整个模型实际上可看成一个根包,它间接包含了模型中的所有内容。包是操作模型内容、存取控制和配置控制的基本单元。每一个模型元素包含于包中或包含于其他模型元素中。

  模型是从某一观点以一定的精确程度对系统所进行的完整描述。从不同的视角出发,对同一系统可能会建立多个模型,例如有系统分析模型和系统设计模型之分。模型是一种特殊的包。
子系统是另一种特殊的包。它代表了系统的一个部分,它有清晰的接口,这个接口可作为一个单独的构件来实现。

模型管理信息通常在类图中表达。详见:UML图详解(三)——类图

1.8 扩展组件

  UML包含三种主要的扩展组件:约束、构造型和标记值。约束是用某种形式化语言或自然语言表达的语义关系的文字说明。构造型是由建模者设计的新的模型元素,但是这个模型元素的设计要建立在U M L已定义的模型元素基础上。标记值是附加到任何模型元素上的命名的信息块。

  这些组件提供了扩展UML模型元素语义的方法,同时不改变U M L定义的元模型自身的语义。使用这些扩展组件可以组建适用于某一具体应用领域的U M L用户定制版本。

二、分类

UML图主要可分为两类:静态图和动态图。

  • 静态图:UML中有5种静态图:用例图、类图、对象图、组件图和配置图。
  • 动态图:UML中有4种动态图:时序图、协作图、状态图、活动图
  • 外加:包图

注意:名称对照(虽然不同名,但是是同一种图)。

  • 顺序图 → 时序图
  • 通信图 → 协作图
  • 构件图 → 组件图
  • 部署图 → 配置图

三、可见性

常用的三种标记:

  • +public 公共,可被外部对象访问;

  • #protect 保护,可被本类和子类的对象访问;

  • -private 私有,不可被外部对象访问。

四、可视化图标

参考资料:《UML入门教程》


猜你喜欢

转载自blog.csdn.net/fanxiaobin577328725/article/details/51636572