- •Государственное образовательное учреждение высшего профессионального образования
- •Лабораторная работа № 1 Построение модели вариантов использования
- •Заказчик
- •Упражнение 1 . Создание диаграммы вариантов использования
- •Этапы выполнения упражнения
- •Создать действующие лица (актанты), варианты использования и определить отношения между ними.
- •Добавить ассоциации
- •Добавить расширения
- •Добавить включения
- •Указать абстрактные варианты использования
- •Вид диаграммы вариантов использования Main показан на рисунке 1. Добавить описания к действующим лицам (актантам)
- •Бухгалтер: "Вводит и редактирует данные об оплате счетов или о возврате оплаты при аннулировании клиентом просроченного заказа";
- •Добавить описания к вариантам использования
- •Создать файлы сценариев и прикрепить их к вариантам использования
- •Лабораторная работа № 2 Построение модели анализа
- •Поставщик
- •Окно программы
- •Заголовок
- •Подклассы
- •Геометрическая фигура
- •Подклассы
- •Упражнение 2. Создание структуры модели анализа, пакетов реализаций, диаграмм трассировок и классов реализаций
- •Этапы выполнения упражнения
- •Создать кооперации и осуществить трассировку реализаций
- •Создать диаграммы классов анализа для реализации вариантов использования
- •Упражнение 3 . Создание диаграмм взаимодействия
- •Создание диаграмм Взаимодействия
- •Этапы выполнения упражнения
- •Добавление на диаграмму дополнительных объектов
- •Назначение ответственностей объектам
- •Соотнесение объектов с классами
- •Соотнесение сообщений с операциями
- •Создание Кооперативной диаграммы
- •Добавление действующего лица и объектов на диаграмму
- •Добавление сообщений на диаграмму
- •Добавление на диаграмму дополнительных объектов
- •Назначение ответственностей объектам
- •Соотнесение объектов с классами (если при разработке описанной выше диаграммы Последовательности сами классы вы уже создали)
- •Соотнесение объектов с классами (если вы не создавали описанную выше диаграмму Последовательности)
- •Соотнесение сообщений с операциями (если при разработке описанной выше диаграммы Последовательности сами операции вы уже создали)
- •Соотнесение сообщений с операциями (если вы не создавали описанную выше диаграмму Последовательности)
- •Упражнение 3 . Создание диаграмм классов
- •Создание диаграммы Классов
- •Этапы выполнения упражнения Настройка
- •Создание пакетов
- •Создание Главной диаграммы Классов
- •Создание диаграммы Классов для сценария "Ввести новый заказ" со всеми классами.
- •Добавление стереотипов к классам
- •Объединение классов в пакеты
- •Добавление диаграмм Классов к каждому пакету
- •Упражнение 4 . Создание диаграмм классов (учет новых требований)
- •Добавление атрибутов и операций
- •Этапы выполнения упражнения Настройка
- •Добавление нового класса
- •Добавление атрибутов
- •Добавление операций к классу OrderItem
- •Подробное описание операций с помощью диаграммы Классов
- •Подробное описание операций с помощью броузера
- •Подробное описание операций с помощью любого из описанных методов
- •Упражнение 5 . Создание диаграмм классов (добавление связей между классами)
- •Добавление связей
- •Этапы выполнения упражнения Настройка
- •Добавление ассоциаций
- •Упражнение 6 . Создание диаграммы состояний
- •Подробное описание состояний
- •Добавление переходов
- •Подробное описание переходов
- •Упражнение 7 . Создание диаграммы компонентов
- •Этапы выполнения упражнения
- •Создание диаграммы Компонентов системы
- •Размещение компонентов на диаграмме Компонентов системы
- •Добавление оставшихся зависимостей на диаграмму Компонентов системы
- •Соотнесение классов с компонентами
- •Упражнение 8 . Создание диаграммы размещения
- •Создание диаграммы Размещения
- •Этапы выполнения упражнения Добавление узлов к диаграмме Размещения
- •Добавление связей
- •Добавление процессов
- •Показ процессов на диаграмме
- •Этапы выполнения упражнения Ввод тел пакетов на диаграмму Компонентов системы
- •1 . Основы методологии объектно-ориентированного
- •1.1 Методология объектно-ориентированного программирования
- •1.4. Этапы создания аис с использованием uml. Унифицированный процесс разработки программного обеспечения
- •Компоненты языка uml
- •Концептуальный уровень. Модель вариантов использования
- •Заказчик
- •Множество ассоциаций - агрегация
- •Бинарная ассоциация
- •Ас «Продажа товаров по каталогу»
- •Ас тепличного хозяйства
- •Класс в
- •Сотрудник
- •Работает в
- •Лекция №9
- •Лекция № 10 отношение реализации (Realization relationship)
- •Объекты (objects)
- •Шаблоны (параметризованные классы)
- •Рекомендации по построению диаграмм классов
- •Фрагмент диаграммы классов для Асу тепличного хозяйства
- •1.8. Диаграмма состояний
- •Обязательные условия для конечного автомата:
- •Лекция №12
- •Анализ предметной области и разработка концепции построения системы
- •Заказчики
КлиентПоставщик
«call»
«friend»
«instantiate»
«call»
Рисунок 4 – Зависимости между классами
На рисунке 4 класс А вызывает операции классов В и С ; класс С создаёт экземпляры класса В, пользуясь его конструктором; операция класса D может иметь доступ в порядке исключения к содержимому класса В.
В таблице приведены стандартные зависимости, используемые в UML.
Стандартные зависимости <стереотипы>:
become |
превращать объект класса-клиента в объект класса-поставщика |
bind |
связывать (клиент создаёт новый элемент с помощью параметризованного шаблона поставщика) |
call |
вызывать операцию на исполнение |
copy |
копировать (создать независимую копию клиента) |
create |
создавать (использовать конструктор поставщика) |
derive |
выводить (атрибуты клиента вычисляются по атрибутам поставщика) |
extend |
расширять (клиент расширяет функциональность поставщика) |
friend |
быть дружественным (клиент имеет исключительный доступ к содержимому поставщика) |
import |
импортировать (клиент импортирует атрибуты и операции поставщика) |
include |
включать (клиент включает в себя функциональность поставщика) |
instanceOf |
являться экземпляром (клиент является частным примером поставщика) |
instantiate |
создать экземпляр (клиент создаёт с помощью конструктора поставщика экземпляр поставщика и инициализирует его) |
refine |
уточнять (клиент является уточнением поставщика по дополнительной информации) |
send |
отправить (клиент отправляет сигнал поставщику) |
trace |
трассировать (клиент является более новой версией поставщика) |
use |
использовать (клиент использует услуги поставщика для реализации своего поведения). |
Отношение ассоциации (ассоциация, association) – описывает связи между экземплярами классов (объектами) - в отличие от зависимости, которая относится к классу в целом. В ассоциации проставляется множественность участия экземпляров в связи (один или много).
Наиболее проста бинарная ассоциация, в которой участвуют в точности 2 класса или, как исключение, один класс, связанный сам с собой. В бинарной ассоциации может быть указано направление связи – зачерченным треугольником.
На рисунке 5 экземпляром отношения является, например, пара «Иванов – ООО «Ракурс»».
Рисунок 5 – Бинарная ассоциация
В n–арной ассоциации участвуют три и более класса, при этом один класс может участ-
вовать в ассоциации более чем один раз. Каждый экземпляр такой ассоциации - n-мерный кортеж из объектов соответствующих классов. Графически,n-арная ассоциация обозначается ромбом. Пример:тернарная ассоциация из классов: футбольная команда, год, игра.
Каждый класс в ассоциации может играть свою роль, которая может быть проставлена у полюса(конца) ассоциации в виде строки текста. Например: год игры, год проведения чемпионатов мира и т.д., т.е. класс может играть разные роли в зависимости от смысла отношения.
Рисунок 6 – Трёхарная ассоциация
Важной характеристикой ассоциации является кратность (множественность и обязательность связи). Обозначение “*” обозначает “0. .*”, т.е. необязательность связи «много».
В более сложном случае ассоциация может быть классом (класс – ассоциация,associationclass), в нём присутствуют и свойства класса, и свойства ассоциации. Экземплярами такого класса являются связи, в которых имеются не только ссылки на объекты, но и конкретные значения атрибутов связи.
Классы – ассоциации могут иметь операции, изменяющие атрибуты связи, могут участвовать в различных ассоциациях, но сами с собой ассоциации они иметь не могут!
Обозначение класса - ассоциации показаны на рисунке 7.
Класс-ассоциация
Атрибут
ассоциации
Рисунок 7 – Пример класса-ассоциации
Такой подход уместен при связи «многие ко многим». Иначе можно было бы включить оклад в атрибуты одного из классов. Однако, если требуется отобразить историю окладов (дата/оклад) т.е. несколько экземпляров связей между одними и теми же объектами, то класс – ассоциации уже использовать нельзя!Нужно вводить обычный класс с атрибутами (см. рисунок 8).
предоставляет
Фирма
Название Адрес
имеет
Работа
Месяц Зарплата 1 *
Роль
фирмы
Сотрудник
Таб.номер ФИО
* 1
Является
источником работы
Обладатель
работы
Роль
сотрудника
Рисунок 8 – Пример с многими экземплярами связей между двумя объектами
Важным частным случаем отношения ассоциации, выделяемым в отдельную группу, является отношение агрегации.
Отношение агрегации (агрегация,aggregation) – один из классов (агрегат) состоит из других классов или его характеристиками являются другие классы (отношение часть/ целое,partof). Это отношение является фундаментальным при моделировании сложной системы, позволяет декомпозировать систему на составные части. В агрегации принцип наследованияне соблюдается. Каждая часть или характеристика обладает своими атрибутами и поведением. Агрегация в UML обозначается ромбом, примыкающим к агрегату ( рисунок 9). У полюсов связей может быть указана множественность. Любая часть может входить в несколько различных агрегатов.
Рисунок 9 - Агрегат и его части
Частным случаем агрегации является композиция.
Композиция (composition)– усиленная форма агрегации, в которой агрегат, называемыйкомпозитом, несёт полную ответственность за создание и уничтожение своих частей, т.е. самостоятельно классы - части композита существовать не могут. Таким образом, время жизни частей не превышает времени жизни агрегата – композита (она может быть меньше). Кроме того, каждая часть может входить только в один экземпляр агрегации. Композиция обозначается закрашенным ромбом.