UML
Вопросы
В2. Диаграммы UML
В1. Прецеденты
В1. Прецеденты
В1. Прецеденты
В1. Прецеденты Пример сценария «Покупка товара»
В1. Прецеденты Актеры
В1. Прецеденты Описание прецедентов
В1. Прецеденты Описание расширений
В1. Прецеденты Пример текста прецедента «Покупка товара»
В1. Прецеденты Пример текста прецедента «Покупка товара»
В1. Прецеденты Отношения между прецедентами
В1. Прецеденты Дополнительная информация
В1. Прецеденты Уровни прецедентов
В1. Прецеденты Диаграммы прецедентов
В1. Прецеденты Пример диаграммы
В1. Прецеденты Пример диаграммы
В2. Диаграмма последовательности
В2. Диаграмма последовательности
В2. Диаграмма последовательности
В2. Диаграмма последовательности. Пример диаграммы – централизованное управление
В2. Диаграмма последовательности Пример диаграммы – распределенное управление
В2. Диаграмма последовательности Создание и удаление участников
В2. Диаграмма последовательности Циклы и условия
В2. Диаграмма последовательности Циклы и условия
В2. Диаграмма посделовательности Операторы для фреймов взаимодействия
В2. Диаграмма посделовательности Операторы для фреймов взаимодействия
В3. Коммуникационная диаграмма
В3. Коммуникационная диаграмма Вложенная нумерация
В3. Коммуникационная диаграмма Простая нумерация – не разрешена в UML
В4. Диаграмма деятельности
В4. Диаграмма деятельности Основные элементы
В4. Диаграмма деятельности Пример диаграммы
В4. Диаграмма деятельности Вложенные деятельности
В4. Диаграмма деятельности Вложенные диаграммы. Дополнительная диаграмма
В4. Диаграмма деятельности Вложенные диаграммы
В4. Диаграмма деятельности Разделы
В4. Диаграмма деятельности Разделы
В4. Диаграмма деятельности Сигналы
В4. Диаграмма деятельности Сигналы
В4. Диаграмма деятельности Сигналы
В4. Диаграмма деятельности Разъемы
В4. Диаграмма деятельности Способы представления рёбер
В4. Диаграмма деятельности Информация о параметрах
В4. Диаграмма деятельности Параметры и преобразования
В4. Диаграмма деятельности Области расширения
В4. Диаграмма деятельности Области расширения
В4. Диаграмма деятельности Области расширения
В4. Диаграмма деятельности Окончание потока
В4. Диаграмма деятельности Условия при объединении потоков
В4. Диаграмма деятельности Описание объединений
В5. Диаграмма обзора взаимодействий
В5. Диаграмма обзора взаимодействий
В6. Временная диаграмма
В6. Временная диаграмма
В6. Временная диаграмма
В7. Диаграмма пакетов
В7. Диаграмма пакетов Способы изображения пакетов на диаграммах
В7. Диаграмма пакетов Пример
В7. Диаграмма пакетов Пример
В7. Диаграмма пакетов Реализация пакетов
В8. Диаграмма развёртывания
В8. Диаграмма развёртывания Основные элементы
В8. Диаграмма развёртывания Пример
В9. Диаграмма состояний
В9. Диаграмма состояний Простая диаграмма
В9. Диаграмма состояний Активности
В9. Диаграмма состояний Состояния активности
В9. Диаграмма состояний Суперсостояния
В9. Диаграмма состояний Параллельные состояния
В9. Диаграммы состояний Реализация с помощью switch
В9. Диаграммы состояний Реализация с помощью паттерна «Состояние»
В9. Диаграммы состояний Реализация с помощью таблицы состояний
1.27M
Категория: ИнформатикаИнформатика

Основы 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 :

73. В9. Диаграммы состояний Реализация с помощью паттерна «Состояние»

74. В9. Диаграммы состояний Реализация с помощью таблицы состояний

English     Русский Правила