2011-12-06 73 views
4

對於我所要做的軟件設計項目,我選擇了Eclipse Platform作爲框架。這意味着我有很多擴展點來實現。如何在UML類圖中建模Eclipse擴展點?

但是,我很難在我的UML類圖中指定這些擴展點。那麼如何模擬類在我的類圖中屬於擴展點的事實?

或者是類圖錯誤的地方做到這一點?如果是這樣,那麼指定我實施的擴展點的最佳位置在哪裏?

僅供參考,我正在用Papyrus進行UML建模。我已經有了應用程序的工作原型,所以它只是創建圖表。

乾杯

回答

1

eclipse擴展點就像一個接口:它聲明瞭一組必須實現的屬性。

例如,org.eclipse.ui.editors擴展點聲明,來實現你必須提供此擴展點:

  1. ID
  2. 圖標
  3. 文件擴展名
  4. 貢獻者

因爲擴展點既不是接口也不是對象,所以在UML中沒有這樣的說法,但是可以通過在模型中添加原型,例如<<extension_point>>(您可以閱讀更多關於原型here)的模型,並在您的圖(例如org.eclipse.ui.editors)中創建一個具有所有這些屬性及其所需類型的類(在此示例中,所有屬性均爲字符串,但class的類型爲org.eclipse.ui.IEditorPart)。

之後,您可以創建另一個刻板印象,說<<extension_point_implementation>>和一個新的類具有這種刻板印象。該類與<<extension_point>>類的實現鏈接相連,然後將所有屬性的值設置爲您正在實現的值。

請注意,這不是「純粹的」UML,因爲您正在定義一個添加了語義的新域,但我認爲這將是一種很好且易於理解的建模方法。

0

在某種意義上擴展是擴展點什麼情況下是班;擴展點定義擴展的可能屬性,每個擴展包含符合擴展點的具體屬性。

0

只需反轉java代碼並添加註釋即可。它會完成這項工作。

+0

我無法理解「反轉java代碼」的含義。你能否簡單解釋一下?提前致謝! – user1083696

+0

您可以反轉另一個插件的jar文件,並反轉您的代碼。因此,您現在有了一個由一個或多個項目組成的大型模型,這些模型已被顛倒過來你創建一個空的類圖,然後拖放你的類,在同一個圖中調用另一個插件類。用「擴展點」創建一個依賴關係作爲刻板印象。工作完成:-) –

+0

你也可以反轉一個方法,如果你有一個eclipse項目並且在同一個工作空間內,那麼反過來也會去檢查jar文件和其他項目中發生了什麼。我的意思是序列圖也在多個項目層面。 –

2

說到Eclipse插件我寧願選擇一個組件圖而不是類圖。然後,您可以將擴展點建模爲端口,並將它們的合同建模爲接口(那些棒棒糖)。

如果您希望將類圖指定擴展點作爲具有特殊構造型(或關鍵字)的接口也可以。

關於實現擴展點的類,您可以使用組件的依賴關係或(在第二種解決方案中)使用接口實現。