Функциональные требования определяют что делает система — основные функции и поведение, видимые пользователю.
Примеры включают:
Нефункциональные требования определяют насколько хорошо система выполняет эти функции — атрибуты качества, которые работают под поверхностью.
Общие нефункциональные требования включают:
Собрать оба типа требований в начале проектирования системы критично, потому что они обусловливают принципиально разные архитектурные решения.
Функциональные требования определяют:
Нефункциональные требования определяют:
Пропуск нефункциональных требований в начале приводит к системам, которые работают, но ломаются в реальных условиях — низкая производительность, неожиданные простои или неспособность масштабироваться.
На интервью по system design всегда уточняй оба типа требований с самого начала. Сильное вступление может звучать так:
"Прежде чем углубляться в детали, я хотел бы уточнить
функциональный scope, а затем обсудить цели по масштабу,
latency и требования к доступности — так как они будут
определять архитектуру."
Это показывает интервьюеру, что ты думаешь комплексно и понимаешь, что корректное поведение и надёжная производительность одинаково критичны для хорошо спроектированной системы.
Функциональные требования определяют качественные характеристики системы, такие как latency и availability, а нефункциональные требования описывают основные возможности и поведение, с которыми взаимодействуют пользователи.
Новый — ещё не проверен сообществом
Вы