UML核心视图介绍

Posted 小狼嚎频道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML核心视图介绍相关的知识,希望对你有一定的参考价值。

         上周介绍了UML核心视图中的用例图、类图、包图、活动图,本周我们来看剩下的两种核心视图:状态图、时序图。

1.  状态图

状态图又称之为状态机图,应该是UML中最常用的图形了,状态机图实现了对单一对象的状态的梳理,从而我们可以获取如下信息:

  • 对象的每一个状态是什么?

  • 对象在每一个状态下,可以进行什么操作?

  • 对象从一个状态跳转到另外一个状态,触发的条件是什么?

当梳理了以上三个问题,我们对对象的分析已经基本清楚了,虽然我们不会向活动图那样梳理的那么细节,但是整个功能项内容会比较严谨,而组成状态机图的元素有初始状态、状态、复合状态、转移、事件、条件、最终状态。

初始状态:这个比较好理解,就是对象产生时的初始状态,比如调度任务刚刚新建的状态、或者脚本刚刚创建的状态,一个对象的默认状态需要我们设定好。

状态:即梳理对象的生命周期状态,如任务的执行中,成功、失败、等待中等,分析状态我们常常会遇到状态不统一,如任务的草稿状态,和执行成功状态,他们的关系是什么呢?因为草稿状态、执行成功状态看起来不在一个维度,此时我们就需要想到复合状态。

复合状态:所谓复合状态就是状态还存在子状态,如任务在草稿状态不可执行,当在正式发布状态下,才有执行成功和执行失败这种状态。所以执行状态是保存状态的子生命周期。但是这样操作时,对象的服务能力反而不那么清晰。所以不同的角度,我们一般还是分开画两个状态机图,关注对象的单一角度。

转移:就是状态与状态之间跳转的连接线,我们需要考虑哪些状态之间可以转移,哪些状态之间不可以转移。而触发转移是通过事件完成。

事件:即触发转移的操作或条件,如任务的启动执行,或者到达预定执行时间,都是一个事件,梳理完整的事件清单也是状态机图的任务之一。

状态图是很有用的技术,尤其在描述单个复杂对象的行为时非常有助于我们理解一个对象的行为。但是在建模时并不需要对每个对象都绘制状态图。仅对领域模型中最为关键的业务对象,尤其是当其在一个或多个用例场景中参与了多个活动时,才对其建模。

2.  时序图

时序图是按照时间描述对象之间的交互,它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,其中的每条消息对应一个类操作或状态机中引起转换的触发事件。

上面是百度的解释,其实比较抽象,如果落到实际案例中,比如电商行为中,用户登录网站,就是用户向网站发了一次消息,而网站从商品中心读取商品信息,也是以一次消息交互,时序图就是按照时间顺序进行梳理,以此掌握究竟参与对象间有多少消息交互。表述这些可以通过对象、生命周期线、消息、会话组成

对象:我们就比较熟知了,比如用户、网站、商品中心、订单中心都可以是一个对象,即参与业务流程的实体。

生命周期线:生命周期线表示对象的存在,当对象被激活(创建或者被引用)时,生命周期线上出现会话,表示对象参与了这个会话。

会话:即两个对象间的所有消息的合集,我们称之为会话。

其实除了时序图,还有一种图形叫做协作图,也是用于表述对象之间的消息,而不同的是协作图并不是按照时间顺序,而且还表述了对象与对象之间的关系,这里对协作图就不展开说明了。

绘制业务模型时序图时要注意:第一,时序图以达成业务目标为准则;第二,这个阶段处于业务阶段,使用的描述语言应当采用业务术语;第三,时序图表达的内容会对将来的分析设计带来帮助,但是相对于编码实现来讲由于太粗略而不能够作为依据。

以上是关于UML核心视图介绍的主要内容,如果未能解决你的问题,请参考以下文章

Thinking in UML 学习笔记——UML核心视图之类图

简要介绍UML中的视图以及它们之间的关系

从前慢-UML

UML基础知识

UML各种图总结

UML的九种图