Что такое качество программного обеспечения и его основные характеристики
В разных источниках терминология характеристик качества программного обеспечения отличаются друг от друга. Авторы создали различные модели качества со своим набором характеристик и атрибутов, и они могут быть полезны для обсуждения, планирования и оценки качества программных продуктов.
В 1979 году Crosby определил качество как «соответствие требованиям» («conformance to requirements»), а Juran и Gryna в 1970 году определили качество как «пригодность к использованию» (fitness for use).
«Соответствие требованиям» предполагает, что требования должны быть столь четко определены, что не могут быть поняты и интерпретированы некорректно. Какие-либо несоответствия должны рассматриваться как дефекты – отсутствие качества.
«Пригодность к использованию» принимает во внимание требования и ожидания конечных пользователей продукта, т.е. предоставляемый продукт или сервис будет удобным для их потребностей. Однако разные пользователи могут использовать продукт по-разному. А это значит, что продукт должен обладать максимально разными вариантами использования. Согласно определению Juran каждый вариант использования – это характеристика качества и все они могут быть классифицированы по категориям, как параметры пригодности к использованию. Иными словами, делает ли данный продукт то, в чем я нуждаюсь, облегчает ли он мою работу, могу ли я использовать его так, как мне удобно.
Проблема в том, что специфицируемые и собранные требования это обычно только часть всех реальных потребностей и ожиданий заказчика. Зачастую неявные требования настолько очевидны для заказчика или пользователя, что он даже не предполагает, что они неизвестны разработчикам. А разработчики, в свою очередь, не готовы брать на себя ответственность за то, что не описано в требованиях. Где же выход из этого круга?
В первую очередь – это правильное построение коммуникации с заказчиком, начиная с самого первого этапа. Качественное выявление потребностей заказчика менеджером или бизнес-аналитиком. Однако не менее важные факторы – это качественное написание программистом кода и качественная проверка ПО инженером. Все это залог безупречного качества программного обеспечения.
Заказчик будет удовлетворен и приведет с собой еще заказчиков только в том случае, если купленный товар будет полностью удовлетворять его реальным и жизненным потребностям, как специфицированным, так и нет.
Вместе с тем все это не так отвлеченно, как может показаться с первого раза. Существует набор стандартов ISO 9000, регулирующий общие принципы качества во всех отраслях. Наиболее важными стандартами в разработке ПО являются:
- ISO 9000:2000 Quality management systems — Fundamentals and vocabulary;
- ISO 9001:2000 Quality management systems - Requirements. Models for quality assurance in design, development, production, installation, and servicing;
- ISO 9004:2000 Quality management systems - Guidelines for performance improvements;
- ISO/IEC 90003:2004 Software engineering — Guidelines for the application of ISO 9001:2000 to computer software.
Так же у каждой компании могут быть разработаны свои стандарты качества, отвечающие конкретной специфике работы и соответственно ее требованиям.
Что же все-таки с определением? На сегодняшний день их существует много, и все они друг на друга крайне похожи, можете сами в этом убедиться:
- [1061-1998 IEEE Standard for Software Quality Metrics Methodology] Качество ПО – это степень, в которой ПО обладает необходимой комбинацией свойств.
- [IEEE Std 610.12-1990] Качество ПО – степень, в которой система, компонент или процесс удовлетворяют потребности или ожидания заказчика или пользователя.
- [ISO/IEC 25000:2014] Качество ПО – способность программного продукта при заданных условиях отвечать установленным или предполагаемым потребностям.
- [ISO 8402:1994 Quality management and quality assurance] Качество ПО – это совокупность характеристик ПО, относящихся к его способности удовлетворять установленные и предполагаемые потребности.
Основные характеристики качества (Software quality) ПО
Основные характеристики качества программного обеспечения (Software Quality Characteristics) описаны международными стандартами ISO 9126 и ISO 25010. На данный момент наиболее распространена и широко используется многоуровневая модель качества программного обеспечения, представленная в наборе стандартов ISO 9126 их 6:
- Функциональность (Functionality) – определяется способностью ПО решать задачи, отвечающие зафиксированным и ожидаемым потребностям пользователя, при заданных условиях использования ПО. То есть эта характеристика отвечает за то, что ПО работает исправно и точно, функционально совместимо, отвечает стандартам отрасли и защищен от несанкционированного доступа.
- Удобство использования (Usability) – возможность легкого понимания, изучения, использования и привлекательности ПО для пользователя.
- Эффективность (Efficiency) – способность ПО обеспечивать необходимый уровень производительности согласно выделенным ресурсам, времени и другим указанным условиям.
- Надежность (Reliability) – способность ПО выполнять необходимые задания в указанных условиях в течение заданного промежутка времени или указанного количества операций. Атрибуты данной характеристики – это завершенность и целостность всей системы, способность самостоятельно и корректно восстанавливаться после сбоев в работе, отказоустойчивость.
- Удобство сопровождения (Maintainability) – легкость, с которой ПО может анализироваться, тестироваться, изменяться для исправления дефектов, для реализации новых требований, для облегчения дальнейшего обслуживания и адаптироваться к существующему окружению.
- Портативность (Portability) – характеризует ПО с точки зрения легкости его переноса из одного окружения (software/hardware) в другое.
В более новой версии ISO 25010 список расширен до 8, добавлены
- совместимость (Compatibility)
- безопасность (Security).
Эти критерии разработаны международной организацией ISO для стандартизированной оценки и улучшения качества ПО по всему миру. Они помогают четко определить, какие свойства программного продукта считаются важными для его качества и успешного использования.
Пример: Что такое качество в вашем понимании для ноутбука согласно стандартам?
- Функциональность - поддержка современных операционных систем, наличие Full HD камеры и встроенного микрофона для качественной работы с мультимедийными и коммуникационными задачами.
- Удобство использования - монитор 17 дюймов, удобный тачпад, большая кнопка Enter, подсветка клавиатуры.
- Эффективность - Современный процессор Intel, 32 Gb оперативной памяти, энергоэффективность.
- Надежность - Отказоустойчивость. Корпус из металла, а не пластика. Длительное время работы от аккумулятора.
- Удобство сопровождения — простота обновления и ремонта компонентов, например, возможность легко добавить дополнительную планку памяти или заменить жесткий диск.
- Портативность - компактность, небольшой вес, современные разъёмы для подключения внешних устройств и удобный физический доступ к жесткому диску для быстрой замены и переноски.
- Совместимость — способность системы работать с другими системами и программами без конфликтов. Например, поддержка процессором функций виртуализации позволяет запускать ПО, предназначенное для разных операционных систем и процессоров.
- Безопасность — средства и механизмы защиты информации и ресурсов от несанкционированного доступа и угроз. Например, аппаратное шифрование данных на жестком диске ноутбука.
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга