Метрики в обеспечении качества программного обеспечения
JE Gaffney Jr.
Корпорация IBM
Федеральный системный отдел
Манассас, Вирджиния
абстрактный
Природа «качества программного обеспечения»: и некоторые программы
метрики определены,] их отношение к
традиционные программные индикаторы, такие как
Способность "и" надежность "предлагаются.
работа в этой области суммируется и перспективы для
Метрики программного обеспечения в обеспечении качества предоставляется.
Материал изначально был представлен в виде учебника
на семинаре ACM SIGMETRICS / Симпозиум по
Измерение и оценка качества программного обеспечения »в
25 марта 1981 г.
Ключевые слова и фразы:
Гарантия качества программного обеспечения
метрики программного обеспечения
исследование программного обеспечения
факторы качества программного обеспечения
Качество программного обеспечения и обеспечение качества
организация
Что такое "качество программного обеспечения"? Это фокус
организация обеспечения качества программного обеспечения.
«Качество» является аспектом (программного обеспечения) продукта
Целостность».
«Целостность продукта» включает в себя другие
такие вещи, как соблюдение графика и стоимость не
охвачены в данной области техники, которые, кроме
меньше, имеет большое значение. ~ ± J Проще говоря, (мягкий
изделия) «качество» можно определить как «соответствие
требования".
Такое «соответствие» означает, большинство
Как правило, продукт отвечает потребностям
пользователь и удовлетворяет заявленным критериям эффективности.
«Потребности пользователя» в том, что программный продукт предназначен для
Удовлетворение должно быть предоставлено в письменной форме
Разработчик, прежде чем он начинает свой дизайн. Им следует
выражаться в терминах функций, которые
Программный продукт должен предоставить. Такое написано
Выражение «потребности пользователя» можно использовать как
основа для обсуждения между пользователем и разработчиком
в разъяснении, кажется ли дизайн соответствующим
в качестве шага в реализации функций,
Пользователь.
Критерии производительности программного обеспечения могут включать в себя широкий
Разнообразие предметов, таких как там меньше, чем
некоторое количество программных дефектов, отмеченных во время
демонстрация распродажи, меньше, чем некоторые заявили
количество дефектов, обнаруженных во время проектирования и / или
проверки кода и т. д.
Прежде чем сосредоточиться на предмете заявки
метрик для обеспечения качества программного обеспечения, давайте
кратко рассмотрим основные функции
функция обеспечения качества программного обеспечения. Во-первых, это
определяет стандарты для программных продуктов
разработан в своей организационной единице. Эти
стандарты могут включать стандарты, установленные
Правительство, вышестоящей организационной единицей
такие как штаб-квартира корпорации или подразделения,
или конкретным обеспечением качества программного обеспечения
сама организация.
Вторая основная функция качества программного обеспечения
функция доверия заключается в том, чтобы определить и реализовать
инструменты или средства для оценки программного продукта
качество. Инструменты могут быть простыми, как проверка
списки или такие сложные, как те, которые автоматически
рассчитывать возникновение таких программных мер-
способен как количество уникальных типов команд
в программе количество условных переходов
в нем или других таких элементах, которые могут иметь
отношение к качеству программного обеспечения.
Третья основная функция качества программного обеспечения
страховая организация должна применять инструменты для
оценить степень, в которой программные продукты
разработан его организационной единицей придерживаться
стандарты, соответствующие этому продукту, который
это установило.
Оценка может быть
качественный, такой как подтверждение приверженности
группа разработки программного обеспечения для определенных
подходы к развитию, такие как
грамматика и другие современные практики программирования.
Оценка может быть количественной, такой как
запись количества основных дефектов (таких как
бесконечный цикл), найденный при проверках
дизайн программного обеспечения и / или фактический код.
126

Страница 2
ACM '81, 9-11 ноября 1981 г.
Учебное пособие Аннотация
Метрики программного обеспечения и обеспечение качества
Метрика программного обеспечения может быть определена как «цель,
математическая мера программного обеспечения, которое является чувствительным
различия в характеристиках программного обеспечения.
Это
обеспечивает количественную меру атрибута
который тело программного обеспечения показывает. "Это должно быть
«цель» в том, что это не мера моего
чувства или ваши, но, насколько это возможно,
воспроизводимая мера или о программном обеспечении
интересный продукт. Количество основных дефектов
найден во время теста на распродажу и сравнение
эта цифра с заранее установленным порогом
«добро» или «зло» объективно.
Говоря это
программное обеспечение "имеет много дефектов" нет.
диапазон значений метрик программного обеспечения должен отражать
различия относительно одного или нескольких измерений
качества среди программных продуктов, к которым он
применены.
Разработка программного обеспечения все активнее
выполнено более в соответствии с установленным инженерным
и научные принципы, а не как вид искусства.
Количественная оценка процесса разработки программного обеспечения
и полученный программный продукт является обязательным в
заказ на разработку программного обеспечения, чтобы действительно быть
научная дисциплина.
Использование метрик программного обеспечения
будет способствовать достижению этой желаемой цели
повышенный уровень количественной оценки.
Без таких
количественная оценка, целостность программного обеспечения
продукт, который был рассмотрен выше, не может быть тем, что
он должен или иным образом может быть.
я.
То, что лорд Кельвин сказал в 1891 году, применимо и здесь:
«Когда вы можете измерить то, что вы говорите
о, и выразить это в цифрах, вы знаете,
что-то об этом; но когда ты не можешь
2.
измерить, когда вы не можете выразить это в
цифры, ваши знания скудны и
удовлетворительный вид; это может быть началом
знания, но вы едва ли, в вашем
мысли, продвинутые к стадии науки ".
3.
Или сообщение нам в сообществе разработчиков программного обеспечения
является:
Если вы не можете измерить это, вы не можете управлять этим.
4.
Метрики программного обеспечения представляют интерес по нескольким причинам.
Числовые показатели программного продукта могут быть
трансформируется в показатели, такие как «надежность»
и «ремонтопригодность» интересует как пользователей, так и
5.
управление разработкой программного обеспечения.
Что-нибудь из этого
меры определены в разделе «Некоторые программы
Метрика ~ "~ Ряд показателей, как определено
Макколл "2 ~ представлены в разделе" Качество
Факторы и метрики ". Также программные метрики
интерес, потому что они могут предложить модификацию
к процессу разработки программного обеспечения. Например,
количество условных переходов должно быть
7.
сводится к минимуму, потому что объем тестирования разработки
Требуется пропорционально этой цифре.
Количественная оценка качества программного обеспечения может
8.
обратиться к двум основным типам проблем, встречающихся в
программные продукты:
9.
A.
Те проблемы, связанные со статическим
аспекты программного обеспечения и которые являются адресуемыми
(по крайней мере, потенциально) с помощью программного обеспечения / или
«программная лингвистика» ориентированная метрика.
такие
метрики являются предметом оставшейся части
эта презентация.
B.
Те проблемы, связанные с динамическим
аспекты программного обеспечения, такие как программа
сложно работать и / или интегрировать
с другими программами.
Таких проблем нет
рассматривается далее в этой презентации.
Факторы качества и метрики
Качество программного обеспечения ориентируется на степень
Необходимость реализации задуманной функции
«удовлетворить потребности пользователя» (см. выше).
Это также
касается "благости" такой реализации.
В идеале эта мера "добра" должна быть
измеримым, показывая, насколько хорошо программное обеспечение
разработаны и закодированы в соответствии с измеримыми,
количественные критерии.
Это где "метрики" подходят
в обеспечение качества программного обеспечения.
Они должны относиться
к качеству программного обеспечения "атрибуты" или "факторы"
интерес признан сообществом программного обеспечения
разработчики и пользователи.
JA McCall (2) перечислил некоторые
факторы ", некоторые из которых могут быть связаны с" программным обеспечением
метрики ", как это делается для двух затем," ремонтопригодность "
и «тестируемость», в разделе «Некоторые программы»
Метрики ". МакКолл" факторы качества программного обеспечения "
(используя его определения) являются:
правильность
Степень, в которой программа
удовлетворяет своим требованиям
и выполняет пользователь
цели миссии.
надежность
Продлить до какой программы
можно ожидать, чтобы выполнить
его предназначенная функция с
Требуемая точность.
КПД
Количество вычислений
необходимые ресурсы и код
программой для выполнения
функция.
целостность
Насколько доступ к
программное обеспечение или данные по
уполномоченные лица могут быть
контролируется.
Юзабилити
6.
Ремонтопригодность
Усилия, необходимые для обучения,
работать, подготовить вклад и
интерпретировать вывод программы.
Требуется усилие, чтобы найти
и исправить ошибку в
операционная программа.
способность быть свидетелем в суде
Требуется усилие, чтобы проверить
программа для обеспечения его выполнения
его предназначенная функция.
гибкость
Усилия, необходимые для изменения
оперативная программа.
портативность
Требуется усилие для передачи
программа из одного оборудования
конфигурация и / или программное обеспечение
системное окружение к другому.
127

Страница 3
ACM '81, 9-11 ноября 1981 г.
Учебное пособие Аннотация
i0. Повторное использование
Степень, в которой программа
может быть использован в других приложениях
катионы - связанные с
упаковка и объем
функции, которые программы
выполнять.
II. Interoperability
Требуется усилие для пары
одна система с другой.
GJ Myers (3) определил некоторые другие элементы, которые
конечно можно считать "программным качеством"
факторы "в том же смысле, что одиннадцать
выше есть. Они есть:
Сцепление - степень взаимосвязанности
модули
Сила - Степень когезивности модуля
Эти меры связаны со степенью распространения
изменений, и он,
«Ремонтопригодность».
Cruick-
Шэнк и Гаффни "~ разработали количественные
меры этих предметов.
Некоторые метрики программного обеспечения
В этом разделе несколько важных метрик
оштрафован и пример отношений между
тогда и некоторые из качественных "программных качеств"
факторов »(определено выше).
Несколько из
базовая работа покойного профессора Мориса
Холстед ") Университета Пердью в метриках программного обеспечения
кратко резюмируется.
Среди показателей, разработанных Холстедом, это
четыре:
1.
Потенциальный объем
или интеллект
2.
объем
~ минимальное количество
«информационный» алгоритм;
функция концептуально
уникальное количество входов
и выводит на программное обеспечение
процедура или модуль. это
Единица "бит" или "двоичный
цифры».
Фактическое количество информации
создать программу; функция
уникального числа
операторы (инструкции)
и уникальный номер
операнды (метки данных)
используемый. Её единица - «биты».
3.
4.
Сложность (или
Что может быть
Называется "Expan-
Коэффициент отношения ")
усилие
Объем / разведки;
«размер» программы
относительно своего минимума
«размер», мера
dundancy.
Объем раз сложность;
относится к сложности
человек находит в
постоянная программа; относится
до степени сложности
можно найти в изменении
программа; также относится к
погрешность про-
грамм.
Среди показателей, разработанных другими, это
три:
5.
разделение
6.
Информация
поток
сложность
Доля или количество кон
прыгательные прыжки; имеет отношение к
усилия по тестированию; обратно пропорционально
пропорционально общему объему производства
сительности; мера контроля
сложность.
Var $ ~ s работа ~,
в том числе МакКейб "~, ~ n ~ '~,
Пейдж "" и Гаффни
указал его значение.
Длина процедуры (число
инструкции) раз
квадрат числа возможных
комбинация источника ввода
к выводу.
Кафура и соавт. (-v "разработали
этот показатель.
Метрика, имеющая особое значение для вопросов
Относящийся к обслуживанию программного обеспечения это:
7.
доля
модулей
Изменено в
обновление
Мера сложности
програмное обеспечение; относится к сложности
в модификации программного обеспечения (основной
Это м
"С был
tenance).
~
в исполнении Белади
, Кажется
относиться к «сцеплению» и
«сила» (см. выше), возможно
количественно определить их в некоторой степени
как они имеют дело с вопросами
о распространении изменений.
Различные метрики группы, определенной выше, могут быть
связанные с «факторами качества программного обеспечения», такими как
перечислено ранее. Можно думать об иерархии в
увеличение порядка детализации и количественной оценки.
An
Пример такой иерархии, где сложный
Понятие «ремонтопригодность» постоянно
составлен, пока он не описан различными мет
в данном случае «Усилие» и «Подразделение». Гордон ")
показал связь между «усилием» и
«понятность» программы, которая является основным
атрибут «ремонтопригодность».
В оставшейся части этого раздела математические
определения четырех метрик Холстеда качественно
определены ранее в этом разделе.
Рассмотрим программу, которая состоит из последовательности
«операторы» и «операнды»
Например, в
инструкция «ДОБАВИТЬ А», «ДОБАВИТЬ ~ 5» будет оператором и
«А» операнд. Холстед () сделал следующее
определения.
n I = количество используемых типов операторов.
n ~ = количество используемых типов операндов.
н ~
минимальный номер типов операндов (= концептуально
уникальный номер входов и выходов)
n = n_ + n 2 = общий размер словаря.
N 1
Таль нет. из используемых операторов.
N
Всего № из операндов используется.
N 2
N 1 + N 2
Затем он математически определил первый из
метрики приведены выше как:
128

Страница 4
ACM '81, 9-11 ноября 1981 г.
Tutorlal Abstract
Я.
Потенциальный объем, V * = (2 + np *) logg (2 + np *),
я.
минимальный размер программы, am ~ asure-of TNe
внутренний «размер» алгоритма
мировано.
2.
2.
Объем, V = NLOG2n Мера размера программы.
3.
Сложность (D) или степень расширения = V / V *.
3.
4.
Усилие = V x D = Количество решений, необходимых для
разработать программу.
4.
Некоторые недавние метрики работы
Большая работа выполняется с программным обеспечением
метрики в различных университетах и ​​промышленности
организаций.
Часть этой работы применительно к
5.
обеспечение качества программного обеспечения кратко изложено ниже:
я.
Фитсос и Смит, IBM, GPD, Санта-Тереза ​​-
Продемонстрировали тесную связь между
Метрика «Сложность» и количество дефектов
в коде.
2.
Кафура, штат Айова (I0) - развитая информация
метрика потока, обнаружена высокая корреляция с
количество дефектов.
(13)
3.
Ottenstein, Мичиганский Технологический Univ.
- Расчетное количество дефектов в коде как функция
метрики «объем программы».
4.
Бейли и Динги, Bell Labs., Денвер (14) -
Прикладные «программные науки» метрики для некоторых
ПО системы коммутации, дефектов не обнаружено
быть линейной функцией «объема программы»
Метрика.
4.
5.
Gaffney, IBM, FSD, Manassas (15) - применяется
метрики «программного обеспечения» к некоторому сигналу
программное обеспечение для обработки и контроля, найденный потенциал
5.
для отношений «добро / плохость», найдено
соотношение между «объемом» и «потенциальным объемом»
метрики и количество условий ~
прыжки а.а.
отсюда и тестируемость (по МакКейбу "- ~ и Пейдж [~)).
6.
Беледи, IBM, Research, Йорктаун Хтс. (II) -
Разработка показателей сложности программного обеспечения и
прогрессивное ухудшение, основанное на распространении
изменений.
7.
Базили, Univ. Мэриленд (16) - Определение
отношения между различными метриками программного обеспечения
с данными лабораторной разработки программного обеспечения.
Outlook для метрик программного обеспечения в обеспечении качества
Метрики многообещающие и потенциально очень
ценным для обеспечения основы для объективного
Пример программных продуктов и, возможно, для
обеспечение основы для установления стандартов
«Добро / вредность»
Они должны оказаться полезными в
'softwa ~ дефект
модели
дополняя
~
рассчитывать»
,
такой как разработанный Муса 5).
Многое еще предстоит сделать, чтобы показатели были
широко применяется на практике в
среды разработки и обслуживания программного обеспечения.
Области, в которых необходимо выполнить работу, включают в себя:
Уточнение метрик и выбор наиболее
ценные; стандартизация набора для использования,
если возможно.
Установление достоверности используемых метрик
в конкретной среде, в которой они находятся
занятый.
Установление порогов доброты / зла для
используемые метрики.
Применение метрик на этапе проектирования программного обеспечения
если возможно (возможно, более высокая отдача
возможно из-за меньших затрат на ранее
модифицируемость).
Создание базы приложения метрик
опыт по набору программ применения
размер (не просто «игрушечные программы»).
6.
Проведение анализа эффективности затрат
Приложения.
7.
Получение подтверждения полезности метрик
сообществом разработчиков программного обеспечения.
Некоторые «социальные» проблемы в практическом применении
показателями качества программного обеспечения являются:
я.
Там нет принятой практики измерения
2.
Аналитики и программисты часто относительно
автономный
3.
Управление нуждается в контроле
Есть сопротивление количественному измерению
своего программного продукта большинством
fessionals
Часто возникает организационная инерция и
сопротивление изменению в том, каким образом
дело сделано
6.
Кто должен делать измерения?
7.
Кто должен использовать меры?
8.
Как следует использовать меры?
Резюме
«Качество» программного обеспечения является аспектом «целостности продукта»
было дано определение «метрики программного обеспечения» и
несколько «метрик» были определены. Утилита
«метрики», включая количественную оценку определенных
атрибуты программного обеспечения "факторы качества", такие как
«ремонтопригодность» была изложена математически
определения четырех метрик, разработанных
Холстед были предоставлены. Некоторые недавние работы в программном обеспечении
поле метрик, связанное с качеством программного обеспечения, было
суммированы. Перспективы применения
метрики программного обеспечения в обеспечении качества;
их использование многообещающе, но необходимо проделать большую работу
сделано, если их полный потенциал должен быть реализован.
129

Страница 5
ACM '81, 9-11 ноября 1981 г.
Учебное пособие Аннотация ..
я.
Список используемой литературы
15.
Берсофф Э., Хендерсон В., Зигель С. "Программное обеспечение
Управление конфигурациями, инвестиции
в целостности продукта, "Prentice-E1all, 1980.
2.
Макколл, JA, "Введение в программное обеспечение"
16.
Метрики качества "В JD Купер и
MJ Fisher (Eds), «Качество программного обеспечения»
Управление, "Петрочелли", 1979.
3.
4.
5.
6.
7.
8.
9.
i0.
II.
12.
13.
14.
Майерс Г.Дж., «Надежное программное обеспечение через
Posite Design, Petrocelli / Charter, 1975.
Круикшанк Р. и Гаффни Дж. "Измерение
Процесс разработки: дизайн программного обеспечения
Метрики сцепления и прочности; «Пятый
Ежегодный семинар по разработке программного обеспечения,
Ноябрь 1980, НАСА им. Годдарда
Центр.
Холстед М., «Элементы науки о программном обеспечении»
Elsevier,] 977.
МакКейб, Т., «Мера сложности», «IEEE»
Сделки по программной инженерии "
Декабрь 1976 г., стр. 308.
Чен Э., "Сложность программы и программист
Производительность, "" IEEE Транзакции на
Программная инженерия », май 1978 г., стр. 187.
Пейдж, М., "Аналитический подход к программному обеспечению
Тестирование, «Материалы» IEEE Computer
Конференция «Программное обеспечение и приложения»
Октябрь 1978 г., стр. 527.
Gaffney, J., "Сложность управления программами и
ProductivitF, "Слушания" IEEE
Семинар по количественным программным моделям »
Октябрь 1979 г., стр. 140.
Кафура Д., Харрис К., Генри С., "На
Отношения между тремя метриками программного обеспечения »
Материалы "Мастерской АСМ 1981 года" /
Симпозиум по измерению и оценке
качества программного обеспечения ", март 1981 г. (ACM
СИГМЕТРИКА, том I0, номер i; Весна,
1981), стр. 81.
Белади Л., "Эксперимент против сложности",
Семинар IEEE по количественному программному обеспечению
Модели, октябрь 1979 г., стр. 128.
Гордон Р. "Мера умственного усилия, связанные
Программировать Ясность ", кандидатская диссертация,
Университет Пердью, 1977; Университет
Микрофильмы Международные.
Оттенштейн Л., "Прогнозирование разработки программного обеспечения"
Ошибки с использованием параметров Software Science, "
1981 ACM Workshop, op. cit., pg. 157.
Бейли С. и Динги В. «Исследование программного обеспечения»
Используя Метрики Холстеда, "Мастерская ACM 1981 года",
соч. cit., pg. 189.
17.
Gaffney, J., "Метрики программного обеспечения: ключ к
Улучшенное управление разработкой программного обеспечения »
"Компьютерные науки и статистика", 13-е место
Симпозиум по интерфейсу "(в Карнеги-
Университет Меллона), март 1981 г.
в разбирательствах, опубликованных Springer-Verlag.
Базили В. и Филлипс, TY, "Оценка и
Сравнение метрик программного обеспечения в Soft-
Лаборатория изделийостроения, "Мастерская АСМ 1981 года",
соч. Cir., стр. 95.
Муса Дж. «Измерение надежности программного обеспечения»
«Журнал систем и программного обеспечения I,
1980, стр. 223.
130