【问题标题】:How to model Eclipse extension points in a UML class diagram?如何在 UML 类图中对 Eclipse 扩展点建模?
【发布时间】:2013-07-01 00:01:44
【问题描述】:

对于我必须做的一个软件设计项目,我选择了 Eclipse 平台作为框架。这意味着我有很多扩展点要实现。

但是,我无法在我的 UML 类图中指定这些扩展点。那么,如何对类属于类图中的扩展点这一事实进行建模呢?

或者类图无论如何都是错误的地方?如果是这样,指定我实现的扩展点的最佳位置在哪里?

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

干杯

【问题讨论】:

    标签: eclipse eclipse-plugin uml papyrus


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      1. 身份证
      2. 姓名
      3. 图标
      4. 文件扩展名
      5. 贡献者

      在 UML 中没有确切的说法,因为扩展点既不是接口也不是对象,但是您可以通过向模型添加原型来对其进行建模,例如 <<extension_point>>(您可以阅读有关原型的更多信息@ 987654321@),并在您的图表中创建一个类(例如org.eclipse.ui.editors),该类具有所有这些属性及其所需的类型(在此示例中,所有属性都是字符串,除了class 类型为org.eclipse.ui.IEditorPart) .

      在此之后,您可以创建另一个原型,例如 <<extension_point_implementation>> 和一个具有此原型的新类。该类通过<<extension_point>> 类的实现链接连接,然后将所有属性的值设置为您正在实现的内容。

      请注意,这不是“纯粹的”UML,因为您正在定义一个带有附加语义的新域,但我认为这将是一种很好且易于理解的建模方式。

      【讨论】:

        【解决方案3】:

        在某种意义上,扩展对扩展点就像实例对类一样;扩展点定义了扩展的可能属性,每个扩展都包含符合扩展点的具体属性。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

          • 我很难理解您所说的“反转 java 代码”是什么意思。你能简单解释一下吗?提前致谢!
          • 你反转了其他插件的jar文件,也反转了你的代码。因此,您现在拥有一个由一个或多个已反转的项目组成的大模型。您创建一个空的类图,然后将您的类拖放到同一个图中调用另一个插件类。创建一个以“扩展点”为原型的依赖项。工作完成:-)
          • 你也可以反转一个方法,如果你有一个 Eclipse 项目并且在同一个工作空间内,那么反向也将检查 jar 文件和其他项目中发生了什么。我的意思是序列图也处于多项目级别。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-21
          • 2012-05-23
          • 1970-01-01
          • 2016-05-09
          • 1970-01-01
          相关资源
          最近更新 更多