UML模型圖

官方文檔
UML實踐詳細經典教程----用例圖、順序圖、狀態圖、類圖、包圖、協作圖

用例圖

用例圖 Use case diagrams 描述了作為一個外部的觀察者的視角對系統的印象。強調這個系統是什么而不是這個系統怎么工作。

  • 用例 用圓括號括起來。

  • e.g. (cube)

  • 角色 用兩個冒號包裹起來,未分隔的角色名可以省略冒號

  • e.g. FE 可省略冒號 :Java Developer: 不可省略

  • 箭頭 --> 連接角色和用例,箭頭定義的后面加一個冒號及文字的方式來添加標簽, 越多-表示箭頭越長,可以通過翻轉箭頭或者添加方向關鍵詞來改變

  • e.g. FE -> (cube) FE -< (cube) FE -up-> (cube)

:Java Developer: ----> (fengdie) : A small label

  • ->x 一條丟失的消息

  • -\ 上箭頭

  • -/ 下箭頭

  • ->> 細箭頭

  • ->o 結點箭頭

  • <-> 雙向箭頭

  • 組合消息

  • alt/else

  • opt

  • loop

  • par

  • break

  • critical

  • group 后面緊跟著消息內容

  • end 結束分組

  • 注釋 note 同用例圖

  • 分隔符 == ${separatorName} ==

  • 延遲 ...${later desc}...

@startuml
box "Internal Service"
    participant A
    participant B
end box
autonumber 1 2
A -> B: 消息傳遞
activate A
A -->> A: 消息返回
destroy B

Alice <- "Bob() d" : Hello
...5 minutes latter...
actor Foo1
boundary Foo2
control Foo3
entity Foo4
database Foo5
collections Foo6
Foo1 -> Foo2 : To boundary
Foo1 -> Foo3 : To control
Foo1 -> Foo4 : To entity
Foo1 -> Foo5 : To database
Foo1 -> Foo6 : To collections

Alice -> Bob: Authentication Request

== Initialization ==

alt successful case

    Bob -> Alice: Authentication Accepted
    
else some kind of failure

    Bob -> Alice: Authentication Failure
    group My own label
        Alice -> Log : Log attack start
        loop 1000 times
            Alice -> Bob: DNS Attack
        end
        Alice -> Log : Log attack end
    end
    
else Another type of failure

   Bob -> Alice: Please repeat
   
end

@enduml

活動圖

活動圖 activity diagram 是一個很特別的流程圖。活動圖和狀態圖之間是有關系的。狀態圖把焦點集中在過程中的對象身上,而活動圖則集中在一個單獨過程動作流程。活動圖告訴了我們活動之間的依賴關系。

  • TODO

@startuml
start
if (multiprocessor?) then (yes)
  fork
    :Treatment 1;
  fork again
    :Treatment 2;
  end fork
else (monoproc)
  :Treatment 1;
  :Treatment 2;
endif
stop

@enduml

類圖

類圖 Class diagram 通過顯示出系統的類以及這些類之間的關系來表示系統。類圖是靜態的-它們顯示出什么可以產生影響但不會告訴你什么時候產生影響。

  • 符號 被劃分成三塊的方框:f類名,屬性,和操作。

  • TODO

@startuml
class Foo1 {
  You can use
  several lines
  ..
  as you want
  and group
  ==
  things together.
  __
  You can have as many groups
  as you want
  --
  End of class
}

class User {
  .. Simple Getter ..
  + getName()
  + getAddress()
  .. Some setter ..
  + setName()
  __ private data __
  int age
  -- encrypted --
  String password
}

@enduml
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容