分享

需求分析用啥图?UML全家桶-时序图

 万里潮涌 2023-04-16 发布于浙江

上次讲完形象的用例图,这次继续讲UML的另一种重要的图:时序图(Sequence Diagram). 这是一种以时间为主线,通过发送信息的时间顺序来描述各对象之间的动态协作的UML交互图。

Image

1. 元素

时序图的元素主要包括下面几种:

角色 Actor

我的理解这个元素应该叫主角,一般一个时序图里会有一个主角,复杂的图会有更多个。角色可以是人、机器、系统或子系统。可以用人形图标表示。

Image

对象 Object

在时序图中,对象是信息交互的主体(个人认为角色其实也属于对象的范畴,只是为了强调其重要性,所以往上拎了)。对象在时序图中可以用三种方式表示:只显示对象名,只显示类名,对象名+类名都显示,这个根据场景的情况和作图方便来定,同一个时序图统一一种对象显示方式即可。

对象的排列顺序 Sequence

既然叫时序图,那最好就是按照对象的交互先后进行排列了,有点类似演出上场。不同的是,时序图里是主角先登场,然后才是其他对象。还有,如果两个对象的交互比较频繁,那就尽可能靠在一起,方便标注信息和后面特写嘛(焦点,组合)。

生命线 Lifeline

在时序图里,每个对象都是有存在的时间段的,这就需要用生命线进行展示-在对象下方延伸一条虚线,虚线长度代表存在的时间段。生命线也是时间概念,但为了主时间线错开方便作图,所以采用向下延伸的方式。

Image

控制焦点 Focus of Control

对象激活的时间段,在这个时段内对象有特定动作需要执行。这个可以理解为特写镜头,聚焦对象之间的互动。用矩形框表示。

Image

消息 Message

这部分代表对象之间的信息传送。消息主要可分为同步信息、异步信息和返回信息。

同步信息和异步信息是一对相对概念,差别在于发送者传递信息给接收者之后的动作:

a. 消息传递完,发送者停止活动,等待接收者反馈(拒绝Reject或者返回控制Process), 这是同步消息;

b. 消息传递完,发送者继续干自己手上的活,不等待接收者反馈。这是异步消息。

返回信息是过程调用返回的,比如下游接口pAPI的返回信息response。

还有一类消息-自关联消息,表示方法的自我调用,或者在一个对象内方法A调用方法B。

2. 关系表示

在时序图中,关系的表示主要通过组合片段进行。组合片段是时序图中专门用来解决交互执行条件和方式的描述手段。组合片段可直接表示逻辑组件,通过框定指定条件或子进程的作用域,可以为任何生命线的任何部分定义特定条件和子进程。相当于控制焦点+特写说明Image

组合片段总共有13种,包括如下:

a.选项Opt,抉择Alt

抉择比较常用,指在一个预设条件下只能发生一个序列。比如去取款时,ATM机没钱了,那就不会有取款选项。 

选项这种通常是用户有多个选择的情况。同样是在ATM机操作,你可以取款,也可以不取款就站着看。

b.循环Loop,中断Break,并行Par,关键Critical,弱顺序/强顺序 Seq/Strict

循环应该是开发人员非常熟悉的了,当满足重复条件,循环就能一直进行。

并行,上面讲元素-消息时也提过,是发送者无需等待反馈继续进行活动,与串行是相对的。

c.考虑Consider,忽略Ignore,断言Assert,否定Neg

考虑和忽略主要针对片段描述的消息列表,两者对当前描述来说意义不大,但只能取一个。

断言和否定是在考虑/忽略的片段中,断言是操作数片段指定唯一有效的序列,否定是此片段中显示的序列不得发生。(说实话这个真不好理解。)

另外,如果要描述组合片段之间的关系怎么办呢?那就用门 Gate 吧:门是连接组合A中的消息和组合B中的消息的连接点。在时序图中,用一个小方框表示。这个门可以理解为下层展开/关闭的开关。

Image

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多