На этапе формулирования требований вырабатываются требования, определяющие, какими характеристиками должно обладать будущее ПО. Часто такая работа осуществляется на уровне руководства проектом и связана с решением таких вопросов, как
· определение общего подхода к решению проблемы;
· анализ человеческих и других ресурсов;
· стоимость разработки;
· сроки выполнения работы.
Выполнение определяемых на этом этапе требований должно обеспечить приемлемое решение стоящей задачи.
В формулировании требований должны принимать участие как представители организации-заказчика, так и те, кто будет заниматься проектированием системы. Необходимо, чтобы этот процесс был гибко организован и продолжался в течение достаточно длительного времени, поскольку на любом этапе разработки или внедрения могут вскрываться ранее не предусмотренные трудности, требующие внесения определенных изменений в проект. В то же время с целью упрощения разработки в договор следует включить пункт, который запрещал бы радикальный пересмотр требований на стадии реализации системы. В этом же пункте могут быть оговорены условия внесения несущественных изменений. Все договоренности должны оформляться в официальном порядке.
Формулирование требований следует поручать представителям как пользователей, так и проектировщиков системы. Поодиночке ни пользователь, ни проектировщик не выполнят эту работу.
Пользователь знаком с областью применения и должен быть уверен, что требования точно и полно отражают стоящую проблему. Пользователь НЕ знаком с состоянием технологии и не понимает, что сделать легко, а что сложно. Когда пользователь один формулирует требования, часто возникают технологически наивные формулировки, запрашивающие либо слишком много, либо слишком мало.
Проектировщик не знаком со всеми тонкостями области применений и может не учесть многих ее важных аспектов.
Пользователь | Проектировщик |
может: - ясно выразить потребности; - правильно расставить приоритеты. | может: - определить состояние дел в технологии; - определить полноту сформулированных требований. |
пропустит: - требования к технологии, - потребности инфраструктуры. | пропустит: - сортировку интересов пользователя; - тонкости прикладной области; |
Определение и анализ требований
Различают требования жесткие (например, пространственно-временные) и изменяемые (выполнение которых не является строго обязательным или которые могут меняться для разных версий ПС для разных применений).