Качество ПО и ISO 25010
ISO 25010 — это современный международный стандарт для оценки качества программных продуктов. Он пришёл на смену устаревшей норме ISO 9126 и предоставляет унифицированный словарь для описания, оценки и количественной фиксации требований к качеству. В этой статье разбираются все восемь основных характеристик с их подхарактеристиками и показывается, как их применять в реальных проектах.
In a Nutshell
- ISO 25010 определяет восемь основных характеристик качества ПО.
- Каждая основная характеристика включает несколько подхарактеристик, уточняющих измеряемые параметры.
- Стандарт помогает формулировать требования к качеству и согласовывать их с заинтересованными сторонами.
- Он заменяет ISO 9126 и добавляет области безопасности и совместимости.
Краткое описание
ISO 25010 (ISO/IEC 25010:2011) входит в серию ISO/IEC 25000, также известную как SQuaRE (Systems and Software Quality Requirements and Evaluation). Стандарт разделяет качество программных продуктов на восемь основных характеристик, каждая из которых содержит подхарактеристики. Эта структура позволяет систематически определять, оценивать и измерять качество.
Восемь основных характеристик
1. Functional Suitability (Функциональная пригодность)
Определяет, предоставляет ли ПО необходимые пользователю функции.
- Functional Completeness: Присутствуют все требуемые функции.
- Functional Correctness: Функции выдают корректные результаты.
- Functional Appropriateness: Функции подходят по назначению и не перегружены лишним.
2. Performance Efficiency (Эффективность производительности)
Описывает производительность и потребление ресурсов в определённых условиях.
- Time Behaviour: Время отклика и время обработки.
- Resource Utilization: Потребление CPU, памяти, сетевых ресурсов, энергии.
- Capacity: Максимальная нагрузка, которую может обработать система.
3. Compatibility (Совместимость)
Описывает возможность взаимодействия с другими системами.
- Co-existence: Одновременная работа с другими системами без конфликтов.
- Interoperability: Обмен данными и их использование с другими системами.
4. Usability (Удобство использования)
Описывает, насколько просто пользователю работать с ПО.
- Appropriateness Recognizability: Распознаваемость пригодности для задачи.
- Learnability: Затраты на обучение работе с системой.
- Operability: Удобство управления во время использования.
- User Error Protection: Защита от ошибок пользователя.
- User Interface Aesthetics: Эстетика и дизайн интерфейса.
- Accessibility: Пригодность для людей с ограничениями.
5. Reliability (Надёжность)
Описывает способность функционировать в определённых условиях.
- Maturity: Частота отказов при нормальной работе.
- Availability: Доступность, когда она требуется.
- Fault Tolerance: Продолжение работы при возникновении ошибок.
- Recoverability: Восстановление после сбоя.
6. Security (Безопасность)
Описывает защиту информации и данных.
- Confidentiality: Доступ только для авторизованных лиц.
- Integrity: Защита от несанкционированных изменений.
- Non-repudiation: Возможность доказать выполненные действия.
- Accountability: Отслеживаемость действий.
- Authenticity: Проверка подлинности пользователей или ресурсов.
7. Maintainability (Поддерживаемость)
Описывает, насколько легко изменять ПО.
- Modularity: Разделение на отдельные компоненты.
- Reusability: Возможность переиспользовать компоненты.
- Analysability: Простота обнаружения дефектов.
- Modifiability: Простота внесения изменений.
- Testability: Простота проведения тестов.
8. Portability (Переносимость)
Описывает возможность развёртывания ПО в различных окружениях.
- Adaptability: Адаптируемость к разным окружениям.
- Installability: Простота установки.
- Replaceability: Возможность замены на другое ПО.
Пример из практики: профиль качества для мобильного банка
Security:
- Confidentiality: Сквозное шифрование
- Integrity: Подписанные транзакции
- Authenticity: Двухфакторная аутентификация
Reliability:
- Availability: 99,99 процента
- Fault Tolerance: Failover-кластер
- Recoverability: Point-in-Time восстановление
Performance Efficiency:
- Time Behaviour: Вход за 500 миллисекунд
- Capacity: 10 000 одновременных пользователей
- Resource Utilization: Лимит памяти 512 МБ на инстанс
Maintainability:
- Testability: 80 процентов покрытия кода
- Modularity: Микросервисы с чёткими интерфейсами
- Analysability: Централизованное логирование и трассировка
Преимущества и недостатки
Преимущества
- Единый язык: Все участники проекта используют одинаковую терминологию.
- Измеримые требования: Качество становится конкретным и проверяемым.
- Лучшая архитектура: Решения принимаются на основе чётких целей качества.
- Значимость для экзаменов: Стандарт принят во многих образовательных программах и сертификациях.
Недостатки
- Простор для интерпретации: Не все подхарактеристики одинаково важны в каждом контексте.
- Затраты на измерение: Полная оценка требует значительных ресурсов.
- Теория без практики: Без применения на деле стандарт остаётся просто теорией.
Ключевые моменты для подготовки к экзаменам
- Назвать и объяснить восемь основных характеристик ISO 25010.
- Обосновать различия между ISO 9126 и ISO 25010.
- Соотнести подхарактеристики с основными характеристиками.
- Формулировать измеримые требования к качеству.
- Выявлять конфликты между различными характеристиками качества.
Типичные экзаменационные вопросы (с кратким ответом)
-
Сколько основных характеристик в ISO 25010? Восемь.
-
Какие две основные характеристики были добавлены по сравнению с ISO 9126? Security и Compatibility.
-
К какой основной характеристике относится Interoperability? К Compatibility.
-
Что описывает Maintainability? Простоту, с которой ПО можно изменять, тестировать и анализировать.
-
Назови три подхарактеристики Performance Efficiency. Time Behaviour, Resource Utilization, Capacity.
Продолжение в пути обучения качеству ПО
Следующая статья в пути обучения качеству ПО посвящена метрикам качества ПО — способам измерения качества через показатели вроде Code Coverage, Cyclomatic Complexity и MTTR.
Основные источники
- https://iso25000.com
- https://www.iso.org/standard/35733.html
- https://en.wikipedia.org/wiki/ISO/IEC_25010



