最近看了点plantuml的手册(可以集成在许多工具中方便绘制uml图),用 深入浅出UML类图 售票机程序 绘图来试着绘制几个UML图,可以在线测试(测试地址http://www.plantuml.com/),不保证绘图正确,只是学习一下plantuml语法,此外visio是个很强大的工具。
类图:(http://plantuml.sourceforge.net/classes.html)
@startuml
title 售票机控制程序
scale 1500 width
Component <|-- Keyboard : 继承关系
Component <|-- Screen
Component <|-- CardDriver
Component <|-- CashSlot
Component <|-- Printer
Keyboard <|-- ActionKeyboard
Keyboard <|-- TicketKindKeyboard
Keyboard <|-- DestinationKeyboard
ActionKeyboard <--* TicketSoldSystem : 组合关系
TicketKindKeyboard <--* TicketSoldSystem
DestinationKeyboard <--* TicketSoldSystem
Screen <--* TicketSoldSystem
CardDriver <--* TicketSoldSystem
CashSlot <--* TicketSoldSystem
Printer <--* TicketSoldSystem
skinparam classAttributeIconSize 0
note top of Component : 抽象部件类,所有部件类的父类
note left of Keyboard : 键盘抽象类
class Component {
+init():void
+doSelfTest():void
}
class Keyboard {
+getSelectedKey():int
}
class Screen {
+showText():void
}
class CardDriver {
+getCredit():String
+debitFare():double
+ejectMCard():void
}
class CashSlot {
+getCash():String
}
class Printer {
+printTicket():void
+ejectTicket():void
}
class ActionKeyboard {
+getAction():int
}
class TicketKindKeyboard {
+getTicketKind():String
}
class DestinationKeyboard {
+getDestinationCode():String
}
class TicketSoldSystem {
+verifyCredit():boolean
+calculateFare():double
}
note as Comment
<color:royalBlue>(1) 目的地键盘用来输入行程目的地的代码(例如,200表示总站)。</color>
(2) 乘客可以通过车票键盘选择车票种类(单程票、多次往返票和座席种类)。
(3) 继续/取消键盘上的取消按钮用于取消购票过程,继续按钮允许乘客连续购买多张票。
(4) 显示屏显示所有的系统输出和用户提示信息。
(5) 插卡口接受MCard(现金卡),硬币口和纸币槽接受现金。
(6) 打印机用于输出车票。
(7) 所有部件均可实现自检并恢复到初始状态。
end note
@enduml
用例图:(http://plantuml.sourceforge.net/usecase.html)
@startuml
left to right direction
:买票人: as people << Human >>
:票务系统: as system << Application >>
rectangle 售票程序 {
people -- (选票)
(选票) .> (支付) : include
(帮助) .> (选票) : extends
(选票) -- system
}
@enduml
时序图:(http://plantuml.sourceforge.net/sequence.html)
@startuml
actor 买票人 as User
participant 购票程序 as Application
participant 票务系统 as System #red
User -> Application: 输入目的地址
alt 目的地址合法
Application --> User: 提示输入购买票数
User -> Application: 输入购买票数
Application -> System: 查询所余票数
alt 有余票
System --> Application: 返回正确
Application --> User: 提示插入所需金额
User -> Application: 插入card或者money
activate Application
Application -> System: 更新剩余票信息
activate System
System --> Application: 更新成功
deactivate System
Application --> User: 购票成功,出票
deactivate Application
else 无票
System --> Application: 返回错误
Application --> User: 提示没有票了
end
else 错误输入
Application --> User: 提示地址错误
end
@enduml