1 of 36

Объектно-ориентированное программирование и проектирование

© Хуторова Ольга Германовна

Лекция 8

2 of 36

Темы лекции

  • Функциональная модель системы и ее описание средствами UML

    • Диаграммы поведения
      • Диаграмма вариантов использования
      • Диаграмма деятельности (Активности)
      • Диаграмма состояния (автомата)

      • Диаграммы взаимодействия
      • Диаграмма кооперации
      • Диаграмма последовательности
      • Диаграмма синхронизации 

3 of 36

Диаграммы поведения

  • Диаграмма вариантов использования

Показывает работу системы с точки зрения пользователей.

  • Диаграмма деятельности (Активности)

Показывает алгоритм работы для вариантов использования

  • Диаграмма состояния (автомата)

Показывает функционирование объектов системы во времени

4 of 36

Диаграмма деятельности (Activity diagram)

  • Показывает поток переходов от одной деятельности к другой.
  • Графически диаграмма деятельности представляется в виде графа, имеющего вершины и ребра.
    • простые и составные состояния,
    • переходов;
    • точки ветвления, разделения и слияния.

5 of 36

Состояния, переходы, ветвления

  • Cостояния действия изображаются прямоугольниками с закругленными краями. Внутри такого символа можно записывать произвольное выражение.
  • Начальное состояние (закрашенный кружок), так и конечное (закрашенный кружок внутри окружности).
  • Переход представляется простой линией со стрелкой
  • Точка ветвления представляется ромбом.
  • Точка ветвления описывает различные пути выполнения в зависимости от значения некоторого булевского выражения.
  • В точку ветвления может входить ровно один переход, а выходить - два или более.
  • Для каждого исходящего перехода задается булевское выражение, которое вычисляется только один раз при входе в точку ветвления.

6 of 36

Ожидание наступления определенных условий

7 of 36

ObjectNode (узел объекта)

  • узел, который указывает экземпляр конкретного классификатора, включенный в деятельность

8 of 36

Разделение и слияние

  • Точка разделения соответствует расщеплению одного потока управления на два выполняющихся параллельно. В этой точке может существовать ровно один входящий переход и два или более исходящих. Каждый исходящий переход представляет один независимый поток управления.

  • Баланс!

9 of 36

Дорожки (Partition) – группировка по ответственности или по ролям

10 of 36

SRS – Диаграмма вариантов использования

11 of 36

Диаграммы деятельности SRS

12 of 36

Диаграммы деятельности обработки запроса в поисковой системе

13 of 36

Диаграмма деятельности ИС атмосферной коррекции спутниковых данных

14 of 36

Диаграмма деятельности серверной компоненты протокола сетевого взаимодействия для репликации данных ГИС

15 of 36

16 of 36

Диаграммы состояний показывают различные состояния объекта в течение его времени жизни и причины, вызывающие их смену.

17 of 36

Пример:Диаграмма состояний сотрудника

18 of 36

Пример:Диаграмма состояний «Стиральная машина»

19 of 36

Пример:Диаграмма состояний "Банковский счет"

20 of 36

Пример: светофор

21 of 36

Диаграмма состояний игры крестики-нолики

  • NEW_GAME_MENU - начало новой игры, пользователь только что запустил программу;
  • NEW_GAME_MENU_WIN - начало новой игры, пользователь выиграл предыдущую игру;
  • NEW_GAME_MENU_LOST - начало новой игры, пользователь проиграл предыдущую игру;
  • NEW_GAME_MENU_DRAW - начало новой игры, предыдущая игра закончилась вничью;
  • PLAYER_MOVE - ожидание хода игрока;
  • COMP_MOVE - ожидание хода компьютера (ждем, пока метод findNextMove класса XZField выберет ход).

22 of 36

Пример: Диаграмма состояний передатчика и приемника навигационной системы удаленного робота

23 of 36

диаграмма состояний системы атмосферной коррекции спутниковых данных

  • задание параметров расчета (q0);
  • определение исходных данных для расчетов на основании заданных параметров(q1);
  • получение данных для расчетов (q2);
  • оценка релевантности спутниковой информации (q3);
  • проведение расчетов (q4);
  • формирование и отправка сообщения пользователю (q5);
  • нормальное завершение выполнения задания (q6);
  • аварийное завершение выполнения задания (q7)

24 of 36

Диаграммы взаимодействия

  • Диаграмма кооперации

Показывает структурную организацию участвующих во взаимодействии объектов

  • Диаграмма последовательности

Показывает временную упорядоченность событий взаимодействия

  • Диаграмма синхронизации 

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

25 of 36

Диаграммы сотрудничества (Collaboration diagram)

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

26 of 36

Сообщения

  • Call – вызов операции
  • Return – возврат значения
  • Send – посылка сигнала
  • Create – создание объекта
  • Destroy – уничтожение объекта

27 of 36

Диаграммы последовательностей (Sequence diagram)

  • последовательность передачи сообщений между объектами
  • не акцентирует внимание на конкретном взаимодействии
  • ось времени сверху-вниз (по-умолчанию)

28 of 36

Диаграмма последова-тельностей сервера эл.почты

29 of 36

Диаграмма последовательности «Телефонный звонок»

30 of 36

Диаграмма последовательностей в системе с принт-сервером

31 of 36

Информационная система интернет-бронирования гостиницы

32 of 36

Диаграмма последовательности «Бронирование номера»

33 of 36

Диаграмма синхронизации (timing diagram)

34 of 36

Диаграмма синхронизации. Банкомат

35 of 36

Диаграмма синхронизации обработки запроса в на веб-сайте

36 of 36

Литература к лекции

  1. И. Соммервиль. Инженерия программного обеспечения, 6 изд. – И.д. "Вильямс", 2002.
  2. Г. Буч, Дж. Рамбо, А. Джекобсон. UML. Руководство пользователя. – ДМК-Пресс, Питер, 2004.
  3. www.uml.org
  4. www.visual-paradigm.com
  5. http://www.umljokes.com/
  6. https://www.uml-diagrams.org/