Диаграмма последовательности для базового веб-приложения

Я пытаюсь создать диаграмму последовательности для веб-приложения, которое запускается с использованием TomCat в качестве локального хоста.

Приложение позволяет пользователям вводить текст в текстовое поле и сохранять его в каталоге TomCat.

У меня возникли проблемы с определением объектов для этого.

Пока у меня есть "ACTOR-CreateText.jsp-Application Server"

Последовательность событий такова:

  1. пользователь загружает приложение
  2. пользователь выбирает кнопку «Создать текст»
  3. Веб-страница «Создать текст» возвращена актеру
  4. пользователь вводит текст и нажимает кнопку сохранения текстового файла
  5. файл сохранен на сервере приложений
  6. Подтверждающее сообщение возвращено актеру

Как отобразить это на диаграмме последовательности?


person Sandeep Johal    schedule 24.01.2013    source источник
comment
диаграмма последовательности должна иметь все возможные пути, такие как оператор if then else. Поэтому не забудьте также описать сценарии сбоев, а также то, каким и каким должен быть поток приложений в этих сценариях. И обычно диаграмма последовательности будет иметь начало и конец, поэтому наметьте путь от загрузки вашего приложения до завершения вашего процесса, включая все отклонения от счастливого пути.   -  person dinukadev    schedule 24.01.2013


Ответы (2)


При определении "Actor" вы должны знать это определение

Актор моделирует тип роли, которую играет объект, который взаимодействует с субъектом (например, путем обмена сигналами и данными), но является внешним по отношению к субъекту (т. е. в том смысле, что экземпляр актор не является частью экземпляра соответствующего субъекта). Актеры могут представлять роли, которые играют пользователи-люди, внешнее оборудование или другие субъекты. Обратите внимание, что действующее лицо не обязательно представляет конкретный физический объект, а просто конкретный аспект (то есть «роль») некоторого объекта, который имеет отношение к спецификации связанных с ним вариантов использования. Таким образом, один физический экземпляр может играть роль нескольких разных акторов, и, наоборот, данный актор может играть роль нескольких разных экземпляров.

В вашей системе мы могли бы сказать, что Актеры ( User, Web browser, Web server (Application, Content database) ).

Нашим следующим шагом будет определение "Call Messages" и "Ответные сообщения" между нашими актерами.

Сообщение определяет конкретную связь между жизненными линиями взаимодействия.

Что касается упомянутых вами событий, мы постараемся немного разбить их, чтобы лучше их объяснить.

  1. User Loads Application.
    • [User] ----"RequestResource()"---> [Web Browser]
    • [Веб-браузер] -----"RequestAccessForUser()" ---> [Веб-сервер]
    • [Веб-сервер] ------"CheckUserExists()"-----> [База данных контента]
    • [База данных контента] --- "Существует ответное сообщение" ----> [Веб-сервер]  – продолжайте возвращать ответ пользователю и загружайте вашу страницу в его браузере.

Здесь вы можете найти, что есть вероятность, что пользователь не зарегистрирован, затем есть что-то под названием "Альтернативные пути".

Конечно, вы можете свести к минимуму шаги, уменьшив количество актеров, но для обучения и простоты это будет очень хорошим решением. Ниже приведены некоторые примеры и учебные пособия, безусловно, помогут.

Введение в Visual Paradigm для написания вашей первой диаграммы последовательности

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

person MuhammadHani    schedule 25.01.2013

Поскольку веб-приложения создаются с использованием пар HTTP-запрос/ответ, я считаю, что это помогает отразить это в диаграммах последовательности. Также полезно подумать о типе HTTP-команды, которую вы отправляете для каждого запроса — GET, POST и т. д., а также о том, какие запросы требуют аутентификации или состояния. Где приложение использует коды состояния - например. «перенаправление» или «требуется аутентификация», я также хотел бы включить их.

Я обычно не моделирую пользователя в этом процессе - обычно дело не в том, чтобы моделировать взаимодействие с пользователем (какие кнопки они нажимают и т. д.); однако я включаю соответствующие функции JavaScript, которые выполняются в браузере (например, «WaitForInput()»).

Итак, для вашего примера это может быть что-то вроде:

Browser: GET index.jsp -> ServletContainer
ServletContainer: 200: index.jsp ->Browser
Browser: GET enterText.jsp -> ServletContainer 
ServletContainer: 200: enterText.jsp -> Browser
Browser: POST: enterText.jsp(text) -> ServletContainer
ServletContainer: validateEntry() -> ServletContainer
if(valid)
  ServletContainer: 200: success.jsp(fileName) -> Browser
else
  ServletContainer: 501: fail.jsp(reason)
endif
person Neville Kuyt    schedule 25.01.2013