Similar presentations:
Основы UML
1. UML
2. Вопросы
1.2.
3.
4.
5.
6.
7.
8.
9.
Прецеденты
Диаграмма последовательности
Коммуникационная диаграмма
Диаграмма деятельности
Диаграмма обзора взаимодействий
Временная диаграмма
Диаграмма пакетов
Диаграмма развёртывания
Диаграмма состояний
3. В2. Диаграммы UML
Диаграмма структурыДиаграмма
классов
Диаграмма
компонентов
Диаграмма
развертывания
Диаграмма
составных
структур
Диаграмма
объектов
Диаграмма
пакетов
Диаграмма поведения
Диаграмма
прецедентов
Диаграмма
деятельности
Диаграмма
конечных
автоматов
Диаграмма взаимодействия
Диаграмма
последовательности
Коммуникационная
диаграмма
Временная
диаграмма
Диаграмма
обзора
взаимодействий
4. В1. Прецеденты
• Прецеденты представляют собой инструмент для пониманияфункциональных требований к системе.
• Первый вариант прецедентов должен составляться на ранней
стадии выполнения проекта. Более подробные версии –
непосредственно перед реализацией прецедентов.
5. В1. Прецеденты
• Прецеденты – это технология определения функциональныхтребований к системе.
• Сценарий (scenario) – это последовательность шагов,
описывающих взаимодействие пользователя и системы.
• Актер (actor) представляет собой некую роль, которую
пользователь играет по отношению к системе.
6. В1. Прецеденты
• В UML не описана процедура определения содержимогопрецедента.
• Всё, что предоставляет UML – это описание диаграммы
прецедентов, которая показывает, как прецеденты связаны друг
с другом
7. В1. Прецеденты Пример сценария «Покупка товара»
• Описание прецедентов можно начать с описания сценариев• Пример сценария:
Покупатель просматривает каталог и помещает выбранные
товары в корзину. При желании оплатить покупку он вводит
информацию о кредитной карте и производит платеж. Система
проверяет авторизацию кредитной карты и подтверждает
оплату товара тотчас же и по электронной почте.
8. В1. Прецеденты Актеры
• Актер (actor) представляет собой некую роль, которуюпользователь играет по отношению к системе.
• Актеры действуют в рамках прецедентов. Один актёр может
выполнять несколько прецедентов. В одном прецеденте может
быть задействовано несколько актеров.
• Актерами могут быть:
• Пользователи
• Другие приложения
9. В1. Прецеденты Описание прецедентов
• Описание прецедентов начинается с описания главногоуспешного сценария (main success scenario).
• Главный успешный сценарий описывается в виде
последовательности нумерованных шагов.
• Каждый шаг – это элемент взаимодействия актера с системой.
• Шаг должен быть простым утверждением и должен четко
указывать, кто его выполняет.
10. В1. Прецеденты Описание расширений
• Другие сценарии описываются как расширения (extension) в видеизменений главного успешного сценария.
• Расширение начинается с номера шага, на котором выполняется
условие, приводящее к взаимодействиям, отличным от
описанных в главном успешном сценарии.
• Шаги нумеруются так же, как и в главном успешном сценарии.
• Описание шагов в случае необходимости может заканчиваться
указанием точки возврата в главный успешный сценарий
11. В1. Прецеденты Пример текста прецедента «Покупка товара»
Целевой уровень: уровень моряГлавный успешный сценарий:
1. Покупатель просматривает каталог и выбирает товары для покупки.
2. Покупатель оценивает стоимость всех товаров.
3. Покупатель вводит информацию, необходимую для доставки товара
(адрес, доставка на следующий день или в течение трех дней).
4. Система предоставляет полную информацию о цене товара и его доставке.
5. Покупатель вводит информацию о кредитной карточке.
6. Система осуществляет авторизацию счета покупателя.
7. Система подтверждает оплату товаров немедленно.
8. Система посылает подтверждение оплаты товаров по адресу электронной
почты покупателя.
12. В1. Прецеденты Пример текста прецедента «Покупка товара»
Покупка товара• Расширения:
3а. Клиент является постоянным покупателем.
.1: Система предоставляет информацию о текущей покупке и ее цене, а
также информацию о счете.
.2: Покупатель может согласиться или изменить значения по умолчанию,
затем возвращаемся к шагу 6 главного успешного сценария.
6а. Система не подтверждает авторизацию счета.
.1: Пользователь может повторить ввод информации о кредитной карте
или закончить сеанс.
13. В1. Прецеденты Отношения между прецедентами
• Прецедент может включать в себя другие прецеденты (include)• Включенные прецеденты могут быть полезны в случаях:
• сложных шагов в прецедентах;
• выполнения одних и тех же шагов в нескольких сценариях.
• Прецедент может расширять другие прецеденты (extend)
• Расширение прецедентов может использоваться в следующих случаях:
• Базовый прецедент выполняет обязательную функциональность, а расширение
может быть выполнено при определенных условиях;
• Для использования некоторых шагов базового прецедента в расширении.
14. В1. Прецеденты Дополнительная информация
• Прецедент может содержать дополнительную информацию:• Предусловие (pre-condition)
• Гарантия (guarantee)
• Триггер (trigger)
• Детализация прецедентов зависит от их уровня риска.
15. В1. Прецеденты Уровни прецедентов
• «Уровень моря» – представляет взаимодействие ведущего актераи системы.
• «Уровень рыб» – представляет прецеденты, включенные в
уровень моря.
• «Уровень воздушного змея» - представляет прецеденты высшего
уровня и показывает, как прецеденты уровня моря
взаимодействуют с бизнес-процессами.
16. В1. Прецеденты Диаграммы прецедентов
• Диаграмма прецедентов показывает актеров, прецеденты иотношения между ними:
• Какие актеры выполняют тот или иной прецедент
• Отношения между прецедентами
• Детализация прецедентов зависит от их уровня риска.
17. В1. Прецеденты Пример диаграммы
18. В1. Прецеденты Пример диаграммы
19. В2. Диаграмма последовательности
• Диаграммы взаимодействия (interaction diagrams) описываютвзаимодействие групп объектов в различных условиях их
поведения.
• UML определяет диаграммы взаимодействия нескольких типов:
Диаграмма
последовательности
Диаграммы
взаимодействия
Коммуникационная
диаграмма
Диаграмма обзора
взаимодействий
Временная
диаграмма
20. В2. Диаграмма последовательности
• Диаграмма последовательности описывает взаимодействиеобъектов и сообщения, которыми они обмениваются в рамках
одного прецедента (use case).
• Диаграмма последовательности не подходят для точного
определения поведения.
21. В2. Диаграмма последовательности
• Пример сценария:Есть класс Заказ (Order), который содержит метод
calculatePrice(). Метод просматривает все позиции заказа (Line
Items) и определяет их цены, основанные на правилах построения
цены продукции в строке заказа (Order Line). После этого объект
заказа должен вычислить общую скидку, которая определяется
индивидуально для каждого клиента.
22. В2. Диаграмма последовательности. Пример диаграммы – централизованное управление
23. В2. Диаграмма последовательности Пример диаграммы – распределенное управление
24. В2. Диаграмма последовательности Создание и удаление участников
25. В2. Диаграмма последовательности Циклы и условия
• Для отображения циклов и условий используются фреймывзаимодействий (interaction frames)
• Пример алгоритма:
foreach(lineitem)
if (product.value > 10K)
careful.dispatch
else
regular.dispatch
end if
26. В2. Диаграмма последовательности Циклы и условия
27. В2. Диаграмма посделовательности Операторы для фреймов взаимодействия
ОператорЗначение
alt
Несколько альтернативных фрагментов alternative);
выполняется только тот фрагмент, условие
которого истинно
opt
Необязательный (optional) фрагмент; выполняется,
только если условие истинно. Эквивалентно alt с
одной веткой
par
Параллельный (parallel); все фрагменты
выполняются параллельно
loop
Цикл (loop); фрагмент может выполняться
несколько раз, а защита обозначает тело итерации
region
Критическая область (critical region); фрагмент
может иметь только один поток, выполняющийся
за один прием
28. В2. Диаграмма посделовательности Операторы для фреймов взаимодействия
ОператорЗначение
neg
Отрицательный (negative) фрагмент; обозначает
неверное взаимодействие
ref
Ссылка (reference); ссылается на взаимодействие,
определенное на другой диаграмме. Фрейм
рисуется, чтобы охватить линии жизни,
вовлеченные во взаимодействие. Можно
определять параметры и возвращать значение
sd
Диаграмма последовательности (sequence
diagram); используется для очерчивания всей
диаграммы последовательности, если это
необходимо
29. В3. Коммуникационная диаграмма
• Коммуникационные диаграммы (communication diagrams) – этоособый вид диаграмм взаимодействия, акцентированных на
обмене данными между различными участниками
взаимодействия.
• Коммуникационные диаграммы по назначению и содержанию
аналогичны диаграммам последовательности.
30. В3. Коммуникационная диаграмма Вложенная нумерация
31. В3. Коммуникационная диаграмма Простая нумерация – не разрешена в UML
32. В4. Диаграмма деятельности
• Диаграммы деятельности – это технология, позволяющаяописывать логику процедур, бизнес-процессы и потоки работ.
• Достоинство диаграмм деятельности – поддержка параллельных
процессов.
33. В4. Диаграмма деятельности Основные элементы
• Выполнение начинается с начального узла (initial node)• Узлы диаграммы называются операциями
• Маркер – это абстрактная точка, указывающая место выполнения
процесса. Маркеры на диаграмме не отображаются. Начальный
узел создает маркер, который затем передается следующей
операции. Ветвление порождает несколько маркеров.
34. В4. Диаграмма деятельности Пример диаграммы
35. В4. Диаграмма деятельности Вложенные деятельности
• Сложные операции могут быть разбиты на вложенныедеятельности (subactivities)
36. В4. Диаграмма деятельности Вложенные диаграммы. Дополнительная диаграмма
37. В4. Диаграмма деятельности Вложенные диаграммы
38. В4. Диаграмма деятельности Разделы
• Для отображения распределения обязанностей используютсяразделы (partitions)
39. В4. Диаграмма деятельности Разделы
40. В4. Диаграмма деятельности Сигналы
• Операции могут отвечать на сигналы.• Сигнал – это событие от внешнего процесса
41. В4. Диаграмма деятельности Сигналы
42. В4. Диаграмма деятельности Сигналы
43. В4. Диаграмма деятельности Разъемы
• При возникновении сложностей с разводкой линий можноиспользовать разъемы (connectors)
44. В4. Диаграмма деятельности Способы представления рёбер
45. В4. Диаграмма деятельности Информация о параметрах
• Информацию о параметрах можно отобразить с помощьюконтактов (pins)
46. В4. Диаграмма деятельности Параметры и преобразования
47. В4. Диаграмма деятельности Области расширения
• Область расширения (expansion region) отмечает область диаграммыдеятельности, где операции выполняются один раз для каждого
элемента коллекции.
• Пример:
Процедура Choose Topics генерирует список тем. Для каждой темы
необходимо создать статью и получить список статей. Для этого
используется область расширения. Каждый элемент списка тем
становится маркером для входа процедуры Write Article. Затем
процедура Review Article генерирует статью, которая добавляется к
выходному списку области расширения. Когда все маркеры достигнут
выходной коллекции, область расширения генерирует единственный
маркет для списка, который передается процедуре Publish Newsletter.
48. В4. Диаграмма деятельности Области расширения
49. В4. Диаграмма деятельности Области расширения
• Если в выходном списке может оказаться меньше элементов, чемво входном списке, то область расширения будет являться
фильтром.
• В этом случае необходимо ликвидировать маркеры с помощью
окончания потока (flow final).
50. В4. Диаграмма деятельности Окончание потока
51. В4. Диаграмма деятельности Условия при объединении потоков
• Описание объединения (join specification) – это логическоевыражение, присоединенное к объединению. Оно проверяется
каждый раз, когда в объединение приходит маркер. Если
значение выражения истинное, то выполнение может быть
продолжено.
52. В4. Диаграмма деятельности Описание объединений
53. В5. Диаграмма обзора взаимодействий
• Диаграммы обзора взаимодействия – это комбинация диаграммдеятельности и диаграмм последовательности.
54. В5. Диаграмма обзора взаимодействий
55. В6. Временная диаграмма
• Временные диаграммы – это форма диаграмм взаимодействия,которая акцентирована на временных ограничениях: либо для
одиночного объекта, либо для группы объектов.
• Пример:
Есть насос и нагревательный элемент в кофеварке. Между
включением насоса и включением нагревательного элемента
должно пройти минимум 10 секунд. Когда емкость с водой
становится пустой, насос должен выключиться, а
нагревательный элемент не может оставаться включенным
более 15 минут.
56. В6. Временная диаграмма
57. В6. Временная диаграмма
58. В7. Диаграмма пакетов
• Диаграмма пакетов (package diagram) показывает пакеты изависимости между ними.
• Пакет (package) – это инструмент группирования, который
позволяет взять любую конструкцию UML и объединить ее
элементы в единицы высокого уровня.
• Каждый пакет представляет пространство имен (namespace).
59. В7. Диаграмма пакетов Способы изображения пакетов на диаграммах
60. В7. Диаграмма пакетов Пример
61. В7. Диаграмма пакетов Пример
62. В7. Диаграмма пакетов Реализация пакетов
63. В8. Диаграмма развёртывания
• Диаграммы развертывания представляют физическоерасположение системы, показывая, на каком физическом
оборудовании запускается та или иная составляющая
программного обеспечения.
64. В8. Диаграмма развёртывания Основные элементы
• Узел (node) – это то, что может содержать программноеобеспечение. Узлы бывают двух типов:
• Устройство (device) – это физическое оборудование: компьютер или
устройство, связанное с системой.
• Среда выполнения (execution environment) – это программное
обеспечение, которое само может включать другое программное
обеспечение, например операционную систему или процесс-контейнер.
• Артефакты (artifacts) – физическое олицетворение программного
обеспечения; обычно это файлы (такими файлами могут быть
исполняемые файлы (такие как файлы.exe, двоичные файлы,
файлы DLL, файлы JAR, сборки или сценарии) или файлы данных,
конфигурационные файлы, HTML-документы и т. д.)
65. В8. Диаграмма развёртывания Пример
66. В9. Диаграмма состояний
• Диаграммы состояний (state machine diagrams) – это технологияописания поведения системы на основе конечных автоматов.
• Пример: контроллер секретной панели управления в Готическом
замке. В замке спрятаны сокровища, так, чтобы их было трудно
найти. Для того чтобы получить доступ к замку сейфа, нужно
вытащить из канделябра стратегическую свечу, но замок появится,
только если дверь закрыта. После появления замка можно
вставить в него ключ и открыть сейф. Для дополнительной
безопасности сейф можно открыть только после извлечения свечи.
Если вор не обратит внимания на эту предосторожность, то
будет выпущен монстр, который проглотит вора.
67. В9. Диаграмма состояний Простая диаграмма
68. В9. Диаграмма состояний Активности
• Состояния могут реагировать на события без совершенияперехода, используя внутренние активности (internal activities).
• Входная активность выполняется всякий раз, когда система
входит в состояние; выходная активность – всякий раз, когда
покидает состояние.
69. В9. Диаграмма состояний Состояния активности
70. В9. Диаграмма состояний Суперсостояния
71. В9. Диаграмма состояний Параллельные состояния
72. В9. Диаграммы состояний Реализация с помощью switch
public void HandleEvent (PanelEvent anEvent) {switch (CurrentState) {
case PanelState.Open :
switch (anEvent) {
case PanelEvent.SafeClosed :
CurrentState = PanelState.Wait;
break;
}
break;
case PanelState.Wait :
…