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

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

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

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

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

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

Software transformation method

The approach to software transformation, based on modeling and programs quality estimation, revealing of unsatisfactory quality program structures and formation of transformations for quality improvement is described. In aggregate with programs quality estimation process the offered technique defines the tool for quality management of software, creating formally described determined process of continuous improvement of quality during all life cycle.

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

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

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

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

1. Савченко В. В. Автоматическое распознавание речи методом дерева на основе информационного (R +1) -элемента // Изв. вузов России. Радиоэлектроника. 2006. Вып. 4. С. 13-22.

2. Савченко В. В. Автоматическая обработка речевых сигналов по критерию минимального информационного рассогласования на основе метода обеляющего фильтра // Радиотехника и электроника. 2005. Т. 50, № 3. С. 309-315.

3. Кульбак С. Теория информации и статистика. М.: Наука, 1967. 408 с.

4. Савченко В. В. Различение случайных сигналов в частотной области // Радиотехника и электроника. 1997. Т. 42, № 4. С. 426-431.

5. Савченко В. В., Акатьев Д. Ю., Карпов Н. В. Автоматическое распознавание речевых единиц методом обеляющего фильтра // Изв. вузов России. Радиоэлектроника. 2007. Вып. 4. С. 35-42.

6. Марпл С.Л.-мл. Цифровой спектральный анализ и его приложения / Пер. с англ. М.: Мир, 1990. 584 с.

V. V. Savchenko, I. V. Gubochkin Nizhny Novgorod state linguistic university

Phonetic speech analysis by variable tree method

Problem of automatic segmentation and recognition elementary speech units from speech by tree method is put and solved. Thus the information-theoretic approach and the minimum information divergence criteria of distributions are used. It is suggested the new algorithm based on solving R-alternative statistical classification problems. The main part of this algorithm is the informational (R +1) -element for multialternative signal recognition with training by the minimum information divergence criteria.

Speech, speech signal, automatic speech recognition problem, pattern recognition, recognition with training

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

УДК 004.05

В. В. Бураков

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

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

| Методика преобразования программных средств

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

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

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

20

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

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

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

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

p

продукциях над этим графом вида G > H (G - начальный граф, H - конечный граф, pm - продукция, переводящая начальный граф

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

На рис. 1 представлена схема методики преобразований ПС с использованием диа-

граммы действий ЦМЬ. Процесс оценки качества описан в [2]. Рассмотрим процессы, составляющие методику преобразований ПС.

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

Поиск оптимальной последовательности операторов. На каждом базовом метрическом пространстве М Ь, соответствующем базовой метрике, определен базовый оператор преобразований Л*Ь : МЬ ^ МЬ, соответствующий элементарным преобразованиям

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

преобразований Л^ : Мd ^ М^ соответствующих составным преобразованиям графовых моделей ПС, которые определяются композициями условных продукций вида рс = Р1 ор2 о...орп : Go ^ Оп, где р^ - I-е преобразование, О0 и Оп - исходный и результирующий графы, описывающие ПС, соответственно.

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

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

«(-г Ъ Ald1 ac (A1d1 )* 4 \ \ \ ac(Г)¿ Atd2 ac (A1d2 )R ac ()L ^tdn ac (A1dn )R

ac (.4f )l Atd1 A2 ac (A?1 )r \ \ \ ac (Af )L Ad2 A2 ac (A?2 )R / / / / ... / / ac(At")L Adn A2 ac (Af )R

«(Ad1 )L Atd1 A3 ac (A? )R ^ ac (Af )L Atd2 A3 ac (Af )„

ac (4" )L Atd1 A4 ac (A™ )R w4 w w u ac (Af )L A td2 A4 ac (Af )R \ \ \ k 4 \ \ ••• \

ac (A?2 )l A¡d2 ac (Af )R

\ \ ac (Af )L A td2 A6 ac (A^d2 )r

Последовательности операторов преобразований

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

выборе последовательности, применение которой влечет наилучшее изменение качества ПС.

Алгоритм поиска оптимальной последовательности преобразований. Данные алгоритма: ргоёисеАСЬат (Я, г) - рекурсивная функция, порождающая производные операторы; г, /, к, I е N - индексы, заданные на множествах метрических пространств и операторов; п - количество измерений в пространстве метрик; / ^) - г (/, к, I) -й производный оператор, определенный на конкретном метрическом пространстве; Я - множество кандидатов - потенциально оптимальных операторов преобразований; и - вспомогательное множество кандидатов - потенциально оптимальных операторов преобразований.

Функция ргоёисеАСЬат ( Я, г).

Шаг 1. I = 1.

Шаг 2. Для V/ : А/ е Я выполнить

Шаг 2.2. Для У к : ас (А/) = ас (А+1 выполнить

Шаг 2.2.1. А1 = Ау о А^+1.

Шаг 2.2.2. и = и и А[.

Шаг 2.2.3. I = I +1.

Шаг 3. г = г +1.

Шаг 4. Если г < п, то выполнить ргоёисеАСЬат (и, г).

Основной алгоритм.

т

Шаг 1. Положить г = 1, Я = ^ А, где т - количество операторов на г-м метриче-

I=1

ском пространстве.

Шаг 2. Выполнить ргоёисеАСЬат (Я, г).

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

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

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

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

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

PCTV; композиции добавлений ребер Pcie ; композиции изменений меток ребер Pcle ; композиции изменений типов ребер Pcte ; композиции удалений ребер Pcde ; композиции удалений вершин Pcdv .

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

В качестве основы алгоритма нормализации используется алгоритм сортировки методом "пузырька". Каждая пара последовательно независимых преобразований может быть или абсорбирована, или поменяна местами. Повторяя попытки абсорбции и замены, можно сгруппировать однотипные преобразования в рамках данного составного. Опишем процесс перестановки и абсорбции формально. Обозначим: t - тип преобразования; ptemp

- вспомогательная переменная; typep : p¡ ^ Pe - функции, возвращающие тип конкретного преобразования для хранения параметров элементарного преобразования.

Алгоритм перестановки.

1. Если (typep (pi) = t) л (typep (pi-1) Ф t) шаг 2, иначе шаг 4.

2. Если pi и pi-i являются последовательно независимыми, то присвоить

ptemp = pi, pi = pi-1, pi-1 = ptemp , j =1.

3. Иначе заменить pt-i o pi абсорбирующим преобразованием p'-i = pt-i o pi, присвоить j = i, n = n -1.

4. Присвоить i = i +1.

5. Если i < n, перейти на шаг 1.

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

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

Доказательство. Допустим, что существует два минимальных составных преобра-1 2

p Р 1 2

зования G — m > H и G — > H . Покажем, что выполняется Vi : p/ e pm=> p/ e pm . Допустим что pi = Insert^ (v, t) - оператор добавления вершины v типа t. Очевидно, что Pi не может следовать за Dropv (v, t) - оператором удаления вершины v типа t, так как вместе они представляют собой пару взаимопоглощающих преобразований. Также не найдется не одного Dropv (v, tj ), в силу того, что перед р/ необходимо было бы предположить наличие Retype^ (v, tj, t) - оператора изменения типа tj вершины v на тип t, а это в

силу минимальности р]п недопустимо. Все пары Insert^ (v,tj ), Retype^ (v,tj,t) абсорбированы. В силу свойства ортогональности элементарных преобразований можно заключить, что (v, t) g G и (v, t) g H. Так как начальный и результирующий графы рП и рП совпадают, то Insert^ (v, t ) е рП . Аналогично, Insert^ ( v, tj ) g рПП , так как рП - минимальна и (v, t) g H, следовательно, не содержит никаких Retype^ ( v, tj, t ). Аналогично можно пока-1 2

зать, что V/ : р^ рт^ р/ е рт для остальных типов элементарных преобразований.

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

Пример использования модели и методики преобразований ПС. Сущности программы (такие, как классы, переменные, методы, параметры методов) представляются вершинами, чьи метки представляют собой пары из имени и типа сущности. Следует подчеркнуть, что при моделировании ПС не ставится задачи формального представления всех его свойств. Для целей описания преобразований необходимо и достаточно формально описать только те свойства ПС, от которых зависит описание используемых преобразований. Например, для программы на Java множество Vg = {C, V,S,B,E} всех возможных типов вершин может служить для представления, соответственно, класса, поля, сигнатуры метода, тела метода и выражения в теле метода. Отношения между программными сущностями представляются с помощью ребер. Множество EG = {l, m, р, t, e, c, d, a, u} всех

возможных типов ребер составляют типы: l : S ^ B - позднее связывание; m : V ^ C -открытая принадлежность поля классу; р : V ^ C - закрытая принадлежность поля классу; m : B ^ C - открытая принадлежность метода классу; t : V ^ C - тип поля; e : B ^ E - выражение в теле метода; c : E ^ E - подвыражение; d : E ^ S - динамический вызов метода; a : E ^ V - доступ к полю; u : E ^ V - модификация поля.

В качестве примера кода выбрано приложение Timer Service (его серверная часть) из сборника примеров от Sun Microsystems для платформы J2EE 1.4 (рис. 3). Пример посвя-

public class TimerSessionBean implements SessionBean, HmedObject { private SessionContext context; public void myCreateTimer(long intervalDuration) {

System.out.println("TimerSessionBean: start createTimer ");

TimerService timerService = context. getTimerService();

Timer timer = timerService. createTimer(intervalDuration, "created timer");

}

}_

Рис. 3

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

С помощью предлагаемой графовой нотации все составляющие кода можно представить как типизированный помеченный граф. На рис. 4 представлен фрагмент структуры метода myCreayeTimer класса TimerClassBean.

Чтобы гарантировать формальную корректность графового представления, под которой понимается его соответствие синтаксически корректной Java-программе, необходимо ввести аксиомы, позволяющие учитывать требования соответствующего языка программирования (в данном случае Java). Для описания аксиом используются два механизма - типовый граф и множество некорректных подграфов, которые описаны в работе [3].

Для описания подхода к формализации преобразования допустим, что в результате оценки качества с использованием методики, описанной в работе [2], необходимо уменьшить значение метрики NOPA (количество общедоступных полей класса). Сделать это, не меняя функциональности системы, можно помещением открытых полей класса в закрытую секцию и добавлением геттер- и сеттер-методов для этих полей. В модели метрик для метрического пространства, определяемого метрикой NOPA, объявим оператор модификации метрики ^Nopa . На метрическом пространстве, определяемом метрикой NOPP

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

(количество закрытых полей класса), объявим оператор ^nopp • На пространствах, определяемых метриками NOG и NOS (количества геттер- и сеттер-методов класса), определим операторы ^Nog и ^NOS • Тогда в категории метрик будут иметься четырехмерное

пространство и производный оператор ^nideField = ^NOPA ° ^NOPP ° ^NOG ° ^Nf-NOS • Приведем соответствия введенных операторов базису элементарных преобразований.

1 • Для каждого класса class, содержащего отрытое поле var :

^NOPA = Drope (e, var, class, m) ; ^Nopp = Inserte (e, var,class, p) ;

^NOS = Insert^ ( modifier, S ) ° Insert^ (setter, B ) о Insert e ( set,setter,modifier, l ) ° о Insert^ ( 5, E ) о Insert e ( ¿i, setter, s, e ) о Insert e ( si, s, var, м ) о Insert e (setVar,setter,class, e ) ;

^NOG = Insert^ ( accessor, S ) ° Insert^ ( getter, B ) о Insert e ( get,getter,accessor, l ) о о Insert^ ( g, E ) о Insert e ( gi,getter, g, e ) о Insert e ( g2, g, var, a ) о Insert e ( getVar,getter,class, e ).

2. Для каждого выражения доступа access к открытому полю var вне метода accessor Drop e ( e, access,var, a ) о Insert e ( e, access,accessor, d ) .

3. Для каждого выражения доступа modify к открытому полю var вне метода modifier Drop e ( e, modify,var, м ) о Insert e ( e, modify,modifier, d )

В рассматриваемом примере имеется одно открытое поле класса (SessionContext context), причем метод для его модификации уже существует. Следовательно, в рамках преобразования необходимо, во-первых, добавить метод для доступа к переменной context; во-вторых, заменить выражение доступа к переменной context в методе myCre-ateTimer на выражение вызова добавленной функции доступа. На рис. 5 представлено состояние кода до и после применения указанного преобразования.

V

Í

v1

_v2

v1

v5

v4

C

V a E B Л1 S

var accessor accessor

v2

C + t

v3

Рис. 6

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

рефакторинга кода, введем для оператора ^nideField шаблон AddAccessor (var,accessor).

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

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

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

Входящие ребра Исходящие ребра

(a, vj) ^ (d, V3 ) (m, vj) ^ (m, vj), (m, V4 )

- (^ vj) ^ (^ vj), V3 )

ют в качестве целевых вершины в левой части продукции и не имеют в ней вершин-источников, переориентируются согласно входящим ребрам, описанным в таблице. На рис. 7 представлена продукция AddAccessor (уаг,асое88ог), применяемая к коду рис. 3. Заштрихованные Е-вершины графа на рис. 7 совпадают с заштрихованной £-вер-шиной графа на рис. 4.

Сохранение доступа к переменной. Графовое выражение B-

?*a

-»V используется

для описания свойства сохранения доступа. Оно описывает все возможные пути доступа из тела метода (Б-вершины) к переменной (К-вершине). Аксиомы, описываемые типовым графом [3], гарантируют существование только одного а-ребра в этом пути, и данное ребро яв-

ляется последним. Сохранение доступа означает, что для каждого вхождения Б-

+V

?*а

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

28

Рис. 7

Сохранение вызова метода. Графовое выражение В ——— £ —■—> С ——-— С опи-

!*а 1т /'*

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

Покажем сохранение доступа для преобразования ЛёёЛссеББог. Для этого достаточно доказать, что свойству В ———>¥ удовлетворяют все тела методов В, которые получают доступ к переменной уаг. Данный факт следует из формы продукции, представленной на рис. 6. Рис. 8 иллюстрирует замену непосредственного доступа к переменой уаг более длинным путем, который все еще удовлетворяет свойству В ———>¥.

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

Рис. 9

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

На рис. 9 представлены негативные предусловия, необходимые для преобразования AddAccessor в рамках удовлетворения аксиоме. Условия описывают, что ни предшественники, ни последователи в рамках классовой иерархии класса, содержащего переменную var, не должны иметь методов с сигнатурой accessor.

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

L Идентификация типов вершин и ребер.

2. Определение частичного порядка вершин и ребер.

3. Построение типового графа.

4. Описание аксиом типов вершин и ребер.

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

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

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

L Липаев В. В. Стандартизация характеристик и оценивания качества программных средств. М.: Машиностроение, 2002. 24 с. (Б-чка журнала ИТ.)

2. Бураков В. В. Формальный базис для оценки качества ПС // Изв. вузов. Приборостроение, 2008. Т. № L С. 35-4L

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

V. V. Burakov

Saint-Petersburg state university of aerospace instrumentation Software transformation method

The approach to software transformation, based on modeling and programs quality estimation, revealing of unsatisfactory quality program structures and formation of transformations for quality improvement is described. In aggregate with programs quality estimation process the offered technique defines the tool for quality management of software, creating formally described determined process of continuous improvement of quality during all life cycle.

Software transformation, refactoring, software model

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

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