UML / АСУ_Фонотов_uml
.pdfАгрегация – реализация
Кафедра Автоматизированных систем управления
Агрегация реализуется как обычная ассоциация!
Реализация более строгой семантики агрегации полностью лежит на программисте!
Во время выполнения агрегация ведет себя не так как ассоциация.
Агрегация не полностью поддерживается средами программирования.
© Фонотов Анастас Михайлович
Композиция (Composition)
Кафедра Автоматизированных систем управления
Композиция – частный случай агрегации
Составляющая часть может принадлежать не более чем к одному агрегату (целому)
составляющая часть получает срок жизни того агрегата
(целого), которому она принадлежит
class Association
Книга |
Глава |
|
class Association
Документ |
Позиция_документа |
© Фонотов Анастас Михайлович
Кафедра Автоматизированных систем управления
Связь агрегации может быть рефлексивной, то есть один экземпляр класса может состоять из одного или несколько других экземпляров класса.
Комбинируя ингредиенты для блюд при приготовлении пищи мы можем получить новый ингредиент.
ингредиент
© Фонотов Анастас Михайлович
Композиция (Composition)
Кафедра Автоматизированных систем управления
Окно программы
1 1 11
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
2 |
|
|
1 |
|
1 |
|
|||||
Заголовок |
|
Полоса |
|
|
Рабочая |
|
Главное |
||||||
|
прокрутки |
|
|
область |
|
меню |
|||||||
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
© Фонотов Анастас Михайлович
Агрегация - достоинства
Кафедра Автоматизированных систем управления
Агрегация представляет собой наиболее мощный из известных нам методов управления сложностью больших систем с помощью распределения классов по иерархическим уровням абстракции.
© Фонотов Анастас Михайлович
Агрегация – виды
Кафедра Автоматизированных систем управления
Можно выделить 4 основных вида агрегации:
1.Агрегация типа «Безраздельно обладает»
2.Агрегация типа «Обладает»
3.Агрегация типа «Включает»
4.Агрегация типа «Участник»
© Фонотов Анастас Михайлович
Кафедра Автоматизированных систем управления
Агрегация «Безраздельно обладает»
Агрегация типа «Безраздельно обладает» Устанавливает зависимость по существованию. Т.Е. Удаление составного объекта
распространяется вниз по иерархии, так, что связанные компонентные объекты тоже удаляются.
При таком виде агрегации объект может принадлежать только одному суперклассу в течении своего жизненного цикла.
© Фонотов Анастас Михайлович
Агрегация «Безраздельно обладает»
Кафедра Автоматизированных систем управления
*Применение в UML
Агрегация типа «Безраздельно обладает» можно показать в UML с помощью ключевого слова «ExclusiveOwns» и дополнительно ограниченную с помощью ключевого слова frozen – замороженный. Ограничение frozen примененное к компонентному классу констатирует, что объект компонентного класса не может быть заново соединен (в течении своего ЖЦ) с другим составным объектом.
© Фонотов Анастас Михайлович
Агрегация «Безраздельно обладает»
Кафедра Автоматизированных систем управления
Глава является частью книги, и не может выдаваться в библиотеке отдельно от нее.
© Фонотов Анастас Михайлович
class System
Книга
0..1
«ExclusiveOwns»
0..* {frozen}
Раздел
Агрегация «Обладает»
Кафедра Автоматизированных систем управления
Агрегация типа «Обладает», является более «мягкой» связью агрегации чем агрегация типа «Безраздельно обладает».
Основное отличие в том, что компонентный объект в каждый момент времени принадлежит по меньшей мере одному составному объекту.
Компонентный объект может быть заново соединен с другими составными объектами.
© Фонотов Анастас Михайлович