2015-01-04 49 views
1

我在想,在你創建一個類的UML的類圖中,並且指定了它的屬性,你只需要定義該類的所有屬性,這些屬性可以/可以在類的構造方法中找到。 當我嘗試使用可視範式對我的(python-)代碼進行逆向工程時,每個屬性都顯示在生成的類(在構造函數中聲明的那些以及在該類的其他方法中聲明的那些類)中。只列出在類的構造函數中定義的屬性?

我想說,這是視覺範式的錯誤。

有人可以告訴我,如果我錯了我的假設,或者如果VP代碼生成器是錯誤的。提前致謝。

+2

傳遞給類構造函數的類屬性列表和參數列表是完全獨立的概念。例如,如果程序員沒有另外說明,某些語言(C++,TypeScript,...)會自動假定具有0個參數的空隱式構造函數。另見http://www.uml-diagrams.org/class-diagrams-overview.html。這是你問的嗎? – xmojmr

+1

謝謝,我仍然在閱讀該鏈接。但我不是指傳遞給類構造函數的參數。我的意思是我在構造函數方法中創建「我自己」的屬性。我想,我只能在uml中的類的屬性 - 隔間中寫這些。或者隔間還必須包含我可能在類的不同方法中創建的類的每個屬性。 – coffeekid

+1

將您的Python代碼添加到VP生成的類圖的問題和屏幕截圖中,以更有形地說明您的問題。該類將使用/擁有的所有屬性(不管它們在運行時何時出現)應該位於屬性隔離區中。 UML類圖應該表示類結構的靜態不可變視圖。這是你問的嗎? – xmojmr

回答

2

TL; DR Visual Paradigm的逆向工程自動機在這方面看起來沒問題。


Sparx Systems → UML 2 Tutorial → Class Diagram

類圖

的類圖顯示了任何面向對象的系統的構建塊。類圖描繪了模型或模型的一部分的靜態視圖,描述了它具有的屬性和行爲,而不是詳細描述實現操作的方法。類圖對於說明類和接口之間的關係非常有用。推廣,聚合和協會都在反映繼承,成分或使用,並分別連接的所有有價值的...

在通過在運行時Python代碼動態創建的屬性的情況下我的翻譯將是所有屬性的類將永遠使用/擁有(不管它們在運行時出現的時間)應該在屬性區間中。

UML Class Diagram應該代表的最大可能的存儲器結構靜態不變(「編譯時間」)視圖(由被稱爲類塊)並落入UML Structure Diagrams類別。

如果要在一些屬性在運行時得到一個明確的價值文檔(UML三通)然後你需要使用一些圖落入UML Behavior Diagrams類。

UML類模型可以以一種非常動態和多態的方式變成某種語言的計算機可執行模型(例如JavaScript)。這只是一個實施問題,UML並不真正關心太多。 UML關心的主要是Platform-independent model (PIM)

+0

感謝回答。但是如果你還沒有在這個類和另一個類之間繪製一個組合,那麼你只會在類的屬性分區中列出一個屬性,對嗎?我的意思是,對於每個屬性,您必須選擇將其列入屬性隔離區並繪製關聯,是否正確? – coffeekid

+1

@coffeekid你可以顯示它作爲一個屬性或鏈接或兩者。這個http://stackoverflow.com/a/27216132/2626313似乎相關。真正重要的是,如果在UML模型中(該工具用作「後端」並且可以在[XML Metadata Interchange(* .xmi)](http: //en.wikipedia.org/wiki/XML_Metadata_Interchange)格式)關聯建模正確。我有時使用工具代碼生成功能從源代碼的角度來看待模型。 Java代碼生成器通常很接近 – xmojmr

+1

再次感謝你。你評論中最後的提示也非常有幫助。 :-)只是爲了避免混淆,我必須補充一點,你不會稱之爲鏈接。因爲鏈接是關聯的實例。所以,一個關聯連接兩個類,一個鏈接將成爲兩個對象之間的連接。 – coffeekid

相關問題