Формальный базис для оценки качества программных средств

УДК 004.05

В. В. Бураков

ФОРМАЛЬНЫЙ БАЗИС ДЛЯ ОЦЕНКИ КАЧЕСТВА ПРОГРАММНЫХ СРЕДСТВ

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

Ключевые слова: оценка качества программных средств, модель качества программных средств, модель метрик программных средств.

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

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

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

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

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

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

Рассмотрим основные понятия предлагаемой модели.

Категория качества. Категория качества Q используется для представления понятия качества ПС и состоит из объектов ОЬ^) и морфизмов Мог^) .

Объекты категории качества. Класс объектов категории качества представляет характеристики и подхарактеристики качества, а также принципы проектирования ПС и явля-

п _ ^

ется конечным множеством с разбиением ОЬ^) = ^ Qi, где Qi = {д'т }т=1 — множество объ-

1=0

ектов, соответствующих характеристикам качества и принципам проектирования г -го уровня иерархии; к — число элементов множества Qi.

На верхнем уровне иерархии находится само понятие „качества" — объект д°, поэтому ко = 1, на следующих уровнях иерархии количество объектов удовлетворяет формуле > 2кг, г е {1,..., п _1}. При этом Qi п QJ = 0 , г Ф ] , т.е. каждая характеристика качества

находится на одном определенном уровне иерархии.

Морфизмы категории качества. Класс морфизмов категории качества описывается тремя множествами: Мог^) = Мог^ и МогЛ (Q) и Мог^ (Q) — множеством строгих иерархических морфизмов Мог^- , множеством нестрогих иерархических морфизмов Мо^й (Q) и множеством одноуровневых морфизмов Мог^ (Q). Определим каждое из этих множеств.

Строгие иерархические морфизмы:

— для любых двух элементов д1а, дЬ е Qi, i е {1,..., п}, а е{1,..., ki}, Ь е{1,..., кг+1}, определяется множество морфизмов Мог^ (дга, дЬ ) из дга в дЬ :

г0, а Ф Ь;

Мог„ (да, дЬ ) = ^{1г К а = Ь,

где 1 г — тождественный морфизм объекта да ;

да

— для любых двух элементов д0+1 е Qi+1, дЬ е Qi при i е {0,..., п _1} множество морфизмов определяется пустым: Мог^ (д0+1, дЬ) = 0;

— для любого элемента д'Ь е Qi существуют элементы вида де Qi_l, такие что Мог^ (да-1, дЬ) состоит из одного морфизма для каждого элемента д1—; для всех остальных элементов е Qi_l при а Ф Оь множество морфизмов задается пустым:

м«^1.4)ь а=а";

[0, а Ф аь.

Символ (здесь и далее) служит для обозначения функций, входящих в множество морфизмов.

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

Для любого д'ь е Qi и для любого подмножества Qj при у < г существует единственный

элемент qJ е Л:, такой что множество Мог^ (^ , а'ь ) состоит из одного морфизма. Для всех

аь аь

остальных элементов qJa е Qj, а Ф аь, множество Мог^ ^, q1ь ) является пустым. Произведения морфизмов отвечают отношению характеристика — подхарактеристика — принцип проектирования низших уровней иерархии.

Нестрогие иерархические морфизмы. Для любого элемента qJь е Q у существует единственный элемент qlaь е Qi, такой что Мог^ (д1^, qJь) состоит из одного морфизма при

г, у е {1,..., п} и г < у. Для всех остальных элементов е Qi при ак Ф аь множество мор-физмов задается пустым:

МОГ,^, ^ ) = (!|'•* >• а = аь;

[0, а Ф аь.

Нестрогие иерархические морфизмы служат для описания отношений несоседних уровней иерархии.

Одноуровневые морфизмы. Для любых двух элементов qla, е Qi, г е {1,..., п}, определяется множество морфизмов Мог^ ^а, qlь ) из qla в qlь :

Мог^ ^, & ) =

ь а ф ь;

{1 а }, а = ь,

Ча

где 1 i — тождественный морфизм объекта qa .

1а

Одноуровневые морфизмы служат для моделирования взаимовлияния элементов качества, находящихся на одном уровне иерархии.

Схема модели качества приведена на рис. 1.

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

Модель качества

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

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

Базовые метрические пространства. Базовыми являются счетные дискретные метрические пространства МЬ . Образующие эти пространства множества представляют собой графовые модели ПС. Метриками оценивается количество элементов графа определенного типа.

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

На пространствах МЬ, Ма вводится множество операторов для формального описания процесса комплексирования производных метрик из других производных и базовых.

Операторы комплексирования. Операторы комплексирования Ас: МЬ , Ас: М^ ^М^ отражают зависимости одних производных метрик от других производных или базовых. В зависимости от способов комплексирования операторы Ас могут иметь различную природу, быть линейными, нелинейными, ограниченными, непрерывными, деминепрерывными и т.п.

Метрические пространства совместно с операторами комплексирования образуют категорию метрик.

Категория метрик. Категория М8, объектами которой являются метрические пространства МЬ и Мс^, а морфизмами — операторы комплексирования Ас, называется категорией метрик. Структурная схема модели метрик представлена на рис. 2.

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

Модель метрик

Рис. 2

Отображение модели качества на модель метрик. Для оценки концептуальных понятий модели качества с помощью метрических пространств модели метрик определим функтор QM : Q ^ М.

Функтор из категории качества в категорию метрик. Функтор QM : Q ^ М8 является контрвариантным одноместным функтором, отображающим объекты категории качества (характеристики, подхарактеристики, принципы проектирования) на МП категории измерений (базовые и производные) QM(ОЬ^)) = ОЬ(М£), а морфизмы категории качества — на морфизмы категории метрик, являющиеся операторами над МП QM(Мог^)) = Мог(М£) .

Функтор QM : Q ^ MS задается следующим образом:

1) на объектах: QM (и?е{0и }) = и^Ои l}{Mdl} — отображение элементов категории качества, отвечающих за представление принципов проектирования, подхарактеристик и характеристик, на производные метрические пространства;

2) на морфизмах:

— принадлежащих парам соседних уровней: QM (<^~]т) = А1^-1, * е {!,-., и}, где АС1т1 — оператор, определенный на МП X е Mdlm , имеющий в качестве области значений МП У е Mdl~l, при этом МП Mdlm соответствует элемент категории качества дгт, а МП Mdl~x — элемент д^-1;

— принадлежащих уровням г, у при у > г +1: QM(| ) = АС]т^, г е {0,..., и - 2}, у е {2,..., и}, где А^'^ — оператор, определенный на МП X еMm (для элемента д]т), имеющий в качестве области значений МП У е Mdls (для элемента );

— принадлежащих одному уровню: QM(^т) = А^, г е {1,..., и}, где АС^ — оператор, определенный на МП X е Mdlm (для элемента дгт ), имеющий в качестве области значений МП У е Mdls (для элемента ).

На рис. 3 схематично показано действе функтора QM .

Рис. 3

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

Процесс оценки качества ПС (сущностей ПС) сводится к измерению значений метрик и отнесению ПС (сущностей ПС) к соответствующему подпространству категории метрик.

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

Ориентированный граф. Граф G = (V,E, s,t) состоит из двух множеств: конечного множества V, элементы которого называются вершинами, и конечного множества E, элементы которого называются ребрами; s и t — функции, возвращающие начальную и конечную вершины ребра соответственно.

Помеченный граф. Пусть L = (VL,EL), A = (VA,EA) — пара непересекающихся потенциально бесконечных множеств меток и аксиом соответственно. (L, A) -помеченный граф G представляет собой тройку (g, l, a), где g = (V, E, s, t) — граф; l = (vl: V ^ VL, el: E ^ EL) — пара функций, помечающих соответственно вершину и ребра; a = (va: V ^ VA, ea: E ^ EA) — пара функций аксиом соответственно вершин и ребер.

Помеченный типизированный граф. Пусть T = (VT, ET) — пара непересекающихся конечных множеств предопределенных типов вершин и ребер. (L, A)-помеченный Г-типизированный граф G является двойкой (g, type), такой что g — (L, A) -помеченный граф, type = (vt: V ^ VT, et: E ^ ET) — пара функций, связывающих соответственно с каждой вершиной и ребром их типы.

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

На основе графовой модели вводятся формулы для определения метрик. Рассмотрим для примера следующие базовые метрики.

Метрика количества входных вершин вершины — функция ivc : IVG ^ VT ^ N, имеющая в качестве области определения подмножество декартова произведения входных вершин IVG и их типов для некоторой вершины, а в качестве области значений — подмножество натуральных чисел ivc(v, t) = |{s(e) e IVg (v) : vt(s(e)) = t}|.

Метрика количества выходных вершин вершины — функция ovc : OVG ^ VT ^ N, имеющая в качестве области определения подмножество декартова произведения выходных вершин OVG и их типов для некоторой вершины, а в качестве области значений — подмножество натуральных чисел ovc(v, t) = |{t(e) e OVg (v) : vt(t(e)) = t}| .

Метрика количества входных вершин вершины с ребрами определенного типа — функция ivec : IVg ^ VT ^ ET ^ N, имеющая в качестве области определения подмножество декартова произведения входных вершин IVG , их типов и типов ребер для некоторой вершины, а в качестве области значений — подмножество натуральных чисел ivec(v, t, r) = = |{t(e) : e e IVG (v) л vt(s(e)) = t л et(e) = r}|.

Метрика количества выходных вершин вершины с ребрами определенного типа — функция ovec : OVg ^ VT ^ ET ^ N, имеющая в качестве области определения подмножество декартова произведения выходных вершин OVg , их типов и типов ребер для некоторой вершины, а в качестве области значений — подмножество натуральных чисел ovec(v, t, r) = = |{s(e) : e e OVG (v) л vt(t(e)) = t л et(e) = r}|.

Метрика длины нисходящего пути вершины из ребер определенного типа — функция ipath : IVG ^ VT ^ ET ^ N, имеющая в качестве области определения подмножество декартова произведения входных вершин IVGn , входящих в зависимость n -го порядка с данной, их типов и типов ребер для некоторой вершины, а в качестве области значений — подмножество натуральных чисел ipath(v, t, r) = {t(e) : e e IVq (v) л vt(s(e)) = t л et(e) = r} .

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

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

список литературы

1. Fenton N. E., NeilM. Software metrics: A Roadmap // ICSE — Future of SE Track. 2000. P. 357—370.

2. Липаев В. В. Выбор и оценивание характеристик качества программных средств // Сб. трудов Всерос. практ. конф. „Стандарты в проектах современных информационных систем". М., 2001.

3. Бураков В. В. Формализация процесса преобразований программного обеспечения // Управление и информатика в авиакосмических системах: Прил. к ж-лу „Мехатроника, автоматизация, управление". 2006. № 11. С. 19—24.

Вадим Витальевич Бураков

Сведения об авторе канд. техн. наук; Санкт-Петербургский государственный университет аэрокосмического приборостроения, кафедра компьютерной математики и программирования; E-mail: burakov@aanet.ru

Рекомендована кафедрой компьютерной математики и программирования

Поступила в редакцию 19.06.07 г.