Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OtvetyPIS.doc
Скачиваний:
68
Добавлен:
21.03.2015
Размер:
340.99 Кб
Скачать

11.Отношения между классами. Ассоциация. Виды ассоциаций. Агрегация. Композиция. Наследование. Зависимость. Генерация программного кода. Примеры. Отношения между классами

Кроме внутреннего устройства или структуры классов на соответствующей диаграмме указываются различные отношения между классами. Базовыми отношениями или связями в языке UML являются:

  • отношение зависимости (dependency relationship);

  • отношение ассоциации (association relationship);

  • отношение обобщения (generalization relationship);

  • отношение реализации (realization relationship).

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

Отношение ассоциации соответствует наличию некоторого отношения между классами. Данное отношение обозначается сплошной линией с дополни­тельными специальными символами, которые характеризуют отдельные свойства конкретной ассоциации. Имя ассоциации является необязательным эле­ментом ее обозначения. Если оно задано, то записывается с заглавной (большой) буквы рядом с линией соответствующей ассоциации.

Отношение агрегации имеет место между несколькими классами в том слу­чае, если один из классов представляет собой некоторую сущность, вклю­чающую в себя в качестве составных частей другие сущности. Данное отношение имеет фундаментальное значение для описания структу­ры сложных систем, поскольку применяется для представления системных взаимосвязей типа "часть-целое". Раскрывая внутреннюю структуру систе­мы, отношение агрегации показывает, из каких компонентов состоит систе­ма и как они связаны между собой.

Отношение обобщения является обычным таксономическим отношением меж­ду более общим элементом (родителем или предком) и более частным или специальным элементом (дочерним или потомком). Применительно к диаграмме классов данное отношение описывает иерархи­ческое строение классов и наследование их свойств и поведения. При этом предполагается, что класс-потомок обладает всеми свойствами и поведением класса-предка, а также имеет свои собственные свойства и поведение, кото­рые отсутствуют у класса-предка. Например, класс Геометрическая_фигура_на_плоскости (курсив обозначает абстрактный класс) может выступать в качестве суперкласса для подклассов, соответствующих конкретным геометрическим фигурам.

Множественность показывает, сколько экземпляров одного класса взаимодействуют с помощью этой связи с одним экземпляром другого класса в данный момент времени.

Например, при разработке системы регистрации курсов в университете можно определить классы Course (курс) и Student (студент). Между ними установлена связь: у курсов могут быть студенты, а у студентов – курсы. В языке UML приняты следующие нотации для обозначения множественности:

Множественность Значение 0..* Ноль или больше 1..* Один или больше 0..1 Ноль или один 1..1 (сокращенная запись: 1) 12.Диаграммы состояний. Состояния. Вложенные состояния. Переходы между состояниями. Действия: entry, do, exit. Примеры.

Диаграмма состояний ( State chart diagram ) представляет собой конечный автомат и показывает последовательность состояний объекта, через которые он проходит во время своего существования под воздействием внешних событий. Диаграмма представляет собой набор состояний и переходов между ними. Диаграмма состояний назначается классу или методу поведения.

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

События это любое действие, имеющее значение с точки зрения смены состояний автомата. Определены следующие виды событий ( одно событие может относиться одновременно к нескольким видам ): условие становится истинным, прием внешнего сигнала от одного объекта к другому, запрос на выполнение метода объекта, истечение заданного периода времени.

    Сигналы могут образовывать иерархию наследования и, следовательно, изображаться с помощью диаграммы классов. Если на конечном автомате событие Х приводит к переходу из состояния в состояние, то любое производное событие от Х так же приводит к смене этому переходу. На диаграмме классов состояния изображаются с ключевым словом ?signal¦. Они не имеют методов поведения, могут иметь только атрибуты.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]