2014-06-24 61 views
1

UML類圖支持表達概念嗎?
另外,有沒有其他表示Concept的圖表?
只是在誤解的情況下,我的意思是C++和泛型編程中的「概念」。我們如何在UML圖表中表達概念?

+0

我不是100%確定可以在UML中完全實現它,但是您應該從UML中的**參數化類(「模板」類)開始,並查看它是否能夠以某種方式獲得幫助。此外,您肯定需要**定型**和可能的**標記值**來優化您的定義。概念Sintactically看起來像定型模板類。 – Aleks

+0

這似乎值得一試。謝謝。 –

+0

你的問題很有趣(新穎性+1),但下次嘗試至少首先自己做一個答案。 – Gangnus

回答

0

閱讀不久Wikipedia explanation of C++ "concepts"後,它看起來對我來說有相同的目標的工具爲generic classes and type constraints in C#

如果我的理解是正確的,然後按照舊的堆棧溢出問題Representing a C# Generic Method in a UML Class Diagram事實證明,你應該檢查http://www.uml-diagrams.org/template.html如已經通過@建議Aleks

基本上,我的意思是模擬你的接口和類,正如你通常這樣做。只需使用模板註釋,並且還可以使用虛擬依賴關係來繪製某些類型限制,模板中使用的形式參數之間的繼承關聯

+0

這似乎是迄今爲止最接近的事情。我喜歡你對現有做法的參考。 –

-1

您可以用UML顯示概念使用的所有結構 - 即函數,算法,類等等。 但不是概念本身,因爲它是一個創建語法的元素。

而且,你不能在UML宏,預處理命令顯示等

所有這些東西根本不屬於模式,而是語言/語法/句法。還有其他支持工具。形式化的語法,理論等。是的,它有圖表。在谷歌中尋找「正式的語法圖」,你會看到它們堆積如山。

+0

概念只是一個語法元素?爲什麼?多年來,我們是不是用Concept來模擬Concept的東西?概念甚至不是C++的語法元素,儘管我們最近確實有實驗性的實現。 –

+0

@NickyC它不只是一個句法元素。它創建語法。概念的使用是創建特定於您的應用程序的語法。 – Gangnus

+0

概念創造語法?怎麼樣?而Concept仍然是模擬事物,對嗎?我不認爲我們可以將預處理器指令與Concept進行比較。 –

1

基本上可以回答「基類」問題的答案: 「UML是否會嘗試使它與C++進行1對1擬合?」

答案簡直是「不」。

這是一個非常常見的誤解,可以滿足人們尋找在UML或任何其他C++特定事物中表達指針的可能性。你會不幸找不到它。

誤解是歷史上來自於一些UML建模工具附帶的C++代碼生成引擎的可用性。所有這些代碼生成引擎都有自己的編碼模式來解決從模型到代碼的轉換。只是因爲轉型模式本身沒有標準。

UML來自OMG,OMG爲(Corba)IDL-to-C++生成模式文檔,但UML-to-C++沒有。