isRoot, isLeaf, isAbstract: Они не являются наследуемыми по своей сущности, поскольку определяют структуру обобщения.
name: Каждый элемент модели имеет уникальное наименование.
Приложение Е
(справочное)
Краткое изложение отображения
В таблице Е.1 содержится краткое изложение отображения из языка EXPRESS на UML с использованием фрагментов, взятых из EXPRESS-схем примера в В.2, и полученного результата на UML. Файл из примера, соответствующий XMI 1.2, содержит представления большинства конструкций, имеющихся в схемах примера.
Примечание - Следующие конструкции не включены в таблицу Е1, так как инструментарий UML, используемый для создания XMI-файла, не поддерживает данные конструкции:
- ONE OF;
- REFERENCE FROM;
- USE FROM одиночный объект и AS для его переименования;
- литералы перечисляемого типа.
Таблица Е.1 - Краткое изложение отображения EXPRESS на UML на примерах
Фрагмент на языке EXPRESS | Результирующий фрагмент метамодели обмена UML 1.4 |
SCHEMA context_schema; | UML-пакет, в котором атрибут UML ModelElement.name имеет значение ’Context_schema’, определенное в рамках UML-модели, представляющей обзор данных системы |
SCHEMA context_schema;USE FROM s2_schema;SCHEMA s2_schema; | 1. UML-пакет с именем ’S2_schema’, содержащий UML-представления всех элементов языка EXPRESS из ’s2_schema’.2. Объект UML Elementlmport, импортирующий UML-пакет ’S2_schema’ в UML-пакет ’Context_schema’ |
SCHEMA context_schema;REFERENCE FROM s2_schema;SCHEMA s2_schema; | REFERENCE FROM дает такой же результат на UML, что и USE FROM |
SCHEMA context_schema;USE FROM s3_schema(entity1 AS renentity1);SCHEMA s3_schema; | 1. UML-пакет с именем ’S3_schema’, содержащий UML-представления элементов языка EXPRESS из ’s3_schema’, видимых в ’context_schema’. UML-пакет определен в рамках UML-модели, представляющей обзор данных системы.2. Объект UML Elementlmport ’Entity1’ и что-либо видимое в ’context_schema’ в UML-пакете с именем ’Context_schema’.3. Атрибут UML Elementlmport.alias переименовывает ’Entity1’ в ’Renentity1’ |
SCHEMA context_schema;ENTITY entity2;ENTITY entity1SUBTYPE OF (entity2); | 1. Класс UML с атрибутом Class.name, имеющим значение ’Entity2’, пространством имен класса является UML-пакет с именем ’Context_schema’.2. Класс UML с атрибутом Class.name, имеющим значение ’Entity1’, пространством имен класса является UML-пакет с именем ’Context_schema’.3. UML-обобщение с классом UML ’Entity1’ в качестве потомка и классом UML ’Entity2’ в качестве предка.4. Ограничение перекрытия UML на ’Entity1’ и любой другой класс UML, представляющий объектный тип данных языка EXPRESS и являющийся подтипом ’entity2’ |
SCHEMA context_schema;ENTITY entity2ABSTRACT SUPERTYPE; | Класс UML с атрибутом UML Class.name, имеющим значение ’Entity2’, пространством имен класса UML является UML-пакет с именем ’Context_schema’. Атрибут isAbstract класса UML имеет значение ’true’ (истина) |
In ENTITY entity1,SUPERTYPE OF(ONEOF ( entity4, entity5) | Если ’entity4’ и ’entity5’ являются только подтипами ’entity1’, то ограничение непересечения UML распространяется на все классы UML, представляющие объектный тип данных языка EXPRESS, который является подтипом ’entity1’ |
TYPE type1 = SELECT(entity1, type2); | 1. Класс UML с атрибутом Class.name, имеющим значение ’Туре1’.2. Класс UML с атрибутом Class.name, имеющим значение ’Entity1’.3. Класс UML с атрибутом Class.name, имеющим значение ’Туре2’.4. Агрегированная UML-ассоциация между классами UML ’Entity1’, ’Туре2’ с объектом AssociationEnd с именем ’none’ и ’Туре1’ с объектом AssociationEnd с именем ’aggregate’.5. Ограничение ИЛИ UML между UML-ассоциациями агрегаций, соединяющими классы UML ’Entity1’ и ’Туре2’ с классом UML ’Туре1’ |
TYPE type2 =ENUMERATION OF(red, white); | UML-перечисление с атрибутом UML Enumeration.name, имеющим значение ’Туре2’, и объектами UML EnumerationLiteral с именами ’red’ и ’white’ |
TYPE type3 = STRING | Если базовый тип определенного типа данных не является выбираемым или перечисляемым типом данных:1. Класс UML с атрибутом Class.name, имеющим значение ’Туре3’.2. UML-обобщение с классом UML ’Туре3’ в качестве потомка и UML-представление базового типа данных в качестве предка |
ENTITY entity10;a1 : INTEGER; | 1. Класс UML с атрибутом Class.name, имеющим значение ’Entity10’.2. Атрибут UML с параметрами UML Attribute.name, имеющим значение ’а1’, и UML Attribute.type, имеющим значение UML Integer, а пространством имен атрибута UML ’а1’ является класс UML ’Entity10’ |
ENTITY entity5;ENTITY entity4;a2 : entity5; | 1. Класс UML с атрибутом Class.name, имеющим значение ’Entity5’.2. Класс UML с атрибутом Class.name, имеющим значение ’Entity4’.3. UML-ассоциация с атрибутом Association.name, имеющим значение ’а2’, объектами AssociationEnd являются классы UML ’Entity5’ и ’Entity4’, значение кратности задано как 1..1 для ’Entity5’ и 0..* для ’Entity4’, значением атрибута AssociationEnd.name является ’а2’ для ’Entity5’ |
ENTITY entity5;INVERSEia1 : SET[1:?] OF entity4FOR a2;ENTITY entity4;a2 : entity5; | 1. Класс UML с атрибутом Class.name, имеющим значение ’Entity5’.2. Класс UML с атрибутом Class.name, имеющим значение ’Entity4’.3. UML-ассоциация с атрибутом Association.name, имеющим значение ’а2’, объектами AssociationEnd являются классы UML ’Entity5’ и ’Entity4’, значение кратности задано как 1..1 для ’Entity4’ и 1..* для ’Entity5’, значением атрибута AssociationEnd.name является ’ia1’ для ’Entity4’ и ’а2’ для ’Entity5’ |
ENTITY entity2;a5 : LIST OF type1; | 1. Класс UML с атрибутом Class.name, имеющим значение ’Entity2’.2. Многозначный атрибут UML с параметрами UML Attribute.name, имеющим значение ’а5’, и UML Attribute.type, имеющим значение класс UML ’Туре1’, пространством имен атрибута UML ’а1’ является класс UML ’Entity2’, атрибут UML имеет кратность 0..* и признак ’ordered’ |
ENTITY entity4;ENTITY entity2;a6 : LIST OF UNIQUE entity4; | 1. Класс UML с атрибутом Class.name, имеющим значение ’Entity2’.2. UML-ассоциация с атрибутом Association.name, имеющим значение ’а6’, объектами AssociationEnd являются классы UML ’Entity4’ и ’Entity2’, значение кратности задано как 0..* для ’Entity2’ и 0..* для ’Entity4’, класс UML ’Entity4’ имеет признак ’ordered’, значением атрибута AssociationEnd.name является ’а6’ для ’Entity4’ |
ENTITY entity10;ENTITY entity1;a11 : SET OF entity10; | 1. Класс UML с атрибутом Class.name, имеющим значение ’Entity1’.2. UML-ассоциация с атрибутом Association.name, имеющим значение ’а11’, объектами AssociationEnd являются классы UML ’Entity1’ и “’Entity10’, значение кратности задано как 0..* для ’Entity10’ и 0..* для ’Entity1’, значением атрибута AssociationEnd.name является ’а11’ для ’Entity10’ |
ENTITY entity1;a7 : SET OF STRING; | 1. Класс UML с атрибутом Class.name, имеющим значение ’Entity1’.2. Класс UML с атрибутом Class.name, имеющим значение ’Set-of-string’.3. UML-ассоциация между классами UML ’Entity1’ и ’Set-of-string’ с атрибутом UML Association.name, имеющим значение ’а7’, значение кратности задано как 0..* для конца ’Entity1’ и 1..1 для конца ’Set-of-string’ |
ENTITY entity1;a7 : SET OF STRING; | 4. Агрегированная UML-ассоциация между классом UML ’Set-of-string’ и типом данных UML String |
ENTITY entity4;a8 : LIST OF STRING; | 1. Класс UML с атрибутом Class.name, имеющим значение ’Entity4’.2. Класс UML с атрибутом Class.name, имеющим значение ’List-of-string’.3. UML-ассоциация между классами UML ’Entity1’ и ’List-of-string’ с атрибутом UML Association.name, имеющим значение ’а8’, значение кратности задано как 0..* для конца ’Entity1’ и 1..1 для конца ’List-of-string’.4. Многозначный атрибут UML в классе UML ’List-of-string’, типом которого является тип данных UML String, заданы значение кратности 0..* и признак ’ordered’ |
TYPE type4 = LIST OF STRING; | 1. Класс UML с атрибутом Class.name, имеющим значение ’Туре4’.2. Класс UML с атрибутом Class.name, имеющим значение ’List-of-string’.3. Многозначный атрибут UML в классе UML ’List-of-string’, типом которого является тип данных UML String, заданы значение кратности 0..* и признак ’ordered’.4. UML-обобщение между классами UML ’Туре4’ и ’List-of-string’, где ’Туре4’ является потомком, a ’List-of-string’ - предком |
ENTITY entity2;DERIVEda1 : REAL := ... | 1. Класс UML с атрибутом Class.name, имеющим значение ’Entity2’.2. UML-операция с атрибутом UML Operation.name, имеющим значение ’da1’, пространством имен является класс UML ’Entity2’, а значением параметра isQuery является ’true’.3. Параметр UML с атрибутами Parameter.parameter, имеющим значение ’da1’, и Parameter.type, имеющим значение типа данных UML ’Double’ |
Отображения для каждой из основных конструкций языка EXPRESS определены в следующих разделах настоящего стандарта:
- отображения объявления схемы - в 5.4;
- отображения спецификации интерфейса - в 5.4;
- отображения объектного типа данных - в 5.5;
- отображения объявления подтипов - в 5.6;
- отображения инверсного атрибута - в 5.7;
- отображения вычисляемого атрибута - в 5.8;
- отображения перечисляемых типов данных - в 5.9.1;
- отображения выбираемых типов данных - в 5.9.2;
- отображения определенных типов данных, не являющихся выбираемыми или перечисляемыми типами данных - в 5.9.3.
Отображения для каждой из конструкций области определения явных атрибутов языка EXPRESS определены в следующих разделах настоящего стандарта:
- отображения области определения простых типов данных - в 5.7.1 и 5.3;
- отображения области определения одиночных именованных типов данных - в 5.7.2 и 5.5 или 5.9;
- отображения области определения типа данных SET, включающего именованные типы данных, - в 5.7.2 и 5.5 или 5.9;
- отображения области определения типа данных LIST OF UNIQUE, включающего именованные типы данных, - в 5.7.2 и 5.5 или 5.9;
- отображения области определения типа данных BAG, включающего именованные типы данных, - в 5.7.3 и 5.5 или 5.9;
- отображения области определения неуникального типа данных LIST, включающего именованные типы данных, - в 5.7.3 и 5.5 или 5.9;
- отображения области определения типа данных ARRAY, включающего именованные типы данных, - в 5.7.4 и 5.5 или 5.9;
- отображения области определения агрегированных типов данных, включающих простые типы данных, - в 5.7.4, 5.10.2 и 5.10.3;
- отображения области определения агрегированных типов данных, включающих агрегированные типы данных, - в 5.7.4, 5.10.1 и 5.10.3.
Приложение F
(справочное)
Техническое обсуждение
В данном приложении обсуждается взаимосвязь языка EXPRESS с другими стандартами и работали*, проводимыми OMG и связанными с XML.
F.1 EXPRESS в MOF
Метаобъектные средства OMG описаны в разделе 2 спецификации MOF, версия 1.4 следующим образом:
UML и MOF базируются на концептуальной многоуровневой архитектуре метамодели, в которой элементы на данном концептуальном уровне описывают элементы на следующем нижележащем уровне. Например,
- мета-метамодель MOF - это язык, используемый для определения метамодели UML;
- метамодель UML - это язык, используемый для определения моделей UML, и
- модель UML - это язык, который определяет аспекты компьютерной системы.
Таким образом, метамодель UML может быть описана как "экземпляр" мета-метамодели MOF, а модель UML - как "экземпляр" метамодели UML. Однако эти логические объекты не обязательно должны существовать в одной и той же области определения представлений типов данных и их значений. Данный подход иногда называют несвязанным метамоделированием.
Основным аспектом подхода MOF к управлению метаданными является расширяемость. Цель заключается в создании структуры, поддерживающей любой вид метаданных и позволяющей добавлять при необходимости новые виды метаданных. Для достижения данной цели MOF имеет многоуровневую архитектуру метаданных, базирующуюся на классической четырехуровневой архитектуре метамоделирования, популярной среди сообществ, занимающихся разработкой стандартов, таких как ИСО и CDIF. Основной особенностью обеих архитектур метаданных, как классической, так и MOF, является уровень мета-метамоделирования, который связывает вместе метамодели и модели.
Архитектура метаданных MOF иллюстрируется примером на рисунке 2-2.
500 × 286 пикс.   Открыть в новом окне |
Рисунок F.1 - Рисунок 2-2 "Архитектура метаданных MOF" из Спецификации MOF 1.4
XMI базируется на MOF, и документ в формате XMI может содержать все четыре уровня данной архитектуры. В качестве следующего шага в развитии и гармонизации взаимосвязи между стандартами EXPRESS и OMG определение EXPRESS на уровне М2 архитектуры, использующей MOF на уровне М3, должно привести к возможности использования MOF-совместимых репозиториев для управления языком EXPRESS и EXPRESS-схемами напрямую, без их отображения на UML. При этом EXPRESS-схемы могли бы управляться на уровне М1, a XMI имел бы возможность обмениваться этими тремя уровнями между MOF/XMI-совместимыми репозиториями. Следует отметить, что данная деятельность стала бы первой попыткой стандартизации метамодели языка EXPRESS. В ИСО 10303-22 определен словарь данных для EXPRESS-схем в среде интерфейсов доступа к данным, который мог бы использоваться в качестве отправной точки при разработке метамодели EXPRESS с использованием MOF.
Если EXPRESS-схемами можно будет управлять на уровне M1 новой архитектуры, то экземплярами объектов языка EXPRESS можно будет управлять на уровне М0. Следовательно, результатом стандартизованного отображения EXPRESS на MOF будет способность обмениваться экземплярами объектов языка EXPRESS, EXPRESS-схемами, метамоделью MOF языка EXPRESS и самими MOF в одном XMI-документе. Поскольку не требуется, чтобы все уровни присутствовали в каком-либо конкретном XMI-документе, то возможно обеспечить обмен XMI-совместимыми схемами и данными с использованием XML способом, аналогичным описанному в ИСО 10303-28. Форма могла бы быть в основном похожа на обмен схемами и динамическое связывание в ИСО 10303-28. Стандартизация представления в MOF языка EXPRESS должна быть проработана в качестве потенциального приоритета для последующей редакции настоящего стандарта.