ГОСТ Р ИСО 10303-11 — 2009
Приложение J
(справочное)
Модели на языке EXPRESS для примеров, иллюстрирующих EXPRESS-G
В данном приложении приведены преобразованные на язык EXPRESS копии нескольких примеров, ис
пользованных для иллюстрации моделирования посредством графической нотации EXPRESS-G.
Данные примеры не претендуют на то, чтобы считаться реалистичными или «хорошими». В частности,
модели, использованные в данных примерах, не имеют никакой связи с какими-либо моделями из других стан
дарте» комплекса ИСО 10303.
J.1 Пример модели единой схемы
Модель в данном примере в основном утверждает, что личность может быть мужчиной или женщиной.
Каждая личность имеет некоторые определяющие характеристики, такие как имя и фамилия, дата рождения, тип
волос, а также может иметь или не иметь детей (которые, конечно, также являются людьми). Мужчина может быть
женат на женщине. В этом случае женщина имеет инверсную взаимосвязь с данным мужчиной.
Возраст (объект аде) личности является вычисляемым атрибутом, который рассчитывается с помощью
функции years, определяющей число лет между датой, вводимой в качестве параметра, и текущей датой.
Личность (объект person) имеет инверсный атрибут, связывающий детей со своими родителями. Нижней
границейданного инверсного атрибута является 0. чтобы обеспечить ненужность предоставления всей родослов
ной.
П р и м е ч а н и е — Если бы объект parents (родители) был необходимым явным атрибутом, а объект
children (дети) — его инверсным атрибутом, то родословную надо было бы раскручивать назад во времени.
Пример — Модель единой схемы на языке 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;
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;
SUBTYPE_CONSTRAINT sc_person FOR person:
ONEOF (female, male);
END_SUBTYPE_CONSTRAINT:
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;
183