ГОСТ Р И С 0 10303-11 — 2009
Синтаксис:
200 derived_attr = attribute_dec*parameter_typeexpression
177 attribute_decf = attribute_id | redeclared_attribute.
266 parameterjype = generalized.,types | named_types |simp!e_types.
П р и м е ч а н и е — Синтаксис элемента qualified_attribute обеспечивает повторное объявление
атрибута, установленное в 9.2.3.4.
Выражение может ссылаться на любой атрибут, константу (включая SELF) или идентификатор функ
ции, принадлежащий кобласти видимости.
Правила и ограничения:
a) Элемент expression должен быть совместимым с типом данных атрибута, которому присваивается
его вычисленное значение (см. 13.3).
b
)Для конкретного экземпляра объекта значение вычисляемого атрибута определяется путем вычис
ления значения выражения с заменой каждого ключевого слова SELF данным экземпляром и каждой
ссылки на атрибут— значением соответствующего атрибута.
c) Вычисляемый атрибут не должен объявляться ни явно, ни косвенно как имеющий тип данных
GENERIC.
П р и м е ч а н и е — Даннов правило справедливо, несмотря на то. что такое объявление допускается
синтаксисом.
Пример — В данном примере, круг (circle) определяется центром (centre), осью (axis) и
радиусом (radius). Помимо этих явных атрибутов, необходимо знать значения таких важных пара
метров, как площадь (area) и периметр (perimeter). Данное требование может быть реализовано
посредством определения данных параметров как вычисляемых атрибутов, значения которых
определены выражениями.
ENTITY circle:
centre : point
radius : REAL
axis: vector;
DERIVE
area: REAL := Prradius‘*2;
perimeter ; REAL := 2.0*PPradius;
END_ENTTTY:
9.2.1.3 Инверсный атрибут
Если другой объект установил взаимосвязь с данным объектом посредством явного атрибута, то
инверсный атрибут может быть использован для описания этой взаимосвязи в контексте данного объекта.
Данный инверсный атрибут может также быть использовандля того, чтобы ограничить эту взаимосвязь в
дальнейшем.
Инверсные атрибуты объявляются после ключевого слова INVERSE. Каждый инверсныйатрибутдол
жен бытьопределен отдельно.
Ограничения мощности множества, применяемые к инверсной взаимосвязи, устанавливаются специ
фикацией границдля инверсного атрибута так же. как идля явных атрибутов.
П р и м е ч а н и е — Более подробная информация о взаимосвязи между явными и инверсными
атрибутами приведена в приложении Н.
Инверсный атрибут представляется объектным типом данных либо типами данных BAG или SET,
базисным типом которых является объектный тип данных. Обращение к объектному типу данных осуще
ствляется как на ссылочный объект.
В объявлении инверсногоатрибута также указывается явный атрибут ссылочного объекта. Для конк
ретного экземпляра данногообъектного типа данных значение инверсного атрибута состоит из экземпляра
или экземпляров типов данных ссылочного объекта, использующих данный экземпляр в определенной
роли. В случае неоднозначности, возникшей из-за идентичности имен атрибутов в графе подтипое/суперти-
пов ссылочного объекта, имени явного атрибута должно предшествовать имя объекта, который первона
чально объявляетданный атрибут.
Каждый из трех возможных типов данных для представления инверсного атрибута устанавливает
некоторые ограничения на взаимосвязь междудвумя объектами, представленные ниже.
31