Как моделировать точки расширения Eclipse на диаграмме классов UML? - PullRequest
4 голосов
/ 06 декабря 2011

для проекта разработки программного обеспечения, который я должен сделать, я выбрал платформу Eclipse в качестве платформы. Это значит, что у меня много точек расширения для реализации.

Однако у меня проблемы с указанием этих точек расширения в моей диаграмме классов UML. Итак, как мне смоделировать тот факт, что класс принадлежит точке расширения в моей диаграмме классов?

Или диаграмма классов не подходит для этого? Если да, то где лучше всего указать точки расширения, которые я использую?

Для справки, я занимаюсь моделированием UML с помощью Papyrus. У меня уже есть рабочий прототип приложения, так что речь идет только о создании диаграммы.

Приветствия

Ответы [ 4 ]

2 голосов
/ 07 декабря 2011

Говоря о плагинах Eclipse, я бы предпочел выбрать диаграмму компонентов, а не диаграмму классов.Затем вы можете смоделировать точки расширения как порты, а их контракты - как интерфейсы (эти леденцы на палочке).

Если вы предпочитаете иметь диаграммы классов, задающие точки расширения как интерфейсы со специальным стереотипом (или ключевым словом), то это также подойдет.1003 *

Относительно класса, реализующего точку расширения, вы можете использовать зависимость от компонента или (во втором решении) реализацию интерфейса.

1 голос
/ 07 декабря 2011

Точка расширения eclipse похожа на интерфейс: она объявляет набор свойств, которые должны быть реализованы.

Например, точка расширения org.eclipse.ui.editors объявляет, что для реализации этой точки расширения вы должны предоставить:

  1. id
  2. name
  3. icon
  4. class
  5. расширения файлов
  6. участники

Нет точного способа сказать это в UML, поскольку точка расширения не является ни интерфейсом, ни объектом, но вы можете смоделировать ее, добавив стереотип к вашей модели, скажем <<extension_point>> (вы можете прочитать больше остереотипы здесь ) и создайте на диаграмме класс (например, org.eclipse.ui.editors), который имеет все эти атрибуты с их обязательными типами (в этом примере все атрибуты являются строками, кроме class, который являетсятипа org.eclipse.ui.IEditorPart).

После этого вы можете создать еще один стереотип, скажем <<extension_point_implementation>>, и новый класс, имеющий этот стереотип.Этот класс вы связываете со ссылкой для реализации из класса <<extension_point>>, а затем задаете значения всех атрибутов для того, что вы реализуете.

Обратите внимание, что это не «чистый» UML, поскольку выопределение нового домена с добавленной семантикой, но я думаю, что это будет хорошим и простым для понимания способом моделирования того, что вы хотите.

0 голосов
/ 07 декабря 2011

Просто поменяйте местами код Java и добавьте заметку. Это сделало бы работу.

0 голосов
/ 06 декабря 2011

В некотором смысле расширения - это точки расширения, а экземпляры - классам;точки расширения определяют возможные атрибуты расширений, и каждое расширение содержит конкретные атрибуты, соответствующие точке расширения.

...