Характеристики качества по ISO 9126 и ISO 25010
Качество ПО занимает центральное место в экзаменах IHK для специалистов по информатике и в повседневной практике разработки. На экзаменах требуется объяснять характеристики качества, оценивать их и применять в документации проектов. В реальной работе качество ПО определяет успех проектов, удовлетворенность клиентов и долгосрочную поддерживаемость кода. Понимание ISO стандартов помогает профессионально обсуждать качество и устанавливать измеримые критерии.
Эта статья содержит определение терминов, связанных с характеристиками качества по ISO 9126 и ISO 25010, включая экзаменационные вопросы и теги.
В двух словах
- ISO 9126: более старая модель с 6 основными характеристиками.
- ISO 25010: модернизированная версия с 8 характеристиками, добавлены безопасность и совместимость.
Обе модели служат для измеримой спецификации, оценки и обсуждения качества ПО.
Краткое описание
ISO 9126 (6 характеристик)
- Функциональность
- Надежность
- Удобство использования
- Эффективность
- Модифицируемость
- Переносимость
ISO 25010 (8 характеристик)
- Functional Suitability
- Performance Efficiency
- Compatibility
- Usability
- Reliability
- Security
- Maintainability
- Portability
Важные сдвиги и их практическое значение:
Интероперабельность переместилась из функциональности в совместимость В ISO 9126 интероперабельность входила в функциональность как способность взаимодействовать с другими системами. В ISO 25010 это стало частью совместимости, потому что речь идет не просто о функции, а о принципиальной способности объединять разные системы. Пример: CRM-система должна не только экспортировать данные (функция), но и работать с ERP-системами разных производителей (совместимость).
Эффективность стала Performance Efficiency Эффективность касалась в основном использования ресурсов. Performance Efficiency расширяет это за счет емкости и поведения при нагрузке. Пример: веб-приложение должно быть не только быстрым (эффективность), но и стабильно работать при 1000 одновременных пользователей (емкость).
Безопасность стала самостоятельной характеристикой Раньше безопасность часто входила в состав других характеристик. Теперь это отдельная основная характеристика, так как кибербезопасность стала критически важной. Пример: банковское приложение должно не только работать, но и быть защищено от атак.
Модифицируемость стала Maintainability Maintainability намного шире и включает модульность, переиспользуемость и тестируемость. Пример: система магазина должна быть не только легко изменяемой, но и простой для тестирования, с переиспользуемыми компонентами.
Переносимость стала Portability Portability определена более точно и включает инсталлируемость и взаимозаменяемость. Пример: приложение должно не только работать на разных ОС, но и просто устанавливаться и мигрироваться.
Точки, важные для экзамена
- Отличия между 9126 и 25010 (6 против 8 характеристик, новые приоритеты)
- Назовите типичные подхарактеристики (Functional Completeness, Time Behaviour, Availability, Modifiability, Installability)
- Определите метрики и подтверждения (время отклика, частота ошибок, MTTR, метрики кода, оценки удобства)
- Формулируйте приемку как измеримую (критерии приемки для каждой подхарактеристики)
- Выявляйте компромиссы (производительность против безопасности, поддерживаемость против переносимости)
- Используйте сопоставление 9126 с 25010 (модернизация унаследованного кода)
- Экономика: качество снижает затраты на ошибки и ускоряет доставку
Ключевые компоненты
- Основные характеристики и подхарактеристики (обеих норм)
- Руководство по сопоставлению (9126 с 25010)
- Концепция измерений (целевые значения, процедуры, интеграция CI)
- Артефакты доказательства (спецификация требований, тесты, мониторинг)
- Управление (ответственность, обзоры)
- Риски и противодействие (например, кеширование против консистентности)
- Документация (сквозная прослеживаемость)
Практический пример (Web API для обработки заказов)
Functional Suitability:
- Functional Completeness: все Use-Case эндпоинты присутствуют
- Functional Correctness: скидка и налог вычисляются в 100% правильно (Unit и Contract тесты)
- Functional Appropriateness: нет лишних эндпоинтов
Performance Efficiency:
- Time Behaviour: 95-перцентиль ниже 200 миллисекунд при 100 пользователях
- Resource Utilization: CPU ниже 60%, Memory OOM Rate 0
- Capacity: 500 запросов в секунду без нарушений SLA
Compatibility:
- Interoperability: совместим с OpenAPI, Contract тесты зеленые
- Co-existence: работает параллельно на мультитенантных системах
Usability:
- Learnability: онбординг менее 30 минут (успешное выполнение задачи)
- User Error Protection: валидация предотвращает 99% синтаксических ошибок
- Accessibility: WCAG AA соответствие
Reliability:
- Availability: 99.9% в месяц
- Fault Tolerance: Circuit Breaker при отказах внешних систем
- Recoverability: MTTR менее 30 минут (Warm Standby)
Security:
- Confidentiality: шифрование транспорта, секреты в Vault
- Integrity: подписанные события, контрольные суммы
- Authenticity: OIDC и MFA для администраторов
- Accountability: неизменяемый Audit Log
Maintainability:
- Modularity: слои, нет циклов
- Analysability: логи с корреляциями, трассировка
- Modifiability: Feature Flags, четкий scope
- Testability: 70% Unit, 20% Integration, 10% E2E
Portability:
- Adaptability: настраиваемые тенанты
- Installability: однокомандное развертывание
- Replaceability: БД заменяется через Port Adapter
Преимущества и недостатки
Преимущества
- Единый язык для обсуждения качества
- Измеримые цели помогают лучше принимать архитектурные решения
- Снижение затрат на ошибки и эксплуатацию
- Более быстрая приемка
Недостатки
- Затраты на определение и измерение
- Возможные конфликты целей
- Риск бюрократизации без живой практики
Типичные экзаменационные вопросы (с кратким ответом)
- Отличие ISO 9126 от 25010? 25010 имеет 8 вместо 6 характеристик, новые: безопасность и совместимость, более четкие подхарактеристики.
- Где находится интероперабельность в 25010? Под совместимостью.
- Что входит в Performance Efficiency? Time Behaviour, Resource Utilization, Capacity.
- Подхарактеристики Maintainability? Modularity, Reusability, Analysability, Modifiability, Testability.
- Пример измеримого требования для надежности? Доступность 99.9% в месяц, MTTR менее 30 минут.
Основные источники
- https://iso25000.com
- https://en.wikipedia.org/wiki/ISO/IEC_25010
- https://en.wikipedia.org/wiki/ISO/IEC_9126



