ГОСТ Р ИСО/МЭК 10165-7-2003
symmetricRelationshipBehaviour BEHAVIOUR DEFINED AS»
ИНВАРИАНТ: данная взаимосвязь имеет единственную роль, для которой минимальные допустимое и обязательное кардинальные числа роли ограничены 2. Существование экземпляра этого класса взаимосвязей подразумевает существование по крайней мере двух соответствующих управляемых объектов, играющих эту роль.
ОПЕРАЦИИ:
ESTABLISH establishSymmetricRelationship
Сигнатура: класс и идентификация предлагаемых участников парной роли, которые должны быть
связаны в новом экземпляре класса SymmetricRelationship.
Предусловие: экземпляр класса взаимосвязей SymmetricRelationship не должен существовать. Постусловие: участники равноправной роли существуют; экземпляр класса взаимосвязей SymmetricRelationship существует; участники равноправной роли, указанные в сигнатуре, связаны в данном экземпляре класса SymmetricRelationship.
TERM INATE terminateSymmetricRelationship
Сигнатура: идентификация экземпляра класса взаимосвязей SymmetricRelationship, который должен
быть завершен.
Предусловие: экземпляр класса взаимосвязей SymmetricRelationship, указанный в сигнатуре, существует;
участники равноправной роли, связанные в данном экземпляре класса SymmetricRelation-ship, существуют.
Постусловие: Указанный экземпляр класса взаимосвязей SymmetricRelationship не существует; участники равноправной роли, которые были связаны в данном экземпляре класса SymmetricRelationship, cуществуют. » ;
F.2.2 Симметричная взаимосвязь, представленная объектом взаимосвязи
symmetricRelationshipMapping RELATIONSHIP MAPPING RELATIONSHIP CLASS SymmetricRelationship;
BEHAVIOUR symmetricRelationshipMappingBehaviour BEHAVIOUR DEFINED AS»
Это представление симметричной взаимосвязи использует объект взаимосвязи. Объекты, играющие равноправные роли, идентифицируются атрибутом peerPointer управляемого объекта симметричной взаимосвязи: » ; ;
RELATIONSHIP OBJECT symmetricRelationshipObject;
ROLE peerRole RELATED-CLASSES bCCITT Rec.X.721 | ISO/IEC 10165-2»: top REPRESENTED-BY RELATIONSHIP-OBJECT-USING-POINTER peerPointer;
OPERATIONS MAPPING ESTABLISH establishSymmetricRelationship MAPS-TO-OPERATION CREATE OF RELATIONSHIP OBJECT,
TERMINATE terminateSymmetricRelationship
MAPS-TO-OPERATION DELETE OF RELATIONSHIP OBJECT,
QUERY querySymmetricRelationship
MAPS-TO-OPERATION GET peerPointer OF RELATIONSHIP OBJECT;
REGISTERED AS {GRMExample. grmEx-RelationshipMapping x};
symmetricRelationshipObject MANAGED OBJECT CLASS DERIVED FROM genericRelationshipObject;
CHARACTERIZED BY symmetricRelationshipPackage PACKAGE ATTRIBUTES peerPionter GET-REPLACE ADD-REMOVE; ; ;
REGISTERED AS {GRMExample.grmEx-Object x} ;
peerPointer ATTRIBUTE
DERIVED FROM participantPointer;
REGISTERED AS {GRMExample. grmEx-Attribute x} ;
F.W Пример взаимосвязи зависимости
В следующем примере показана взаимосвязь зависимости одного или нескольких объектов, которые принимают роль, зависимую от одного объекта, принимающего родительскую роль. В примере показаны отображения в терминах указателей участников, объекта взаимосвязи и наименования.
Класс взаимосвязи зависимости может быть полезен для представления направленного ациклического графа с помощью специализации взаимосвязи. В таком классе взаимосвязей DAGDependency должен быть введен уровень зависимости относительно родителя графа и представлен добавлением соответствующего атрибута. Должен быть добавлен инвариант, устанавливающий, что значение атрибута уровня в зависимости всегда должно быть больше, чем эти значения у родителей. Класс взаимосвязи зависимости может быть полезен для представления семейных связей с помощью специализации класса управляемых объектов person на три подкласса:
27