Документирование потока / итерации веб-приложения [закрыто]

StackOverflow https://stackoverflow.com/questions/825261

Вопрос

Какие артефакты / диаграммы используются для документирования потока работы веб-приложения с учетом связей между статическими страницами и того, как компоненты динамического представления (html-формы, JSP, Ajax и т.д.) Взаимодействуют с серверными компонентами (сервлеты, действия Struts и т.д.)?Используете ли вы UML-диаграммы?

Это было полезно?

Решение

Мы использовали диаграммы классов UML, используя вариацию эссе Коналлена Моделирование дизайна веб-приложений с помощью UML.Вы обнаружите, что это эссе превратилось в различные воплощения по всей сети и даже превратился в книгу Создание-Веб-приложений-UML-2nd.

Моя двухцентовая экскурсия по подходу, который мы использовали:

Следуя статье Коналлена, мы определили новые сущности UML (stereotypes) для представления веб-страницы или части страницы, чтобы мы могли различать код на стороне сервера (напримерJava servlet или JSP] из клиентского HTML / javascript / AJAX, который он сгенерировал.Например:

  • [веб-страница]
  • [панель навигации]
  • [содержание страницы]
  • [заголовок]
  • [нижний колонтитул]

Появились новые ассоциации, такие как:

  • [сборки] - соотносит серверный код с веб-страницей или фрагментом страницы, который он сгенерировал.
  • [очевидная ссылка] - используется между клиентскими страницами на диаграмме sitemap
  • [ссылка] - URL-ссылка, т.е.ПОЛУЧИТЬ запрос
  • [отправляет] - форма отправки сообщения обратно на сервер, т.е.ОТПРАВИТЬ запрос
  • [перенаправление клиента] - перенаправление на стороне клиента
  • [перенаправление с сервера] - да

Наконец, некоторые новые диаграммы (в основном просто специализации диаграмм классов), такие как:

  • [карта сайта] -> как диаграмма классов - показывает статические отношения ([очевидные ссылки]) между [веб-страницами] с точки зрения пользователя
  • [генерация страницы] -> как диаграмма классов - показывает классы, статически связанные с отображением определенной веб-страницы:какой код сгенерировал его, какой код обрабатывает отправку post
  • [композиция страницы] - подобно диаграмме классов - показывает элементы, составляющие данную [веб-страницу]
  • [диаграммы последовательностей] - Единственным другим изменением было то, что диаграммы последовательностей теперь могли включать объекты на стороне клиента в качестве действующих лиц.

Хорошие новости:

  • мы нашли расширения значков Rational Rose, необходимые нам для придания диаграммам хотя бы наполовину приличного вида.

Плохие новости:

  • этот подход потребовал большой работы - теперь у нас было в два раза больше объектов для моделирования, поскольку теперь мы моделировали объекты на стороне клиента в дополнение к классам на стороне сервера.

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

Другие советы

В прошлом я использовал диаграммы состояний UML для документирования навигации по страницам для веб-приложений.

Я рекомендую использовать подход 37signals к разработке приложений.

Каждая страница должна иметь цель.Сосредоточьтесь в первую очередь на этой цели и проектируйте все остальное вокруг нее.

Процесс:

  • набросайте основные детали с помощью фломастер и бумага
  • Элемент списка
  • не обращайте внимания на детали на ранних стадиях (они просто мешают)
  • создайте что-то реальное как можно скорее (т.е.создайте несколько html-файлов со ссылками, которые ведут на другие страницы, чтобы показать, как будет работать приложение
  • как только поток работы сайта будет настроен, добавьте компоненты дизайна и приступайте к программированию

Гораздо проще добавить программирование к чему-то, что уже было разработано и продумано, чем разрабатывать приложение для работы с существующим программированием (что в большинстве случаев требует переписывания кода для адаптации к проблемам проектирования / потока, которые были пропущены в начале).

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

Я собираюсь разработать собственный DSL, который будет напоминать формат сценария BDD, используемый в Cucumber с Webrat, ИМХО такие сценарии содержат достаточно информации для создания моделей взаимодействия и веб-страниц.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top