熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

繪制整潔的UML圖 明晰才能被人采納

2013-11-23 19:49:04  來源: Java高級技術 

  不管您喜歡與否諸如統一建模語言 (UML)類模型和用例模型這樣的軟件圖往往是根據它們的外觀來判定其好壞的看上去整潔的圖比看上去雜亂的圖更容易受到讀者 常常是您的用戶或高級經理 的青睐本文源自 Building Object Applications That Work 的第
  
  我很願意描述幾個重要的經驗法則這些法則將使您比其他建模同仁做得更好這些雖然簡單但很關鍵的建議主要集中在如何安排組成軟件圖(包括 UML 類模型用例模型甚至持久模型)的那些框和線條並因此適用於所有種類的圖
  要繪制一個外觀整潔的圖您應該避免
  
  ·大小不一的框
  ·對角線
  ·交叉線
  ·曲線
  ·混亂的圖
  ·不必要的細節
  
  讓我們從一個示例開始在圖 您可以看到兩個用兩種不同風格繪制的圖第一個復雜沒有章法而第二個簡單組織良好(雖然有些乏味)您認為哪個設計更好呢?大多數人都會贊成第二個看上去更好一些因為雖然這兩種設計在功能上是相等的但第二個的安排更整潔
  
  
雜亂的圖
   
  

  
  
整潔的圖
   
  

  
  避免大小不一的框
  如何對圖 加以改進呢?首先確保所有框的大小都一樣大框看上去比小框更重要一些如果這是您嘗試表達的那麼這樣做沒錯 但如果讓我選的話我寧願將所有框保持相同的大小這種方法最適合於UML 用例因為其中的所有用例框和參與者符號可以很方便地統一成一樣此外還適用於UML 協作圖UML 序列圖UML 用戶界面流程圖對於框中包含的信息量不同的圖例如UML 類圖(其中個別類有數量不等的屬性和操作)或者UML 狀態圖表圖持久(數據)模型那就有一些困難了
  
  避免對角線
  圖 與圖 的另一個不同之處在於它沒有任何對角線我是通過重新安排框來消除對角線的就好象它們在一個網格上使互連的框或者在垂直方向上分離或者在水平方向上分離從視覺上說大多數人對直線更感興趣
  
  避免交叉線
  在圖 有兩條線相互交叉我的一個常規經驗法則是應該盡量減少圖中交叉線的數量通過將一些框移到旁邊我在短時間內就可以避免使兩條線交叉可惜不是總能這樣幸運 您無法總能避免交叉線在圖 我想將 個框全部連接起來但如果不使至少兩條線相交就無法做到這一點您可以看到我沒有其它方法將框 連接起來在不得不交叉線時我會用適用於電路圖的標准來標記一條線跳過另一條如圖 所示跳過的好處是它很清楚地表明線只是在圖上交叉而不以任何方式連接
  
  
如何在不交叉線的情況下連接
   
  

  
  
一條線過另一條
   
  

  避免曲線
  您可以在圖 中看出我對圖 做了更進一步的改進除去了曲線人們喜歡看到垂直或水平的直線這次我又假裝是在網格上繪制圖(實際上這是許多計算機輔助系統工程 (CASE) 工具的內置特性)然後只需要象在網格上那樣繪制出框和線條
  
  
的更整潔版本
  
  

  避免混亂或復雜的圖
  顯示太多細節或者外觀很混亂的圖看上去不太好最好能夠有幾張顯示各種程度的細節的圖而非一張顯示所有事物的復雜的圖這就是為什麼 UML 擁有幾種圖的原因之一一個軟件是如此復雜以至於我們無法在單一圖上對其所有方面建模而且UML 允許將包添加到圖中(下星期的技巧主題)
  
  另一個相關的注意事項是對屏幕或頁面區域的使用在我看來一張占據幾頁的圖比將所有內容蜷縮在一起使它能在一頁上打印出的圖要好得多您應該給圖留出足夠的空間使它易於理解
  
  避免在圖的美化上浪費太多時間
  盡管這些經驗法則非常有效但無休止地調整圖的外觀總是會增加額外的建模時間解決這個問題的一個方法是嘗試使圖的外觀保持在大致良好的水平上 您在使用圖時不需要它非常完美一旦確信圖按照您所需的方式對應用程序建模就可以開始移動框以避免交叉線增進其可理解性
  
  您的主要目標是對系統建模而不是繪制漂亮的圖有必要指出這些重要的經驗法則也可以被用來美化低劣的設計例如我可以從圖 開始將它重排成圖 以使設計看上去比實際的更為復雜 可能使得高級管理人員相信我需要更多時間或資源才能完成工作或者引導他們避開我不是特別喜歡的備選設計假設您的動機隨情形而改變我希望您所處的情形是健康的您所考慮的最重要的問題是使了不起的設計看上去更引人入勝而不是在辦公室權術中求生存
  
  參考資料
  
  Building Object Applications That Work: Your StepByStep Handbook for Developing Robust Systems with Object Technology由 Scott W Ambler 著New York: Cambridge University Press
  Process Patterns Building LargeScale Systems Using Object Technology 由 Scott Ambler 著New York: Cambridge University Press
  The Object Primer nd Edition由 Scott W Ambler 著New York: Cambridge University Press

From:http://tw.wingwit.com/Article/program/Java/gj/201311/27501.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.