Диаграммы состояний и последовательности
Цели и задачи
Заголовок раздела «Цели и задачи»В рамках этой лабораторной работы необходимо сделать диаграмму состояний и диаграмму последовательности.
Диаграмма состояний
Заголовок раздела «Диаграмма состояний»С помощью диаграммы состояний нужно показать жизненный цикл одного из классов с точки зрения пользователя. Обратите внимание, что для этого нужна протокольная диаграмма состояний. Все состояния на диаграмме должны быть подписаны, на всех переходах нужно указать предусловие и действие при выполнении перехода, при необходимости укажите постусловие.
Всё, что используется на переходах, должно быть отражено на концептуальной диаграмме классов. Если чего-то не хватает, нужно это добавить в уже имеющуюся диаграмму.
Обратите внимание, что диаграмма состояний не должна показывать, например, состояния пользователя при работе с UI (в духе “на главной странице — на странице товара — закрыл страницу”), такая диаграмма не будет засчитана. Нужно показать состояния именно класса.
Диаграмма последовательности
Заголовок раздела «Диаграмма последовательности»С помощью диаграммы последовательности необходимо описать тот же самый процесс, который был описан с помощью диаграммы деятельности, но с более глубоким уровнем детализации. Под более глубоким уровнем детализации подразумевается описание протокола передачи сообщений между различными экземплярами классов проектируемой ИС и её действующими лицами. Если вы предполагаете, что описание всего процесса на диаграмме последовательности получится большим (например, из-за количества вызовов или количества классов), возьмите логически связную часть процесса с диаграммы деятельности и рассмотрите её.
В рамках протокола передачи сообщений нужно показать следующие элементы:
- Экземпляры классов ИС, задействованных в последовательности, с линиями их жизни. Обратите внимание, что все эти классы уже должны быть на диаграмме классов.
- Передаваемые сообщения. В качестве сообщений выступают вызовы методов и возвращаемые значения, исключение — взаимодействие между классом и действующим лицом, его можно описать текстом. У сообщений должна быть сквозная нумерация без вложенности.
- Фрагменты взаимодействия с различными операторами. С большой вероятностью, вы будете что-то обрабатывать в циклах, что-то выполнять по условию и так далее, всё это также нужно отразить.
Исходя из задания, здесь должны “состыковаться” три диаграммы: диаграмма деятельности с точки зрения описываемого процесса, технические диаграммы классов с точки зрения используемых классов и их методов, а также диаграмма последовательности, которая с помощью этой информации покажет процесс на уровне кода.
Оценивание
Заголовок раздела «Оценивание»Максимум за эту лабораторную работу — 10 баллов. За что снимаются баллы:
- Отсутствие диаграмм;
- Несоблюдение нотации и методических рекомендаций;
- Неудачная вёрстка диаграммы, затрудняющая чтение;
- Некорректное оформление отчёта (например, картинки без подписи, водяной знак, закрывающий часть диаграммы или всю диаграмму, скриншот диаграммы вместо экспортированного файла);
- Использование неподходящего ПО;
- Сдача после дедлайна.
Методические рекомендации
Заголовок раздела «Методические рекомендации»- UML поддерживает различные типы сообщений, в том числе асинхронные, пользуйтесь этим при необходимости.
- Порядок отображения стрелок на диаграмме последовательности важен, так как показывает порядок передачи сообщений. Нумерацию сообщений можно настроить в Presentation Options диаграммы.
- VP по умолчанию показывает выполнение на линиях жизни не совсем корректно (получение ответа после вызова метода создаёт новый фрагмент выполнения), их нужно соединить, поскольку в процессе ожидания ответа линия жизни всё ещё существует.
- На диаграмме последовательности можно использовать фрагменты взаимодействия и их операторы (их вы смотрели ещё в рамках ЛР 2), всё это также можно (и нужно) использовать, но соблюдая семантику.
- В идеальном мире по диаграмме последовательности уже должна быть возможность написать непосредственно реализацию описываемой операции, соответственно, чем ближе к планируемой реализации диаграмма, тем лучше.