代码改变世界

UML作业第五次:分析系统,绘制状态图

2019-05-15 22:21  王亚娟  阅读(280)  评论(0编辑  收藏  举报

语法小结

简单状态

使用([*])开始和结束状态图。使用-->添加箭头。

合成状态

一个状态也可能是合成的,必须使用关键字state和花括号来定义合成状态。

长名字

也可以使用关键字state定义长名字状态。

并发状态

-- or ||作为分隔符来合成并发状态。

箭头方向

使用->定义水平箭头,也可以使用下列格式强制设置箭头方向:

-down-> (default arrow)

-right-> or ->

-left->

-up->

可以用首字母缩写或者开始的两个字母定义方向(如, -d--down--do-是完全等价的)

注释

可以用 note left of, note right of, note top of, note bottom of 关键字来定义注释。还可以定义多行注释。以及浮动注释。

更多注释

可以在合成状态中放置注释。

显示参数

skinparam改变字体和颜色。

可以在如下场景中使用:

  • 在图示的定义中,
  • 在引入的文件中,
  • 在命令行或者ANT任务提供的配置文件中。

还可以为状态的构造类型指定特殊的字体和颜色。

 

 

语言描述

@startuml
[*] --> 待载
   
待载 --> 上升:进入[目标楼层>当前楼层]/关门上行 
待载 --> 下降:进入[目标楼层<当前楼层]/关门下行 
  
上升 -> 楼间停:[进人/出人]/停机开门 
下降 -> 楼间停:[进人/出人]/停机开门  
 
楼间停 -> 上升:[目标楼层>当前楼层]/关门上行
楼间停 -> 下降:[目标楼层<当前楼层]/关门下行
楼间停 -left-> 待载:[无人]/关门
@enduml

 

 

 

@startuml
[*] -> 空额 
空额 -> [*]  
空额 --> 有余额:存款/余额=余额+存款额
空额 --> 负债:取款[取款额<最大限额]/余额=余额-存款额
有余额 -> 有余额:存款/余额=余额+存款额 
有余额 -> 有余额:取款[取款额<余额]/余额=余额-取款额
有余额 --> 负债:取款[取款额>余额]/余额=余额-取款额
有余额 --> 空额:取款[取款额=余额]/余额=余额-取款额 
负债 -> 负债 
负债 --> 有余额 
负债 --> 空额
@enduml