Что такое нефункциональное требование

«Что такое нефункциональное требование» — вопрос из категории Требования, который задают на 46% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нефункциональные требования (NFR) описывают характеристики системы, не связанные напрямую с её функциональностью, но влияющие на качество и эксплуатацию.

Примеры NFR:

  • Производительность: "Система должна обрабатывать 1000 запросов/сек"
  • Надежность: "Доступность 99.99% (uptime)"
  • Безопасность: "Данные передаются по TLS 1.2+"
  • Масштабируемость: "Поддержка горизонтального масштабирования"

Пример кода (нагрузочный тест):

import requests
from concurrent.futures import ThreadPoolExecutor

def make_request(_):
    response = requests.get("https://api.example.com/data")
    return response.status_code

with ThreadPoolExecutor(max_workers=1000) as executor:
    results = list(executor.map(make_request, range(1000)))

NFR часто формализуются в SLA/SLO и проверяются тестами (нагрузочными, стресс-тестами и т.д.).