Время — деньги. Создание команды разработчиков программного обеспечения

ОглавлениеДобавить в закладки К обложке

Формулирование требований

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

Общие и частные требования

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

• разработать интерфейс на базе браузера;

• повысить производительность до уровня, приемлемого для Web-пользователей;

• организовать рассылку уведомлений о выполнении заказов по электронной почте;

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

• предусмотреть применение в будущем в качестве клиентской платформы карманных компьютеров.

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

• Общее требование 1

•• Частное требование 1

••• Частное требование нижнего уровня 1.1

••• Частное требование нижнего уровня 1.2

•• Частное требование 2

••• Частное требование нижнего уровня 2.1

••• Частное требование нижнего уровня 2.2

Ниже приводится пример некоторых общих и частных требований, организованных в соответствии с вышеописанной структурой.

• Разработать интерфейс на базе браузера для приложения по обработке заказов.

• Функциональные требования.

•• При размещении заказа:

••• Ввести для каждого заказа следующую информацию (по пунктам).

••• Проверить идентификатор покупателя.

•• Удалить заказ.

•• Проверить статус заказа.

•• Сгенерировать подтверждение заказа.

• Обеспечить поддержку следующих браузеров:

•• Microsoft Internet Explorer версии X.

•• Netscape версии Y.

• Производительность должна быть приемлема для Web-пользователя.

• Требования ко времени реакции системы:

•• Размещение заказа должно занимать менее 3 секунд.

•• Удаление заказа должно занимать менее 6 секунд.

•• Проверка статуса заказа должна занимать менее 4 секунд.

•• Подтверждение заказа должно занимать менее получаса.

• Облегчить использование приложения с помощью новых возможностей:

•• Разрешить заказ нескольких товаров в одном заказе.

•• Разрешить пользователю просмотр его идентификатора покупателя.

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

Полнота требований

Определение требований должно быть полным. Рассмотрите все аспекты нового выпуска, даже те, что нельзя свести к набору частных требований. Далее приводится список общих категорий требований, применимый практически ко всем проектам по созданию программ. Я не предлагаю использовать этот список в том виде, в каком он представлен здесь, хотя возможно и такое; однако при составлении собственного списка требований рассмотрите каждую из следующих категорий.

• Задачи и функции проекта

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

• Пользовательский интерфейс


Логин
Пароль
Запомнить меня