сравнение моделей качества программного обеспечения

4585
УДК 004.05 + 006
СРАВНЕНИЕ МОДЕЛЕЙ КАЧЕСТВА
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ:
АНАЛИТИЧЕСКИЙ ПОДХОД
Е.Ф. Жарко
Институт проблем управления им. В.А. Трапезникова РАН
Россия, 117997, Москва, Профсоюзная ул., 65
E-mail: [email protected]
Ключевые слова: качество, модели, анализ, системы
Аннотация: Качество программного обеспечения имеет многомерный контент, который
можно легко выделить и измерить. Настоящая работа в первую очередь направлена на
обзор и сравнение существующих моделей качества программного обеспечения.
1. Введение
Инженерия разработки программного обеспечения (ПО) – это применение систематического подхода, стандартов и количественного измерения характеристик ПО к разработке, использованию и сопровождению программного обеспечения. В связи с развитием технологий важность программной инженерии постоянно растет, а соответственно все более востребованным являются методы определения качества программного
обеспечения. Сложность процесса разработки и сопровождения программного обеспечения во многом обуславливается особыми требованиями, предъявляемыми к его качеству. Этот фактор обосновывает важность разработки формализованных методов
управления качеством ПО. В настоящий момент используются несколько определений
понятия качества ПО, которые в целом совместимы друг с другом. Обобщая определения стандартов, можно заключить, что качество программного обеспечения  это способность программного продукта (ПП) к удовлетворению установленных или предполагаемых потребностей при использовании в заданных условиях.
Качество программного обеспечения играет важную роль для всей системы в целом. Так, качество ПО рассматривается как очень важный аспект для разработчиков,
пользователей и руководителей проектов. Качество программного обеспечения  величина отражающая в каком объеме в программный продукт включен набор желаемых
функций для повышения эффективности ПП в течение жизненного цикла [1]. Для любой системы, использующей программное обеспечение, должны быть разработаны три
вида спецификаций, такие как функциональные требования, требования к качеству,
требования к ресурсам. Качество включает в себя все характеристики и существенные
особенности продукта или его функционирования, которые относятся к удовлетворению заданных спецификациями требований.
Качество является обобщением характеристик или особенностей продукта или работ, которые имеют отношение к способности разработанного продукта удовлетворять
заданным требованиям. Качество программного обеспечения можно разделить на две
составляющие, такие как качество процедур разработки ПО и качество программного
XII ВСЕРОССИЙСКОЕ СОВЕЩАНИЕ ПО ПРОБЛЕМАМ УПРАВЛЕНИЯ
ВСПУ-2014
Москва 16-19 июня 2014 г.
4586
продукта. Разработка программного обеспечения, связывающая такие элементы как
технологии, средства, сотрудники, организация и оборудование, рассматриваются в
контексте качества процедур разработки ПО. Тем не менее, качество программного
продукта состоит из определенных аспектов, таких как ясность документации и целостность, прослеживаемость проекта, надежность ПО и полнота тестирования основных
характеристик программного продукта. Модель качества обычно определяется набором
характеристик и отношений между ними, которые фактически обеспечивают основу
как для определения требования качества, так и оценки качества программного обеспечения [2]. Модель качества также можно определить структурированный набор
свойств, которые необходимы для удовлетворения определенных целей [3]. Преимущество модели качества заключается в декомпозиции значимого для программного обеспечения объектов, таких как процессы жизненного цикла, программный продукт, на
ряд своих характеристик/подхарактеристик. Качество, кроме описания и измерения
функциональных аспектов программного обеспечения также описывает дополнительные функциональные свойства такие как «как был создан программный продукт» и
«как он работает».
2. Модели качества ПО
Пользователи программного обеспечения испытывают потребности в создании моделей качества программного обеспечения для оценки качества как качественно, так и
количественно. Модели качества, которые имеются в настоящее время, в большинстве
случаев являются иерархическими моделями на основе критериев качества и связанных
с ними показателей (метрик). Все модели качества могут быть разделены на три категории в соответствии с методами, на основе которых они были созданы. К первому виду можно отнести теоретические модели, основанные на гипотезе отношений между
переменными качества. Ко второму виду относятся модели «управления данными», основанные на статистическом анализе. И наконец, комбинированная модель, в которой
интуиция исследователя используется для определения нужного вида модели, а анализ
данных используется для определения констант модели качества.
2.1. Модель МакКола
Первая модель качества была предложена МакКолом [4-6]. Предложенная модель
была в основном предназначена для определения полной характеристики качества программного продукта через его различные характеристики. Модель качества МакКола
(см. рис. 1) имеет три главных направления для определения и идентификации качества
программного обеспечения:
 использование (корректность, надежность, эффективность, целостность, практичность);
 модификация (тестируемость, гибкость, сопровождаемость – факторы качества
важные для разработки новой версии программного обеспечения);
 переносимость (мобильность, возможность многократного использования, функциональная совместимость – факторы качества важные для переносимости программного продукта на другие аппаратные и программные платформы).
2.2. Модель Боэма
Второй из основополагающих моделей качества является модель качества Боэма
[7]. Модель Боэма имеет недостатки современных моделей, которые автоматически и
XII ВСЕРОССИЙСКОЕ СОВЕЩАНИЕ ПО ПРОБЛЕМАМ УПРАВЛЕНИЯ
ВСПУ-2014
Москва 16-19 июня 2014 г.
4587
качественно оценивают качество программного обеспечения. В сущности, модель Боэма пытается качественно определить качество программного обеспечения заданным
набором показателей и метрик. Модель качества Боэма представляет характеристики
программного обеспечения в более крупном масштабе, чем модель МакКола. Модель
Боэма похожа на модель качества МакКола тем, что она также является иерархической
моделью качества, структурированную вокруг высокоуровневых, промежуточных и
примитивных характеристик, каждая из которых вносит свой вклад в уровень качества
программного обеспечения.
Факторы качества
Критерии качества
Прослеживаемость
Корректность
Функциональная полнота
Последовательность
проектирования
Надежность
Правильность
Устойчивость к ошибкам
Эффективность
выполнения
Качество программного обеспечения
Эффективность
Целостность
Управление доступом
Контроль за доступом
Удобство работы
Практичность
Удобство обучения
Способность к
взаимодействию
Простота работы
Тестируемость
Краткость
Гибкость
Полнота
протоколирования
Сопровождаемость
Информативность
Расширяемость
Возможность многократного
использования
Функциональная
совместимость
Мобильность
Широта использования
Модульность
Независимость от
программной платформы
Независимость от
аппаратной платформы
Унификация интерфейсов
Унификация данных
Рис. 1. Модель качества программного обеспечения МакКола.
XII ВСЕРОССИЙСКОЕ СОВЕЩАНИЕ ПО ПРОБЛЕМАМ УПРАВЛЕНИЯ
ВСПУ-2014
Москва 16-19 июня 2014 г.
4588
В этой модели практичность описывает, как легко, надежно и эффективно программный продукт может быть использован, сопровождаемость характеризует насколько легко изменить и повторно протестировать программный продукт, и мобильность описывает, как программный продукт может использоваться, даже при изменении программных и аппаратных средств.
Факторы качества
Мобильность
Критерии качества
Аппаратная независимость
Автономность
Качество программного продукта
Правильность
Функциональная полнота
Надежность
Эффективность
Ошибкоустойчивость /
Целостность
Последовательность
проектирования
Отслеживаемость
Эргономичность
проектирования
Практичность
Эффективность устройства
Доступность
Тестируемость
Коммуникативность
Информативность
Структурированность
Сопровождаемость
Понятность
Краткость
Удобочитаемость
Модифицируемость
Дополняемость
Рис. 2. Модель качества программного продукта Боэма.
2.3. Модель FURPS/FURPS+
Акроним FURPS, используемый в обозначении модели, обозначает следующие категории требований к качеству ПО:
 Functionality (Функциональность) /особенности, возможности, безопасность/;
 Usability (Практичность) /человеческий фактор, эргономичность, пользовательская
документация/;
 Reliability (Надежность) /частота отказов, восстановление информации, прогнозируемость/;
 Performance (Производительность) /время отклика, пропускная способность, точность, доступность, использование ресурсов/;
 Supportability (Эксплуатационная пригодность) /тестируемость, расширяемость,
адаптируемость, сопровождаемость, совместимость, конфигурируемость, обслуживаемость, требования к установке, локализуемость/.
 Символ «+» расширяет FURPS модель, добавляя к ней:
XII ВСЕРОССИЙСКОЕ СОВЕЩАНИЕ ПО ПРОБЛЕМАМ УПРАВЛЕНИЯ
ВСПУ-2014
Москва 16-19 июня 2014 г.
4589

ограничения проекта (ограничения по ресурсам, требования к языкам и средствам
разработки, требования к аппаратному обеспечению);
 интерфейс (ограничения накладываемые на взаимодействие с внешними системами);
 требования к выполнению,
 физические требования,
 требования к лицензированию.
FURPS модель качества [8], предложенная Грейди и Hewlett Packard, построена
схожим образом с моделями МакКола и Боэма, но в отличие от них состоит из двух
слоев, первый определяет характеристики, а второй связанные с ними атрибуты. Основной концепцией, лежащей в основе FURPS модели качества, является декомпозиция
характеристик программного обеспечения на две категории требований, а именно,
функциональные (F) и нефункциональные (URPS) требования. Эти выделенные категории могут быть использованы как в качестве требований к программному продукту, так
и в оценке качества ПП. В настоящее время модель FURPS+ широко используется в
разработке программного обеспечения и при идентификации требований к разрабатываемой системе целесообразно использование FURPS+ модели в качестве универсального контрольного перечня характеристик ПО.
2.4. Модель Гецци
Карло Гецци и соавторы [9] различают качество продукта и процесса. Согласно
модели Гецци к качеству программного обеспечения относят следующие характеристики программного обеспечения: целостность, надежность и устойчивость, производительность, практичность, верифицируемость, сопровождаемость, возможность многократного использования, мобильность, понятность, возможность взаимодействия,
эффективность, своевременность реагирования, видимость процесса разработки.
2.5. Модель качества Дроми
Модель качества Дроми [10] основана на критериях оценки. Модель Дроми стремится оценить качество системы, в то время как каждый программный продукт, имеет
качество отличное от других. Модель Дроми помогает в предсказании дефектов ПО и
указывает на те свойства ПО, пренебрежение которыми может привести к появлению
дефектов. Эта модель основывается на отношениях между характеристиками качества
и подхарактеристиками, между свойствами программного обеспечения и характеристиками качества ПО.
2.6. Модель качества SATC
В Центре обеспечения качества программного обеспечения NASA (Software Assurance Technology Center, SATC) была разработана программа метрик [11], обеспечивающая оценку рисков проекта, качества продукции и эффективности процессов. Программа SATC рекомендует отдельно отслеживать качество требований, качество программного обеспечения и других продуктов (документации), качество тестирования и
качество выполнения процессов. Модель качества SATC определяет набор целей, связанных с программным продуктом и атрибуты процессов в соответствии со структурой
модели качества программного обеспечения ISO 9126-1.
XII ВСЕРОССИЙСКОЕ СОВЕЩАНИЕ ПО ПРОБЛЕМАМ УПРАВЛЕНИЯ
ВСПУ-2014
Москва 16-19 июня 2014 г.
4590
2.7. Модель качества ISO 9126
Качество программного обеспечения определяется в стандарте ISO 9126-1 [2] как
всякая совокупность его характеристик, относящихся к возможности удовлетворять
высказанные или подразумеваемые потребности всех заинтересованных лиц.
Модель качества ISO 9126-1 различает понятия внутреннего качества, связанного с
характеристиками ПО самого по себе, без учета его поведения; внешнего качества, характеризующего ПО с точки зрения его поведения; и качества ПО при использовании в
различных контекстах – того качества, которое ощущается пользователями при конкретных сценариях работы ПО. Для всех этих аспектов качества введены метрики, позволяющие оценить их. Кроме того, для создания надежного ПО существенно качество
технологических процессов его разработки. Взаимоотношения между этими аспектами
качества по схеме, принятой ISO/IEC 9126 (ISO/IEC 9126-1:2001 [2]; ISO/IEC TR 91262:2003 [12], ISO/IEC TR 9126-3:2003 [13], ISO/IEC TR 9126-4:2004 [14]), показано на
Рис 3.
Различные контексты использования
Качество
процесса
Метрики качества
процесса
ISO/IEC 9126-1
Внутреннее
качество
Внешнее
качество
Метрики внутреннего качества
ISO/IEC 9126-2
Метрики внешнего
качества
ISO/IEC 9126-3
Качество при
использовании
Метрики качества при использовании
ISO/IEC 9126-4
Рис. 3. Основные аспекты качества программного обеспечения.
Функциональность
Способность к взаимодействию
Функциональная пригодность
Соответствие стандартам
Согласованность
Защищенность
Мобильность
Адаптируемость
Простота внедрения
Способность к сосуществованию
Удобство установки
Сопровождаемость
Качество ПО
Удобство внесения изменений
Соответствие стандартам
Анализируемость
Тестируемость
Устойчивость
Эффективность
Надежность
Стабильность
Восстанавливаемость
Соответствие стандартам
Устойчивость к отказам
Практичность –
удобство использования
Соответствие стандартам
Удобство обучения
Привлекательность
Удобство работы
Понятность
Соответствие стандартам
Временная эффективность
Эффективность использования
ресурсов
Рис. 4. Факторы и атрибуты внешнего и внутреннего качества программного обеспечения.
XII ВСЕРОССИЙСКОЕ СОВЕЩАНИЕ ПО ПРОБЛЕМАМ УПРАВЛЕНИЯ
ВСПУ-2014
Москва 16-19 июня 2014 г.
4591
На рис. 4 представлены факторы и атрибуты внешнего и внутреннего качества программного обеспечения в соответствии с ISO/IEC 9126. На рис. 5 приведена модель оценивания согласно ISO/IEC 9126.
Установленные или
предлагаемые
потребности
Административные
требования
Определение
требований
ИСО 9126 и другая техническая информация
Спецификация
требований
качества
Определение
требований качества
Выбор метрик
Разработка
программного
обеспечения
Продукция или
промежуточная
продукция
Определение уровня
ранжирования
Измеренные
значения
Измерения
Определение
критериев оценки
Подготовка
Установленный
уровень
Оценивание
Ранжирование
Оценка
Результат
(приемлемый
или
неприемлемый)
Рис. 5. Факторы и атрибуты внешнего и внутреннего качества программного обеспечения.
2.8. Модель качества QMOOD
Джагдиш Банзия и Карл Дэвис [15] предложили иерархическую модель качества
для объектно-ориентированного проектирования (QMOOD), которая расширяет методологию модели качества Дроми и включает в себя четыре уровня:
1) Определение показателей качества проекта: набор атрибутов качества проекта,
которые используются в QMOOD для описания характеристик объектноориентированных систем включат: функциональность, эффективность, понятность,
расширяемость, возможность многократного использования и гибкость.
2) Определение объектно-ориентированных свойств проекта: свойства проекта могут быть определены в процессе исследования внутренней и внешней структуры,
функциональности компонент проекта, атрибутов, методов и классов. Структурным и объектно-ориентированным множеством свойств проекта, которые используются в QMOOD, являются: размер проекта, иерархическая структура, инкапсуляция, связанность, состав проекта, наследование, полиморфизм, обмен информацией, сложность.
3) Определение объектно-ориентированных метрик проекта: различные объектноориентированные метрики проекта.
4) Определение объектно-ориентированных свойств проекта: Компоненты проекта
были определены для определения архитектуры объектно-ориентированного проекта. Эта модель определяет парадигму, а также вводит ряд новых объектноориентированных метрик.
XII ВСЕРОССИЙСКОЕ СОВЕЩАНИЕ ПО ПРОБЛЕМАМ УПРАВЛЕНИЯ
ВСПУ-2014
Москва 16-19 июня 2014 г.
4592
2.8. Другие модели качества
Модель качества, описанная в [16], представила два различных подхода к показателям качества на протяжении всего жизненного цикла программного обеспечения. Характеристики качества могут быть сведены к двум группам:
1) эффективность, безопасность, доступность и функциональность;
2) модифицируемость, мобильность, возможность многократного использования, наследуемость и тестируемость.
Согласно модели качества Хосрави К. и др. [18] процесс оценки качества состоит
из двух задач:
1) выбор глобальной характеристики;
2) выбор подхарактеристик, связанных с глобальной характеристикой.
Эта модель качества основана на многократном использовании программного обеспечения в качестве глобальной характеристики и акценте на возможности многократного
использования, понятности, гибкости, модульности, надежности, масштабируемости и
удобстве использования. Модель качества Хосрави и др. связала показатели качества и
подхарактеристики, используя определения IEEE, ISO/IEC и некоторых других моделей
качества.
Для оценки качества программного обеспечения на основе теории нечетких множеств и метода анализа иерархий, Чанг и др. [18] были определены руководящие принципы и это подход ими был применен к модели качества ISO 9126-1. Оценки качества
программного обеспечения основаны на характеристиках и подхарактеристиках модели
ISO 9126-1.
Шармой А. и др. [19] была предложена компонентно-ориентированная модель качества разработки программного обеспечения, которая включает все характеристики и
подхарактеристики модели качества ISO 9126-1, а также предлагает новые подхарактеристики, такие как пригодность к повторному использованию, гибкость, сложность,
прослеживаемость, масштабируемость. Метод анализа иерархий в этой модели используется для оценки качества проекта.
3. Многоуровневый подход к моделям качества
В основе моделей качества лежит многоуровневый подход (количество слоев может быть 2 /модели МакКола и Боэма/ или 3 слоя /включая метрики/). Сравнительный
анализ характеристик различных моделей качества программного обеспечения приведен в таблице 1.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
XII ВСЕРОССИЙСКОЕ СОВЕЩАНИЕ ПО ПРОБЛЕМАМ УПРАВЛЕНИЯ
ВСПУ-2014
Москва 16-19 июня 2014 г.
Шармоа
[19]
+
+
+
Хосрави
[18]
+
Казман
[16]
+
ISO 9126
[2]
+
Дроми
[10]
+
+
+
+
Гецци [9]
FURPS/
FURPS+
[8]
Корректность
Надежность
Корректность
Эффективность
Гибкость
Функциональность
Эргономичность
проетирования
Боэм [7]
Характеристики
качества
МакКол
[4-6]
Таблица 1. Сравнительный анализ моделей качества программного обеспечения.
+
+
+
+
+
+
+
+
+
+
+
Шармоа
[19]
Казман
[16]
+
Хосрави
[18]
ISO 9126
[2]
Гецци [9]
FURPS/
FURPS+
[8]
Дроми
[10]
Целостность
Функциональная
совместимость
Сопровождаемость
Модифицируемость
Производительность
Мобильность
Зрелость процесса
Возможность
многократного
использования
Устойчивость
Масштабируемость
Безопасность
Эксплуатационная
пригодность
Тестируемость
Понятность
Практичность
Боэм [7]
Характеристики
качества
МакКол
[4-6]
4593
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
4. Заключение
В работе представлены основные модели качества, используемые для оценки программного обеспечения, и дан сравнительный анализ представленных моделей. Приведенный комплексный анализ поможет понять необходимость использования при оценке качества тех или иных характеристик и подхарактеристик качества программного
обеспечения. Необходимо подчеркнуть, что для всесторонней оценки качества можно
использовать параллельно разные модели.
Список литературы
1.
2.
3.
4.
5.
6.
7.
8.
9.
Firesmith D. G. Common concepts underlying safety, security, and survivability engineering, Technical
Note CMU/SEI-2003-TN-033, Carnegie Mellon Software Engineering Institute. 2003.
ISO/IEC 9126-1:2001. Software engineering – Software product quality – Part 1: Quality model.
Fitzpatrick R. Software Quality: Definitions and Strategic Issues, Staffordshire University, School of Computing Report, 1996. 34 p.
McCall J. A., Richards P. K., Walters, G. F. Factors in Software Quality: Concept and Definitions of Software Quality. Final Technical Report. Vol. 1. National Technical Information Service, Springfield. 1977.
Mc Call J. A., Richards P. K., Walters, G. F. Factors in Software Quality: Metric Data Collection and Validation. Final Technical Report. Vol. 2. National Technical Information Service, Springfield. 1977.
Mc Call J. A., Richards P. K., Walters, G. F. Factors in Software Quality: Preliminary Handbook on Software Quality for an Acquisition Manager. Final Technical Report. Vol. 3. National Technical Information
Service, Springfield. 1977.
Boehm B.W., Brown J.R., Kaspar H., Lipow M., MacLeod G.J., Merritt M.J.. Characteristics of Software
Quality, TRW Series of Software Technology, Amsterdam, North Holland, 1978. 166 p.
Grady R.B., Caswell D.L. Software Metrics: Establishing a Company-Wide Program. Prentice-Hall, 1987.
275 p.
Ghezzi C., Jazayeri M., Mandrioli D. Fundamental of Software Engineering, Prentice–Hall, NJ, USA. 1991.
XII ВСЕРОССИЙСКОЕ СОВЕЩАНИЕ ПО ПРОБЛЕМАМ УПРАВЛЕНИЯ
ВСПУ-2014
Москва 16-19 июня 2014 г.
4594
10. Dromey G.R. A model for software product quality // Transactions of Software Engineering. 1995. Vol. 21,
No. 2. P. 146-162.
11. Hyatt L.E., Rosenberg L.H. A Software Quality Model and Metrics for Identifying Project Risks and Assessing Software Quality // Proceedings of Product Assurance Symposium and Software Product Assurance
Workshop. Noordwijk, 1996. P. 209-212.
12. ISO/IEC TR 9126-2:2003 Software engineering – Product quality – Part 2: External metrics.
13. ISO/IEC TR 9126-3:2003 Software engineering – Product quality – Part 3: Internal metrics.
14. ISO/IEC TR 9126-4:2004 Software engineering – Product quality – Part 4: Quality in use metrics.
15. Bansiya J., Davis C. A Hierarchical Model for Object-Oriented Quality Assessment // IEEE Transactions on
Software Engineering. 2002. Vol. 28, No. 1. P. 4-17.
16. Bass L., Clements P., Kazman R. Software Architecture in Practice. 2Ed. Addison Wesley. 2003. 528 p.
17. Khosravi K., Gueheneuc Y. On Issues with Software Quality Models // Proceedings of 9th ECOOP workshop on Quantitative Approaches in Object-Oriented Software Engineering. 2005. P. 70-83.
18. Chang C., Wu C., Lin H. 2008. Integrating Fuzzy Theory and Hierarchy Concepts to Evaluate Software
Quality // Software Quality Control. 2008. Vol. 16, No. 2. P. 263-267.
19. Sharma A., Kumar R., Grover P.S. Estimation of Quality for software components: an empirical approach //
ACM SIGSOFT Software Engineering Notes. 2008. Vol. 33, No. 6. P. 1-10.
XII ВСЕРОССИЙСКОЕ СОВЕЩАНИЕ ПО ПРОБЛЕМАМ УПРАВЛЕНИЯ
ВСПУ-2014
Москва 16-19 июня 2014 г.