Лекция 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) некоей “сущности”. Он может быть одним из множества экземпляров одной и той же “сущности”. Графическая нотация объектов Кооперирование объектов Пример спецификации объектов