Тщательный анализ требований к ПО определяет успешность проекта в целом.
Функциональные требования: Основные функции (возможности), которыми должен обладать продукт, что закрепляется соглашением. Требования имеют вид: входные данные, подаваемые в ПО, выполняемые операции, и ожидаемые результаты.
Нефункциональные требования: качественные показатели, которые нужны чтобы выполнить условия соглашения с пользователем. Приоритеты и масштабы таких требований отличаются в разных проектах.
Нефункциональные требования описывают:
- Портативность (переносимость между системами/платформами/типами девайсов)
- Безопасность
- Легкость обслуживания в дальнейшем, «ремонтопригодность» продукта
- Надежность и устойчивость
- Масштабируемость/расширяемость
- Производительность/продуктивность
- Реюзабельность/возможность применять в других условиях/окружениях
- Гибкость/настраиваемость
Функциональные и нефункциональные требования — таблица различий:
Функциональные | Нефункциональные |
---|---|
Описывает продукт или одну из функций | Описывает один из показателей качественности продукта |
«ЧТО продукт должен выполнять?» | Ограничения на то, «КАК продукт должен выполнять свои функции?» |
Описывается пользователями | Описывается техническими специалистами (системными архитекторами/техлидами/разработчиками) |
Всегда должны быть описаны | Не столь обязательны как функциональные |
Описываются в use-кейсах | Описываются как показатели качества |
Описываются на уровне частей продукта | Описываются на системном уровне |
Верифицирует функциональность | Верифицирует продуктивность и юзабельность |
Системное, интеграционное, E2E, API | Нагрузочное, юзабилити, надежности |
Сравнительно просто описывается | Более трудно описывается |
Например 1) Авторизация пользователя при его входе в систему 2) Выключение системы во время кибератаки 3) Отправка имейла пользователю при первой регистрации в системе | Например 1) Имейл должен быть отправлен не позже чем через 2 часа с момента регистрации 2) Каждый запрос должен обрабатываться не более 5 секунд 3) Страница должна загружаться не более 3 секунд, если ее запрашивает более 10000 пользователей |