doc/BPM/TERM/relationship.md
2026-01-11 13:20:52 +03:00

39 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### composition vs aggregation
#### 1
Если речь зашла про SADT
Именно в SADT и определено, что процесс это упорядоченный набор функций. Функция отвечает за единицу работы, например "записать данные клиента". А процесс отвечает за получение результата, то есть прямо определяет, как надо выполнять работу, какие условия нужны для функций и какие данные каким функциям нужно передать, чтобы получать результат.
Неделимость не синоним отсутствие декомпозиции. Декомпозиция — это понижение уровня описания действия. На каждом уровне функция неделима. Делится процесс. Мы можем описывать сложные процессы на одном уровне, делить их и переносить часть процессов выше или ниже по иерархии, если это приводит к более наглядному отображению или если это необходимо для оптимизации.
Действие обратное декомпозиции — агрегация. И это не объединение частей, а создание новой сущности выше по иерархии, представляющее в агрегированном виде описание нижестоящих действий. Деление же может быть только на одном уровне описания.
https://t.me/c/2571743804/1019
#### 2
Второй абзац непонятен, в архитектуре математический термин "деление" не применяется, никогда не встречал. Используются 2 базовые структурные связи композиция и агрегация. Они разные по смыслу но в целом и то и то это отношение часть/целое, поэтому декомпозиция это разделение целого на части(возможно неравные в отличие от деления где части равные) другого смысла в этой связи нет. То что вы написали про уровни описания(детализация) насколько я понял логику это еще один тип связи (специализация/отношение класс/подкласс элемента). Связи декомпозиции и специализации могут существовать одновременно, одна не исключает другую.
Третий абзац ошибочен в части отношения связей.
Антоним декомпозиции - это композиция, а не агрегация, у этих связей разный смысл.
Композиция
Композиция — жёсткая форма отношения «целое-часть», при которой часть (компонент) не может существовать без своего контейнера (основного объекта). Если основной объект уничтожается, уничтожаются и его компоненты.
Особенности композиции:
Жёсткая связь между объектами.
Часть не может существовать без целого.
Объект-компонент создаётся и управляется объектом-контейнером.
Уничтожение контейнера ведёт к уничтожению всех его компонентов.
Пример: класс Car содержит объект класса Engine в качестве своего поля. Когда объект Car удаляется, объект Engine также удаляется.
Агрегация
Агрегация — отношение «часть-целое» между двумя равноправными объектами, когда один объект (контейнер) имеет ссылку на другой объект. Оба объекта могут существовать независимо: если контейнер будет уничтожен, то его содержимое — нет.
Особенности агрегации:
Реализуется слабая связь: объекты равноправны.
В конструктор одного объекта передаётся ссылка на уже имеющийся объект другого.
Как правило, определяется ссылка не на конкретный класс, а на абстрактный класс или интерфейс, что увеличивает гибкость программы.
##### 2.1
- см. [2 Номенклатура схем ArchiMate по типам связей](https://github.com/bpmbpm/doc/blob/main/BPM/notation/ArchiMate/notation1.md#2-%D0%BD%D0%BE%D0%BC%D0%B5%D0%BD%D0%BA%D0%BB%D0%B0%D1%82%D1%83%D1%80%D0%B0-%D1%81%D1%85%D0%B5%D0%BC-archimate-%D0%BF%D0%BE-%D1%82%D0%B8%D0%BF%D0%B0%D0%BC-%D1%81%D0%B2%D1%8F%D0%B7%D0%B5%D0%B9)
- nesting https://github.com/bpmbpm/doc/blob/main/BPM/enEA/readme.md#nesting