我爲我的Java應用程序構建UML 2.0類圖。在我的代碼中,我有HashMap數據類型的屬性。但是,據我所知,在UML標準中沒有HashMap數據類型。問題是 - 我可以使用HashMap作爲類的屬性的數據類型嗎?類圖中的HashMap(UML)
UPDATE
也許在圖我只是應指向java.util包?並且可能將Map類放在此包中的圖表上?
我爲我的Java應用程序構建UML 2.0類圖。在我的代碼中,我有HashMap數據類型的屬性。但是,據我所知,在UML標準中沒有HashMap數據類型。問題是 - 我可以使用HashMap作爲類的屬性的數據類型嗎?類圖中的HashMap(UML)
UPDATE
也許在圖我只是應指向java.util包?並且可能將Map類放在此包中的圖表上?
HashMap只是許多java類中的一個。
您可以在UML 2.0類圖表中使用任何Java類,接口或原始類型。
UML 2.0 java類圖中的任何數據類型都對應於某個java類,接口或原語。
您正在使用UML圖來開發您自己的應用程序。所以,爲了您的方便,請隨意擴展UML 2.0標準。沒有人能爲此責怪你。
如果你真的有使用Java類的UML模型(我不會推薦它),這僅僅是擴展模型(或庫模型)。通過配置文件擴展UML - 在這種情況下,它不是必需的。 – Christian 2012-01-15 15:46:08
只需在UML中使用普通類並將其稱爲HashMap
即可。 UML是語言不可知的,並且不瞭解Java的預定義類。或者我誤解了你的問題?
無論如何,HashMap不應該出現在你的UML模型中。 HashMap只是一個合格關聯的實現。可能它甚至只是一個提高速度的不合格協會。所以如果你有一個帶有HashMap的類A,你可以建模一個UML Class A,一個UML Class B和一個從A到B的UML Association。如果通過一個不屬於屬性的鍵B.如果你的HashMap鍵是B的名字(而B有這個名字作爲屬性),你可以簡單地忽略限定詞。
爲了表示您的關聯的實現(您希望使用HashSet實現它),您可以將其添加爲關鍵字或爲其創建一個Stereotype(更復雜)。
HashMap的是一流的,它應該在UML模型中肯定存在。然而,並不是每個班級都需要作爲班級出現在圖表上。 – 2012-01-16 12:15:42
HashMap的可能是這個概念在Java名稱,但每一個編程語言有某種Hash<>
或Map<>
類的,和等效東西應該包含在UML,因爲很多車型包括哈希或地圖容器的屬性。
某些工具支持<<map>>
刻板印象;如果你有,我會使用它,如果你主要關心視覺直覺 - 但是不可能說出暗示什麼樣的關鍵。
合格的關聯圖形化UML設備是非直觀的,我懷疑工具很難轉化爲正向代碼生成中的任何明智事物。我會避免它。
的另一種方式做到這一點(這是我平時)做的是以下幾點:
Hash<Thing, String>
(小心與訂單 - 我用值第一,鍵秒),創建一個名爲Hash<Thing,String>
UML類和輸出關係Hash<>
然後映射V和K至實際參數Thing
和String
things
其類型爲Hash<Thing,String>
類型。MagicDraw例如支持此。
這樣做的缺點是,您將看不到客戶端類和值類型之間的關聯鏈接(在我的示例中爲Thing
)。有利的一面是,如果你發佈你的模型作爲程序員的規範,這是我們做什麼,程序員看到在類表中正確的事,因爲你可以看到this example - translation_details attribute
。
在UML這樣做基本任務的困難是剛剛的許多問題與UML之一,爲什麼大多數開發商我今天見面不使用它除了對白板或文檔圖片。
的屬性通常不應該的'HashMap'數據類型。它應該有'Map'數據類型。 –
2012-01-15 08:49:34