ГОСТ Р ИСО 10303-11 — 2009
Возможные сложные объектные типы могут быть определены следующим образом:
В приведенной выше EXPRESS-схеме в явном виде представлены все объявления объектов и пол
ные выражения супертипов, требуемые на шагах по перечислениям а) и Ь).
В результате выполнения шага по перечислению с) получаем:
SUBTYPE_CONSTRAINT z_othersubtypes FOR z;
f ANOOR у ANDOR x;
END_SUBTYPE_CONSTRAiNT:
SUBTYPE_CONSTRAINT y_othersubtypes FOR y;
/;
END_SUBTYPE_CONSTRAINT:
В результате выполнения шага по перечислению d). получаем:
SUBTYPE_CONSTRAINT stz FOR z;
f ANDOR у ANDOR x;
END_SUBTYPE_CONSTRAINT;
SUBTYPE_CONSTRAINT sty FOR y;
1;
END_SUBTYPE_CONSTRAiNT:
SUBTYPE_CONSTRAINT sta FOR a;
ONEOF(b, c) AND d ANDOR f;
END_SUBTYPE_CONSTRAINT:
SUBTYPE_CONSTRAINT std FOR d;
ABSTRACT;
ONEOF(k, 0;
END_SUBTYPE_CONSTRAINT:
В результате выполнения шага по перечислению е), получаем:
Еа - [a. akbkd. akbkd kl akckd. akckd kl akf]:
£d - [dkk. dkl].
e, - [/Ay. yl;
Ez - [fkxkykz. fkxkz. fkykz fkz. xkykz, xkz. ykz. z],
Врезультате выполнения шагапо перечислению Г)преобразуются объявлениякорневыхобъектов
а и z. В результате получаем следующие множества:
ЕЛ= [а. akbkdkk.akbkdklakbkdkfkk.akbkdkfklakckdkk.akckdklakckdkfkk.
a kckd kfkl akf ];
Ez= [fklkxkykz. fklkykz. fkxkykz. fkxkz. fkykz. fkz. Ikxkykz. Ikykz. xkykz. xkz. ykz. z].
Объединяя корневые множества на шагепо перечислению д). получаем:
R = [a. akbkdkk,akbkdklakbkdkfkk. akbkdkfkl.akckdkk.akckdkl.akckdkfkk,
akckdkfkt. akf. fk/kxkykz. fklkykz. fkxkykz. fkxkz. fkykz. fkz. Ikxkykz. Ikykz. xkykz,
Xkz, ykz. z].
Ограниченийподтипов полного покрытия не существует, поэтомувыполнение шага по перечисле
нию h) не требуется.
Применение шага по перечислению i) к каждому подтипу с множественным наследованием дает
следующие результаты:
Для объекта f:
С} = [a&b&dkkkf. a&bkd&l&f. a&c&d&k&f. a&c&d&lkf, akf}\
C\ = [f&l&x&ykz. f&l&y&z. fkxkykz. fkxkz. fkykz. fkz]-,
P, = [akbkdkfkkkz, akbkdkfkkkxkz. akbkd kfkkklkykz, akbkdkfkkkykz,
akbkd kfkkklkxkykz. akb kd kfkkkxkykz. akb kd kfklkz. akbkd kfklkxkz.
akb kd kfklkykz. akb kd kfklkxkykz. akckd kfkkkz, akckd kfkkkxkz,
akckd kfkkklkykz. akckd kfkkkykz, akckd kfkkkl& xkykz, akckd kfkkkxkykz,
akckd kfklkz, akckd kfklkxkz, akckd kfklkykz, a kckd kfklkxkykz, akfkz. akfkxkz.
akfklkykz. akfkykz. akfktkxkykz, akfkxkykz];
X( = [akbkdkfkk. akbkdkfkl. akckdkfkk. akckdkfkl, akf. fklkxkykz.
fklkykz. fkxkykz. fkxkz. fkykz. fkx].
Новое множество R = (R—X,) + P, тогда равно: [a, akbkdkfkkkz. akbkdkfSUtkxkz,
akbkd kfkkklkykz. akbkdkfkkkykz. akbkd kfkkklkxkykz. akbkdkfkkkxkykz,
akbkd kfklkz, akbkd kfklkxkz. akbkd kfklkykz, akbkd kfklkxkykz. akbkdkk. akbkdkl,
akckdkfkkSu, akckd kfkkkxkz, akckd kfkkklkykz, akckd kfkkkykz. akckdkfkkkl& xkykz.
akckdkfkkkxkySu, akckd kfklkz. akckd kfklkxkz, akckd kfklkykz, akckd kfklkxkykz,
akfkykz. akfklkxkykz. akfkxkykz. Ikxkykz.
akckdkX. akckdkl, akfkz, akfkxkz. akfklkykz,
Ikykz, xkykz. xkz, ykz. z].
135