(справочное)
Представление на языке EXPRESS частей метамодели обмена UML
В данном приложении представлена EXPRESS-схема, представляющая релевантные части метамодели обмена UML, определенной в [4]. Конструкции UML представлены на языке EXPRESS следующим образом:
- типы данных UML Boolean, Integer и String представлены типами данных BOOLEAN, INTEGER и STRING языка EXPRESS;
- каждое UML-перечисление представлено перечисляемым типом данных языка EXPRESS;
- каждый класс UML представлен объектным типом данных языка EXPRESS;
- каждое UML-обобщение представлено как SUBTYPE языка EXPRESS;
- каждый атрибут UML представлен явным атрибутом языка EXPRESS;
- каждая UML-ассоциация представлена явным атрибутом языка EXPRESS с инверсным атрибутом, представляющим второй конец UML-ассоциации.
747 × 701 пикс.   Открыть в новом окне |
474 × 972 пикс.   Открыть в новом окне |
535 × 974 пикс.   Открыть в новом окне |
515 × 496 пикс.   Открыть в новом окне |
Приложение D
(справочное)
Выдержки из Спецификации UML 1.4
В данном приложении приведены диаграммы и текстовые выдержки из Спецификации UML 1.4 [4], поясняющие отображение языка EXPRESS на метамодель обмена UML. Эти выдержки воспроизведены с разрешения OMG, обладающей авторским правом.
D.1 Метамодель обмена UML
Пользователи, незнакомые с метамоделью обмена UML, должны ознакомиться с обзором, приведенным в [4, раздел 5.1].
На рисунке D.1 представлена диаграмма наивысшего уровня метамодели обмена UML. Большинство аспектов на данной диаграмме используется при отображении языка EXPRESS на метамодель обмена UML. Объектный тип данных языка EXPRESS отображается на класс UML, EXPRESS-схема отображается на подкласс UML Namespace, некоторые явные атрибуты языка EXPRESS отображаются на атрибут UML, а подтип данных языка EXPRESS отображается на UML-обобщение.
821 × 767 пикс.   Открыть в новом окне |
Рисунок D.1 - Главный пакет - Основа (рисунок 5-2 из [4])
На рисунке D.2 представлена диаграмма метамодели обмена UML, отражающая взаимосвязи. Большинство аспектов на этой диаграмме используется при отображении языка EXPRESS на метамодель обмена UML, за исключением объектов UML Flow и UML AssociationClass. В языке EXPRESS нет понятий, эквивалентных UML-ассоциации или объекту UML AssociationEnd. Однако, некоторые атрибуты языка EXPRESS, областью определения которых являются именованные типы данных языка EXPRESS, отображаются на UML-ассоциации.
825 × 642 пикс.   Открыть в новом окне |
Рисунок D.2 - Главный пакет - Взаимосвязи (рисунок 5-3 из [4])
На рисунке D.3 представлена диаграмма метамодели обмена UML, отражающая классификаторы. При отображении языка EXPRESS на метамодель обмена UML используются только класс UML, тип данных UML и UML-перечисление.
652 × 560 пикс.   Открыть в новом окне |
Рисунок D.3 - Главный пакет - Классификаторы (рисунок 5-5 из [4])
На рисунке D.4 представлена диаграмма метамодели обмена UML, отражающая управление моделью. Большинство аспектов данной диаграммы используется при отображении языка EXPRESS на метамодель обмена UML, за исключением объекта UML Subsystem. Управление моделью UML играет ту же роль, что и EXPRESS-схемы, связанные через спецификацию интерфейсов языка EXPRESS.
457 × 452 пикс.   Открыть в новом окне |
Рисунок D.4 - Управление моделью (рисунок 5-21 из [4])
D.2 UML-ассоциация
Приведенный ниже текст взят непосредственно из [4, пункт 2.5.2].
Ассоциация
Ассоциация определяет семантическую взаимосвязь между классификаторами. Экземплярами ассоциации является множество кортежей, связанных с экземплярами классификаторов. Значение каждого кортежа может появиться не более одного раза.
Ассоциация в метамодели является объявлением семантической взаимосвязи между классификаторами, например между классами. У ассоциации есть не менее двух концов связи (объектов AssociationEnd). Каждый конец соединен с классификатором. Классификатор может быть соединен с несколькими объектами AssociationEnd в одной ассоциации. Ассоциация представляет множество соединений между экземплярами классификаторов. Экземпляром ассоциации является связь (объект Link), которая представляет собой кортеж экземпляров, взятых из соответствующих классификаторов.
Атрибут
name (наименование): Наименование ассоциации, которое в совокупности со связанными с ним классификаторами должно быть уникальным в рамках включающего его пространства имен (обычно в рамках пакета).
Ассоциация
connection (соединение): Ассоциация содержит по крайней мере два объекта AssociationEnd, каждый из которых представляет соединение ассоциации с классификатором. Каждый объект AssociationEnd определяет ряд свойств, которые должны быть выполнены для того, чтобы данная взаимосвязь была правомерной. Основная часть структуры ассоциации определяется ее объектами AssociationEnd. Классификаторы, принадлежащие ассоциации, связаны с объектами AssociationEnd посредством ассоциации ролевого имени участника.
Стереотип
implicit (неявный): Стереотип "implicit" применяется к ассоциации, указывая на то, что ассоциация не является явной, а только концептуальной.
Стандартное ограничение
xor (исключающее или): Ограничение {xor} применяется к совокупности ассоциаций, указывая на то, что в рамках данной совокупности только одна ассоциация является явной для каждого ассоциированного экземпляра. Xor является ограничением "исключающее или" (но не "включающее или".
Отмеченное значение
persistence (персистентность): Персистентность обозначает постоянство состояния ассоциации, отмечая его как кратковременное (состояние ассоциации аннулируется при уничтожении данного экземпляра) или неизменное (состояние ассоциации не аннулируется при уничтожении данного экземпляра).
Наследуемое свойство
Ассоциация является объектом GeneralizableElement. Ассоциацией-потомком наследуется следующий элемент:
connection (соединение): Потомок должен иметь такое же число концов, что и предок. Каждый участвующий класс должен быть потомком участвующего класса на той же позиции в предке. Если Ассоциация является объектом AssociationClass, то ее свойства класса (атрибуты, операции и т.д.) наследуются. Разнообразные другие свойства могут изменяться у потомка. Данная спецификация, возможно, будет детализирована в UML 2.0.
Ненаследуемые свойства