首页 > 编程知识 正文

uml循环作业图,uml时序图

时间:2023-05-06 05:34:46 阅读:27458 作者:4946

UML序列图是仅次于类图的最常见的UML图。 序列图将相互关系表示为二维图,其中纵向是时间轴,纵向是时间延伸。 横轴表示协作中的每个角色,通常是Class中的对象,用虚线表示每个角色的生命线,用矩形竖线表示生命线上是否处于活动状态。 可以在对象之间发送同步或异步消息。

序列图可能比类图更能体现PlantUML的价值

同步信息@startumlthdsn -爱心饼干: Hi爱心饼干-- thdsn: Hithdsn -爱心饼干: Is this a pen? 深饼干-- thdsn: No否! This is an apple! @enduml

序列图基本配置:字符消息类型字符:消息内容消息类型中-表示同步消息- -虚线表示回复消息异步消息@startumlthdsn -爱情小甜饼: Hithdsn - thdsn -爱心饼干: Is this a pen? thdsn -爱心饼干: Is this a pen? thdsn -爱心饼干: Is this a pen? 爱心饼干- thdsn: This is an apple! @enduml

-表示异步消息

角色生命线@ startumlparticipantthdsnparticipant爱心饼干participant skdbhskdbh -爱心饼干: Who is thdsn? 爱心饼干- thdsn: Are you thdsn? @enduml

多个粒子从左到右依次显示每个角色的生命线。 如果没有participant,角色出现顺序将从左到右显示生命线的角色图例@ startumlactoractorboundarycontrolcontrolentityentitydatabasedatabase

可以使用非participant关键字来表示特殊的角色类型

发给我的邮件@ startumlaclie-AC lie : dosomethingbyyourselfaclie-AC lie 3360 dosomethingbyourselfaclie-AC lie 3360 domethingbbbbaclie

留言@startumlthdsn -爱心饼干: Hiautonumber爱心饼干- skdbh: Hiskdbh - Dave: Hi爱心饼干- Dave: Hi@enduml

可能需要将序列号添加到消息中以指示顺序。 可以在第一条消息之前添加autonumber,然后自动将序列号添加到后续消息中。

起始号和增量@startumlautonumber 3thdsn -爱心饼干: Hi爱心饼干- sk DBH : hi autonumber 23 sk DBH-Dave 3360 hi爱心饼干- Dave 3360 hi

autonumber起始序列号增量用于指定实际序列号和序列号增量的增量

短信号暂停@startumlautonumberthdsn -爱心饼干: Hiautonumber stop爱心饼干- sk DBH : hiskdbh-Dave 3360 hiautonumberresume爱心饼干ve 3360 hiautonumberresume e : hi @ endumlautonumberstop :自动序列号暂停autonumber resume:自动序列号连续消息组@startumlthdsn -深度alt yes thdsn --爱情饼干: Yes! This is a pen! else no thdsn --爱情饼干: No! This is an apple! end@enduml

如果需要多个消息表示一组相关逻辑,则可以使用预配置的关键字来表示各种逻辑。 例如,在alt/elseoptloopparbreakcritical关键字后缩进消息信息(如yes、no )是不必要的,但如果添加可读性更好的消息组,则

@startumlthdsn -爱心饼干: Is this a pen? alt yes thdsn --爱心饼干

: Yes! This is a pen!!else no thdsn <-- 深情的饼干: Noooooooo! This is an apple!!!!! loop ∞ thdsn -> 深情的饼干: Oh sorry! By the way, is this a pen? thdsn <-- 深情的饼干: No!!!! endend@enduml

自定义消息组

除了使用预置关键字的消息组,还可以使用任意名字自定义一个消息组

@startumlgroup copy thdsn -> 深情的饼干: Is this a pen? thdsn <-- 深情的饼干: No! This is an apple!!end@enduml

group 之后添加消息组的名字

生命线活跃状态 @startumlactivate thdsnthdsn -> 深情的饼干activate 深情的饼干深情的饼干 -> skdbhactivate skdbh深情的饼干 <-- skdbhdeactivate skdbhthdsn <-- 深情的饼干deactivate 深情的饼干@enduml

activate <name> 指定name的生命线进入活跃状态deactive <name> 指定name的生命线退出活跃状态 嵌套活跃状态 @startumlactivate thdsnthdsn -> 深情的饼干activate 深情的饼干深情的饼干 -> 深情的饼干activate 深情的饼干深情的饼干 -> skdbhactivate skdbh深情的饼干 <-- skdbhdeactivate skdbhthdsn <-- 深情的饼干deactivate 深情的饼干@enduml

activate 中继续 activate 可以嵌套活跃状态

创建角色和生命线 @startumlthdsn -> 深情的饼干create skdbh深情的饼干 -> skdbh: new深情的饼干 -> skdbh深情的饼干 <-- skdbhthdsn <-- 深情的饼干@enduml

create <name> 用来创建一个角色和其生命线,此时消息箭头会执行角色图例

参考、引用 @startumlthdsn -> 深情的饼干ref over 深情的饼干, skdbh: ...thdsn <-- 深情的饼干ref over thdsn......end ref@enduml

可以在时序图中添加参考信息

ref over <生命线名称> : <内容> : reference 的范围和参考内容ref over ... end ref: 可以换行写参考内容 边界线 @startuml== Foo ==thdsn -> 深情的饼干thdsn <-- 深情的饼干== Bar ==深情的饼干 -> skdbh深情的饼干 <-- skdbh@enduml

== <name> == 添加边界线,跨越所有角色的生命线

外部消息 @startuml[-> thdsn: Hellothdsn ->]: Hello@enduml

消息箭头的前后使用 [ , ] ,表示一个来自外部或者指向外部的消息

消息间隔 @startumlthdsn -> 深情的饼干thdsn <-- 深情的饼干thdsn -> 深情的饼干thdsn <-- 深情的饼干|||thdsn -> 深情的饼干thdsn <-- 深情的饼干||80||thdsn -> 深情的饼干thdsn <-- 深情的饼干@enduml

消息之间加 ||| , 会适当拉开消息间隔||<pixel>||:pixel可以指定具体间隔的像素数 备注 @startumlthdsn -> 深情的饼干note left: Hellothdsn <-- 深情的饼干note right: Worldthdsn -> thdsnnote leftHelloWorldend note@enduml

消息后紧跟 note left 或者 note right 表示在相应位置添加备注,注意note 不能指定 top 或 bottomnote <left|right> ... end note 可以换行写备注备注内容支持 Creole 格式,Creole 的语法类似 Markdown Creole 语法示例 @startumlnote left --标题-- = 标题1 == 标题2 === 标题3 --列表-- * 列表1 * 列表2 ** 列表2-1 # 有序列表1 # 有序列表2 ## 有序列表2-1 --字体-- * **粗体** * //斜体// * ""等宽字体(monospace)"" * --删除线-- * __下划线__ --表格-- |= |= Column1 |= Column2 | |1 |Value1-1 |Value1-2 | |2 |Value2-1 |Value2-2 | --HTML-- * <color:red>设置颜色</color> * <color:#00FF00>色号</color> * <back:skyblue>背景色</back> * <size:18>字号</size> * <b>粗体</b> --目录-- |_build.gradle |_src |_main |_java |_... |_... |_testend note@enduml

PlantUML 快速入门(一) UML 类图

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。