〽️ Нефункциональные требования и зачем они нужны
Нефункциональные требования (НФТ) — это требования, которые определяют качество системы, а не ее функциональность. НФТ описывают, как система должна работать, а не что она должна делать. НФТ влияют на удовлетворенность пользователей и эффективность системы.
НФТ отличаются от функциональных требований (ФТ) тем, что ФТ описывают конкретные возможности или действия, которые система должна предоставлять или выполнять. ФТ отвечают на вопрос что, а НФТ - на вопросы как, когда, где, сколько и т.д.
Например, ФТ для онлайн-магазина могут быть такими:
▪️Система должна позволять пользователям регистрироваться и входить в свои аккаунты.
▪️Система должна показывать список товаров с их ценами и описаниями.
▪️Система должна позволять пользователям добавлять товары в корзину и оформлять заказы.
А НФТ для той же системы могут быть такими:
🔹Система должна быть доступна 99,999% времени.
🔹Время отклика Системы не должно превышать 1 сек (для 90% запросов).
🔹Система должна защищать личные данные и платежную информацию пользователей от несанкционированного доступа.
Какие виды нефункциональных требований существуют
Есть много видов НФТ, разные источники классифицируют их по-разному, например, Карл Вигерс, BABOK, ISO/IEC 25000.
Для примера, рассмотрим классификацию по FURPS+.
➖ Functionality (Функциональность) — это классические функциональные требования. Пример: Система должна иметь возможность выбора способа доставки на этапе оформления заказа.
➖ Usability (Удобство использования) — это характеристики, которые определяют удобство и привлекательность системы для пользователей, такие как эргономика, эстетика, интуитивность, обучаемость и т.д. Пример: Система должна иметь адаптивный дизайн, который подстраивается под разные размеры экранов и устройств.
➖ Reliability (Надежность) - это характеристики, которые определяют способность системы работать без ошибок и сбоев, а также восстанавливаться после них, такие как доступность, непрерывность, отказоустойчивость и т.д. Пример: Система должна иметь резервное копирование данных и автоматическое восстановление в случае сбоя.
➖ Performance (Производительность) — это характеристики, которые определяют скорость и эффективность работы системы, такие как время отклика, пропускная способность, масштабируемость и т.д. Пример: Система должна обрабатывать не менее 1000 запросов в секунду при нагрузке до 10 000 одновременных пользователей.
➖Supportability (Поддерживаемость) — это характеристики, которые определяют легкость сопровождения и модификации системы, такие как тестируемость, документированность, совместимость и т.д. Пример: Система должна быть написана на языке программирования Python с использованием фреймворка Django.
➖ "+" в названии модели означает, что к ней можно добавить другие категории НФТ в зависимости от специфики проекта, такие как экологичность, экономичность, правовые аспекты, ограничения и т.д. Пример: Система должна соответствовать требованиям GDPR по обработке персональных данных.
📎 Статьи по теме
1. Нефункциональные требования к программному обеспечению — Хабр
2. О нефункциональных требованиях — Школа системного аналитика
3. Высокая доступность и удобный интерфейс: разрабатываем нефункциональные требования — BABOK School
4. Нефункциональные требования: как не пустить систему ко дну — Хабр, больше о практике
5. Нефункциональные требования? Нет, модели обеспечения качества — Хабр, предложен интересный подход к проработке НФТ
Вебинары
▶️ Немного о требованиях, которые все меняют — доклад с Analyst Days 2020
▶️ Нефункциональные требования · При чем тут заказчик? Александра Галамага
#требования
Нефункциональные требования (НФТ) — это требования, которые определяют качество системы, а не ее функциональность. НФТ описывают, как система должна работать, а не что она должна делать. НФТ влияют на удовлетворенность пользователей и эффективность системы.
НФТ отличаются от функциональных требований (ФТ) тем, что ФТ описывают конкретные возможности или действия, которые система должна предоставлять или выполнять. ФТ отвечают на вопрос что, а НФТ - на вопросы как, когда, где, сколько и т.д.
Например, ФТ для онлайн-магазина могут быть такими:
▪️Система должна позволять пользователям регистрироваться и входить в свои аккаунты.
▪️Система должна показывать список товаров с их ценами и описаниями.
▪️Система должна позволять пользователям добавлять товары в корзину и оформлять заказы.
А НФТ для той же системы могут быть такими:
🔹Система должна быть доступна 99,999% времени.
🔹Время отклика Системы не должно превышать 1 сек (для 90% запросов).
🔹Система должна защищать личные данные и платежную информацию пользователей от несанкционированного доступа.
Какие виды нефункциональных требований существуют
Есть много видов НФТ, разные источники классифицируют их по-разному, например, Карл Вигерс, BABOK, ISO/IEC 25000.
Для примера, рассмотрим классификацию по FURPS+.
➖ Functionality (Функциональность) — это классические функциональные требования. Пример: Система должна иметь возможность выбора способа доставки на этапе оформления заказа.
➖ Usability (Удобство использования) — это характеристики, которые определяют удобство и привлекательность системы для пользователей, такие как эргономика, эстетика, интуитивность, обучаемость и т.д. Пример: Система должна иметь адаптивный дизайн, который подстраивается под разные размеры экранов и устройств.
➖ Reliability (Надежность) - это характеристики, которые определяют способность системы работать без ошибок и сбоев, а также восстанавливаться после них, такие как доступность, непрерывность, отказоустойчивость и т.д. Пример: Система должна иметь резервное копирование данных и автоматическое восстановление в случае сбоя.
➖ Performance (Производительность) — это характеристики, которые определяют скорость и эффективность работы системы, такие как время отклика, пропускная способность, масштабируемость и т.д. Пример: Система должна обрабатывать не менее 1000 запросов в секунду при нагрузке до 10 000 одновременных пользователей.
➖Supportability (Поддерживаемость) — это характеристики, которые определяют легкость сопровождения и модификации системы, такие как тестируемость, документированность, совместимость и т.д. Пример: Система должна быть написана на языке программирования Python с использованием фреймворка Django.
➖ "+" в названии модели означает, что к ней можно добавить другие категории НФТ в зависимости от специфики проекта, такие как экологичность, экономичность, правовые аспекты, ограничения и т.д. Пример: Система должна соответствовать требованиям GDPR по обработке персональных данных.
📎 Статьи по теме
1. Нефункциональные требования к программному обеспечению — Хабр
2. О нефункциональных требованиях — Школа системного аналитика
3. Высокая доступность и удобный интерфейс: разрабатываем нефункциональные требования — BABOK School
4. Нефункциональные требования: как не пустить систему ко дну — Хабр, больше о практике
5. Нефункциональные требования? Нет, модели обеспечения качества — Хабр, предложен интересный подход к проработке НФТ
Вебинары
▶️ Немного о требованиях, которые все меняют — доклад с Analyst Days 2020
▶️ Нефункциональные требования · При чем тут заказчик? Александра Галамага
#требования