Scientific journal
Modern high technologies
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

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

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

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

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

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

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

СПИСОК ЛИТЕРАТУРЫ:

  1. Соммервилл, И. Инженерия программного обеспечения / И. Соммервилл. Вильямс, 2002. 624 с.
  2. Семенько, Т. И. Оптимальные стратегии тестирования программных систем / Т. И. Семенько. Вест. университетского комплекса: Сб. научн. трудов. Красноярск: ВСФ РГУИТП, НИИ СУВПТ, 2005. Вып. 4 (18). С. 34-37.