На самом деле это имеет смысл в этом отношении. Варианты использования здесь отличаются друг от друга тем, что они не могут использоваться одинаково. Случаи использования будут полезны для извлечения и оформления требований.
Я работал в лаборатории UI некоторое время назад, и мы играли с этой концепцией, хотя мы не называли ее таковой. Основная идея здесь заключается в том, что мы будем использовать гибкий итеративный подход к разработке, где мы будем использовать юзабилити tesing, чтобы помочь сходиться по желаемому решению.
Типичный цикл будет:
- проект несколько требований и прецедентов, очень ограниченные по масштабам очень сосредоточенным.
- Создайте тестовый протокол, который позволит нам собирать данные по этой функции (удобство использования, простота использования, прием, производительность и т. Д.).
- Создать или расширить приложение, чтобы включить эту функцию
- имеет несколько пользователей протестировать приложение с помощью гибкой адаптации юзабилити-тестировании (см Ruben's Handbook of Usability Testing), где мы бы ограничить тестовые сессии до 15 минут с 15 минут debreifing.
- Извлечь полезные данные из тестирования для инъекции в будущую итерацию.
Этот метод был perticularely полезным, когда пользователи либо не знали точно, что они хотели, либо не могли рассказать нам. Поэтому нам пришлось бы разрабатывать тесты, которые собирали бы объективные данные о полезности программного обеспечения для пользователя и пытались бы соответственно провести следующую итерацию. (многие из наших «клиентов», если я могу их назвать, были сильно инвалидами и не могли говорить, поэтому мы должны были быть творческими).
Этот способ работы заставлял нас иметь графический интерфейс, доступный клиенту очень рано в процессе разработки программного обеспечения, и поскольку это был центральный пункт, на который мы могли бы направлять тестирование, можно сказать, что это было GUI, управляемое с момента создания движущей силы для конвергенция была пользователем взаимодействия с системой.
Хотя мы разработали эту технику в основном для особо конкретных случаев, мы провели некоторое тестирование с обычными пользователями в обычном программном обеспечении и получили очень положительные результаты. Идея сходится очень быстро к потребностям usre. Также тот факт, что они участвовали в этом стилевом подходе, также очень положительно повлиял на принятие продукта в целевом сообществе.
К сожалению, во внутренних стенах лаборатория была демонтирована, прежде чем мы смогли опубликовать наши результаты и расширить эту линию исследований, позор на самом деле.
Таким образом, UIDD (если вы прощаете с плохим аббревиатурой) будет членом семейства TDD подходов к разработке программного обеспечения, где итерации зависят от пользовательских взаимодействий.
Additionnal чтение по теме:
http://www.codinghorror.com/blog/archives/001091.html
http://cakebaker.42dh.com/2007/07/07/usability-driven-development/
http://www.springerlink.com/content/l413k76812896gnt/
http://www.agilemodeling.com/essays/agileUsability.htm
http://www.uxbooth.com/blog/how-test-driven-development-increases-overall-usability/
Я не согласен ... Случай использования - это инструмент, но они не обязательно приводят развитие, как TDD или BDD. Варианты использования находятся на том же уровне, что и модульные тесты в TDD, для TDD гораздо больше, чем для модульных тестов, поскольку для UI DD гораздо больше, чем случаев использования. – Newtopian