Фасетная классификация мер качества программ

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

Один из вариантов этого подхода предусматривает выделение пяти фасет: целевое назначение показателя, тип метрики, тип оценочного множества, тип оценочной формулы, структура оценочного множества. Содержание каждой фасеты показано в табл. 9.

Таблица 9

Фасеты

Целевое

назначение

показателя

Тип

метрики

Тип

оценочного

множества

Тип

оценочной

формулы

Структура

оценочного

множества

Показатели

надежности

Абсолютные

Топологи

ческие

Элементарные

Показатели

структурной

сложности

Статические

Порядковые,

номинальные

Лексические,

теоретико-

информацион

ные

Составные

Показатели вычислительной (временной) сложности

Динами

ческие

Комбини

рованные

Автоматные,

логико

алгебраические

Показатели психологической сложности

Вероятностные

Окончание табл.9

Фасеты

Целевое

назначение

показателя

Тип

метрики

Тип

оценочного

множества

Тип

оценочной

формулы

Структура

оценочного

множества

Показатели интенсивности использования языковых конструкций

Статистические

Показатели

трудоемкости

разработки

Экспертные

Интегральные

показатели

качества

Комбини

рованные

Они охватывают все современные направления метрологического исследования ПО. Фасета «тип метрики» порождает две категории мер: статические и динамические. Соответственно, фасета «Тип оценочного множества» делит меры качества на четыре категории: абсолютные, порядковые, номинальные и комбинированные. Тип оценочной формулы разграничивает меры по категориям в соответствии с формально-математическими моделями аттестующих свойств. Структура оценочного множества вводит две категории мер: простые и составные.

Итак, согласно табл. 9 классы мер качества формируются в соответствии с фасетной структурой, представляющей собой кортеж. Каждая его позиция содержит по одной категории из соответствующего столбца приведенной выше табл. 9:

Фасетное описание мер качества программ далее следует перечню категорий фасеты «целевое назначение показателя», т. е. основным направлениям метрологии ПО. Для фасеты «тип оценочной формулы», из-за большого разнообразия математических моделей свойств, введены субфасеты.

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

Таким образом, меры надежности образуют класс с фасетным описанием:

<статические, абсолютные, вероятностные, элементарные>.

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

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

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

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

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

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

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

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

6.6.3. Эффективность программ оценивается на основе измерения их ресурсных характеристик: машинного времени, оперативной памяти, времени реакции программы на запрос и т. д. Затраты памяти и особенно времени являются основными, а все остальные - вторичными. При этом все используемые меры являются динамическими, абсолютными; по типу оценочных формул они делятся на автоматные, теоретико-информационные, вероятностные, статистические, логикоалгебраические и комбинированные.

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

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

Вероятностные меры позволяют определить математические ожидания затрат вычислительных ресурсов. Для этого используются операционные графовые модели: графы программ, вершинам и/или дугам которых приписываются вероятностные параметры (распределение передач управления, частоты прохождения ветвей программы и т. д.).

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

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

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

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

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

Субфасета для классификации теоретико-информационных мер содержит две категории:

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

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

6.6.4. Показатели психологической сложности (типа «воспроизводимость - время изучения», «модифицируемость - время изучения») указывают количество времени на изучение программы для полного восстановления ее эквивалента, а также затраты времени на заданную модификацию программы. Для проверки качества этой работы производится сопоставление с эталонными модификациями.

6.6.5. К практически важным показателям интенсивности использования языковых конструкций относятся: распределение выполняемых операторов по их типу; операндов в выражениях по их числу и типу; индексированных переменных по числу индексов; циклических конструкций по числу операторов в них и глубине вложенности и т. д. Эти показатели характеризуют, с одной стороны, частоту появления синтаксических конструкций в текстах программ (статика) и частоту обращения к ним в процессе работы программ (динамика). Фасетная формула для этих двух классов интенсивности имеет вид:

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

Классы мер, основанных на прогнозных моделях, имеют следующее фасетное описание:

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

Систематизация мер скорости программирования описывается фасетной формулой:

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >