Можно ли реализовать один вариант использования частично или в несколько этапов? Как отслеживать компоненты и расставлять приоритеты?

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

Можно ли реализовать вариант использования частично? Или это будет означать, что его следует разбить на более мелкие варианты использования с расширениями/включениями? Если это можно частично реализовать, как отслеживать отдельные функции, чтобы не потерять высокоприоритетные элементы?

Например, если у меня есть один вариант использования для проверки орфографии со следующим:

  1. Выявление потенциально неправильно написанных слов
  2. Визуальное определение слов с ошибками при вводе пользователем
  3. Автоматическое исправление слов с часто встречающимися ошибками при вводе текста пользователем.
  4. Предоставление пользователю списка вариантов написания отдельных слов.
  5. Предоставление пользователю возможности массового исправления опечаток
  6. Разрешение пользователю игнорировать потенциальные опечатки один раз
  7. Разрешение пользователю добавлять слова в словарь

Как мне расставить приоритеты для отдельных функций, а затем отслеживать реализацию функций 1 и 4 на одном этапе, 2, 3, 6 на втором, 5 на третьем и не реализовывать 7? В этом примере это должны быть отдельные варианты использования или один с несколькими альтернативными потоками?


person akdms    schedule 15.02.2015    source источник
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что это не вопрос прямого программирования.   -  person LittleBobbyTables - Au Revoir    schedule 07.04.2015
comment
Я голосую за закрытие этого вопроса, потому что он не о программировании.   -  person Vadim Kotov    schedule 17.06.2021


Ответы (1)


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

Да, вы можете разделить варианты использования с помощью включения/расширения. Это имеет большой смысл, когда вы показываете, как они разлагаются. Вы также можете сделать обобщения вариантов использования.

Для отслеживания этапов реализации, вероятно, лучше всего поставить всю модель UML под контроль версий (некоторые инструменты UML поставляются с поддержкой контроля версий) и иметь разные версии одной и той же диаграммы.

Вы также можете использовать, например. разными цветами для обозначения этапов реализации. Но тогда не забудьте создать соответствующую легенду и постоянно ее обновлять. Также не показывайте будущие варианты использования большому количеству людей наугад. Искушение выполнить ненужную работу раньше времени может быть велико (вспомните YAGNI).

person observer    schedule 15.02.2015