知足常乐 俭以养德
最近项目处于设计阶段,需要画一些序列图,但是有些细节记不太清楚,所以找了一篇文章重新学习了一下.参考的是这边文章:http://www.uml.org.cn/oobject/201909232.asp
有些文字感觉说的很专业,就直接引用了
序列图主要用于按照交互发生的一些列顺序,显示对象之间的这些交互.它的主要目的是把用例表达的需求,转换为进一步,更加正式的精细表达.用例常常被喜欢为一个或多个序列图.
在UML2.0中引入了一个符号叫框架元件.很多人把它当作图形边化界来使用
除了提供一个图形化的边框之外,框架元件也有描述交互的重要功能
注意:统治的标签以sd开始,具体格式如下:
图类型 图名称
UML规范提供特定的文本值,比如:sd代表序列图,activity代表活动图,use case代表用例图
序列图的主要目的是定义事件序列,产生希望的输出,它的重点是消息产生的顺序.图按照水平和垂直的维度传递信息: 垂直维度从上而下表示消息/调用发生的时间序列,而且水平维度从左到右表示消息发送的对象实例
当绘制序列图时,首先要放置生命线符号元件.生命线表示序列中建模的角色或对象实例.生命线包括上方的方格,以及一条由上至下的虚线.生命线名字放置到方格内.如上图的Bank,AccountLedger等.生命线的命名格式如下:
实例名:类名
上例中,类型名是Bank,实例名是buyersBank,并不是所有生命线都包含实例名. 序列图可以包含匿名的生命线
为了便于阅读,序列图的第一个消息总是从顶端开始,并位于图的左边,然后是后序消息. 我们通过带箭头的线从消息发送放指向消息接收方.因为消息分为同步和异步两种,并且我们往往需要知道消息执行结果,UML用以下线段来表示:
消息返回是可选的,个人习惯加上返回值,因为可以提供更多的细节.
上例是一个财务分析的序列图,分析员通过getAvailableReports()向报表系统发送消息,报表系统然后向安全系统发送消息,验证当前用户是否合法,验证通过后返回
对象交互时,有时必须满足一定的条件才能发送消息.在UML1.x中,通常把约束放到消息名字之前.约束的格式如下:
[Boolean Test]
如上图,只有余额大于转账金额时才允许扣款,我们把约束balance >= amount
放到消息名deduct(amount)
前面