UML 草圖工具

2004 年 6 月 16 日

我繪製了許多 UML 圖表,但我沒有使用 CASE 工具。原因是我對 UmlAsSketch 感興趣,而不是所有儲存庫的東西。到目前為止,我的常規選擇一直是 Visio。儘管 Visio 附帶 UML 範本,但我沒有使用內建的範本 - 我比較喜歡 Pavel Hruby 的範本。

Visio 對我來說非常好用,它仍然是我的首選。但我承認我心猿意馬。Visio 只能在 Windows 上執行 - 我也使用 Mac 和 Unixen,所以有一個可以在所有(或實際上是常見資料格式)上執行的工具會很好。我喜歡與他人合作,所以某個開源軟體可以讓他們繪製圖表,即使他們無法使用 Visio。

我在 Mac 上玩了一點 OmniGraffle,還不足以真正評估它的功能 - 儘管它確實產生了看起來很漂亮的反鋸齒輸出。UMLet 也是一個看起來很有趣的專案。

然而,我最想要做的事情是用文字指定我的 UML 圖表。這聽起來可能很奇怪 - 畢竟 UML 圖表是圖表,為什麼要使用文字?文字有一些優點。圖表佈局的很大一部分在圖表形式中很無聊,用文字來做會容易得多 - 使用圖表作為視覺化而不是編輯機制。文字格式也允許您使用 cvs 和 diff 輕鬆追蹤隨著時間的變化。

因此,我對 UmlGraph 很感興趣。其中最吸引我的部分是使用老牌 pic 程式碼的順序圖編輯器。此頁面 顯示 pic 巨集如何建立順序圖的漂亮文字表示。當然,pic 巨集中有一些限制,我可以想像一個更緊湊、更清晰的文字表示。

objects 
  thread, t:thread
  tool, :Toolkit
  peer, p:Peer, unborn

trace 
  found: a1:run(3) -> 
    thread: 
      run() -> 
        tool: 
           callbackLoop() -> self
           create -> peer
           handleExpose() -> 
             peer: 
               return      
           delete -> peer

那只是我腦中浮現的。我不知道在實務上是否真的有效。無論如何,我打算試驗 UmlGraph,看看它對我來說如何。pic 程式碼非常小,如果我想做一些變更,我可以輕鬆地調整它。

UmlGraph 的類別圖產生器很不錯,它可以從 Java 原始檔產生東西。然而,對於一個圖形語法來說,它看起來相當笨拙,而且我希望可以控制類別的擺放位置。足以說明客戶在訂單的左邊。因此,或許可以用類似 這個圖形 的東西來表示

layout
  row: Controller, EmbeddedAgent, URLStreamHandler, ChannelIterator
  SetTopController below: URLStreamHandler
  PowerManager below: SetTopController

interface URLStreamHander 
  operations 
    OpenConnection()
    parseURL()
    setURL()
    toExternalForm()

class SetTopController
  specializes
    Controller
    EmbeddedAgent
  implements
    URLStreamHandler
  attributes
    authorizationLevel
  operations
    startUp()
    shutDown()
    connect()
  associations
    -> PowerManager

class ChannelIterator
  dependencies
    -> SetTopController keyword:friend

再次強調,這只是我腦中浮現的點子。重要的是,我很高興看到有人朝這個方向前進,而且希望看到更多。

以下是人們告訴我的類似草圖工具