2014-01-26 15 views
1

我目前正在編寫一個正式的文檔,其中應該放置一個特定的UML類圖。處理用於打印的文檔中的大類的UML類圖

該班有大約30名成員,方法大致相同。當我使用任何工具創建類圖時,它使它成爲一個非常長的列表 - 超過60行。它不適合單個頁面(我需要打印文檔)。

重新設計班級是不成問題的。

我應該如何處理這個問題?我有兩個想法:

  1. 拆分圖 - 爲數據成員創建一個圖,爲方法創建一個圖。
  2. 使圖形成爲兩列 - 一列用於數據成員,另一列用於方法。

這樣的圖表在技術上是否仍然正確?我不確定這是否仍然會生成有效的UML。

+0

如果我可以建議,另一種思維方式可能會問「這將有可能維持並安全地改變與30名成員和方法有很多的一類...
當然這樣一個類可以存在但也許可以解決維護問題。 – granier

回答

1

有些工具可以用來隱藏類的成員。我認爲Rational System Architect支持這一點,當然Sparx Enterprise Architect呢。使用這樣的工具,我將創建兩個圖表,一個僅顯示成員(以及一個摺疊方法部分),另一個僅顯示方法(以及摺疊成員部分)。喜歡的東西:

+--------------------+ 
| SomeClass   | 
+--------------------+ 
| methods   | 
+--------------------+ 
| +DateOfBirth: Date | 
| +Name : String  | 
| …     | 
+--------------------+ 

+----------------------------+ 
| SomeClass     | 
+----------------------------+ 
| members     | 
+----------------------------+ 
| +void Say(String message) | 
| +void Sleep(TimeSpan time) | 
| …       | 
+----------------------------+ 

如果你想確保文檔的讀者理解,你可以寫封信,解釋爲什麼你藏之類的零件您的圖表的含義。

+0

這正是我想到的。 – rubikonx9

0

有幾件事情可以在這裏完成。

首先,從方法中分割字段。圖中還有其他類,如果用箭頭顯示屬性,則不需要將它同時放入類塊中。這絕對是標準把戲。其次,您可以隱藏方法和其他字段,並將名稱僅顯示爲空白塊,爲其更改顏色,更好地查看它,將關於下一個圖的註釋放在第二個圖上,然後製作第二個圖將只包含這個類。

您可以停下來。但其他步驟是可能的。因爲在代碼不是標準的情況下創建巨大的類圖和圖表,我不會試圖讓我看起來更加聖人,我會打破其他標準。

取而代之的第二步,我將依賴於函數的返回類,並在函數的參數列表上編寫函數名。

所以,你的班級只有標準類型的成員。其他成員將創建多個連接,並且該連接的數量需要較大的類塊 - 您需要該地點連接所有的端點。

當然,您可以將其與單獨的圖組合使用。

0

如果您的工具支持,您可能會決定只顯示公共成員/方法。或者隱藏微不足道的東西,比如標準的getter和setter。(放下關於隱藏的內容的註釋,正如其他人已經指出的那樣) 目標應該是讓讀者洞悉實例所持有的運行狀態以及可以對其執行的重要操作。

如果您有代碼訪問權限,那麼進行一些重構會很有用,例如,或者將課堂分成較小的塊,或者引入一個façade(保持原始類不變)。我知道這不適用於您的具體情況,但它可能會幫助其他人,因爲這是一個常見的建模問題。