Лекция 5 Спецификация состояний(моделирование отношений агрегации и композиции, моделирование отношений обобщения, моделирование объектов).
Агрегация и композиция Агрегация (aggregation) это отношение вида часть целое между классом, который представляет собрание компонент (класс супермножество (superset class)), и классами, представляющими компоненты (классы подмножества (subset class)). Класс супермножество содержит один или более классов подмножеств. Композиция обладает дополнительным свойством зависимость по существованию (existence dependency). Объект класса подмножества не может существовать в отсутствие связи с объектом класса супермножества.
Агрегация – особый случай ассоциации Она обладает рядом свойств: Транзитивность Асиметрия Транзитивность означает, что если класс А содержит класс В, а класс В содержит класс С, то класс А содержит класс С. Асимметрия означает, что если А содержит В, то В не может содержать А.
Графическая нотация агрегации и композиции
Пример спецификации агрегации и композиции
Моделирование отношения агрегации и композиции Моделирующая способность языка UML значительно усилилась, если бы язык поддерживал четыре возможных семантики для агрегации: 1. Агрегация типа Безраздельно обладает. 2. Агрегация типа Обладает. 3. Агрегация типа Включает. 4. Агрегация типа Участник.
Агрегация типа Безраздельно обладает устанавливает следующее: между компонентными классами и их составными классами установлено отношение зависимости по существованию (следовательно, удаление составного объекта распространяется вниз по иерархии отношения, так что связанные компонентные объекты также удаляются); агрегация транзитивна агрегация асимметрична (нерефлексивна) агрегация стационарна
Агрегация типа Обладает поддерживает свойства зависимость существований; транзитивность; асимметричность.
Агрегация типа Включает поддерживает следующие свойства транзитивность; асимметричность.
Агрегация типа Участник обладает свойствами Агрегация типа Участник обладает свойством целенаправленного группирования независимых объектов группирования, при котором не делается предположений относительно свойства зависимости по существованию, транзитивности, асимметричности или стационарности.
Выявление агрегаций и композиций При объяснении отношения агрегации лакмусовой бумажкой выступают фразы включает (has) и является частью (is part of).
Обобщение Обобщение (generalization) представляет собой видовое отношение между более общим классом (суперкласс или родительский класс) и более специфическим видом класса (подкласс или дочерний класс). Подкласс является видом суперкласса. Там, где допустимо использование суперкласса, может использоваться и объект подкласса.
Графическая нотация обобщения
Цели обобщения 1. Наследование 2. Полиморфизм 3. Подставимость
Выявление обобщений При поиске отношения обобщения лакмусовой бумажкой выступают фразы может быть (can be) и это нечто вроде (is a kind of). При истолковании отношения
Моделирование объектов Моделирование касается проблем определения систем. Модель это не действующая система, и поэтому она не отражает объектов экземпляров. Тем не менее, при моделировании классов часто представляются объекты и рассматриваются трудные сценарии с использованием примеров объектов.
Объект Объект это экземпляр (instance) некоей сущности. Он может быть одним из множества экземпляров одной и той же сущности.
Графическая нотация объектов
Кооперирование объектов
Пример спецификации объектов