我打算使用plantuml把以前用powerdesigner的图重新画出来
时序图
题目:
在某在线订房系统中,顾客输入房间套数、房间类型、入住时间、入住天数等信息,系统显示符合要求的房间号;顾客确定预订的房间,系统显示预付订金信息;顾客输入信用卡账号和密码,系统请求银行信用卡系统提供支付服务;银行信用卡系统验证用户信息并返回验证通过和支付成功消息;顾客请求系统打印预订单和收据,系统打印相关资料;预订结束。
注意:代码中的:一定要用英文的,要不然很多bug。
代码:
示例图:
流程图
题目:
数据库调度流程图
代码:
@startuml(*) --> 管理系统的调用--> 权限验证if 是否有权限 then->[true] 更新数据库else->[false] 拒绝调用endif拒绝调用-->(*)更新数据库-->(*)@enduml
示例图:
用例图
题目:
某企业为了方便员工用餐,为企业餐厅开发了一个订餐系统(COS:Cafeteria Ordering System),企业员工可通过企业内联网使用该系统。该系统功能描述如下:
(1) 企业的任何员工都可以查看菜单和今日特价;
(2) 系统的顾客是注册到系统的员工,可以在线订餐(以下操作均需先登录)、注册工资支付、修改订餐信息和删除订餐信息,在注册工资支付时需要通过工资系统进行身份验证;
(3) 餐厅员工是特殊的顾客,可以进行备餐(系统记录备餐信息)、生成付费请求和请求送餐,其中对于注册使用工资支付的顾客生成付费请求并发送给工资系统;
(4) 菜单管理员是餐厅员工的一种,可以管理菜单;
(5) 送餐员也是餐厅员工的一种,可以打印送餐说明、记录送餐信息(如送餐时间)以及记录收费(对于没有注册工资支付的顾客,由送餐员收取现金后记录)。
代码:
@startumlleft to right directionskinparam packageStyle rectangleskinparam usecase{BackgroundColor<<Main>> goldBorderColor<<Main>> YellowGreenArrowColor blue}actor 送餐员actor 菜单管理员actor 餐厅员工actor 顾客actor 员工actor 工资系统:餐厅员工:<|-up-送餐员:餐厅员工:<|-up-菜单管理员:顾客:<|-up-餐厅员工:员工:<|-up-顾客rectangle COS{usecase 查看菜单 <<Main>>usecase 查看今日特价 <<Main>>usecase 注册 <<Main>>usecase 登录 <<Main>>usecase 在线订餐 <<Main>>usecase 注册工资支付 <<Main>>usecase 修改订餐信息 <<Main>>usecase 删除订餐信息 <<Main>>usecase 备餐 <<Main>>usecase 生成付费请求 <<Main>>usecase 请求送餐 <<Main>>usecase 管理菜单 <<Main>>usecase 打印送餐说明 <<Main>>usecase 记录送餐信息 <<Main>>usecase 记录收费 <<Main>>usecase 注册工资支付 <<Main>>usecase 生成付费请求 <<Main>>}:员工:-right->(查看菜单):员工:-right->(查看今日特价):员工:-right--->(注册):顾客:-right->(在线订餐):顾客:-right->(注册工资支付):顾客:-right->(修改订餐信息):顾客:-right->(删除订餐信息):餐厅员工:-right->(备餐):餐厅员工:-right->(生成付费请求):餐厅员工:-right->(请求送餐):菜单管理员:-right->(管理菜单):送餐员:-right->(打印送餐说明):送餐员:-right->(记录送餐信息):送餐员:-right->(记录收费):工资系统:-left->(注册工资支付):工资系统:-left->(生成付费请求)(注册).>(登录) : extend(在线订餐).> (登录) : include(注册工资支付).> (登录) : include(修改订餐信息).> (登录) : include(删除订餐信息).> (登录) : include(备餐).> (登录) : include(生成付费请求).> (登录) : include(请求送餐).> (登录) : include(管理菜单).> (登录) : include(打印送餐说明).> (登录) : include(记录送餐信息).> (登录) : include(记录收费).> (登录) : include@enduml
状态图
题目:
某销售信息管理系统中销售部员工可以提交订单,刚提交的订单为“初始”状态;系统管理员可以处理订单,如果订单无误,则
修改订单为“备货”状态,否则将订单退还给提交订单的销售部员工修改,员工此时可以取消订单;仓库管理员备货完毕后可将订单状态改为“发货”状态;销售部员工在确认客户已经收到货物后,可将订单改为“关闭”状态。
代码:
@startumlhide empty description[*] --> 初始状态:提交订单/Submitstate 初始状态: do/Handlestate 初始状态: do/Modify Statusstate 修改状态: do/Modify Statusstate 修改状态: exit/Cancelstate 备货状态: do/Modifystate 发货状态: do/Confirmstate 发货状态: do/Closestate 关闭状态初始状态 --> 修改状态: 处理订单[订单有误]/Handle初始状态 --> 备货状态: 处理订单[订单无误]/Handle & Modify Status备货状态 --> 发货状态: 发货[已发货]/Modify Status发货状态 --> 关闭状态: 确认订单[客户已收到货物]/Confirm & Close修改状态 --> 初始状态: 修改完毕/Modify Order修改状态 --> [*]:取消订单/Cancel关闭状态 --> [*]@enduml
组件图
题目:
Help.h是一个头文件,被Calculate.cpp和Filter.cpp引用,而Calculate.cpp又引用了Filter.cpp。此外,Filter.cpp还引用了头文件FileReader.h,Display.cpp又依赖于Calculate.cpp的运算结果
代码:
@startumlcomponent Display.cppcomponent Calculate.cppcomponent Help.hcomponent Filter.cppcomponent FileReader.h() interface_1Display.cpp -- interface_1interface_1 -- Calculate.cppCalculate.cpp ..> Help.hCalculate.cpp ..> Filter.cppFilter.cpp ..> Help.hFilter.cpp ..> FileReader.h@enduml
类图
题目:
集合类的关系。
代码:
@startumlinterface Iterable{Iterator() : Iterator<T>forEach(Consumer<? super T> action) : voidspliterator() : Spliterator<T>}interface Collection{add(Object o) : booleanaddAll(Collection c): booleanclear() : voidremove(Object o):booleanremoveAll(Collection c):booleancontains(Object o): booleancontains(Collection c): booleanisEmpty() : booleansize() : intretainAll(Collection c):booleantoArray(): Object[]}interface List{get(int index): Eset(int index,E element):EindexOf(Object o):intlastIndexOf(Object o):intsort(Comparator<? super E> c):voidsubList(int fromIndex,int toIndex):List<E>}interface Queue{offer(E e): booleanpoll(): Eelement(): Epeek(): E}interface Setinterface Deque{offerLast(E e):booleanofferFirst(E e):booleanaddLast(E e):voidaddFirst(E e):voidremoveFirst():EremoveLast():EpollFirst():EpollLast():EgetFirst():EgetLast():EpeekFirst():EpeekLast():Epop():Epush(E e):void}interface SortedSet{comparator():Comparator<? super E>subSet(E fromElement,E toElement):SorteddSet<E>headSet(E toElement):SortedSet<E>tailSet(E fromElement):SortedSet<E>first():Elast():E}class ArrayListclass LinkedListclass Vectorclass Stackclass ArrayDequeclass PriorityQueueclass HashSetclass LinkedHashSetclass TreeSetIterable <|-- CollectionCollection <|-- ListCollection <|-- QueueCollection <|-- SetList <|.. ArrayListList <|.. LinkedListList <|.. VectorVector <|-- StackQueue <|-- DequeDeque <|.. LinkedListDeque <|.. ArrayDequeQueue <|.. PriorityQueueSet <|-- SortedSetSortedSet <|.. TreeSetSet <|.. HashSetSet <|.. LinkedHashSet@enduml
思维导图
题目:
io流思维导图
代码:
@startmindmap* I/O** 字节流*** InputStream**** ByteArrayInputStream**** PipedInputStream**** FilterInputStream***** BufferedInputStream***** DataInputStream***** PushbackInputStream**** FileInputStream**** ObjectInputStream*** OutputStream**** ByteArrayOutputStream**** PipedOutputStream**** FilterOutputStream***** BufferedOutputStream***** DataOutputStream***** PrintStream**** FileOutputStream**** ObjectOutputStream** 字符流*** Reader**** CharArrayReader**** PipedReader**** FilterReader***** PushbackReader**** BufferedReader**** InputStreamReader***** FileReader*** Writer**** CharArrayWriter**** PipedWriter**** FilterWriter**** BufferedWriter**** OutputStreamWriter***** FileWriter**** PrintWriter@endmindmap
示例图:
