首页 > 代码库 > 笔记 UML基础

笔记 UML基础

UMl:unified modeling language。为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。

UML的定义包括UML语义和UML表示法。

UML模型图的由事物、关系、图构成。事物是UML模型图中最基本的构成元素,是具有代表性的成分的抽象;关系把事物紧密联系在一起;图是事物和关系的可视化表示。

UML事物包括构建事物、分组事物、行为事物、注释事物。

  构建事物:UML模型的静态部分,描述概念或物理元素。

  行为事物:UML模型的动态部分,描述跨越空间和时间的行为。

    交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接

    状态机:描述事物或交互在生命周期内响应事件所经历的状态序列。

  分组事物:UML模型图的组织部分,描述事物的组织结构。

    包:把元素组织成组的机制。

  注释事物:UML模型的解释部分,用来对模型中的元素进行说明、解释。

    注解:对元素进行约束或解释的简单符号。  

UML关系:

  依赖关系:两个事物之间的语义关系,其中一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)的语义。

  关联关系:是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系。

  泛化关系:是一种特殊/一般的关系。可以看做是继承关系

  实现关系:是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约。

UML图及特征:

  用例图:用例图是从用户角度描述系统功能,是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元。

  类图:类图描述系统中类的静态结构,不仅定义系统中的类,表示类之间的关系,如关联、依赖、聚合等,也包括类的内部结构。

     类图是以类为中心组织的,类图中的其他元素或属于某个类,或与类相关联。

  对象图:对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。

  顺序图:顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互。

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

  协作图:协作图描述对象间的协作关系,跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系。

      协作图的一个用途是表示一个类操作的实现。

  状态图:状态图是一个类对象所可能经历的所有例程的模型图。状态图由对象的各个状态和连接这些状态的转换组成。

  活动图:活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动。

      活动图描述了一组顺序的或并发的活动

  构件图:构件图为系统的构件建立模型。构件即构造应用的软件单元,还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改可能带来的影响。

  部署图:部署视图描述位于节点实例上的运行构件实例安排。节点是一组运行资源,如计算机、设备或存储器。这个视图允许评估分配结果和资源分配。

各UML图的关系:

  

UML语法描述:

  

用例图

用例图是被称为参与者的外部用户所能观察到的系统功能的模型图。用例图列出系统中的用例和系统外的参与者,并显示哪个参与者参与了哪个用例的执行(或称为发起了哪个用例)。

所谓用例是系统外部可见的一个系统功能的单元。

用例图中的关系及解释:

类图类图以反应类的结构(属性、方法)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法。

顺序图

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

顺序图展示对象之间的交互,这些交互是指在场景或用例的事件流中发生的。顺序图属于动态建模。

顺序图的重点在消息序列上,也就是说,描述消息是如何在对象间发送和接收的。表示了对象之间传送消息的时间顺序。

浏览顺序图的方式是:从上到下查看对象间交换的消息。

协作图

协作图是一种交互图,强调的是发送和接受消息的对象之间的组织结构,使用协作图来说明系统的动态情况。

协作图主要描述协作对象间的交互和链接,显示对象、对象间的链接以及对象间如何发送消息。

协作图可以表示类操作的实现。

协作图和顺序图比较

协作图和顺序图都表示了对象间的交互作用,但是它们的侧重点不同。

顺序图清楚地表示了交互作用中的时间顺序(强调时间),但没有明确表示对象间的关系。

协作图清楚的表示了对象间的关系(强调空间),但时间顺序必须从顺序号获得。

协作图和顺序图可以相互转化。

状态图

状态图说明对象在它的生命期中响应事件所经历的状态序列,以及它们对那些事件的响应。

状态图用于:

  解释Actor、类、子系统和组件的复杂特性。

  为实时系统建模。

状态图的组成:状态和转移。

对象的状态是指在这个对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动,或等待某些事件。

转移是由一种状态到另一种状态的迁移。这种转移由被建模实体内部或外部事件触发。对一个类来说,转移通常是调用了一个可以引起状态发生重要变化的操作的结果。

活动图

活动图描述系统的动态行为。

包含活动状态,活动状态是指业务用例的一个执行步骤或一个操作,不是普通对象的状态。

活动图适合描述在没有外部事件触发的情况下的系统内部的逻辑执行过程;否则,状态图更容易描述。

类似于传统意义上的流程图。

活动图主要用于:

  业务建模时,用于描述业务用例,描述一项业务的执行过程;

  设计时,描述操作的流程。

构件图

构件图用于静态建模,是表示构件类型的组织以及各种构件之间依赖关系的图。

构件图通过对构件间依赖关系的描述来估计对系统构件的修改给系统可能带来的影响。

部署图
部署图用于静态建模,是表示运行时过程节点结构、构件实例及其对象结构的图。

如果含有依赖关系的构件实例放置在不同节点上,部署视图可以展示出执行过程中的瓶颈。

部署图的两种表现形式:实例层部署图和描述层部署图。

部署图与构件图对比

部署图与构件图相同的构成元素:

  构件、接口、构件实例、构件向外提供服务、构件要求外部提供的服务。

部署图与构件图的关系:

  部署图表现构件实例;

  构件图表现构件类型的定义。

部署图偏向于描述构件在节点中运行时的状态,描述了构件运行的环境;构件图偏向于描述构件之间相互依赖支持的基本关系。

 

附录

WAVE测试:

  1.What to do ?(Not how to do.)

  2.Actor‘s point of view?

  3.Value for the actor?

  4.Entire flow of events?

各个阶段用到的UML模型图:

  

UML全部图的关系:

  

笔记 UML基础