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

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

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Фаворская Маргарита Николаевна, Зотин Александр Геннадьевич, Горошкин Антон Николаевич

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

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

The morphological processing of countour images in recognition systems of text symbols

The analysis of mathematical morphological operations for two-level and gray-level images processing is discussed. The duality correlations of widening and pressure operations, also closing and opening operations towards to addition and central reflection operations are proved. The results of using morphological operations for images processing are considered.

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

го значения параметра в в качестве преобразования д выбирается преобразование, обратное отображению ^ Сложность использования этой подгруппы состоит в том, что для каждого конкретного изображения X необходимо получить значение параметра в, что не всегда возможно. Эти методы отличаются низкой помехоустойчивостью, так как преобразованию д подвергается уже зашумленное изображение, а параметры преобразования определяются по данным, в которых полезный сигнал невозможно отделить от шума. Обычно в качестве преобразований /рассматриваются преобразования сдвигов и поворотов изображения объекта, а параметр в для каждого изображения находится путем измерения сдвигов центра изображения и поворотов его оси инерции. Масштабные изменения учитываются путем нормализации по дисперсии характерных точек изображения.

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

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

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

M.N. Favorskaya

THE INVARIANT DECISION FUNCTIONS IN TASKS OF FREEZE-FRAME IMAGES RECOGNITION

The production model from sample patterns of freeze-frame images in both ideal and real cases is discussed. The concept of invariant decision functions based on the principle of invariance of statistical decisions is introduced. Definition methods of maximal invariant functions in some groups of methods for freeze-frame images recognition are analyzed.

Принята к печати в декабре 2006 г.

УДК 681.3.07

М. Н. Фаворская, А. Г. Зотин, А. Н. Горошкин

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

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

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

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

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

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

Рассмотрим две базовые морфологические операции: расширение и сжатие, которые являются основополагающими в большинстве алгоритмов морфологической обработки изображений [1]. Пусть А и В - конечные множества из пространства ^ Тогда расширение множества А по множеству В определится как

А©В={г|((В')пА)сА}, (1)

где В является центральным отражением множества В, В' = {г|г = -Ь, Ь е В}; а (В)г определяет параллельный перенос или сдвиг множества В в точку г = z2) по

следующему правилу:

(В)г = {^|^ = Ь + г, Ь е В}.

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

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

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

Существует морфологическая операция, обратная операция расширения, называемая сжатием множества А по примитиву В:

А(,В = {г|(В)г С А}. (2)

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

Операции расширения и сжатия являются двойственными операциями по отношению к операциям дополнения и центрального отражения:

СЕА©В' = С£(Ае В), (3)

где СА - дополнение множества А относительно множества Е (множество Е в данном случае можно интерпретировать как изображение реального мира).

Приведем доказательство выражения (3). Согласно определению операции расширения (1),

СеА©В' = ШВ^пСеА) с СеА}.

Поскольку ((В)гпСЕА) с СеА, то (В)гпСЕА Ф 0. Следовательно (с учетом справедливости соотношения СеСА = А), получим

СеА©В' = ДО^пС^ Ф 0}=СЕСЕ{г|(В)гПСЕА Ф 0}.

Дополнением для множества г, удовлетворяющего условию (В^пС^А Ф 0, является множество таких г, что (В^пСА = 0. Поэтому последнее выражение можно переписать следующим образом:

СеАФВ' = СеДО^пСеА = 0} =

= СЕ{г|(В)гПА Ф0} = СЕ{г|(В)г С А}, что и означает выполнение равенства (3) в соответствии с определением операции сжатия.

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

Операция открытия множества А по примитиву В обозначается как А ОВ и определяется равенством АОВ = (Ае В) © В.

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

Операция закрытия множества А по примитиву В, обозначаемая как А • В, имеет вид

А • В = (А©В)е В и обозначает, что к результату операции расширения множества А по примитиву В применяется операция сжатия по примитиву В.

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

Се(А • В) = Се(А)о В'. (4)

Приведем доказательство выражения (4). Преобразуем левую часть соотношения (4) в соответствии с определениями операций расширения (1) и сжатия (2):

Се(А • В) = Се(ШВ2 )гПА) С А} е В) =

= СЕ({г|(В)г С ((В')гПА) С А)}) = СЕ({г|(В)г С А)}).

Поскольку множество (В)г содержится во множестве А, то (В^пСА = 0. Дополнением для множества г, удов-

летворяющего данному условию, является множество таких z, что (B)znC£A Ф 0. Поэтому последнее выражение можно переписать следующим образом:

Ce(A • B) = {гК(В)гпСЕА) Ф 0} = {гК(В)гпСЕА) с CeA}.

Теперь преобразуем правую часть соотношения (4) в соответствии с определениями операций сжатия (2) и расширения (3):

С£(Л)0 B2 = {г|(В')г с CeA})©B2 =

= Ш^пСеА) с CeA}.

Поскольку обе части соотношения (4) приведены к общему выражению, то равенство (4) доказано.

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

а) A °B является подмножеством A, т. е. вложенным изображением;

б) если С есть подмножество D, то С 0B является подмножеством D °B;

в) (A°B)0B = A °B.

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

а) множество A является подмножеством, т. е. вложенным изображением A • B;

б) если С есть подмножество D, то С • B является подмножеством D • B;

в) (A • B) • B = A • B.

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

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

Морфологическое преобразование «успех / неудача» является основным методом обнаружения на изображении объектов определенных размеров и формы. Представим множество B как B = (Bp B2), где B1 - множество элементов B, относящихся к интересующему объекту; B2 - множество элементов окружающего фона. Преобразование «успех / неудача» имеет следующий вид:

A®B = (Ae B1)n(CEAe B2). (5)

Выражение (5) можно интерпретировать следующим образом. Множество A®B содержит все точки, в которых одновременно для множества элементов объекта B1 имеется эквивалент во множестве A, а для множества элементов фона B2 - эквивалент в дополнении к множеству A (во множестве CA). В этом случае говорят, что имеет место «успех».

Используя определение разности множеств и соотношение двойственности между операциями сжатия (2) и расширения (1), равенство (5) можно переписать в виде A®B = (Ae B1) \ (A©B/).

Совместное использование примитива B1, связанного с интересующим объектом, и примитива B2, связанного с фоном, базируется на том соображении, что два и более объекта различимы только в том случае, если они образованы непересекающимися множествами. Иными

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

Утончение множества А по примитиву В, обозначаемое как А. В, можно определить с помощью преобразования «успех / неудача»:

А .В = А \ (А®В) = АпСЕ(А®В).

Интерес при этом представляет только поиск в исходном множестве мест совпадения объекта с конфигурацией пикселей примитива В, так что в преобразования «успех / неудача» не участвует окружающий фон.

Возможно симметричное утончение множества А, основанное на последовательном применении примитивов

В = В1, В2, В3, ..., В",

где примитив В‘ получается из примитива В1-1 поворотом. На первом шаге производится утончение множества А по примитиву В1, затем полученный результат подвергается утончению по примитиву В2 и т. д., вплоть до и-го шага с примитивом В". Процесс повторяется до тех пор, пока наблюдаются изменения. Каждый шаг утончения выполняется с помощью соотношения (5).

Утолщение представляет собой двойственную морфологическую операцию по отношению к утончению А > В = Аи(А®В), где В - подходящий примитив. Как и в случае утончения, утолщение определяется как последовательная операция применения последовательности примитивов. Используемые для утолщения примитивы имеют ту же форму, что и примитивы для операции утончения, но единицы и нули внутри примитивов меняются местами. Однако специальный алгоритм утолщения редко используется на практике. Вместо этого обычно применяется процедура, состоящая в утончении фона для рассматриваемого множества, а затем берется дополнение полученного результата.

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

(Д© Ъ)^, ¿) = тах{Д.у - х, t - у) +

+Ъ(х, у)|(л - х, t - у) е Df; (х, у) е DЪ}, (7)

где Df и DЪ - области определений изображений/и Ъ соответственно; ^ и t - сдвиги координат по осям X и У. Условие, заключающееся в том, что координаты (^ - х) и ^ - у) должны находиться в области определения Д а х и у - в области определения Ъ, является аналогом условия в определении двоичной операции расширения, которое требует, чтобы два множества пересекались хотя бы в одном элементе. Кроме того, уравнение (7) по форме аналогично определению двумерной свертки с точностью до замены суммирования операцией взятия максимума, а умножения - сложением.

Аналогичным образом определяется полутоновая операция сжатия / по Ъ:

(£и Ь)^, 0 = тт{/0 + х, t + у) -

- Ь(х,у)|(я + х, t + у) е Df; (х,у) е DЬ}, (8)

где Df и DЬ - области определений изображений £и Ь соответственно. Условие, состоящее в том, что координаты (^ + х) и ^ + у) должны находиться в области определения £ а х и у - в области определения Ь, аналогично условию в определении двоичной операции сжатия, которое требует, чтобы примитив полностью находился внутри исходного множества. По форме уравнение (8) повторяет уравнение двумерной корреляции с точностью до замены суммирования операцией взятия минимума, а умножения - вычитанием.

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

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

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

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

1 2 1

0 0 0

-1 -2 -1

0 1 2 -10 1.

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

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

1 1 1

1 -8 1 .

111

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

1 0 -1

2 0 2 -

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

1 0 -1

2 1 0

1 0 -1

0 -1 2 1

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

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

Рис. 1. Маски морфологической обработки: а - крестообразная 3 х 3; б - квадратная 2 х 2

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

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

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

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

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

Л = | Л - В | + | В - С |, или А =(Л - В)2 + (В - С)2, где А' - новое значение яркости текущего пикселя; А -значение яркости текущего пикселя; В - значение яркости пикселя снизу от текущего пикселя; С - значение яркости пикселя справа от текущего пикселя; Б - значение яркости пикселя, расположенного по диагонали от текущего пикселя.

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

На основе представленного выше теоретического подхода было разработано программное обеспечение для

морфологической обработке печатных текстовых символов в среде интегрированной разработки приложений Delphi 2005. Экранный интерфейс представляет собой две матрицы 50 х 50 элементов, в которых отображается оригинал изображения символов (например, из файла или нарисованных пользователем), а также панель управления, с помощью которой можно отобразить вид маски и выбрать ее размеры. Также имеется возможность наложить шум на оригинал изображения в заданном процентном соотношении (этот показатель пользователь может устанавливать по желанию). Программное обеспечение позволяет выполнять базовые морфологические операции в любой последовательности. Было проведено тестирование на 280 образцах, каждый из которых подвергался трем степеням зашумления (3, 5, 7 %). В зависимости от заполненности матрицы контурными фрагментами и возможными шумами при использовании алгоритма динамического выбора шага производительность возрастала на 11.. .47 %.

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

а о в

Рис. 2. Стадии морфологической обработки: а - изображение-оригинал; б - изображение после операции закрытия; в - изображение после операции открытия

Рис. 3. Пример выделения информативных текстовых зон: а - оригинал изображения; б - изображение после многократной операции расширения

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

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

1. Гонсалес, Р. Цифровая обработка изображении / Р. Гонслес, Р. Вудс ; пер. с англ. под ред. П. А. Чочиа. М.: Техносфера, 2005.

M. N. Favorskaya, A. G. Zotin, A. N. Goroshkin

THE MORPHOLOGICAL PROCESSING OF COUNTOUR IMAGES IN RECOGNITION SYSTEMS OF TEXT SYMBOLS

The analysis of mathematical morphological operations for two-level and gray-level images processing is discussed. The duality correlations of widening and pressure operations, also closing and opening operations towards to addition and central reflection operations are proved. The results of using morphological operations for images processing are considered.

Принята к печати в декабре 2006 г.

УДК 681.34

И. А. Капчинский, Ю. Д. Цветков, С. А. Чикизов

ТЕХНОЛОГИЯ СОМ+ ДЛЯ РЕАЛИЗАЦИИ МУЛЬТИВЕРСИОННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИХ СИСТЕМ

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

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

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

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

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

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

- динамического подключения модулей;

- требования инкапсуляции;

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

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

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

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

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