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

ГОСТ Р ИСО 13584-42-2012 Системы промышленной автоматизации и интеграция. Библиотека деталей. Часть 42. Методология описания. Методология структурирования семейств деталей

     5.2 Соотношения между классами

5.2.1 Соотношение включения в класс

В объектно-ориентированном анализе соотношение включения в класс (отнесения к заданной категории) составляет базовую операцию моделирования области знаний. Класс А1 называют родовым для класса А, если в любом контексте каждый объект, принадлежащий классу А1, также принадлежит и классу А.

В большинстве объектно-ориентированных языков соотношение включения в класс представляется наследственностью: если класс А является родовым для класса А1, то не только все реализации А1 принадлежат А, но также и все свойства, определенные для А, также применимы в А1. Более того, данный механизм наследственности является только механизмом, позволяющим двум классам совместно использовать одни и те же свойства. Рассматриваемая идентификация соотношений включения в класс и наследственности, часто ведущая к множественной наследственности, делает объектно-ориентированную модель немодульной, затрудняет ее использование в контексте, мало отличающемся от исходного. Для обеспечения модульности онтологии продукции, для модели онтологии, определенной в ИСО 13584, определены два различных представления соотношений включения в класс:

- обычное представительное соотношение, определенное в настоящем стандарте, позволяет отдельным группам или организациям создавать конкретные иерархии, отнесенные к заданной категории, или онтологии (категоризации) продукции с простым наследованием свойств;

- условное соотношение с конструктивами ресурсов EXPRESS обеспечивает модульность онтологии. Оно не означает автоматического наследования. Оно позволяет родовым классам явно импортировать некоторые (или все) видимые и/или применимые свойства для класса, отнесенного к некоторой категории. Данное соотношение позволяет: (1) устанавливать связь характеристического класса с одним или несколькими классами категоризации, (2) импортировать в рассматриваемый контекст некоторых иерархий стандартных характеристик некоторые свойства, ранее определенные в других иерархиях стандартных характеристик, (3) соединять словарь пользователя с одной или несколькими иерархиями стандартных характеристик, (4) описывать продукт, используя свойства различных классов. Если класс продукции А1 выполняет две различные функции и, таким образом, описывается свойствами, ассоциированными с двумя различными классами (например, А и В), то класс А1 может быть соединен представительным соотношением с А и условным соотношением с В.

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

5.2.2 Агрегация и композиция

Одни виды продукции могут быть собраны из других видов продукции. Например, болтовая сборка может включать болты, шайбы и гайки. Такие соотношения называют агрегациями.

Некоторые виды продукции трудно характеризовать простыми свойствами. Их легче описывать несколькими особенностями. Каждая особенность описывается как с помощью ссылки на характеристический класс, так и парой значений свойств. Указанное соотношение между характеристическим классом и всеми классами особенностей называют композиционным соотношением.

Пример 1 - Винт можно характеризовать его головкой (например, винт, принадлежащий классу шестигранных головок, можно описать высотой головки и расстоянием между гранями), резьбой (принадлежащей, например, классу метрических резьб) и способом закручивания. Соотношение между классом винта и всеми классами его особенностей - композиционное соотношение.

Существует принципиальное отличие между агрегацией и композицией. Агрегация применяется, если один продукт, включенный в другой продукт, может существовать независимо от него. Срок службы сборки может отличаться от срока службы ее компонентов деталей. Иногда компоненты меняют без контроля всей сборки. И наоборот, композиция применяется, если жизненный цикл продукции равен жизненному циклу составляющих компонентов. Данные компоненты не могут существовать без продукции, куда они встроены. Компоненты не могут изменяться без изменения всего вида продукции, к которому они относятся. Таким образом, отличие между композицией и агрегацией, а также между компонентом и отдельным продуктом четко определяется на концептуальном уровне.

Отметим, что указанное концептуальное отличие не обязательно отражается на уровне представления данных.

Пример 2 - Резьба винта, удовлетворяющая стандартам ИСО, может существовать только как деталь винта. Таким образом, на концептуальном уровне она считается неотъемлемым свойством винта (композицией). Тем не менее, резьбы винтов, удовлетворяющие стандартам ИСО, существуют только для ограниченного набора их размеров. Поэтому для эффективного хранения и обмена данных необходимо:
     
     - рассматривать резьбы винтов, удовлетворяющие стандартам ИСО, как набор предварительно определенных экземпляров, которые можно хранить, например, в таблице,
     
     - обменивать данный набор экземпляров независимо от каких-либо винтов,
     
     - описывать винт без указания значений свойств его резьбы, просто ссылаясь на некоторую информацию по резьбе, обмениваемую отдельно.


В общей словарной модели ИСО 13584/МЭК 61360 понятия "композиция" и "агрегация" считаются концептуально отличными без указания требований к представлению данных. Как продукция, так и ее особенности должны моделироваться как классы элементов item_class. Композиционные и агрегационные соотношения представляются свойствами. Концептуальное отличие фиксируется заданием булевского атрибута item_class, называемого instance_sharable (совместно используемый экземпляр). Если значение атрибута instance_sharable класса элементов item_class равно true, то представлен отдельный продукт, существующий независимо от всех агрегационных соотношений. На эти практические экземпляры указанного класса могут производиться ссылки любого числа других практических экземпляров. Если значение атрибута instance_sharable класса элементов item_class равно false, то это класс особенностей, представляющих составное свойство. Практический экземпляр такого класса может существовать, если он встроен только в один продукт. От данного экземпляра зависит выбор между альтернативами: несколько практических экземпляров особенностей, моделируемых одинаковым набором пар значений свойств, представляются 1) несколькими блоками данных EXPRESS или 2) одним и тем же блоком данных в файле обмена данными.