Ответ
Функциональные требования описывают что должна делать система — её основные функции и возможности. Например: "Пользователь должен иметь возможность авторизоваться через email и пароль".
Нефункциональные требования определяют как система должна работать — её атрибуты качества, производительность, безопасность и т.д. Например: "Система должна обрабатывать 1000 запросов в секунду с задержкой не более 200 мс".
Пример кода (функциональное требование):
def login(email, password):
if validate_credentials(email, password):
return generate_auth_token()
raise InvalidCredentialsError()
Нефункциональные требования часто выражаются в метриках (SLA, latency, uptime) и не имеют прямого отражения в коде.