Использование OCL и UML с шаблонами проектирования - PullRequest
1 голос
/ 09 января 2011

Кто-нибудь пробовал создавать UML-профили для шаблонов проектирования со стереотипами и ограничениями OCL? Я пытаюсь создать его для шаблона Singleton, но не знаю, как и с чего начать ...

Ответы [ 3 ]

0 голосов
/ 10 января 2011

Очевидный вопрос "почему?"

Вы пытаетесь формально описать закономерности? Или использовать их в качестве строительных блоков для архитектуры? Что-то еще?

Если это формальное описание, то вам, вероятно, не нужны стереотипы. Смоделируйте структуру стандартными диаграммами классов (согласно книге), а затем формализуйте поведение метода, используя предварительные и постусловия в OCL.

Есть несколько работ по формализации шаблонов с помощью OCL (просто Google). Еще один хороший источник - эта книга . Хотя он основан на Eiffel, он формализует все шаблоны GoF с предварительными и последующими условиями для методов. (Весь исходный код доступен по ссылке).

НТН.

0 голосов
/ 10 января 2011

Есть много работ по формализации шаблонов, однако большинство из них не имеют того или другого или слишком сложны, чтобы быть практичными. Однако, если вы хотите попробовать OCL, вам это очень поможет. Например, чтобы указать одноэлементный шаблон, вам нужно только получить все экземпляры данного класса и сосчитать их. Если вы сделаете это с инвариантом в классе, вы получите синглтон очень легко.

0 голосов
/ 09 января 2011

Это будет сложно: во многих случаях шаблонам проектирования требуется посмотреть, как используются объекты, как в шаблоне Singleton. Но в основном использование объектов будет происходить в методах INSIDE (для Singleton, например, [отсутствие] вызовов конструктора). Однако тела методов обычно не моделируются в UML.

...