Статус документа
Статус документа

ГОСТ Р ИСО 10303-11-2000 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS

ПРИЛОЖЕНИЕ Н
(справочное)

     
Модели EXPRESS для иллюстрации примеров EXPRESS-G


В данном приложении приведены тексты на языке EXPRESS для нескольких примеров, использованных для иллюстрации моделирования с помощью EXPRESS-G.

Эти примеры не являются реальными или "правильными". В частности, модели из этих примеров не имеют никакого отношения к моделям из других стандартов серии ГОСТ Р ИСО 10303.

H.1 Пример модели единичной схемы

Модель из примера 171 в основном показывает, что личность может быть мужчиной или женщиной. Каждая личность имеет определенные характеристики, такие как имя и фамилия, дата рождения, цвет волос, а также может иметь ноль или более детей (которые, конечно, также являются людьми). Мужчина может быть женат на женщине, в этом случае женщина имеет инверсное отношение с мужчиной.

Возраст (age) личности является вычисляемым атрибутом, который вычисляется с помощью функции years, определяющей количество лет между датой рождения, введенной в качестве параметра, и текущей датой.

Личность (person) имеет инверсный атрибут, который связывает детей со своими родителями. Нижняя граница этого инверсного атрибута равна 0 на тот случай, когда невозможно обеспечить полное семейное дерево.

Примечание - Если бы существовал явный атрибут parents (родители), а атрибут children (ребенок) был бы инверсным атрибутом, семейное дерево необходимо было бы продлевать назад во времени до бесконечности.


Пример 171 - Модель единичной EXPRESS-схемы.

SCHEMA example;

TYPE date = ARRAY [1 : 3] OF INTEGER;

END_TYPE;

TYPE hair_type = ENUMERATION OF

     (blonde,

     brown,

     black,

     red,

     white,

     bald);

END_TYPE;

ENTITY person

     ABSTRACT SUPERTYPE OF (ONEOF (female, male));

     first_name: STRING;

     last_name: STRING;

     nickname: OPTIONAL STRING;

     birth_date: date;

     children: SET [0 : ?] OF person;

     hair: hair_type;

DERIVE

     age : INTEGER := years(birth_date);

INVERSE

     parents : SET [0 : 2] OF person FOR children;

END_ENTITY;

ENTITY female

     SUBTYPE OF (person);

INVERSE

     husband : SET [0 : 1] OF male FOR wife; -- муж не обязателен!

END_ENTITY;

ENTITY male

     SUBTYPE OF (person);

     wife : OPTIONAL female;

END_ENTITY;

FUNCTION years(past : date) : INTEGER:

     (* Данная функция подсчитывает число лет между предыдущей и текущей датами *)

END_FUNCTION;

END_SCHEMA;

Н.2 Шаблон отношения

В примере 172 приведена простая модель для того, чтобы показать некоторые из определений и отношений из EXPRESS. Модель содержит объекты супертипов, объекты подтипов и объекты, не являющиеся ни тем, ни другим. Также показаны два определенных типа данных, выбираемый тип и несколько простых типов.

Пример 172 - Простой объект из EXPRESS и модель отношений типа.

SCHEMA etr;

ENTITY super;

END_ENTITY;

ENTITY sub_1

     SUBTYPE OF (super);

     attr: from_ent;

END_ENTITY;

ENTITY sub_2

     SUBTYPE OF (super);

     pick : choice;

END_ENTITY;

ENTITY an_ent

     int : INTEGER;

END_ENTITY;

ENTITY from_ent

     description: OPTIONAL to_ent;

     values: ARRAY [1 : 3] OF UNIQUE REAL;

END_ENTITY;

ENTITY to_ent

     text : strings;

END_ENTITY;

TYPE choice = SELECT

     (an_ent,

     name);

END_TYPE;

TYPE name = STRING;

END_TYPE;

TYPE strings = LIST [1 : ?] OF STRING;

END_TYPE;

END_SCHEMA;

Н.3 Простое дерево подтип/супертип

EXPRESS позволяет определять очень сложные деревья (и сети) подтипов/супертипов. Дерево, показанное в примере 173, относительно простое.

Пример 173 - Дерево подтип/супертип в языке EXPRESS.

SCHEMA simple_trees;

ENTITY super;

END_ENTITY;

ENTITY sub1

     SUBTYPE OF (super);

END_ENTITY;

ENTITY sub2

     ABSTRACT SUPER OF (ONEOF(sub3,

sub4))

     SUBTYPE OF (super);

END_ENTITY;

ENTITY sub3

     SUBTYPE OF (sub2);

END_ENTITY;

ENTITY sub4

     SUBTYPE OF (sub2);

END_ENTITY;

ENTITY sub5

     SUBTYPE OF (super);

END_ENTITY;

END_SCHEMA;

H.4 Переобъявление атрибута

В EXPRESS допускается переобъявление наследуемых атрибутов, обеспечивающее совместимость новых типов атрибутов. В примере 174 показаны некоторые допустимые формы переобъявления:

- тип переобъявленного атрибута является подтипом наследуемого типа;

- тип переобъявленного атрибута является совместимым простым типом;

- значение переобъявленного атрибута является обязательным, в то время как наследуемое значение было необязательным.

Пример 174 - Переобъявление атрибута в EXPRESS.