В современной индустрии разработки программного обеспечения проблемы с требованиями остаются одной из главных причин провала проектов. Часто программное обеспечение рассматривается изолированно, без учета той системы, в которую оно интегрируется. Именно для решения этой проблемы Международная организация по стандартизации (ISO) выпустила стандарт ISO/IEC 25030, который кардинально меняет подход к формулированию требований к качеству ПО.
Что такое ISO/IEC 25030?
ISO/IEC 25030 — это международный стандарт, входящий в обширную серию SQuaRE (Systems and software Quality Requirements and Evaluation — Требования и оценка качества систем и программного обеспечения). Он предоставляет концептуальный фреймворк для спецификации требований к качеству программных продуктов и систем.
Важно понимать ключевую особенность данного стандарта: он не предписывает конкретных метрик качества ПО и не навязывает какой-либо определенный процесс разработки. Его главная цель, дать инженерам и аналитикам универсальный язык и структуру для работы с требованиями.
Системный подход к качеству
Одним из важнейших нововведений ISO/IEC 25030 является переход к системной перспективе. Стандарт рассматривает программное обеспечение не как самостоятельную сущность, а как часть более крупной системы. Это означает, что качество ПО должно оцениваться в контексте его взаимодействия с аппаратным обеспечением, пользователями, бизнес-процессами и внешней средой.
В рамках этого подхода стандарт предлагает специфицировать требования к качеству в виде:
- Конкретных мер (измерений), которые позволяют объективно оценить свойство системы;
- Целевых значений, которых должна достичь система по этим мерам.
Связь с ISO/IEC 25010
Стандарт ISO/IEC 25030 не существует в вакууме. Для определения самих характеристик качества (что именно мы измеряем) он опирается на другой широко известный стандарт — ISO/IEC 25010.
Напомним, что ISO/IEC 25010 определяет восемь основных характеристик качества:
- Функциональная пригодность (Functional suitability)
- Уровень производительности (Performance efficiency)
- Совместимость (Compatibility)
- Удобство использования (Usability)
- Надежность (Reliability)
- Безопасность (Security)
- Сопровождаемость (Maintainability)
- Переносимость (Portability)
Если ISO/IEC 25010 говорит «Надежность — это способность системы работать без сбоев», то ISO/IEC 25030 подсказывает, как именно записать это в виде требования: «Система должна обеспечивать время наработки на отказ (мера) не менее 10 000 часов (целевое значение)».
Почему требования к качеству так важны?
Как отмечают исследователи из IEEE (Институт инженеров электротехники и электроники), тема требований к качеству ПО является невероятно важной, но при этом несколько запущенной (neglected topic) в системной и программной инженерии.
Нечеткие, неизмеримые или отсутствующие нефункциональные требования ведут к:
- Архитектурным ошибкам, которые дорого исправлять на поздних стадиях;
- Неудовлетворенности пользователей готовым продуктом;
- Полному провалу проекта из-за перерасхода бюджета и сроков.
Эволюция стандарта
Стандарт прошел долгий путь развития:
- 2008 год, первая публикация стандарта, которая привлекла внимание индустрии к необходимости системного подхода к требованиям качества.
- 2019 год (август) — выход обновленной версии стандарта (ISO/IEC 25030:2019), которая еще больше укрепила позиции системного подхода и уточнила фреймворк спецификации требований.
Стандарт ISO/IEC 25030 является незаменимым инструментом для системных аналитиков, архитекторов и менеджеров проектов. Он помогает перевести абстрактные пожелания заказчика (такие как «система должна быть быстрой» или «система должна быть надежной») в строгие, измеримые требования в контексте всей системы. Использование этого фреймворка значительно снижает риски ошибок на этапе проектирования и повышает шансы на успешную сдачу проекта.