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

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

CC BY
36
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРЕОБРАЗОВАНИЯ ПРОГРАММ / РЕФАКТОРИНГ / REFACTORING / МОДЕЛЬ ПРОГРАММЫ / SOFTWARE MODEL / SOFTWARE TRANSFORMATION

Аннотация научной статьи по математике, автор научной работы — Бураков В.В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The formal base for software transformation

The formal model of software transformation is introduced. As a base of formal description of software graph theory is used. Graph models of programs form category objects, while morphisms category describe software transformations. The represented formal model gives a permit to regard software transformation as controlled and determined process.

Текст научной работы на тему «Формальный базис преобразований программных средств»

Известия вузов России. Радиоэлектроника. 2008. Вып. 2======================================

УДК 004.05

В. В. Бураков

Санкт-Петербургский государственный университет

аэрокосмического приборостроения

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

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

Преобразования программ, рефакторинг, модель программы

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

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

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

• на модели метрик ПС, определяющей механизмы для формального определения метрик качества и их отношений;

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

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

22

© Бураков В. В., 2008

• на модели преобразований ПС, содержащей механизмы для формального задания преобразований модели ПС;

• на методике преобразований ПС, определяющей принципы использования модели преобразований ПС;

• на методике управления качеством ПС, регламентирующей применение моделей и методик управления качеством ПС.

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

Модель преобразований ПС.

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

Помеченный граф. Пусть L = (VL, EL), A = (VA, EA) - пара непересекающихся потенциально бесконечных множеств меток и аксиом соответственно. (L, A) -Помеченный граф G представляет собой тройку (g, l, a), такую, что

• g = (V, E, s, t) - граф;

• l = (vl: V ^ VL, el: E ^ EL) - пара функций пометки вершин и ребер соответственно, при этом vl является инъективной;

• a = (va: V ^ VA, ea: E ^ EA) - пара функций аксиом вершин и ребер соответственно.

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

Категория графов. Для двух графов G и H графовый морфизм f: G ^ H представляет собой пару (fn : Vg ^ Vh , fe : Eg ^ Eh ), такую, что выполняется fn ° sg = Sh ° fe и fn ° tG = tH ° fe ("°" - символ композиции функций). Категория графов, содержащая в качестве объектов графы, а в качестве морфизмов графовые гомоморфизмы, будет обозначаться Graph .

Графовые морфизмы составляют основу для формального описания процесса преобразования ПС [2].

Известия вузов России. Радиоэлектроника. 2008. Вып. 2======================================

Графовый изоморфизм. Графовый изоморфизм f : G ^ H представляет собой графовый гомоморфизм, в котором функции fn и fe биективны. В этом случае говорят, что

G изоморфен H (что обозначаются G = H).

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

Инъективные и сюръективные графовые морфизмы. Графовый гомоморфизм f является инъективным (сюръективным), если fn и fe являются инъективными (сюръектив-ными) функциями. Graph¡ (Graph$) являются подкатегориями Graph с графами в качестве объектов и инъективными (сюръективными) графовыми гомоморфизмами в качестве морфизмов.

Несложно убедиться в том, что Graph / с Graph и Graph $ с Graph . Инъективные

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

Частичные и тотальные графовые морфизмы. Графовый морфизм f является тотальным, если и только если функции fn и fe тотальны, в противном случае графовый морфизм является частичным.

Морфизмы, сохраняющие структуру. Для (L, A) -помеченных графов G и H f : G ^ H является помеченным графовым морфизмом, если (fv : Vg ^ Vh , fe : Eg ^ Eh )

является частичным графовым морфизмом между G и H .

L -Сохраняющим помеченным графовым морфизмом f : G ^ H называется такой помеченный графовый морфизм, для которого характерно

Vv e dom (fv ) : vIg = VH ° fv ; Vе e dom (fe ) : eG = 0 fe . где dom (fv), dom (fe ) — область определения функций fv, fe соответственно.

A -Сохраняющим помеченным графовым морфизмом f: G ^ H называется такой помеченный графовый морфизм, для которого характерно

Vv е dom (fv ) : vaG = vaH 0 fv ; Ve е dom (fe ) : eaG = eaH 0 fe .

L, A -Сохраняющим помеченным графовым морфизмом является морфизм одновременно A -сохраняющий и L -сохраняющий.

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

метки, и аксиомы сохраняются). Каждая из категорий параметризуется множеством меток L и множеством аксиом A .

Категории помеченных графов.

ЬОгарЬ (L, A) - категория с (L, A) -помеченными графами в качестве объектов и помеченными графовыми морфизмами в качестве морфизмов.

ЬОгарЬЬ (L, A) - категория с (L, A) -помеченными графами в качестве объектов и L -сохраняющими помеченными графовыми морфизмами в качестве морфизмов.

ЬОгарЬЛ (L, A) - категория с (L, A) -помеченными графами в качестве объектов и A -сохраняющими помеченными графовыми морфизмами в качестве морфизмов.

ЬОгарЬЬЛ (L, A) - категория с (L, A) -помеченными графами в качестве объектов и (L, A) -сохраняющими помеченными графовыми морфизмами в качестве морфизмов.

Имеют место следующие свойства: ЬвгарЬЬЛ (Ь, А) ^ ЬвгарЬЬ (Ь, А) ^ ЬвгарЬ (Ь, А), ЬОгарЬЬЛ (Ь, А) с ЬОгарЬЛ (Ь, А) с ЬОгарЬ (Ь, А)1.

Можно убедиться, что ЬОгарЬ, ЬОгарЬЬ, ЬОгарЬЛ, ЬОгарЬЬЛ формируют категории и являются подкатегориями друг друга. В силу инъективности аксиом помеченных графов графовые морфизмы всегда инъективны. Это свойство поможет упростить некоторые дальнейшие утверждения и доказательства. Существует еще одна возможность описания данного свойства с помощью теории категорий - с помощью утверждения существования функтора Г : ЬОгарЬЬ ^ 1п]ОгарЬр .

Лемма 1. Инъективность графовых морфизмов. Если /: О ^ Н является ЬОгарЬЬ -мор-физмом, то / является инъективной функцией.

Доказательство. : Vо ^ Но является инъективной в силу того, что для Уу, е ёош () из V ф w следует у10 (V) ф у10 (, так как у1 является инъективной. Из этого следует, что по определению ЬОгарЬЬ-морфизма у1н ((V)) ф у1н ((w)) . В итоге в силу различающихся меток (V) ф (w). /е : Ео ^ Ен является инъективной, поскольку для Уе, g е ёош (/е) из е ф g следует её§ео (е) Ф её§ео (g), а также е1о (е) Ф е1о (g), sо (е) Ф sо (g) и о (е) ф 1о (g). Следовательно, по определению ЬОтарИЬ -морфизма /е (е) Ф /е (g) .

Морфизмы, сохраняющие типы вершин и ребер. Пусть О и Н - (Ь, А) -помеченные Т -типизированные графы. /: О ^ Н представляет собой помеченный типизированный графовый морфизм, если / является помеченным графовым морфизмом между

1 Далее в случае однозначности контекста обозначения (Ь,А) в префиксе наименования категории будут опускаться.

(L, A) -помеченными графами G и H. T -Сохраняющий помеченный графовый морфизм f : G ^ H - такой помеченный типизированный графовый морфизм, что выполняется:

Vv е dom (fv ) : vtG = vtH 0 fv; Ve е dom (fe ): etG = etH 0 fe . Категория помеченных типизированных графов. Категория LTGraph (L, A, T) содержит (L, A) -помеченные T -типизированные графы в качестве объектов и графовые морфизмы в качестве морфизмов. LTGraphL (L, A, T) содержит L -сохраняющие помеченные графовые морфизмы в качестве морфизмов. LTGraphA (L, A, T) содержит A -сохраняющие помеченные графовые морфизмы в качестве морфизмов. LTGraphT (L, A, T) содержит T -сохраняющие помеченные графовые морфизмы в качестве морфизмов. Аналогично определяются категории LTGraphLA ( L, A, T), LTGraphLT ( L, A, T), LTGraphAT ( L, A, T) и LTGraphLAT (L, A, T), причем можно показать, что каждая из этих категорий является подкатегорией другой.

Продукция. Продукция p :(L -— R ) состоит из имени продукции p и инъектив-ного частичного графового морфизма r, называемого морфизмом продукции. Графы L и R носят названия левой и правой частей продукции соответственно2.

Продукция с условием применения. Продукция с условием применения, или условная

продукция p: (L ———■ R, ac (p)) состоит из имени продукции p и двойки - частичного

графового морфизма p и условия применения ac (p) над графом L . Продукция является

применимой к графу G при L ——^ G, если m удовлетворяет ac (p). В этом случае прямой вывод G —H называется прямым условным выводом G —H .

m m

Пред- и постусловия. Условие ac (p) в условной продукции разделяется на два подмножества: ac (p)l предусловий (условий применения над исходным графом) и ac (p) постусловий (условий применения над результирующим графом). Для выполнения условного вывода G ———• H предусловиям должно отвечать соответствие m в графе

m

G, а постусловиям - косоответствие m в графе H.

Элементарные преобразования. Элементарные преобразования являются условными продукциями и образуют множество

Pe = {Insert^,Inserte,Drop^,DropE,Retype^,RetypeE,Rename^,RenameE}. Элементами этого множества являются:

2 г

В случае однозначности контекста продукция p ЛL->Я) будет обозначаться p, L->Я или

L ^ Я .

======================================Известия вузов России. Радиоэлектроника. 2008. Вып. 2

• условная продукция добавления вершины Inserty (v, t) е LTGraphLT (v и t - метка и тип добавляемой вершины соответственно), имеющая предусловие (v, t) &Vl и постусловие (v, t) eVR;

• условная продукция добавления ребра Inserte (e, v, w, r) e LTGraphLT ( e и r - метка и тип добавляемого ребра соответственно; v и w - начальная и конечная вершины для ребра (s (e) = v, t (e) = w) соответственно), имеющая предусловие v gVl a w gVl a (e, v, w, r ) £ El и постусловие (e, v, w, r ) e Er ;

• условная продукция удаления вершины DropV (v, t) e LTGraphLT, имеющая предусловие (v, t) &Vl a Al (v, t) = 0 и постусловие (v, t) £Vr ;

• условная продукция удаления ребра Drope(e,v,w,r)eLTGraphLT, имеющая предусловие (e, v, w, r ) e El и постусловие (e, v, w, r ) £ Er ;

• условная продукция изменения типа вершины Retypev (v, tj, t2 ) e LTGraphL ( v, tj и t2 -метка, существующий тип и новый тип вершины соответственно), имеющая предусловие (v, ti) gVl a (v, t2 ) g Vl и постусловие (v, t2 ) e Vr a (v, tj) g Vr ;

• условная продукция изменения типа ребра RetypeE (e, v, w, rj, r2 ) e LTGraphL ( e, r и r2 -метка, существующий тип ребра и новый тип ребра соответственно), имеющая предусловие (e, v, w, r) e Vl a (w, v, w, r2 ) g Vl и постусловие (e, v, w, r2 ) e Vr a (e, v, w, r) g Vr ;

• условная продукция изменения метки вершины Relabely (vj, t, v2 ) e LTGraphT( vj, v2 и t - существующая метка, новая метка и тип вершины соответственно), имеющая предусловие (vj, t) g Vl a (v2, t) g Vl и постусловие (v2, t) e Vr a (vj, t) g Vr ;

• условная продукция изменения метки ребра Relabel (ej, v, w, r, e2 ) e LTGraphT ej, v, w, r и e2 - существующая метка, начальная вершина, конечная вершина, тип ребра и его новая метка соответственно), имеющая предусловие (ej, v, w, r) gVl a (e2, v, w, r ) g Vl и постусловие (e2, v, w, r ) e Vr a (ej, v, w, r ) g Vr .

Лемма 2. Базис элементарных преобразований образует множество

Pb = {Inserty ,Inserte ,Dropy ,DropE}.

Доказательство. Для доказательства приведем определения четырех элементарных

преобразований, не входящих в базис, с помощью базисных элементарных преобразований: Retypey (v, tj, t2 ) = Dropy (v, tj) ° Inserty (v, t2 );

Retypee (e, v, w, rj, r2 ) = DropE (e, v, w, rj) о Inserte (e, v, w, r2 ) ;

Renamey (vj, t, v2 ) = Dropy (vj, t) о Inserty (v2, t);

RenameE (ej, v, w, r, e2 ) = Drope (ej, v, w, r ) о Inserte (e2, v, w, r ) .

Составные преобразования. Пусть G0 и Оп - два графа и Go ^ 0„ - последовало ^ ^п , такая, что ^о-"—?^ ———>----^

тельность условных выводов Gq Gn, такая, что Gq ——^ Gi ——^----—^ Gn при

n > 2 и Vi е {i n}: pi - элементарное преобразование. Составное преобразование pc представляет собой композицию условных продукций pc = pi о p2 о... о pn : Gq ^ Gn.

Объединение базисных преобразований. Не существует возможности объединить в составное преобразование одинаковые базисные элементарные преобразования. Иными

словами, для Gq —— > Gn, i, j e {l . n} должно выполняться:

• (pi = Insertv (vt)) Л (pj = InsertF (vt)) ^ 1 = j , если pc = pcIV ;

• (pi = InsertE (e, v, W r)) л (pj = InsertE (e, v W r)) ^1 = j, если pc = pcIE ;

• (pi = Dropv (vt))л (pj = Dropv (v, t)) ^i=j, если pc = pcDV ;

• (pi = DropE (e, v, w, r )) Л (pj = DropE (e, v, w, r )) ^ i = j , если pc = pcDE .

Доказательство. Пусть pciv = pi pn, i, j e {i..n}: i < j, pt = Insertv (v, t). В этом случае pciv не может являться составным преобразованием, так как для преобразования pj не будет выполнено предусловие (v, t) &Vl с ac (pj) в силу существования постусловия (v, t) gVl. ^ ac (pi )R. Для pciE, pcdv , pcDE доказательство аналогично.

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

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

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

Операторы комплексирования. Операторы комплексирования Ac : (Mb) ^ Md,

Ac : (Md) ^ Md отражают зависимости одних производных метрик от других произ-

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

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

Категория метрик. Несбалансированная, конкретная категория MS, объектами которой являются метрические пространства Mb и Md, а морфизмами - операторы комплексирования Ac, называется категорией метрик. На рисунке представлена ее структурная схема.

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

Базовые операторы преобразований. Базовые операторы преобразований

Atb : Mb ^ Mb соответствуют элементарным преобразованиям графовых моделей ПС, определяемым базисом Pb = {Inserty ,Inserte ,Dropy ,DropE}.

Производные операторы преобразований. Производные операторы преобразований Atd : Md ^ Md соответствуют составным преобразованиям графовых моделей ПС, определяемых композициями условных продукций вида pc = pj оР2 °...°pn : Gq ^ Gn.

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

Библиографический список

1. NASA's exploration agenda and capability engineering / D. E. Cooke, M. Barry, M. Lowry, C. Green // Computer. 2006. Vol. 39, №. 1. P. 63-73.

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

V. V. Burakov

Saint-Petersburg state university of aerospace instrumentation The formal base for software transformation

The formal model of software transformation is introduced. As a base of formal description of software graph theory is used. Graph models of programs form category objects, while morphisms category describe software transformations. The represented formal model gives a permit to regard software transformation as controlled and determined process.

Software transformation, refactoring, software model

Статья поступила в редакцию 10 сентября 2007 г.

УДК 621.372.8

Р. И. Тихонов

LG Russia R&D Center

I Улучшение сходимости метода векторных конечных элементов для решения краевых задач электродинамики

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

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

Метод векторных конечных элементов (МВКЭ) [1] широко применяется для решения внутренних краевых задач электродинамики. Однако система линейных алгебраических уравнений (СЛАУ), получаемая этим методом, как правило, плохо обусловлена. Это приводит к медленной сходимости или даже к расходимости итерационных методов решения полученной СЛАУ, например метода сопряженных градиентов.

Для объяснения плохой обусловленности СЛАУ, получаемой МВКЭ, рассмотрим задачу расчета электромагнитного поля в объеме V, ограниченном замкнутой поверхностью S. Комплексная амплитуда электрического поля É в этом объеме удовлетворяет уравнению

Vx ( ц -:Vx É ) - É = —/юц0 J 0, (1)

30

© Тихонов Р. И., 2008

i Надоели баннеры? Вы всегда можете отключить рекламу.