Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Надежность ПО.docx
Скачиваний:
11
Добавлен:
23.11.2023
Размер:
5.26 Mб
Скачать

3.3. Модели и метрики оценки качества программного обеспечения

Классификация моделей и метрик качества программ. Программное обеспечение ИС состоит из комплекса различных ПП, увязанных проектировщиком(разработчиком) ИС в единую систему программных средств(среду), взаимодействие которых обеспечивается необходимым программным интерфейсом. Таким образом, качество всего ПО зависит от надежности входящих в него ПП [21, 22, 23, 25, 30, 33, 47].

Модели и метрики оценки качества ПП – система измерений качества программ. Эти измерения могут проводиться на уровне критериев качества ПП или на уровне отдельных характеристик качества. В первом случае система измерений позволяет непосредственно сравнивать программы по качеству; при этом сами измерения не могут быть проведены без субъективных оценок свойств ПП. Во втором случае измерения характеристик можно выполнить объективно и достоверно, но оценка качества ПП в целом будет связана с субъективной интерпретацией получаемых оценок.

В исследовании моделей и метрик оценок качества ПП различают два основных направления:

  • поиск моделей и метрик, характеризующих наиболее специфические свойства программ, т.е. метрик оценки самого ПП;

  • использование моделей и метрик для оценки технических характеристик и факторов разработки ПП, т.е. моделей и метрик оценки условий разработки ПП.

По виду информации, получаемой при оценке качества ПП, все основные модели и метрики можно подразделить на три группы:

1) модели и метрик, оценивающие отклонение от нормы характеристик исходных проектных материалов. Они устанавливают полноту заданных технических характеристик исходного кода;

2) модели и метрики, позволяющие прогнозировать качество разрабатываемых ПП. Они заданы на множестве возможных вариантов решений поставленной задачи и их реализации и определяют качество ПП, которое будет достигнуто;

3) модели и метрики, по которым принимается решение о соответствии конечного ПО заданным требованиям. Они позволяют оценить соответствие разработки заданным требованиям:

В настоящее время в мировой практике используется несколько сотен метрик программ. Существующие качественные оценки ПП можно сгруппировать по шести направлениям:

1) оценки топологической надежности ПО, позволяющие прогнозировать отказовые ситуации;

2) оценки надежности ПО, позволяющие прогнозировать отказовые ситуации;

3) оценки производительности ПП и повышения его эффективности путем выявления ошибок проектирования;

4) оценки уровня языковых средств и их применения;

5) оценки трудности восприятия и понимания программных текстов, ориентированные на психологические факторы, существенные для сопровождения и модификации программ;

6) оценки производительности труда программистов для прогнозирования сроков разработки ПП и планирования работ по созданию ПО.

Анализ технологического опыта лидеров производства ПП показывает, насколько дорого обходится несовершенство ненаучного прогноза разрешимости, трудозатрат, сложности, негибкость контроля, управления разработкой и многое другое, указывающее на отсутствие сквозной методической поддержки и приводящее в конечном итоге к несоответствию ПП требованиям пользователя и(или) стандарта и последующей болезненной и трудоемкой переделке. Эти обстоятельства требуют тщательного отбора методик, моделей, методов оценки качества ПП, учета ограничений их пригодности для различных ЖЦ и в пределах одного ЖЦ, установления порядка их совместного использования, применения избыточного разномодельного исследования одних и тех же показателей для повышения достоверности текущих оценок, накопления и интеграции разнородной метрической информации для принятия своевременных производственных решений и заключительной сертификации ПП.

Анализ моделей. Проведем краткий анализ моделей и метрик, хорошо зарекомендовавших себя при оценке качества ПП, и пригодных для прогнозирования и констатации различных показателей сложности и надежности ПП.

Модель Миллса. Данная модель относится к классу статических моделей, используемых программистами или тестеровщиками в процессе разработки, тестирования и гарантирования ПП. Статистические модели отличаются от динамических моделей прежде всего тем, что в них не учитывается время появления ошибок в процессе тестирования не используется никаких предположений о поведении функции риска. Эти модели строятся на твердом статическом фундаменте.

Использование модели Миллса предполагает необходимость перед началом тестирования искусственно вносить в программу некоторое известное число L определенных ошибок. Ошибки вносятся случайным образом и фиксируются в протоколе искусственных ошибок. Специалист, проводящий тестирование, не знает ни количества ошибок, ни характера искусственно внесенных ошибок до момента оценки показателей надежности по модели Миллса.

Основное допущение, положенное в основу модели, заключается в том, что считают распределение искусственно привнесенных ошибок таким же, как и распределение собственных ошибок, и, следовательно, вероятность обнаружения как собственных ошибок, так и засеянных одинакова. Далее программу начинают тестировать. В процессе тестирования программы в течение некоторого времени собирается статистика об ошибках. Пусть обнаружено S ошибок.В момент оценки надежности по протоколу искусственных ошибок все обнаруженные ошибки подразделяются на собственные и искусственные:

Где l – число искусственно привнесенных ошибок среди обнаруженных; V–число собственных ошибок среди обнаруженных.

Тогда в соответствии с методом максимального правдоподобия, оценкой для числа оставшихся в ПО ошибок(первоначального числа ошибок) будет являться следующая величина:

Вторая часть модели Миллса связана с проверкой гипотезы относительно значения N. Пусть в программе имеется Rсобственных ошибок; внесем в нее еще Lошибок. В процессе тестирования были обнаружены все L внесенных ошибок и r собственных ошибок. Тогда по формуле (3.6) мы предполагаем, что первоначально в программе было N = rошибок. Вероятность, с которой можно высказать это предположение, можно оценить по следующим соотношениям:

Таким образом, значение Р является мерой доверия к модели и показывает вероятность того, насколько правильно найдено значение N. Эти два связанных между собой соотношения образуют полезную модель ошибок: соотношение (3.6) предсказывает возможное число первоначально имевшихся в программе ошибок, а соотношение (3.7) используется для установления доверительного уровня прогноза.

Однако формула (3.7) для расчета Р не может быть использована в случае, когда не все искусственно внесенные ошибки обнаружены. При оценке надежности в случае, когда обнаружено l искусственно внесенных ошибок (l<L), значение Р определяется по модифицированной формуле:

Например, если утверждается, что в программе нет ошибок, а к моменту оценки надежности обнаружено пять из 10 искусственно внесенных ошибок и не обнаружено ни одной собственной ошибки, то вероятность того, что в программе действительно нет ошибок, составляет:

Однако если при тех же результатах утверждается, что в программе есть одна собственная ошибка, то вероятность этого события составляет:

Если при тех же исходных условиях оценка надежности производится в момент, когда обнаружены восемь 10 искусственных ошибок, а других ошибок не обнаружено, то вероятность тог, что в программе не было ошибок, возрастает до 0,73. Модель Миллса можно использовать для оценки числа первоначальных ошибок N после каждой найденной ошибки. Предлагается во время всего периода тестирования отмечать на графике число найденных ошибок и текущее значение N.

Достоинствами модели являются простота применения математического аппарата, наглядность и возможность ее использования непосредственно в процессе тестирования, недостатками - необходимость внесения искусственных ошибок (этот процесс плохо формализуется) и достаточно вольное допущение о значении величины R, которое основывается только на интуиции и опыте человека, проводящего оценку, т.е. допускается большое влияние субъективного фактора. Существенным недостатком этой модели также является допущение об одинаковости распределения собственных и искусственно внесенных ошибок, которое невозможно проверить, особенно на более поздних стадиях разработки программы, когда множество простых ошибок (например, какие-либо пропуски) уже ис-ключено, остались наиболее трудно обнаруживаемые ошибки.

Модель Джелинского - Моранды. Это одна из первых и наиболее простых моделей классического типа, послужившая стимулом для дальнейших разработок в этой области. Модель использовалась при разработке ПП для ответственных проектов. Модель Джелинского -Моранды предназначена для использования ее в процессе испытания ПП.

Эта модель строится на основе ряда допущения:

  1. интенсивность обнаружения λ(t)пропорциональна текущему числу ошибок в программе, т.е. числу оставшихся ошибок;

  2. все ошибки одинаково вероятны и их появление независимы;

  3. каждая ошибка имеет один и тот же порядок серьезности;

  4. время до следующего отказа (ошибки) распределено экспоненциально;

  5. ПО функционирует в среде, близкой к реальной;

  6. ошибки постоянно корректируются без внесения в ПО новых;

  7. λ(t) = const в интервале между двумя соседними ошибками. В соответствии с этими допущениями интенсивность обнаружения ошибок в ПО можно представить в виде

где 7 - произвольное время между обнаружением (i - 1)-й иi-й ошибок; К - неизвестный коэффициент; В - неизвестное общее число ошибок в ПП.

Следовательно, если за время t было обнаружено (i - 1) ошибок, то в ПП еще осталось [B - (i - 1)] ошибок. Полагая Хi = ti- ti-1 (i = 1,2,..., n) и учитывая допущение о том, что λ(t)= const в интервале между обнаружением (i - 1)-й и i-й ошибок, можно считать, что значения Хi имеют экспоненциальное распределение. Для получения оценок числа ошибок в программе (в том числе оставшихся ошибок) и неизвестного коэффициента К используют следующие соотношения:

  1. Для получения оценки после обнаружения n ошибок. Полагаем =m-1, где m ≥n + 1 - число прогнозируемых (в том числе пока не обнаруженных) ошибок. Вычисляем значение Проверяем условие Затем, последовательно изменяя m, находим значения двух функций: функции и функции Далее вычисляем значения модулей разностей . Находя первый минимум модуля разностей по m, определяем значение m как наилучшее целочисленное решение уравнения

  2. Для получения значения после обнаружения n ошибок. Вычисляем неизвестный параметр по формуле

  3. По найденным значениям и могут быть определены оценки следующих неизвестных параметров:

  • интенсивность возникновения ошибок в ПП после того, как в нем уже обнаружена i-я ошибка -

  • среднее время до появления (i + 1)- й ошибки в ПП -

  • время до окончания тестировании ПП - , где n - число выявленных ошибок на текущий день тестирования ПП

Модель Шика - Уолвертона. Эта модель построена для разработчиков и тестировщиков для оценки зависимости надежности ПП от некоторых определенных параметров. Она является модификацией модели Джелинского - Моранды для случая возможности возникновения на рассматриваемом интервале более одной ошибки. В основе модели Шика - Уолвертона лежит предположение, что частота обнаружения ошибок пропорциональна не только количеству ошибок в программе, но и времени тестирования, т.е. вероятность обнаружения ошибок с течением времени возрастает. В данной модели наблюдаемым событием является число ошибок, обнаруживаемых в заданном временном интервале, а не время ожидания каждой ошибки, как это было для модели Джелинского - Моранды.

Простая экспоненциальная модель. Основное отличие этой модели от модели Джелинского - Моранды заключается в том, что снято допущение 7, и, таким образом, функция риска перестает быть кусочно-постоянной. Разработчики и тестировщики предполагают, что функция риска пропорциональна числу оставшихся в ПП ошибок за вычетом обнаруженных ошибок.

Модели Липова. Данные модели являются обобщением моделей Джелинского – Моранды и Шика – Уолвертона соответственно используются для разработчиков или тестировщиков в процессе разработки, тестирования и гарантирования ПП. В отличие от предыдущих в них допускается появление более одной ошибки на одном интервале тестирования программ, а также разрешается корректировка не всех обнаруженных на данном интервале ошибок. Липов модифицировал модельМиллса, рассмотрев вероятность обнаружения ошибки при использовании различного числа тестов. Модель Липова дополняет модель Миллса, давая возможность оценить вероятность обнаружения определенного количества ошибок к моменту оценки.

Модель Бейзина. Это модель надежности ПП, предназначенная для разработчиков и тестировщиков в процессе тестирования ПП и обнаружения ошибок. Тестировщики используют эту модель следующим способом: пусть ПП содержит Nkкоманд. Случайным образом из этого числа выбираются n команд, в которые вводятся ошибки. Затем для тестирования случайным образом выбирают r команд. Если в ходе тестирования будет обнаружено vсобственных и m привнесенных ошибок, то осуществляется оценка максимального правдоподобия числа В6 ошибок, содержащихся в программе перед началом тестирования. При использовании такой процедуры уровень разметки (среднее число помеченных ошибок) должен быть больше 20, чтобы была уверенность в объективности полученных оценок. Эти процедуры могут быть приемлемы на любом этапе после кодирования программистов.

Модель безопасности Белл - ЛаПадула. Это одна из первых моделей безопасности, которая впоследствии стала наиболее часто используемой. Она была разработана Дэвидом Беллом и Леонардо ЛаПалула для разработчиков и проектировщиков и использовалась в процессе проектирования и моделирования работы компьютера. Все компоненты системы подразделяются на объекты и субъекты. Вводится понятие безопасного состояния и доказывается, что если каждый переход сохраняет безопасное состояние, т.е. переводит систему из безопасного состояния в безопасное, то согласно принципу индукции, система является безопасной.

В модели Белл - ЛаПалула определено около 20 функций (правил операций), выполняемых при модификации компонентов матрицы доступа, при запросе и получении доступа к объекту (например, при открытии файла), создании и удалении объектов; при этом для каждой функции доказывается сохранение ею (в соответствии с определением) безопасного состояния. Лишь немногие разработки безопасных систем использовали функции, предложенные Белл и ЛаПадула; чаще использовались собственные функции, разработанные на основе функций модели Белл -ЛаПадула. Поэтому в настоящее время, когда говорят о модели Белл - ЛаПалула, имеют в виду только простое условие безопасности и свойство ограничения, а не функции, составляющие основу модели. и их доказательства.

Геометрические модели. Имеются три основные геометрические модели: первая и третья предложены Морандой П. Б. (первая является модификацией модели Джелинского - Моранды, рассмотренной ранее); вторая, предложенная М.Липовым, расширяет первую.

В первой модели предполагается, что исходное число ошибок в программе В - величина не фиксированная (не ограниченная): более того, все ошибки не равновероятны. Считается также, что по мере отладки обнаруживать ошибки становится все труднее и, таким образом, ПП никогда не освобождается от ошибок. Основные исходные предпосылки:

  • общее число ошибок не ограничено;

  • обнаружение ошибок не равновероятно;

  • обнаружение ошибок - процесс, не зависимый от ошибок;

  • ПП работает в условиях, близких к реальным;

  • Интенсивность обнаружения ошибок образует геометрическую прогрессию, причем интенсивность в интервале между появлениями ошибок постоянна.

Третья геометрическая модель предложена для случая, когда сообщения об ошибках поступают периодически. Как и предыдущей модели, требуется только общее число ошибок, выявленных в каждом интервале тестирования. Однако, в отличие от предыдущих геометрических моделей, предполагается, что все интервалы тестирования имеют одинаковую длину, исчисляемую днем, неделей, месяцем и т.п. Модель применима, когда длина интервала мала по сравнению со временем тестирования.

Модель Шнейдевинда. Эта модель построена для разработчиков и тестировщиков и включает в себя как частный случай третью геометрическую модель. Основной подход заключается в предположении о более сильном влиянии на процесс предсказания ошибок появления более поздних ошибок. Основные допущения:

  • независимость возникновения ошибок в различных интервалах;

  • число обнаруженных ошибок уменьшается от интервала к интервалу;

  • все интервалы имеют одинаковую длину (день, неделя, месяци т.п.);

  • интенсивность обнаружения ошибок пропорциональна числуимеющихся ошибок в данный момент времени.

Модель Мусы. Наиболее разработанными к настоящему времени являются непрерывные эмпирические модели надежности (НЭМН) ПП, предназначенные для оценки надежности ПП реального времени. Важен учет конкретных, частных свойств и условий функционирования ПП определенного типа и даже отдельных разработок программного средства

Для построения НЭМН используются следующие определения:

  • надежность программы - свойство программы безотказно работать в заданных условиях в течение заданного времени;

  • отказ - недопустимое отклонение характеристик процесса функционирования программы от требуемых;

  • ошибка - это изъян программы, приводящий к отказу.

НЭМН Мусы предназначена главным образом для предсказания поведения программы, когда та будет сдана в эксплуатацию. В модели Мусы учитываются два вила времени функционирования:

  • суммарное время t, которое отсчитывается в ходе разработки программы вплоть до контрольного момента, когда производится оценка надежности;

  • оперативное время t, представляющее собой время использования программы, планируемое от контрольного момента и далее, при условии, что устранения ошибок не будет.

В модели Мусы для времени функционирования t считается, что:

1) интенсивность отказов пропорциональна числу не устраненных ошибок;

2) скорость изменения числа устраненных ошибок, измеряемая относительно времени функционирования, пропорциональна интенсивности отказов.

Коэффициент пропорциональности в модели Мусы называется коэффициентом уменьшения числа ошибок. Он учитывает три вида дефектов, каждый из которых пропорционален интенсивности отказов из-за следующих причин:

  • увеличение числа дефектов в связи с появлением новых ошибок в процессе устранения старых ошибок;

  • выявление еще не проявившейся ошибки при анализе программы, проведенном после обнаружения связанного с ним дефекта во время тестирования;

  • наличие отказов, причину которых не удается найти, и, следовательно, отсутствие возможности исправить ошибки, вызвавшие эти отказы.

Суммарное число обнаруженных и устраненных ошибок описывается показательной функцией суммарного времени функционирования t:

где No. - первоначальное число ошибок в программе (No, можно оценить с помощью другой модели, позволяющей определить ее значение на основе данных, полученных при тестировании, например модели Шумана); С - коэффициент сжатия тестов, который учитывает отклонение условий испытаний ПП от реальных; Мo, - общее число отказов, которые могут произойти за время сопровождения ПО; То - средняя наработка на отказ в начале испытаний.

В процессе тестирования фиксируется время выполнения программы (тестового прогона) до очередного отказа. Предполагается, что не всякая ошибка в ПП может вызвать отказ, поэтому допускается обнаружение более одной ошибки при выполнении программы до очередного отказа. Считается, что на протяжении всего жизненного цикла ПП может произойти Мо отказов и при этом будут выявлены все No. ошибок, которые присутствовали в ПП до начала тестирования.

Основные параметры модели Мусы Мо, и То. первоначально оцениваются по характеристикам самой ПП, т.е. По грубому предсказанию надежности. После того как будут получены сведения об интервалах между отказами, оценки параметров Мо и То уточняются с использованием метода максимального правдоподобия.

Одним из достоинств модели Мусы является возможность использования календарного времени, что позволят осуществлять долгосрочное планирование при отработке и эксплуатации программных средств; недостатком – необходимость большого объема априорной информации.

Модель Нельсона. Эта модель была разработана с учетом основных свойств машинных программ и использует методы теории вероятностей лишь в тех случаях, когда невозможно получение полной информации о том или ином факторе (например, при ответе на вопрос, какой набор входных данных следует взять при следующем прогоне программы). Все приближения, принятые в модели, четко определены и известны границы их применимости. Поскольку в основу модели Нельсона положены свойства ПП, она допускает развитие за счет более детального описания других аспектов надежности. Некоторые из полученных обобщений модели могут рассматриваться в контексте исследования проблемы безопасности ПП. Отмеченные особенности модели позволяют рассматривать ее как направление в математической теории надежности ПП, а не как простую модель надежности.

В модели дано следующее математическое определение надежности машинной программы: «Надежность программы - это вероятность безотказного выполнения n прогонов программы». Поэтому прогон является единичным испытанием ПП.

Последовательный анализ на основе модели Вальда. Вводится допущение, что если вероятность успешного прогона Р находится в достаточно малой окрестности точки Рa.,то риск принятия неправильного решения допустимо мал. При этом под неправильным решением понимается решение отвергнуть надежный ПП или принять ненадежный ПП. Программист, тестирующий ПП, должен до начала испытания задать следующие величины:

  • минимальная приемлемая вероятность безотказной работы ПП Pmin;

  • вероятность Рьах, при которой он почти уверен, что ПП пройдет испытания;

  • вероятность ошибки первого рода, т.е. вероятность отказа от надежного ПП;

  • вероятность ошибки второго рода, т.е. вероятность принятия ненадежного ПП.

Модель Холстеда. Эта модель направлена на оценку сложности как первого шага для целенаправленного снижения сложности ПП. Подход Холстела заключается в определении для любой программы следующих показателей:

  • число различных операций n1;

  • число различных операндов n2;

  • общее число всех операций N1;

  • общее число всех операндов N2;

  • словарь программы n;

  • длина реализаций N.

Из этих данных определяют теоретическую длину программы, соответственно объем программы, потенциальный объем программы, потенциальный объем программы (в битах).

Важной метрикой является уровень программы, определяемый как отношение потенциального объема к объему.

Метрика уровень языка позволяет количественно оценивать преимущества языка программирования более высокого уровня по сравнению со своими предшественниками. Еще одна из метрик, предложенных Холстедом, позволяет оценивать время, затрачиваемое на разработку ПП. Оценка сложности программы по Холстеду не учитывает всех характеристик сложности программы. Программа со сложной графовой структурой и линейная программа, имеющие одинаковый объем, обладают одинаковой сложностью, что неверно.

Сложность самой программы зависит от структур данных; структур управления, определяемых логикой программы; правильного разбиения на модули; внутренних связей каждого модуля; межмодульных связей в программе, т. е. является, по терминологии теории измерений, латентной, или скрытой, переменной в отличие от переменных индикаторов, которые можно непосредственно измерять.

Модель Дюэна. Эта модель была предложена для оценки роста надежности ПП. Рассматривается отношение интенсивности обнаружения ошибок к общему времени тестирования. Допущения, положенные в основу модели: обнаружение всех ошибок равновероятно и их серьезность одинакова; появление ошибок - процесс независимый; общее число ошибок, обнаруженных к произвольному моменту времени, распределено по закону Пуассона. Для реализации этой модели требуется только знание моментов времени появления ошибок.

Модель, предложенная специалистами фирмы ІВМ. При эксплуатации потребителем очередной версии ПП разработчик, как правило, осуществляет активное сопровождение версии, т.е. ведет доработку выданной потребителю версии ПП, не ожидая рекламаций на нее. Причем доработка может включать в себя и создание дополнительных функций для данного ПП. С некоторого момента, когда разработчик считает свои задачи окончательно выполненными, начинается пассивное сопровождение, т.е. доработка на этом этапе ведется только по требованию пользователя. Используя приведенные ранее модели надежности ПП, можно оценить число оставшихся ошибок после тестирования в поставленной заказчику первой версии ПП. Примечательно, что практически все модели дают ненулевое число этих ошибок.

В процессе сопровождения ПП в очередную его версию вносится значительное число новых ошибок вместе с добавлениями и изменениями, что ведет к последующим исправлениям в очередной вер-сии. Попытка прогнозирования таких исправлений от версии к версии была предпринята разработчиками американской фирмы IBM на основе большого объема экспериментальных данных, накопленных при сопровождении операционной системы OS/360. Модель, предложенная ими, основана на наблюдении истории развития системы ПП и гипотезе о статической устойчивости зависимостей между некоторыми параметрами, характеризующими различные версии системы. Основной единицей измерения сложности ПП здесь выбран программный модуль. Правила оформления модулей были стандартизированы.

Модель Коркорэна. Разработчикам и тестировщикам, применяющим эту модель, следует знать:

  • модель учитывает разную вероятность отказов для различных источников ошибок и соответственно разную вероятность их исправления;

  • в модели используются такие параметры, как результат только N испытаний, в которых наблюдается Ni ошибки i –го типа;

  • выявление в ходе N испытаний ошибки i –го типа типа появляется с вероятностью ai.

Модель Шумана. Она относится к динамическим моделям дис-кретного времени, данные для которых собираются в процессе тестирования ПП в течение фиксированных или случайных интервалов времени. Модель предполагает, что тестирование проводится в несколько этапов. Каждый этап представляет собой выполнение программы на полном комплексе разработанных тестовых данных. Вы-явленные ошибки регистрируются, но не исправляются. В конце этапа рассчитываются количественные показатели надежности, исправляются найденные ошибки, корректируются тестовые наборы и проводится следующий этап тестирования. В модели Шумана пред-полагается, что число ошибок в программе постоянно и в процессе корректировки новые ошибки не вносятся. Скорость обнаружения ошибок пропорциональна числу оставшихся ошибок.

Метрики. Метрика Маккейба. Основной метрикой сложности предлагается считать цикломатическую сложность графа программы, или, как ее еще называют, цикломатическое число Маккейба, характеризующее трудоемкость тестирования программы. Для вычисления цикломатического числа λ (G) тестировщики используют число дуг ориентированного графа G, число вершин, число компонентов связности графа. По сути λ (G) определяет число линейно независимых контуров в сильно связном графе. Иначе говоря, цикломатическое число Маккейба показывает требуемое количество проходов для покрытия всех контуров сильно связного графа или количество тестовых прогонов программы, необходимых дя исчерпывающего тестирования по критерию «работает каждая ветвь»

Метрика Майерса. Она является расширением метрики Маккэйба. Суть подхода заключается в представлении метрики сложности программ в виде интервала . Для простого предиката h =0, в для n-местных предикатов h = n - 1. Такая метрика позволяет различать программы, представленные одинаковыми графами. К сожалению, информация о результатах использования этого метода отсутствует, поэтому ничего нельзя сказать о его применимости.

Метрика подсчета точек пересечения. Метрика сложности программ (авторы - М. Вудвард, М. Хенел и Д. Хилей) ориентирована на анализ программ, при создании которых использовалось неструктурное кодирование на таких языках, как язык ассемблера и Фортран. В графе программы, где каждому оператору соответствует вершина, при передаче управления точка пересечения дуг возникает в случае выхода управления за пределы пары начальной и конечной вершин. Количество точек пересечения дуг графа программы дает характеристику неструктурированности программы.

Метрика Джилба. Это одна из наиболее простых, но достаточно эффективных оценок сложности ПП. Логическая сложность программы определяется как насыщенность программы выражениями типа IF-THEN- ELSE. При этом вводятся две характеристики: CL - абсолютная сложность программы, характеризующаяся количеством операторов условия; сl - относительная сложность программы, характеризующаяся насыщенностью программы операторами условия, т.е. сl определяется как отношение CL к общему числу операторов. Дополняя метрику Джилба характеристикой максимального уровня вложенности оператора CLI, можно не только уточнить анализ по операторам типа IF- THEN - ELSE, но и успешно применить метрику Джилба к анализу циклических конструкций.

Метрика граничных значений. Это оценка сложности программ по методу граничных значений. Для оценки сложности программ введем несколько дополнительных понятий, связанных с графом программы. Пусть G = (V, E) - ориентированный граф программы с единственной начальной и единственной конечной вершиной. В этом графе число входящих вершин у дуг называется отрицательной степенью вершины, а число исходящих из вершины дуг - положительной степенью вершины. Тогда набор вершин графа можно подразделить на две группы:

1) вершины, у которых положительная степень не больше 1;

2) вершины, у которых положительная степень не меньше 2.

Для получения оценки по методу граничных значений необходимо разбить граф G на максимальное число подграфов G', удовлетворяющих следующим условиям:

  • вход в подграф осуществляется только через вершину отбора;

  • каждый подграф включает в себя вершину (называемую в дальнейшем нижней границей подграфа), в которую можно попасть из любой другой вершины подграфа. Например, вершина отбора, соединенная сама с собой дугой-петлей, образует подграф.

Метрика обращения к глобальным переменным. Эта метрика связывает сложность программ с обращениями к глобальным переменным. Пара «модуль – глобальная переменная» обозначается (p, r), где р – модуль, имеющий доступ к глобальной переменной r. В зависимости от наличия в программе реального обращения к переменной r формируются два вида пар «модуль – глобальная переменная: фактические и возможные. Возможное обращение к r с помощью р показывает, что область существования r включает в себя р.

Характеристика Aup означает, сколько раз модули U действительно получали доступ к глобальным переменным, а число Рир - сколько раз они могли бы получить доступ. Отношение числа фактических обращений к возможным определяется по формуле Rup - = Aup/Рир. Эта формула показывает приближенную вероятность ссылки произвольного модуля на произвольную глобальную переменную. Очевидно, чем выше эта вероятность, тем выше вероятность несанкционированного изменения какой-либо переменной, что может существенно осложнить работы, связанные с модификацией программы.

К сожалению, пока нельзя сказать, насколько удобен и точен этот метод на практике, так как нет соответствующих статистических данных.

Метрика Спена. Определение Спена основывается на локализации обращений к данным внутри каждой программной секции. Спен - это число утверждений, содержащих данный идентификатор. между его первым и последним появлением в тексте программы Следовательно, идентификатор, появившийся n раз, имеет спен. равный (n - 1). При большом спене усложняется тестирование и отладка.

Метрика Чепина. Суть метода заключается в оценке информационной прочности отдельно взятого программного модуля с помощью анализа характера использования переменных из списка ввода-вывода. Все множество переменных, составляющих список ввода-вывода, разбивается на четыре функциональные группы:

Р - вводимые переменные для расчетов и для обеспечения вывода;

M - модифицируемые, или создаваемые внутри программы переменные;

С - переменные, участвующие в управлении работой программного модуля (управляющие переменные):

T - не используемые в программе (паразитные) переменные.

Поскольку каждая переменная может выполнять одновременно несколько функций, необходимо учитывать ее в каждой соответствующей функциональной группе.

Метрика уровня комментированности программ F. Она отражает насыщенность программы комментариями и является наиболее простой метрикой стилистики и понятности программу по количеству комментариев в программе и количеству строк или операторов исходного текста. Исходя из практического опыта принято считать, что Р 2 0,1, т.е. на каждые 10 строк программы должен приходиться минимум один комментарии. Однако комментарии распределяются по тексту программы неравномерно: в начале программы их избыток, а в середине или в конце - недостаток.

Следует отметить, что рассмотренные метрики оценки сложности программ основаны на анализе исходных текстов программ

Таблица 3.4. Сравнительная таблица моделей и метрик

Примечание. Буквы а, б, в обозначают соответственно начинающего, полупрофессионального и профессионального пользователей. и графов, что обеспечивает единый подход к автоматизации их расчета.

В табл. 3.4 приведены модели и метрики, хорошо зарекомендовавшие себя при оценке качества ПІП, пригодные для разработчиков и тестировщиков в процессе прогнозирования, тестирования и констатации показателей сложности и надежности ПП. Следует заметить, что все модели и метрики рассчитаны на профессиональных пользователей, что в значительной степени снижает возможность их использования.