В этом эпизоде подкаста GetAnalyst мы обсуждаем нефункциональные требования: не только в теории, но и на практике. Разбираются конкретные примеры, которые могут быть применены в реальных ИТ-проектах.
Этот выпуск поможет системным и бизнес-аналитикам при подготовке к собеседованиям или перед стартом работы над нефункциональными требованиями для ТЗ нового проекта.
1:08 - Когда мы встречаемся с нефункциональными требованиями и что важно знать о них перед началом работы. Знакомство с проектом TelMed (https://t.me/getanalysts/1646).
08:09 - Что такое нефункциональные требования (НФТ). О проверяемости нефункциональных требований.
12:28 - Определение нефункциональных требований по Вигерсу (книга “Разработка требований к программному обеспечению”), ГОСТ-34 (https://www.prj-exp.ru/gost/gost_34-602-89.php) и Software Requirements Specification, IEEE (https://github.com/rick4470/IEEE-SRS-Tempate или https://ieeexplore.ieee.org/document/278253).
23:21 - Источники нефункциональных требований.
29:54 - Виды нефункциональных требований на примере медицинского проекта TelMed. Этап сбора потребностей из источников - первичная аналитика.
45:04 - Работа с нефункциональными требованиями для ТЗ и рядовых постановок задач на разработчиков. Личный опыт. Связь с принципами дизайна UI и архитектурой.
51:06 - Доступность. SLA - service-level agreement.
56:10 - Удобство установки.
01:01:36 - Целостность данных. Совместимость.
01:04:23 - Производительность.
01:06:24 - Надежность. Устойчивость.
01:09:13 - Защита и безопасность.
1:13:00 - Удобство использования. О боли про “Интуитивно понятный интерфейс”.
1:16:10 - Эффективность использования ресурсов.
1:18:10 - Модификация. Переносимость. Возможность повторного использования.
1:21:41 - Масштабируемость.
1:24:03 - Проверяемость и тестируемость. Другие требования по ГОСТ-34.
1:27:28 - Порядок работы с нефункциональными требованиями.
1:34:54 - Заключение и рекомендации по нефункциональным требованиям и организации работы с ними на проекте.
Ведущая:
Екатерина Ананьева
Подкаст сообщества системных аналитиков GetAnalyst.
Заметки к эпизоду
Требования к ПО можно разделить на три основные категории:
1. Бизнес-требования определяют цели и задачи, которые система должна поддерживать для достижения успеха бизнеса. Они описывают, зачем создается система, какие бизнес-проблемы она должна решать, и какие преимущества или улучшения она должна принести организации. Эти требования ориентированы на бизнес-результаты и могут включать увеличение прибыли, улучшение обслуживания клиентов и другие.
2. Функциональные требования определяют конкретные функции и возможности, которые система должна предоставить пользователям для выполнения задач и достижения целей, описанных в бизнес-требованиях. Эти требования могут включать взаимодействие с пользователем, обработку данных, выполнение бизнес-логики и интеграцию с другими системами.
3. Нефункциональные требования (НФТ) определяют критерии, которым система должна соответствовать, чтобы быть полезной и эффективной, но они не связаны с конкретными функциями системы. Эти требования описывают качества и характеристики системы, такие как производительность, безопасность, масштабируемость, надежность, удобство использования и поддерживаемость. Они ориентированы на общее качество системы и могут включать требования к времени отклика, защите данных, способности системы справляться с увеличением нагрузки и другие аспекты, которые обеспечивают стабильную и эффективную работу системы в различных условиях. Нефункциональные требования - это про то, как хорошо работает система.
При разработке нефункциональных требований обязательно проверяйте, чтобы их можно было протестировать:
- в ручном или автоматическом режиме при тестировании функцональности,
- в рамках нагрузочного тестирования системы.
Если требование невозможно проверить, то стоит подумать над необходимостью упоминать его в техническом задании.
Основные источники, определяющие нефункциональные требования:
1. Книга Карла Вигерса
"Разработка требований к программному обеспечению"
В книге приводится как теория, так и практические примеры по НФТ.
2. Стандарт для разработки ТЗ - ГОСТ 34 серии
3. Международный стандарт для разработки требований от IEEE
Recommended Practice for Software Requirements Specification (template)
Перевод:
Другие нефункциональные требования
5.1 Требования к производительности
5.2 Требования защите
Укажите те требования, которые касаются возможных потерь, повреждений или вреда, которые могут возникнуть в результате использования продукта.
5.3 Требования безопасности (доступ к данным)
Укажите любые требования, касающиеся вопросов безопасности или конфиденциальности, связанных с использованием продукта или защитой данных, используемых или созданных продуктом
5.4 Атрибуты качества программного обеспечения
Укажите любые дополнительные качественные характеристики продукта, которые будут важны как для заказчиков, так и для разработчиков. Некоторые из них, которые следует учитывать: адаптивность, доступность, гибкость, совместимость, ремонтопригодность, переносимость, надежность, возможность повторного использования, тестируемость и удобство использования.
5.5 Бизнес-правила
Этот раздел посвящен изучению видов нефункциональных требований, собранный на основе трех фундаментальных источников - Вигерс, ГОСТ-34, IEEE. Его можно использовать в качестве чеклиста для ваших проектов и отдельных задач, где важно детально проработать функциональные требования и архитектуру взаимодействия систем.
Чеклист поможет не пропустить важные технические детали в требованиях, которые не лежат на поверхности.
Доступность
Это характеристика системы, определяющая её способность быть доступной и готовой к использованию в любой момент времени. Это означает, что система должна работать надежно и быть доступной для пользователей в запланированные часы работы или даже круглосуточно.
Другими словами: насколько сервисы системы доступны, какой период времени, и где они используются.
Вигерс ✅
ГОСТ-34 ❌
SRS IEEE ✅ (5.4 Атрибуты качества программного обеспечения)
Примеры:
Удобство установки
Это характеристика, определяющая, насколько легко и правильно можно установить программное обеспечение.
Включает:
Вигерс ✅
ГОСТ-34 ❌
SRS IEEE ❌
Примеры:
Целостность
Предотвращение потери и искажения информации в системе.
Включает:
Вигерс ✅
ГОСТ-34 ✅ (2.6.1.10. Требования по сохранности информации при авариях)
SRS IEEE ✅ (5.4 Атрибуты качества программного обеспечения)
Примеры:
Совместимость (Интеграции)
Способность системы обмениваться данными с другими программными системами и интегрироваться с внешними аппаратными устройствами.
Вигерс ✅
ГОСТ-34 ✅ (2.6.1.1.3. Требования к характеристикам взаимосвязей создаваемой системы сосмежными системами, требования к ее совместимости, в том числе указанияо способах обмена информацией)
SRS IEEE ✅ (5.4 Атрибуты качества программного обеспечения)
Примеры:
Производительность
Это характеристика системы, определяющая её способность быстро и эффективно выполнять задачи и обрабатывать запросы.
Включает:
Эти аспекты помогают оценить, насколько система справляется с текущими и будущими требованиями к производительности, обеспечивая стабильную и быструю работу.
Вигерс ✅
ГОСТ-34 ❌
SRS IEEE ✅ (5.1 Требования к производительности)
Примеры:
Надежность
Это характеристика системы, определяющая её способность функционировать без сбоев и ошибок в течение заданного времени. Надежность включает следующие аспекты:
Эти аспекты помогают обеспечить стабильную и надежную работу системы, минимизируя риск сбоев и обеспечивая быстрое восстановление в случае возникновения проблем.
Вигерс ✅
ГОСТ-34 ✅ (2.6.1.4. Требования к надежности)
SRS IEEE ✅ (5.4 Атрибуты качества программного обеспечения)
Примеры:
Устойчивость
Это способность системы продолжать корректно выполнять свои функции, несмотря на неверный ввод данных, недостатки подключенных компонентов или неожиданные условия работы. Устойчивое ПО легко восстанавливается после проблем и игнорирует ошибки пользователей.
Обычно устойчивость включают в функциональные требования: в альтернативных сценариях и требованиях к обработке ошибок, и отдельно не описывают.
Вигерс ✅
ГОСТ-34 ❌
SRS IEEE ❌
Защита (safety)
Требования к защите (safety) подразумевают, что система должна стремиться предотвратить причинение вреда людям и имуществу.
Это включает:
Основные вопросы для анализа требований к защите:
Опасные условия:
Частота отказов:
Виды отказов:
Действия оператора:
Режимы работы:
Эти аспекты помогают обеспечить безопасность системы, минимизируя риск причинения вреда людям и имуществу, и позволяют разработать соответствующие механизмы для предотвращения и реагирования на опасные ситуации.
Вигерс ✅
ГОСТ-34 ✅ (2.6.1.5. Требования безопасности, 2.6.1.11. Требования к защите от влияния внешних воздействий)
SRS IEEE ✅ (5.2 Требования к защите)
Пример (не про медицинскую систему TelMed):
У пользователя должна быть возможность увидеть список всех потенциально опасных операций системы, например, операций с высоким напряжением в электрических системах, с указанием конкретных шагов, которые необходимо предпринять для обеспечения безопасности.
Безопасность (security)
Это характеристика системы, определяющая её способность защищать данные и ресурсы от несанкционированного доступа, использования, раскрытия, изменения или уничтожения.
Безопасность включает следующие аспекты:
Вигерс ✅
ГОСТ-34 ✅ (2.6.1.9. Требования к защите информации от несанкционированного доступа*)
SRS IEEE ✅ (5.3 Требования безопасности)
*P.S. Защита и безопасность по ГОСТ-34 точно не перепутаны.
Примеры:
Удобство использования
Это характеристика системы, определяющая её способность быть понятной, легкой и эффективной в использовании для пользователей.
Вигерс ✅
ГОСТ-34 ✅ (2.6.1.6. Требования к эргономике и технической эстетике)
SRS IEEE ✅ (3.1 User Interfaces)
Прекрасные примеры из книги Вигерса:
Плохой пример:
Эффективность
Это показатель того, насколько хорошо система использует производительность процессора, место на диске, память или полосу пропускания соединения. Если система тратит слишком много доступных ресурсов, пользователи заметят снижение производительности.
Эффективность включает следующие аспекты:
Вигерс ✅
ГОСТ-34 ❌
SRS IEEE ❌
Примеры требований к эффективности:
Возможность модификации
Это характеристика системы, показывающая, насколько просто разбираться в дизайне и коде программного обеспечения, изменять его и расширять.
Это означает, что система должна быть спроектирована таким образом, чтобы изменения могли вноситься легко и без существенных затрат времени и ресурсов любым программистом или другим профильным ИТ-специалистом.
Высокий уровень этого показателя достигается за счет:
В условиях современной разработки это ожидается по умолчанию. В ТЗ и в требования обычно не вносят.
Вигерс ✅
ГОСТ-34 ❌
SRS IEEE ❌
Переносимость
Определяет усилия, необходимые для перемещения программного обеспечения из одной операционной системы в другую. Это означает, что программное обеспечение должно быть спроектировано так, чтобы его можно было легко адаптировать для работы в различных операционных системах и средах.
В условиях современной разработки на страте определяют какие ОС должны быть поддержаны. Если нужно, чтобы система была переносима, то подбирают специальные языки программирования для десктоп- и мобильных приложений, которые позволяют писать программный код один раз, и из него собирать одну и ту же программу под iOS + Android / Windows + Linux +MacOS.
Вигерс ✅
ГОСТ-34 ❌
SRS IEEE ✅ (5.4 Атрибуты качества программного обеспечения)
Возможность повторного использования
Это показатель того, насколько легко можно использовать программные компоненты в других приложениях. Такое ПО должно быть:
Вигерс ✅
ГОСТ-34 ❌
SRS IEEE ✅ (5.4 Атрибуты качества программного обеспечения)
Примеры:
Масштабируемость
Это характеристика системы, показывающая её способность справляться с увеличением нагрузки. Это означает, что система должна эффективно работать при росте числа пользователей, объема данных, сложности операций и количества функций в ней.
Вигерс ✅
ГОСТ-34 ❌
SRS IEEE ❌
Примеры:
Проверяемость и тестируемость
Это характеристики системы, показывающие, насколько легко можно проверить её корректность и протестировать различные аспекты её работы.
Раздел может включать требования к разработке тест-кейов, покрытию ПО автотестами или требования к проведению ручного тестирования.
Вигерс ✅
ГОСТ-34 ✅ (6. Порядок контроля и приемки системы)
SRS IEEE ✅ (5.4 Атрибуты качества программного обеспечения)
Ремонтопригодность
Это способность системы или её компонентов быть легко обслуживаемыми, исправляемыми и адаптируемыми к новым требованиям.
Она включает в себя набор требований к эксплуатации, техническому обслуживанию, ремонту и хранению, которые обеспечивают долговременную и эффективную работу системы:
Условия и регламент эксплуатации:
Предварительные требования:
Требования к обслуживающему персоналу:
Требования к запасным изделиям и приборам:
Требования к регламенту обслуживания:
Эти аспекты обеспечивают, что система будет легко и эффективно поддерживаться, что минимизирует простои и затраты на обслуживание и ремонт, а также гарантирует длительный срок службы и стабильную работу системы.
Вигерс ❌
ГОСТ-34 ✅ (2.6.1.8. Требования к эксплуатации, техническому обслуживанию, ремонту и хранению компонентов системы)
SRS IEEE ✅ (5.4 Атрибуты качества программного обеспечения)
Условия эксплуатации
Это совокупность факторов и требований, определяющих, как должна использоваться система для обеспечения её надежной и эффективной работы.
Включают:
Режим эксплуатации:
Окружающая среда:
Энергоснабжение:
Местоположение и размещение:
Вигерс ❌
ГОСТ-34 ✅ (2.6.1.14.3 Требования к системе, связанные с особыми условиями эксплуатации)
SRS IEEE ❌
Пример (не для медицинской системы TelMed):
Требования к транспортабельности для подвижных АС
Требования, обеспечивающие транспортабельность технических средств системы, а также требования к транспортным средствам.
Вигерс ❌
ГОСТ-34 ✅ (2.6.1.7)
SRS IEEE ❌
Требования по стандартизации и унификации
Включают:
Вигерс ❌
ГОСТ-34 ✅ (2.6.1.13)
SRS IEEE ❌
Примеры:
Есть предложения или вопросы по чек-листу?
Мы всегда готовы улучшать и совершенствовать нашу базу знаний!
Пишите ваши пожелания и предложения на info@getanalyst.ru или в Telegram-чат GetAnalyst.
Мы используем файлы cookie, для персонализации сервисов и повышения удобства пользования сайтом. Если вы не согласны на их использование, поменяйте настройки браузера.