Критерии качества программного обеспечения
Модель качества программного обеспечения (ПО) описана в стандарте ИСО/МЭК 9126-1:1998 «Характеристики и метрики качества программного обеспечения» и категоризирует атрибуты качества ПО по шести характеристикам: функциональные возможности, надежность, практичность, эффективность, сопровождаемость и мобильность (рис.9).
Рис.9. Основные характеристики качества программного обеспечения
Рассмотрим эти категории и их составляющие более подробно.
Функциональные возможности (Functionality)
Представляют собой способность ПО обеспечивать функции, удовлетворяющие установленным и подразумеваемым потребностям при использовании ПО в заданных условиях.
Пригодность(Suitability) – способность ПО обеспечивать соответствующий набор функций для указанных задач и целей пользователя.
Правильность (Accuracy) – способность ПО обеспечивать правильные или приемлемые результаты или эффекты.
Способность к взаимодействию (Interoperability) – способность ПО взаимодействовать с одной или большим числом указанных систем. Способность к взаимодействию используется вместо совместимости, чтобы избежать возможной путаницы с заменяемостью.
Защищенность (Security) – способность ПО защищать информацию и данные так, чтобы не уполномоченные субъекты или системы не могли читать или изменять их, а уполномоченные субъекты или системы не получали отказа на доступ к ним.
Согласованность (Compliance) – способность ПО придерживаться стандартов, соглашений или норм из законов и подобных предписаний, связанных с областью применения.
Надежность (Reliability)
Это способность ПО сохранять свой уровень качества функционирования при использовании в указанных условиях. Ограничения в надежности являются следствием ошибок в требованиях, проекте и реализации. Отказы из-за этих дефектов в большей степени зависят от способа использования ПО и выбранных режимов работы программы, чем от времени ее выполнения.
Завершенность (Maturity) – способность ПО предотвращать отказ как следствие ошибок в ПО.
Устойчивость к ошибке (Fault tolerance) – способность ПО поддерживать заданный уровень качества функционирования в случаях ошибок в ПО или нарушения установленного интерфейса.
Восстанавливаемость (Recoverability) – способность ПО в случае отказа восстанавливать уровень качества функционирования и поврежденные данные. После отказа, ПО иногда бывает неработоспособно в течение некоторого периода времени, длина которого оценивается его восстанавливаемостью.
Доступность (Availability) – способность ПО быть в состоянии выполнять требуемую функцию в данный момент времени при установленных условиях использования. Внешне, доступность может оцениваться временем, в течение которого ПО находится в работоспособном состоянии, в пропорции от общего времени. Следовательно, доступность – комбинация завершенности (от которой зависит частота отказа) устойчивость к ошибке и восстанавливаемости (которые обусловливают длительность простоя после каждого отказа).
Согласованность (Compliance) – способность ПО придерживаться стандартов, соглашений или норм из законов и подобных предписаний, связанных с надежностью.
Практичность (Usability)
Это способность ПО, обусловливающая легкость его понимания, изучения и использования, а также привлекательность для пользователя при использовании в указанных условиях.
Понятность (Understandability) – способность ПО, обеспечивающая пользователю понимание, является ли ПО пригодным, и как его можно использовать для конкретных задач и условий использования. Понятность зависит от документации и первичных впечатлений от ПО.
Изучаемость (Learnability) – способность ПО, обеспечивающая изучение пользователем его применения.
Легкость использования (Operability) – способность ПО, обеспечивающая пользователю возможность его эксплуатировать и управлять им. Аспекты изменяемости, адаптируемости и легкости установки могут быть предпосылками для легкости использования. Легкость использования соответствует управляемости, устойчивости к ошибке и согласованности с ожиданиями пользователя. Для системы, которая эксплуатируется пользователем, комбинация функциональных возможностей, надежности, практичности и эффективности можно измерить внешне через качество в использовании.
Привлекательность (Attractiveness) – способность ПО нравиться пользователю. Привлекательность связана с атрибутами ПО, обусловливающими большую привлекательность ПО для пользователя.
Согласованность (Compliance) – способность ПО придерживаться стандартов, соглашений, руководств по стилю или нормам, связанных с практичностью.
Эффективность (Efficiency)
Это способность ПО обеспечивать требуемую производительность относительно количества используемых ресурсов в установленных условиях. Ресурсы могут включать другие программные продукты, аппаратные средства, материалы (например, бумага для распечатки, дискеты). Для системы, которая эксплуатируется пользователем, комбинация функциональных возможностей, надежности, легкости использования и эффективности можно измерить внешне через качество в использовании.
Временная эффективность (Time behaviour) – способность ПО обеспечивать приемлемые времена отклика и обработки, а также пропускную способность при выполнении его функций в установленных условиях.
Использование ресурсов (Resource utilization) – способность ПО использовать приемлемые ресурсы в течение приемлемого времени при выполнении его функций в установленных условиях.
Согласованность (Compliance) – способность ПО придерживаться стандартов или соглашений, связанных с эффективностью.
Сопровождаемость (Maintainability)
Это способность ПО к модификации. Изменения могут включать исправления, усовершенствования или адаптацию ПО к изменениям в среде, а также в требованиях и функциональных спецификациях.
Анализируемость (Analyzability) – способность ПО к диагностике его недостатков или причин отказов в ПО, а также к идентификации его частей для модификации.
Изменяемость (Changeability) – способность ПО к обеспечению реализации специфицированных изменений. Реализация включает кодирование, проектирование и документирование изменений. Если ПО должен модифицировать конечный пользователь, изменяемость может быть предпосылкой для легкости использования.
Стабильность (Stability) – способность ПО минимизировать непредвиденные эффекты от его изменений.
Тестируемость (Testability) – способность ПО, обеспечивающая проверку и приемку модифицированного ПО.
Согласованность (Compliance) – способность ПО придерживаться стандартов или соглашений, связанных с сопровождаемостью.
Мобильность (Portability)
Это способность ПО к переносу из одной среды в другую. Среда может включать организационную, аппаратную или программную среду.
Адаптируемость (Adaptability) – способность ПО к модификации для различных указанных сред без применения других действий или средств, чем те, что предназначены для этой цели для рассматриваемого ПО. Адаптируемость включает масштабируемость внутренних возможностей (например, экранных полей, размеров таблиц, объемов транзакций, форматов отчетов и т.д.). Если ПО должно адаптироваться конечным пользователем, адаптируемость соответствует пригодности для индивидуализации и может быть предпосылкой для легкости использования.
Легкость установки (Installability) – способность ПО к установке в указанной среде. Если ПО должно устанавливаться конечным пользователем, легкость установки будет предпосылкой для легкости использования.
Сосуществование (Co-existence) – способность ПО сосуществовать с другим независимым ПО в общей среде, разделяя общие ресурсы.
Заменяемость (Replaceability) – способность ПО к использованию вместо другого указанного ПО в среде заменяемого ПО. Заменяемость используется вместо совместимости, чтобы избежать возможной путаницы со способностью к взаимодействию. Заменяемость не предполагает, что заменяемое ПО способно заменить рассматриваемое ПО. Заменяемость может включать атрибуты как легкости установки, так и адаптируемости.
Согласованность (Compliance) – способность ПО придерживаться стандартов или соглашений, связанных с мобильностью.
Кроме указанных характеристик при оценке качества ПО следует учитывать качество в использовании (Quality in use) – степень, в которой продукт, используемый указанными пользователями, удовлетворяет их потребности в достижении определенных целей с результативностью, продуктивностью и удовлетворением в заданном контексте использования. Это представление пользователя о качестве системы, содержащей ПО, и измеряется скорее в терминах результата использования ПО, чем собственных свойств ПО. Качество в использовании определяется следующими параметрами: результативность (Effectiveness) – точность и полнота достижения определенных целей пользователями; продуктивность (Productivity) – соотношение израсходованных ресурсов и результативности; удовлетворение (Satisfaction) – отношение пользователей к использованию продукта.