Титульный лист;
Цель работы;
Выполненное индивидуальное задание в соответствии с приведенным примером построения диаграммы прецедентов. Список индивидуальных заданий приводится в конце методического пособия;
Ответы на 5 контрольных вопросов;
Выводы.
Цель: познакомиться с методами построения диаграммы классов, освоить элементы, используемые в процессе построения диаграммы, и научиться понимать назначение каждого из элементов.
Диаграмма классов показывает объекты и отношения между ними. Она предоставляет подробную информацию о свойствах и интерфейсах классов, её можно рассматривать в качестве основной модели, а также рассматривать другие схемы в качестве дополнительных моделей.
Чтобы создать диаграмму классов, надо:
Щелкнуть по панели инструментов UML и в выпадающем меню выбрать пункт «Class Diagram».
Щелкнуть правой кнопкой мыши по «Class Diagram» в навигаторе диаграмм, и в контекстном меню выбрать «New Class Diagram».
Рисунок 16 – Создание диаграммы классов
Создание класса
Для создания класса необходимо щелкнуть на элементе «Class», который находится на панели инструментов диаграммы. После этого щелкнуть по пустому месту на полотне построения диаграммы.
Рисунок 17 – Создание и размещение нового класса
Создание атрибутов
Чтобы создать новый атрибут класса, надо щелкнуть правой кнопкой мыши по классу и в контекстном меню выбрать «Add -> Attribute».
Рисунок 18 – Диалог добавления нового атрибута
После того, как атрибут добавится, можно нажать по клавише «Enter», после чего добавится ещё один новый атрибут. Этот метод позволяет быстро добавить несколько атрибутов.
Рисунок 19 – Добавление нового атрибута
Создание отношения
Для создания новой связи, необходимо щелкнуть по символу «Association» в меню ресурсов, которое находится рядом с каким-либо классом, и перетащить её в свободное место на диаграмме, чтобы создать новый класс, или перетащите на существующий класс для установления связи с ним. Затем, отпустите клавишу мыши для создания связи.
Рисунок 20 – Создание новой связи между классами
Создание отношения агрегация
Для создания связи типа агрегация, необходимо выбрать в меню ресурсов, которое находится рядом с классом, «Aggregation Class». Чтобы установить множественность для ассоциации, необходимо щелкнуть правой кнопкой мыши у того конца связи, который требуется модифицировать. В контекстном меню кликнуть по пункту «Multiplicity», а затем выбрать требуемый вариант множественности.
Рисунок 21 – Создание связи типа агрегация
Рисунок 22 – Диалог выбора множественности
Рисунок 23 – Примеры возможных множественностей
Для отображения направления связи, кликните правой кнопкой мыши по связи и выберете «Presentation Options», а затем выберите пункт «Show direction».
Стрелка направления связи располагается рядом со связью.
Рисунок 24 – Обозначение направления связи
Рисунок 25 – Диалог включения свойства «Показать направление»
Для создания отношения типа обобщение, необходимо щелкнуть по пункту «Generalization» в меню ресурсов, расположенном рядом с классом. Затем перетащить вновь созданную связь на пустое место диаграммы, чтобы создать новый класс, или перетащить на существующий класс, для соединения с ним, потом отпустить кнопку мыши, чтобы создать новое отношение.
Рисунок 26 – Создание отношения обобщение
Рисунок 27 – Пример обобщения
Для создания отношения типа реализация, необходимо кликнуть по пункту «Realization» в меню ресурсов, расположенном рядом с классом. Затем перетащить вновь созданную связь на пустое место диаграммы, чтобы создать новый интерфейс, или перетащить на существующий интерфейс, для соединения с ним. Далее, отпустить кнопку мыши, чтобы создать новое отношение.
Рисунок 28 – Создание отношения реализация
Рисунок 29 – Пример отношения реализация
В чем разница между модификаторами видимости public и protected?
Что такое интерфейс?
Что является основой для реализации механизма интерфейсов в языках программирования?
Какими способами может изображаться однонаправленная ассоциация на диаграммах UML?
Что такое класс ассоциации?
Перечислите основные элементы диаграммы классов.
Как обозначается рекурсивная связь? Приведите пример.
Как обозначаются отношения агрегация и композиция. В чем разница между ними?
Может ли класс реализовывать несколько интерфейсов одновременно? Ответ обоснуйте.
Приведите примеры (не менее трёх) обозначения множественности на диаграмме классов.
Титульный лист;
Цель работы;
Выполненное индивидуальное задание. Список индивидуальных заданий приводится в конце методического пособия;
Ответы на 5 контрольных вопросов;
Выводы.
Цель: приобрести навыки построения диаграммы последовательностей, познакомиться с основными элементами диаграммы, изучить их назначение и обозначение.
Диаграмма последовательности разрабатывается для представления взаимодействия или передачи сообщений между пользователями, системой, подсистемами и объектами.
Для создания диаграммы последовательности необходимо выбрать «New Sequence Diagram» в контекстном меню, которая появится при клике правой кнопкой мыши по пункту «Sequence Diagram» в навигаторе диаграмм.
Рисунок 30 – Создание диаграммы последовательности
Область редактирования диаграммы, находится под ней – по умолчанию.
Рисунок 31 – Область редактирования диаграммы
Однако есть возможность скрыть эту панель и пользоваться панелью инструментов, которая находится слева от полотна, на котором изображается диаграмма последовательности.
Рисунок 32 – Меню добавления новых элементов на диаграмму
Для того чтобы создать нового актёра, нажмите по иконке «Actor», расположенной на панели инструментов диаграммы и затем на полотне рисования диаграммы.
Рисунок 33 – Создание актёра
Также, на диаграмме последовательности, могут быть расположены «Lifeline» или объекты определенного класса. Для добавления нового объекта на диаграмму, выберите мышкой элемент Lifeline на панели инструментов диаграммы и перенесите его на полотно рисования диаграммы.
Рисунок 34 – Добавление актёра
Как видно из рис.34 с помощью меню ресурсов, можно обозначить простое новое сообщение или, например, сообщение, которое создает новый объект (create message).
Рисунок 35 – Простая диаграмма последовательности
Для создания нового сообщения, необходимо выбрать один из возможных типов сообщений и провести линию между двумя объектами на диаграмме. На рисунке 36 показаны возможные типы сообщений, которые могут присутствовать на диаграмме последовательности.
Для обозначения простого сообщения используется линия с закрашенной стрелкой на конце. Такой тип сообщений называется синхронные сообщения. Это говорит о том, что после этого сообщения система ожидает результата, либо завершения операции.
Так называемые возвращаемые сообщения (return message) обозначаются пунктирной линией с не закрашенной стрелкой на конце.
Рисунок 36 – Возможные типы сообщений
Существует также тип сообщений, которые посылаются самому себе (self-message). Это могут быть вызовы операций внутри объекта и т.д. Похожим способом отображаются рекурсивные (recursive message) сообщения.
Также существует 2 типа сообщений: потерянные (lost) и найденные (found). При обозначении потерянных сообщений, подразумевается, что объект, который должен принять отправленное сообщение не изображен на данной диаграмме последовательности, и, наоборот; при обозначении найденных сообщений, подразумевается, что объект-отправитель не обозначен на текущей диаграмме, а объект-приёмник обозначен.
Иногда появляется необходимость обозначить объект, который создает другой объект, т.е. изначально объект-2 не существует. Для реализации такого сообщения существует два типа: сообщение создание объекта (create message) и сообщение уничтожение объекта (destroy message). Оба типа сообщения введены для определения времени жизни объекта. С их помощью можно создавать и удалять какой-либо объект.
Рисунок 37 – Пример диаграммы последовательности с разными типами сообщений
Рисунок 38 – Сообщения создания и удаления записи БД
Предположим, что существует сообщения, которые объект должен инициировать по какому-то условию. В таких ситуациях нам могут помочь фреймы. Однако, если сообщение единично, то можно прямо в его названии указать условие, по которому оно должно быть инициировано.
Рисунок 39 – Описания условия инициирования единичного сообщения
Но когда возникает необходимость инициировать несколько сообщений, такой подход не подойдет. Для этого существуют фреймы.
Рисунок 40 – Пример использования опционального фрейма
Выделенный элемент на рисунке 40 показывает, что этот фрейм имеет тип опционально (opt), т.е. сообщения внутри него будут выполняться после определенного условия, которое указывается рядом с типом фрейма.
Фреймы бывают следующих типов:
alt – альтернативный фрейм. Можно описать как последовательность операторов if … else в алгоритмах;
loop – циклический фрейм. Обозначает, что все сообщения, находящиеся внутри него, будут выполняться несколько раз;
opt – опциональный фрейм. Можно представить как последовательность оператора if без блока else;
par – параллельное выполнение. Этот тип фрейма обозначает, что сообщения внутри него посылаются параллельно друг другу;
Для выбора соответствующего типа среда Visual Paradigm предоставляет следующее меню.
Рисунок 41 – Добавление нового фрейма
Для вызова этого контекстного меню, требуется выбрать те сообщения, которые предполагается заключить внутрь фрейма, затем щелкнуть правой кнопкой мыши и выбрать требуемый тип фрейма.
На рисунке 42 показан вариант диаграммы с альтернативным фреймом. У него есть пунктирная линия, которая разделяет те сообщения, которые будут выполняться при срабатывании условия, от тех, которые будут выполнены при возврате отрицательного результата при проверке условия.
Рисунок 42 – Пример диаграммы с альтернативным фреймом
На рисунке 43 показан пример с параллельными сообщениями.
Рисунок 43 – Диаграмма с параллельным фреймом
Использование каких элементов UML, кроме объектов, допускается на диаграмме последовательностей?
Что такое асинхронное сообщение?
Что такое найденные сообщения?
Каким образом отображается на диаграмме последовательностей порядок отправки и приема сообщений?
Почему некоторые сообщения на диаграммах последовательностей иногда обозначают пунктирной линией?
Что такое рефлексивное сообщение?
Что такое синхронное сообщение?
Какие из фрагментов диаграмм последовательностей НЕ противоречат нотации UML?