Обменный XML-документ будет соответствовать требованиям настоящего стандарта, если выполняются следующие три условия:
- XML-документ соответствует спецификации XMI;
- XML-документ основывается на допустимой контекстной EXPRESS-схеме;
- EXPRESS-схема отображается на метамодель UML, соответствующую настоящему стандарту и представленную в XMI-форме.
5 Отображение конструкций языка EXPRESS на метамодель обмена UML
В данном разделе определены отображения конструкций языка EXPRESS на метамодель обмена UML (см. UML 1.4, раздел 5) при условии, что отображаемое понятие языка EXPRESS определено и соответствующие понятия языка UML идентифицированы. Совокупность понятий языка UML, получившихся в результате отображения конкретной совокупности понятий языка EXPRESS, называется набором объявлений UML [UML declaration set (UDS)]. В качестве входных данных требуется допустимая EXPRESS-схема.
Примечание - На рисунке 4 представлена EXPRESS-G диаграмма частей метамодели обмена UML. Каждый класс UML представлен как объектный тип данных языка EXPRESS. Каждое UML-обобщение представлено как взаимосвязь подтипов языка EXPRESS. Атрибуты языка UML, кроме тех, которые относятся к наименованиям, опущены для краткости. Каждая UML-связь представлена как явный атрибут языка EXPRESS без включения инверсивного атрибута для представления второго конца UML-связи. Полная EXPRESS-схема, на которой основан данный рисунок, приведена в приложении C, а соответствующие части метамодели обмена UML приведены в приложении D.
650 × 465 пикс.   Открыть в новом окне |
Рисунок 4 - EXPRESS-G диаграмма частей метамодели обмена UML
5.1 Неотображаемые понятия языка EXPRESS
Отображение следующих понятий языка EXPRESS на UML не определено в настоящем стандарте, поэтому их включать в UDS не требуется:
- объявления RULE;
- правила области определения в объявлениях ENTITY или TYPE;
- правила UNIQUE в объявлениях ENTITY;
- объявления SUPERTYPE, кроме ABSTRACT SUPERTYPE и полных ограничений ONEOF;
- объявления FUNCTION;
- объявления PROCEDURE;
- объявления CONSTANT;
- факультативные ограничения OPTIONAL для атрибутов, областями определения которых являются агрегированные типы данных;
- явные атрибуты, переобъявленные как производные атрибуты;
- комментарии.
Примечания
1 Большинство неотображаемых конструкций являются "правилами" (локальными правилами, глобальными правилами и некоторыми ограничениями на подтипы) и конструкциями, которые могут использоваться только в правилах. Хотя язык описания объектных ограничений (OCL), разработанный в OMG, предназначен для аналогичной цели в UML-моделях, лишь немногие понятия языка EXPRESS, используемые в правилах, имеют точные эквиваленты в OCL.
2 Конструкциями, не отображаемыми на UML, являются в основном конструкции, которые не представляются на EXPRESS-G диаграммах.
5.2 Общие требования к отображению
Спецификация UML 1.4 определяет два механизма, в которых присутствуют объявления: UML-модель и UML-пакет. UML-модель "собирает представление о физической системе"; она "определяется своим назначением и уровнем абстракции (например, модель анализа, модель проектирования, модель реализации)" и "является полным описанием физической системы". UML-пакет используется "в рамках модели для группировки объектов ModelElement".
EXPRESS - это язык описания данных. В языке EXPRESS схема определяет область определения, а также раздел, в котором присутствуют объявления. Для целей настоящего стандарта должна быть выбрана одна схема для представления контекста реализации. Что касается спецификации данных, то совокупность схем, находящихся в области видимости для данной контекстной схемы, определяет полный набор доступных типов данных.
Основываясь на ключевых понятиях UML, EXPRESS и настоящего стандарта, можно сформулировать следующие требования к формированию групп и разделов:
- в UDS должна присутствовать одна UML-модель, определяющая вид спецификации данных системы, определенной контекстной схемой;
- EXPRESS-схемы должны отображаться на UML-пакеты в рамках данной UML-модели в соответствии с 5.4.
У любого XML-элемента в UDS, имеющего XML-атрибут с именем "visibility" (видимость), представляющий в языке UML-концепцию видимости объекта, значением данного XML-атрибута должно быть "public" (общедоступный).
5.3 Отображения для простых типов данных языка EXPRESS
Представления на языке UML простых типов данных языка EXPRESS должны присутствовать в UDS в рамках того же пространства имен UML, что и UML-представление объявлений EXPRESS-схемы.
Примечание - Простые типы данных языка EXPRESS не объявляются в схеме, а являются глобальными.
Настоящий стандарт определяет два способа отображения простых типов данных языка EXPRESS. Все простые типы данных языка EXPRESS для конкретного отображения должны отображаться с использованием одного и того же способа.
Первый способ заключается в том, что все простые типы данных языка EXPRESS должны отображаться на классы UML. Именем класса UML должно быть имя простого типа данных языка EXPRESS, начинающееся с прописной буквы, за которой следуют строчные буквы. Класс UML должен иметь значение стереотипа UML "<>". У всех концов связей AssociationEnd, связанных с данным классом UML, значением атрибута "navigability" (возможность навигации) должно быть "true" (истина).
Второй способ заключается в том, что простые типы данных языка EXPRESS должны отображаться в соответствии со следующими правилами:
- тип данных INTEGER языка EXPRESS должен отображаться на тип данных Integer языка UML;
- тип данных STRING языка EXPRESS должен отображаться на тип данных String языка UML;
- тип данных BOOLEAN языка EXPRESS должен отображаться на тип данных Boolean языка UML;
- тип данных LOGICAL языка EXPRESS должен отображаться на тип данных Enumeration языка UML с именем "Logical", атрибуты EnumerationLiteral которого должны иметь значение "false", "true" или "unknown". При этом должен применяться стереотип UML "<>";
- тип данных BINARY языка EXPRESS должен отображаться на класс DataType языка UML с именем "Binary".
Примечание - Ни UML, ни MOF не имеют встроенного типа данных, соответствующего типу данных BINARY. В реализациях на основе CORBA может использоваться отображение на встроенный тип данных Octet;
- типы данных NUMBER и REAL языка EXPRESS должны отображаться на класс DataType языка UML с именем "Double". Область определения этого типа данных должна совпадать с областью определения типа данных MOF 1.4 Primitive DataType с именем "Double".
Примечание - UML не имеет встроенного типа данных, соответствующего типам данных REAL или NUMBER, поэтому используется тип данных MOF Double.
5.4 Отображения для объявлений EXPRESS-схем и спецификаций интерфейсов
Конкретная EXPRESS-схема является контекстом для некоторого отображения и называется контекстной схемой. В любом конкретном отображении необходимо рассматривать только данную контекстную схему и EXPRESS-схемы, определенные в ее области видимости с помощью спецификаций интерфейсов языка EXPRESS. Для каждого объявления EXPRESS-схемы, видимой для данной контекстной схемы и видящей данную контекстную схему, в UDS должен присутствовать UML-пакет. Атрибут UML ModelElement.name UML-пакета должен иметь имя EXPRESS-схемы, начинающееся с прописной буквы, за которой следуют строчные буквы.
Ниже в данном разделе понятие "в контексте отображения" относится только к тем конструкциям языка EXPRESS, которые прямо или косвенно имеют интерфейсы с данной контекстной схемой.
Для каждого оператора USE FROM или REFERENCE FROM языка EXPRESS из основной схемы в UDS должен присутствовать объект UML Elementlmport. Значением атрибута UML Element-import.importedElement должна быть ссылка на UML-пакет, представляющий схему, имеющую интерфейс с данной схемой. Значением атрибута UML Elementlmport.package должна быть ссылка на UML-пакет, представляющий соответствующую EXPRESS-схему.
Для каждой отображенной конструкции языка EXPRESS, не являющейся частью схемы, но указанной в операторах USE FROM или REFERENCE FROM языка EXPRESS, в UDS должен присутствовать объект UML Elementlmport. Значением атрибута UML Elementlmport.importedElement должна быть ссылка на конструкцию языка UML, представляющую связанную через интерфейс конструкцию языка EXPRESS. Значением атрибута UML Elementlmport.package должна быть ссылка на UML-пакет, представляющий соответствующую EXPRESS-схему. Если конструкция языка EXPRESS переименовывается с использованием ключевого слова AS языка EXPRESS, то значением атрибута UML Elementlmport.alias должно быть новое имя, указанное после ключевого слова AS языка EXPRESS, начинающееся с прописной буквы, за которой следуют строчные буквы.