К списку статей
Следующая статья
Предыдущая статья>
Акашева В.И.:

Абстрактные формулировки

Абстрактные формулировки

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

Суть проблемных требований:

  • можно понять двояко;
  • в одном требовании несколько требований;
  • требования противоречивы;
  • требования размыты.

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

Пример: «Для иллюстрации того, как не надо делать, ниже приводятся два «жутких» примера формулирования требований:

1. Система должна обеспечивать максимальный уровень производительности в течение всего времени работы, за исключением аварийных ситуаций, при которых она должна обеспечивать уровень производительности до 125%, но только если аварийная ситуации не длится более чем 15 минут, - в противном случае система должна уменьшить уровень производительности до 105%; но в случае, если удается достигнуть уровня производительности только 95%, система должна активировать режим «исключительно малого уровня» и поддерживать этот уровень в пределах 10% от начального значения в течение, как минимум, 30 минут.

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

Эти примеры иллюстрируют классические негативные ситуации, характерные для разработки требований. [...]

Анализ первого примера показывает, что вместо одного требования, нужно писать 12. Развивая эту мысль, лучше всего выделить 4 отдельных условия эксплуатации -нормальное, аварийное, аварийное более 15 минут, режим «исключительно малого уровня», - и описать требования для каждого из этих условий.

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

Элизабет Халл, Кен Джексон, Джереми Дик, Разработка и управление требованиями. Практическое руководство пользователя (Второе издание) - Telelogic, 2005г., стр. 99-101

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

  1. На одну функцию системы приходится 1-3 ограничения, если нет, то требования к работе функции надо выделить в отдельный раздел ТЗ\постановки;
  2. При описании входящих\исходящих данных описаны форматы, предъявлены требования к каждому виду данных;
  3. Есть ли в ТЗ  определения понятий, которые могут толковаться двояко. С внутренним заказчиком введение определений может оказаться излишне, но при этом слово транзакция экономистом и программистом могут быть истолкованы по-разному.
  4. В требованиях заданы конкретные результаты выполнения операции(критерии приёмки). Например, запрос в БКИ должен выполняться не более чем за 2 минуты или файл с данными загружает только строки, где количество ошибок от 0 до 6;
  5. В тексте отсутствуют неоднозначные термины. Примеры таких формулировок можно посмотреть ниже, но список не избыточен.

Неоднозначные термины

Способ их улучшения

Приемлемый, адекватныйОпределите, что понимается под приемлимостью и как система это может оценить

Практически выполнимо

 

Не заставляйте разработчиков определять, что под этим пони­мается. Поставьте пометку «TBD» и определите дату, к которой эту проблему следует разрешить

По меньшей мере

как минимум, не более чем,

не должно превышать

Укажите минимальное и максимальное допустимые
МеждуОпределите, указаны ли конечные точки
Зависит от

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

 

Эффективный

 

Определите, насколько эффективно система ресурсы, насколько быстро она выполняет определенные операции и насколько она проста в обращении

Быстрый, моментальный

 

Укажите минимальную приемлимую скорость, при система выполняет определенное действие

Гибкий

 

Опишите способы изменения системы в ответ на изменения условий или бизнес-потребностей

Улучшенный, лучший, более быстрый, Превосходный

 

Определите количественно, насколько лучше или быстрее стали показатели в определенной функциональной области

Включает: включает в себя, но не ограничен этим; и т.д.; и т.п.; такой как

 

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

 

Миксимизируйте, минимизи­руйте, оптимизируйте

 

Укажите минимальное и максимальное допустимые значения определенного параметра

 

Обычно, в идеальном варианте

Также опишите поведение системы при нештатных или неиде- условиях

 

НеобязательноУкажите кто делает выбор: система,. Пользователь или разработчик

Разумный, при необходи­мости, при условиях

 

Объясните, как это выполнить
Устойчивый к сбоямОпределите, как система должны обрабатывать исключения и реагировать на неожиданные условии работы
Цельный, прозрачный, элегантныйВыразите ожидания пользователя, применяя характеристики продукта, которые можно наблюдать
НесколькоУкажите сколько или задайте минимальную и максимальную границы диапазона
Не следуетСтарайтесь формулировать требования в позитивной форме, описывая, что именно система будет делать
РеальныйПоясните этот термин
ДостаточныйУкажите, какая степень чего-либо свидетельствует достаточности
Поддерживает, позволяетДайте точное определение, какие действия система будет выполнять, поддерживая конкретную возможность
Дружественный, простой, легкийОпишите системные характеристики, которые будут отвечать потребностям пользователей и его ожиданиям, касающимся легкости и простоты применения продукта

Стр. 194-196

Вигерс К., Разработка требований к программному обеспечению - М.:Издательство- торговый дом «Русская Редакция», 2004