如何在UML类图中建模Eclipse扩展点?

时间:2011-12-06 14:40:33

标签: eclipse eclipse-plugin uml papyrus

对于我必须要做的软件设计项目,我选择了Eclipse Platform作为框架。意思是我有很多扩展点要实现。

但是,我在UML类图中指定这些扩展点时遇到问题。那么如何模拟类属于类图中的扩展点的事实呢?

或者类图是错误的地方吗?如果是,那么指定我实施的扩展点的最佳位置在哪里?

作为参考,我正在与Papyrus进行UML建模。我已经有了应用程序的工作原型,所以它只是创建图表。

干杯

4 个答案:

答案 0 :(得分:2)

说到Eclipse插件,我宁愿选择组件图而不是类图。然后,您可以将扩展点建模为端口,将它们的合同建模为接口(那些棒棒糖)。

如果您希望将类扩展点指定为具有特殊构造型(或关键字)的接口,那么也可以。

关于实现扩展点的类,您可以使用对组件的依赖关系,或者(在第二个解决方案中)使用接口实现。

答案 1 :(得分:1)

eclipse扩展点就像一个接口:它声明了一组必须实现的属性。

例如,org.eclipse.ui.editors扩展点声明要实现此扩展点,您必须提供:

  1. ID
  2. 名称
  3. 图标
  4. 文件扩展名
  5. 贡献者
  6. 在UML中没有任何确切的说法,因为扩展点既不是接口也不是对象,但您可以通过向模型添加构造型来建模,例如<<extension_point>>(您可以阅读更多关于构造型here),并在图中创建一个类(例如org.eclipse.ui.editors),它具有所有这些属性及其所需类型(在此示例中,所有属性都是字符串,但class除外属于org.eclipse.ui.IEditorPart)类型。

    在此之后你可以创建另一个刻板印象,比如<<extension_point_implementation>>和一个具有这种刻板印象的新类。这个类使用<<extension_point>>类中的实现链接进行连接,然后将所有属性的值设置为您正在实现的属性。

    请注意,这不是“纯粹的”UML,因为您正在定义一个具有添加语义的新域,但我认为这将是一种很好且易于理解的方式来模拟您想要的内容。

答案 2 :(得分:0)

从某种意义上说,扩展点是扩展点,实例是类;扩展点定义扩展的可能属性,每个扩展包含符合扩展点的具体属性。

答案 3 :(得分:0)

只需反转java代码并添加注释即可。它会完成这项工作。