Добавить в корзинуПозвонить
Найти в Дзене

продолжение про требования

продолжение про требования 👆 Нефункциональные требования охватывают всё, что влияет на качество, производительность, безопасность и совместимость системы. Их можно разделить на 4 основные группы, иерархичность этих групп зависит от изначально установленных бизнес-требований и бизнес-правил): 1. Атрибуты качества (Quality Attributes) Характеристики, определяющие, насколько хорошо система выполняет свои функции. Иногда называются "качественными характеристиками" или "-ilities". Примеры: • Производительность - Система должна обрабатывать 5000 запросов в секунду • Надёжность - Система должна быть доступна 99.9% времени в год • Безопасность - Все данные пользователей должны шифроваться при передаче и хранении • Масштабируемость - Система должна поддерживать рост числа пользователей без потери скорости • Удобство использования - Интерфейс должен быть интуитивно понятен новому пользователю за 5 минут Отвечают на вопрос: «Насколько хорошо работает система?» Обычно находятся на первом место в

продолжение про требования 👆

Нефункциональные требования охватывают всё, что влияет на качество, производительность, безопасность и совместимость системы. Их можно разделить на 4 основные группы, иерархичность этих групп зависит от изначально установленных бизнес-требований и бизнес-правил):

1. Атрибуты качества (Quality Attributes)

Характеристики, определяющие, насколько хорошо система выполняет свои функции. Иногда называются "качественными характеристиками" или "-ilities".

Примеры:

• Производительность - Система должна обрабатывать 5000 запросов в секунду

• Надёжность - Система должна быть доступна 99.9% времени в год

• Безопасность - Все данные пользователей должны шифроваться при передаче и хранении

• Масштабируемость - Система должна поддерживать рост числа пользователей без потери скорости

• Удобство использования - Интерфейс должен быть интуитивно понятен новому пользователю за 5 минут

Отвечают на вопрос: «Насколько хорошо работает система?»

Обычно находятся на первом место в иерархии.

2. Ограничения (Constraints)

Условия, которые система обязана соблюдать, даже если они не относятся напрямую к функциональности.

Примеры:

• Юридические: соответствие законам (ФЗ-152 о персональных данных)

• Технические: использование определённого фреймворка или языка программирования

• Временные: срок сдачи проекта — до 31 декабря

• Бюджетные: стоимость разработки не должна превышать 2 млн рублей

Отвечают на вопрос: «Что система НЕ может делать или чему ДОЛЖНА соответствовать?»

Выходит на первое место в иерархии при наличии существенных бизнес-правил, например в виде юридических ограничений.

3. Внешние интерфейсы (External Interfaces / Интеграции)

Требования к взаимодействию системы с внешними компонентами: другими системами, API, устройствами, пользователями.

Примеры:

• Интеграция с платежной системой (например, ЮKassa, Robokassa)

• Поддержка импорта/экспорта данных в форматах CSV, XML, JSON

• Совместимость с мобильными ОС: iOS 15+, Android 10+

• API для сторонних разработчиков

Отвечают на вопрос: «С чем и как должна взаимодействовать система?»

Место в иерархии находится после ограничений, но могут отсутствовать вовсе.

4. Системные требования (System Requirements / Внутренние интеграции)

Описывают внутреннюю архитектуру, окружение и технические параметры, необходимые для работы системы. Системные требования могут быть связаны как с потребностями заказчика, так и проистекать из вышеизложенных не функциональных требований, а также связаны с возможностями исполнителя.

Примеры:

• Сервер: Linux Ubuntu 22.04, 8 ГБ RAM, 4 ядра CPU

• База данных: PostgreSQL 14+

• Архитектурные паттерны: микросервисы, REST API

• Логирование: все действия пользователей должны записываться в audit-лог

Отвечают на вопрос: «На какой платформе и как должна быть реализована система?»

В целом системные требования находятся в конце иерархии требований (3 или 4 место).

Иерархия не функциональных требований сложнее, поскольку зависит от бизнес-требований и бизнес-правил.

Часть нефункциональных требований может технично переходить в функциональные:

• При разработке пользовательских требований

• При планировании интеграций

• При разработке отдельных функций