Многоуровневая модель качества ПО в стандарте ISO 9126
Качество определяется в стандарте ISO 9126 как вся совокупность его характеристик, относящихся к возможности удовлетворять высказанные или подразумеваемые потребности всех заинтересованных лиц.
Стандарт ISO 9126 предлагает использовать для описания внутреннего и внешнего качества ПО многоуровневую модель.
На верхнем уровне выделено 6 основных характеристик качества ПО.
Внешние факторы качества, которые могут обнаружить пользователи:
- корректность;
- устойчивость;
- расширяемость;
- повторное использование;
- совместимость;
- эффективность;
- переносимость;
- простота использования;
- функциональность;
- своевременность.
Внутренние факторы качества, которые видят только разработчики:
- читаемость;
- модульность;
- лёгкость обнаружения ошибок.
Основные характеристики многоуровневой модели качества ПО
1. Функциональность
Определение:
Функциональность программного обеспечения — это его способность выполнять требуемые функции и задачи, а также соответствовать требованиям пользователя.
Полнота: Программа должна реализовывать все необходимые функции для выполнения задач пользователя. Все ожидаемые компоненты и модули должны быть включены.
Пример: Бухгалтерская программа должна уметь корректно рассчитывать налоги, вести отчетность и учитывать все возможные виды транзакций.
Корректность: ПО должно выполнять свои функции точно и без ошибок.
Пример: При переводе денег между счетами в интернет-банкинге, система должна правильно рассчитывать комиссии и мгновенно обновлять баланс.
Соответствие требованиям: Программное обеспечение должно соответствовать функциональным и техническим требованиям, указанным в спецификациях.
Пример: Медицинская программа должна соответствовать стандартам и протоколам безопасности данных пациентов.
Совместимость: ПО должно взаимодействовать с другими системами и программными продуктами.
Пример: Программа управления складом должна корректно обмениваться данными с системами бухгалтерского учета.
2. Надежность
Определение:
Надежность характеризует способность ПО работать без сбоев в течение определенного времени и правильно восстанавливаться после ошибок.
Безотказность: ПО должно продолжать работать, даже если возникает ошибка или сбой, либо должно минимизировать их влияние на пользователя.
Пример: Онлайн-магазин должен продолжать функционировать при высокой нагрузке, даже если некоторые серверы выходят из строя.
Восстанавливаемость: Способность ПО быстро восстанавливаться после сбоев и аварий, а также минимизировать потери данных.
Пример: В случае сбоя серверов система резервного копирования должна быстро восстановить данные и работоспособность программы.
Надежность во времени: Это способность системы стабильно работать на протяжении долгого времени без необходимости частого вмешательства разработчиков.
Пример: Программное обеспечение для промышленных систем должно функционировать в условиях постоянной эксплуатации в течение нескольких лет.
Время безотказной работы: Способность ПО быть доступным для использования в течение определенного времени.
Пример: Интернет-банкинг должен быть доступен пользователям круглосуточно с минимальными периодами недоступности.
3. Удобство использования
Определение:
Удобство использования характеризует, насколько просто пользователям изучать и использовать ПО для достижения своих целей.
Легкость изучения: Насколько быстро и легко пользователи могут начать работать с программой, освоив основные функции.
Пример: Приложение для заметок должно позволять пользователю понять основные функции без долгого обучения.
Удобство взаимодействия: Насколько легко пользователю взаимодействовать с интерфейсом программы.
Пример: Мобильное приложение должно иметь логичную навигацию, где основные функции находятся на видных местах.
Удовлетворенность: Степень удовлетворения пользователей программным продуктом в процессе работы.
Пример: Приложение с удобным и приятным интерфейсом вызывает у пользователя положительные эмоции.
Эстетика и дизайн: Визуальная привлекательность и функциональность интерфейса.
Пример: Приложение для чтения книг должно иметь аккуратный и не нагромождённый интерфейс для долгого и комфортного использования.
4. Эффективность
Определение:
Эффективность ПО определяется тем, насколько оптимально оно использует ресурсы, такие как процессорное время, память и энергопотребление.
Время отклика: Насколько быстро ПО реагирует на запросы пользователя и выполняет операции.
Пример: Программа для обработки изображений должна быстро применять фильтры, даже на больших изображениях.
Использование ресурсов: Насколько эффективно программа использует аппаратные ресурсы, такие как память и процессор.
Пример: Мобильное приложение должно потреблять минимальное количество батареи и работать плавно даже на устаревших устройствах.
Масштабируемость: Способность программы сохранять свою производительность при увеличении нагрузки (например, увеличении числа пользователей или данных).
Пример: Сервис потоковой передачи видео должен обеспечивать высокое качество видео, независимо от количества подключенных пользователей.
5. Сопровождаемость
Определение: сопровождаемость — это способность программного обеспечения легко поддаваться изменениям, адаптации и исправлениям.
Анализируемость: насколько легко понять структуру программы и выявить ошибки или недостатки.
Пример: хорошо документированный код с комментариями упрощает понимание и внесение изменений.
Модифицируемость: легкость внесения изменений в код программы для добавления новых функций или исправления ошибок.
Пример: если требуется изменить интерфейс приложения, то сопровождаемое ПО позволит сделать это без кардинальных изменений в коде.
Тестируемость: насколько легко можно протестировать ПО для выявления ошибок и соответствия требованиям.
Пример: Тестируемое ПО позволяет разработчикам легко создавать тесты для проверки новых функций и исправлений.
Стабильность: способность программы сохранять свою производительность и поведение при внесении изменений.
Пример: Обновления приложения должны быть стабильными и не влиять на основные функции.
6. Переносимость
Определение: переносимость ПО характеризует его способность работать на различных платформах и устройствах без значительных изменений.
Адаптируемость: легкость адаптации ПО к новой операционной системе или аппаратной среде.
Пример: Веб-приложение, которое может запускаться на Windows, macOS и Linux без изменения кода.
Устанавливаемость: насколько просто установить программу на различные системы.
Пример: Программа должна легко устанавливаться и запускаться на разных платформах без сложных настроек.
Заменяемость: способность программы заменять другую программу с аналогичными функциями без серьезных изменений.
Пример: Замена одного текстового редактора на другой без необходимости переучивать пользователей.