Пользовательские истории

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Разработка программного обеспечения
Процесс разработки ПО
Шаги процесса

Анализ • Проектирование • Программирование • Документирование • Тестирование

Модели

Итеративная • Спиральная • Каскадная • V-Model • Dual Vee Model

Методологии

Agile (XP, Lean, Scrum, FDD и др.) • Cleanroom • OpenUP • RAD • RUP • MSF • DSDM • TDD

Сопутствующие дисциплины

Конфигурационное управление • Управление проектами • Управление требованиями

Пользовательские истории (англ. User Story) — способ описания требований к разрабатываемой системе, сформулированных как одно или более предложений на ежедневном или деловом языке пользователя. Пользовательские истории используются Гибкими методологиями разработки программного обеспечения для спецификации требований (вместе с приемочными испытаниями). Каждая пользовательская история ограничена в размере и сложности. Часто история пишется на маленькой бумажной карточке. Это гарантирует что она не станет слишком большой. В Экстремальном программировании пользовательские истории пишутся пользователями (заказчиками) системы. В методологии SCRUM — пишутся либо одобряются ролью владельца продукта (англ. Product Owner). Для заказчиков (пользователей) пользовательские истории являются основным инструментом влияния на разработку программного обеспечения.

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

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

Создание пользовательских историй[править | править вики-текст]

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

Как только клиент создает историю, она записывается на небольшой карточке (например, 8x13 см) с названием и описанием, которое сформулировал клиент. Если разработчик и клиент видят, что история их не устраивает (слишком большая, сложная, неточная), она переписывается, пока это не удовлетворит обе стороны. Однако, Экстремальное программирование подчеркивает, что пользовательские истории не должны быть окончательно определенными на момент записи, так как требования имеют тенденцию изменяться со временем в процессе разработки.

Использование[править | править вики-текст]

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

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

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

Преимущества[править | править вики-текст]

XP и другие гибкие методологии предпочитают общение лицом к лицу вместо всесторонней документации; быструю адаптацию к изменениям вместо фиксации на проблеме. Это достигается следующим:

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

Ограничения[править | править вики-текст]

  • Без определенных приемочных испытаний, они являются открытыми для различных интерпретаций, что усложняет их использование как основу для соглашения
  • Они требуют близкого контакта с клиентом на протяжении всего проекта, что в некоторых случаях может быть сложно либо приводить к накладным затратам
  • Они могут плохо масштабироваться на больших проектах
  • Они полагаются на компетентность разработчиков
  • Они используются для начала дискуссии. К сожалению, они могут не фиксировать окончание дискуссии и таким образом не в состоянии служить надежным методом документации системы.

Пользовательские истории и Сценарии использования[править | править вики-текст]

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

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

Сценарии использования, в отличие от пользовательских историй, описывают процесс и его шаги подробно, и могут быть сформулированы с точки зрения формальной модели. Сценарий самодостаточен. Он обеспечивает всю необходимую информацию и детали для понимания. Сценарий описывается как «обобщенное описание ряда взаимодействий между системой и одним или более агентами, где агент — пользователь или другая система».

Литература[править | править вики-текст]

См. также[править | править вики-текст]


Ссылки[править | править вики-текст]

Примечания[править | править вики-текст]