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

кандидата технических наук
Русаков, Михаил Александрович
город
Красноярск
год
2005
специальность ВАК РФ
05.13.01
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Многоэтапный анализ архитектурной надежности в сложных информационно-управляющих системах»

Автореферат диссертации по теме "Многоэтапный анализ архитектурной надежности в сложных информационно-управляющих системах"

На правах рукописи

РУСАКОВ Михаил Александрович

МНОГОЭТАПНЫЙ АНАЛИЗ АРХИТЕКТУРНОЙ НАДЕЖНОСТИ В СЛОЖНЫХ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИХ СИСТЕМАХ

05.13.01 — Системный анализ, управление и обработка информации

Автореферат

диссертации на соискание ученой степени кандидата технических наук

Красноярск 2005

Работа выполнена в Сибирском государственном аэрокосмическом университете им. академика М.Ф. Решетнева и Красноярском государственном техническом университете

Научный руководитель

Ведущая организация: Государственный научно-исследовательский институт информационных технологий и телекоммуникаций «Информика» (г. Москва).

Защита состоится «20» мая 2005 года на заседании диссертационного совета Д 212.249.02 при Сибирском государственном аэрокосмическом университете по адресу: пр. Красноярский рабочий, 31, Красноярск, 660014.

С диссертацией можно ознакомиться в библиотеке СибГАУ.

Автореферат разослан «19» апреля 2005 года

доктор технических наук,

профессор Ковалев Игорь Владимирович

Официальные оппоненты

доктор технических наук,

профессор Терсков Виталий Анатольевич

доктор технических наук, профессор Петров Михаил Николаевич

/

/

Ученый секретарь диссертационного совета

И.В. Ковалев

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность проблемы.

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

Быстрый рост сложности и размеров современных программных систем при одновременном повышении ответственности выполняемых функций ИУС резко повысил требования со стороны заказчиков и пользователей к их качеству, надежности функционирования и безопасности применения. Принципиально изменились характеристики основных проектов -разработки перешли от программирования «в малом» к программированию «в большом». По мере расширения применения и увеличения сложности информационно-управляющих систем выделились области, в которых ошибки или недостаточное качество программного обеспечения (ПО) могут нанести ущерб, значительно превышающий положительный эффект от их использования. В этих критических случаях недопустимы аномалии и дефекты функционирования программного обеспечения ИУС при любых искажениях исходных данных, сбоя, частичных отказах аппаратуры и других нештатных ситуациях. Однако иногда излишне высокие требования к качеству программных средств для подобных систем принципиально не могут быть выполнены вследствие реальных ограничений всех видов ресурсов: бюджета, длительности разработки, характеристик вычислительных систем и квалификации специалистов. Это обусловило появление, развитие и применение методов, стандартов и средств автоматизации промышленной программной инженерии, обеспечивающих создание сложных программных архитектур ИУС с заданными высокими показателями качества при реальных ограничениях на использование ресурсов разработки.

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

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

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

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

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

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

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

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

формирование модели анализа архитектурной надежности корпоративных информационно-управляющих систем с программной архитектурой «клиент-сервер»;

реализация экспресс-анализа эффективности функционирования программной архитектуры автоматизированной системы технической диагностики и контроля;

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

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

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

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

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

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

3. Разработана методика автоматизированного экспресс-анализа эффективности функционирования программной архитектуры автоматизированной ИУС технической диагностики и контроля, которая применена г рамках современной технологии программирования автоматизированных систем управления.

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

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

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

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

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

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

Реализация результатов работы. Диссертационная работа выполнялась по проектам межотраслевых программ Минобразования России и Минатома России по направлению «Научно-инновационное сотрудничество» (проект VII-12), а также в рамках тематического плана НИР СибГАУ (2002-2005 гг.) и НИР КГТУ (2003-2005 гг.).

При использовании системы модельно-алгоритмическо1 поддержки реализован модуль многоэтапного анализа архитектурной

надежности распределенного ПО клиент-серверных приложений корпоративной системы управления предприятием '(Галактика».

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

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

На защиту выносятся:

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

- методика автоматизированного экспресс анализа эффективности функционирования программной архитектуры автоматизированной системы технической диагностики и контроля;

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

- система модельно-алгоритмической поддержки многоэтапного анализа архитектрурной надежности сложных программных систем.

Апробация работы. Основные положения и результаты работы прошли всестороннюю апробацию на всероссийских конференциях, научных семинарах и научно-практических конференциях. В том числе, на ежегодной Всероссийской электронной научно-технической конференции Российской академии естествознания «Приоритетные направления развития науки, технологий и техники» (Москва, 2004/2005), Всероссийской научно-технической конференции (Современные проблемы радиоэлектроники») (Красноярск, 2005), международной научной конференции «Татищевские чтения: актуальные проблемы науки и практики» (Тольятти, 2005), Всероссийской научно-методической конференции «Совершенствование системы управления качеством подготовки специалистов» (Красноярск, 2001 научно-практической конференции «Актуальные проблемы науки в России», Выпуск 2, 3 (Кузнецк. 2003 и 2005), еженедельных межвузовских семинарах Сибирского государственного технологического университета (Красноярск. 2001 2002).

Диссертационная работа в целом обсуждалась на научных семинарах кафедры информатики Красноярского государственного технического университета (2002-2005 гг.) и кафедры системного анализа и исследования операций Сибирского государственного аэрокосмического университета (2004-2005 гг.).

Публикации. По теме диссертации опубликовано 11 печатных работ. Полный список публикаций представлен в конце автореферата.

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

ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТЫ Введение представляет цели и задачи диссертационной работы, раскрывает ее актуальность, научную новизну, достоверность и обоснованность, практическую значимость и апробированность полученных результатов, методологию исследований.

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

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

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

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

проектировщик методично проводит декомпозицию функциональности и распределяет ее между компонентами.

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

Немаловажную роль в обеспечении требований играют системные методы повышения архитектурной надежности сложных ИУС. Это, во-первых, реализация многоуровневых приложений. Разделение монолитного приложения на несколько архитектурных уровней позволяет увеличить масштабируемость и доступность системы, а также частично уменьшить время восстановления. Кроме того, при разделении системы на уровни обычно предусматривается, что компонент одного уровня может работать с несколькими компонентами других уровней, поэтому при выходе из строя одного компонента достаточно подключиться к другому аналогичному. Время восстановления в этом случае равно времени переподключения.

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

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

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

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

Многоуровневая архитектура системы позволяет достигнуть максимальной надежности. При этом для связи компонентов системы используются протоколы Internet, а иногда и сама Сеть, которая хотя и считается ненадежной, но имеет удобные механизмы повышения отказоустойчивости. Кроме того, разделение системы на несколько архитектурно-связанных программных компонентов, которые работают на различных компьютерах, позволяет оптимизировать аппаратуру под требования программного обеспечения. Так Web-сервер может работать под управлением Linux, сервер приложений — на Java под Solaris, а база данных — под Oracle Parallel Server. Это позволяет подобрать для каждого уровня наиболее оптимальную платформу.

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

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

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

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

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

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

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

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

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

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

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

1. Установление определенного диапазона для всех величин, вводимых оператором, и системный контроль всех вводимых величин для проверки, попали ли они в этот диапазон.

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

3. Для реализации подсистемы управления остановом системы следует привлекать N-вариантное программирование (специальный метод обеспечения отказоустойчивости ПО).

4. Система должна быть реализована в безопасном подмножестве языка программирования высокого уровня (например, Ada) и проверена с использованием статического анализа.

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

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

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

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

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

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

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

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

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

Проиессы УРОВЕНЬ б

I Функции УРОВЕНЬ 5

■ /'_1____

0Примитивы I . УРОВЕНЬ 4

_} : \

I Данные УРОВЕНЬ 3

| Структуры УРОВЕНЬ 2

Сообщения УРОВЕНЬ I

Рис 2.1 - Базовые архитектурные уровни ПС

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

уровнях архитектуры: в модуле, процессе, интерфейсе компонента или в элементах связи (передачи информации) и механизме контроля (рис. 2.1).

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

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

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

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

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

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

М число архитектурных уровней;

Л^ число компонентов науровнеу,уе{1,..,А/};

й,) множество индексов компонентов, зависящих от компонента / на уровне/, 1е{1,..Д-}, у'е{1 ,..,Л/};

вероятность использования компонента ( на уровне у, /е{1,..,Л/у},уе{1,..,Л/};

РРу вероятность сбоя в компоненте г на уровне у, /€{1,..^},

РЬ''„т условная вероятность сбоя в компоненте т на уровне п при сбое в компоненте / на уровне у {1,у'е{1 ,..,М}, ие{1 ,

ТА у время доступа к компоненту / на уровне у,

ТСГ) время анализа сбоя в компоненте / на уровне у, ¡е { уе{1,..,М};

ТЕ у время устранения сбоя в компоненте / на уровне у,

Ти$ время использования компонента / на уровне у, /е {

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

[Р11 х № ат + ТС пт + ТЕ ш ) + X Г х * + ГС + ТЕ ,„ )]]]

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

Ожидаемое время появления сбоя (определяемое как время, в те-

/ЕО»

т-И н=Нт

(3.1)

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

Коэффициент готовности системы вычисляется по формуле:

5= МТТР/(МТТР+ТЯ). (3.3)

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

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

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

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

Рис. 3.1 - Алгоритм трансформации базовой модели анализа.

Каждый класс - совокупность свойств (переменных) и методов (функций) объекта. Процесс - последовательный переход от метода одного класса к методу другого класса.

Для моделей анализа архитектурной надежности ПО ИУС, разрабатываемых на основе объектно-ориентированного подхода, следует определить:

Ж - общее число компонент в архитектуре ПО;

Л, - коэффициент надежности компонента I,1=1 ,..,/7;

С, - стоимость разработки компонента /, 1=1

Р11- вероятность использования компонента I, /=1,..,/■";

PF¡ - вероятность сбоя в компоненте/, /=!,..,/г;

РЬу - условная вероятность сбоя в компоненте 1 при сбое в компоненте у, 1=1,..,/г,7=1,..

TA¡ - относительное время доступа к компоненту 1,1=1,..,/';

ГЦ, - относительное время использования компонента/, 1=1,..,/; - коэффициент готовности системы;

Л, - коэффициент надежности системы.

Для параметров ТИ и ЫТТ¥ надежности программной архитектуры ИУС данного класса предлагаются модифицированные выражения, учитывающие исходные данные модели. Коэффициент готовности системы вычисляется аналогично 3.3.

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

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

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

На сегодняшний день сложились типовые информационно-технологические архитектуры КИУС и соответствующие структуры корпоративных компьютерных сетей (ККС). Для клиент-серверной многоуровневой распределенной обработки данных характерно следующее. На рабочей станции находятся только средства пользовательского интерфейса, на сервере приложений - программы приложений, а на сервере баз данных хранятся СУБД и файлы базы данных. Серверы выполняют всю содержательную обработку данных, рабочие станции являются «тонкими клиентами», и на их месте могут использоваться NET PC - «сетевые компьютеры». Если серверов приложений и серверов баз данных в сети несколько, то архитектура ПС становится клиент-серверной многоуровневой. Наличие выделенных уровней в технологической структуре делает возможным варьирование аппаратных и программных средств реализации структурных составляющих информационно-технологической архитектуры ККС. В результате такого варьирования можно получить набор архитектурных решений для программной системы, функционально идентичных, но отличающихся надежностными и, возможно, другими характеристиками.

В работе анализ КС-приложений рассматривается для комплексной системы автоматизации управления предприятием (КСУП) «Галактика», архитектуру которой можно рассматривать как состоящую из следующих слоев:

• слой интерфейсов (клиентская часть КСУП «Галактика»);

• слой бизнес-логики (серверная часть КСУП «Галактика»);

• слой БД (серверная часть СУБД).

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

Для рассматриваемого случая анализа архитектурной надежности ПО КСУП «Галактика» имеем:

M = 3;

N - число компонент на уровне 1;

N2 - число компонент на уровне 2;

N3 = 1 (будем рассматривать СУБД как один, отдельно взятый модуль);

Dj и D- непересекающиеся множества компонентов на уровнях 1

и 2;

D3 - состоит из одного элемента - СУБД;

Д - коэффициент надежности каждого элемента архитектуры (коэффициент надежности СУБД также входит в это множество, как отдельный элемент);

TCt и ТД - для всех i равны нулю (так как анализ и устранение сбоя в системе не предусмотрены), кроме для СУБД (практически

каждая СУБД имеет механизмы восстановления после сбоя);

ТЛ{ и Ти ,, - для разных компонент могут быть различны (сильно зависят от быстродействия сети передачи данных).

В данной модификации модели

соответствующие параметры для компонента сервера СУБД.

Для анализа надежности реально функционирующих КС-приложений КСУП часто могут быть полезны упрощенные формулы для определения среднего времени простоя системы и среднего времени появления сбоя. РЬ1) для простоты расчетов можно принять равными 0, так как, очевидно, на уровне интерфейсов взаимосвязей между компонентами нет.

Также для простоты рас етов формулы (3.1) и (3.2) можно модифицировать, не учитывая в них множества компонент Д. При этом соответствующие выражения модифицрованной модели будут более грубыми по сравнению с (3.1) и (3.2), но могут успешно применяться для экспресс-анализа надежностных характеристик программного комплекса КС-приложений КСУП «Галактика» при расчете заданных показателей.

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

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

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

Диалоговая система экспресс-анализа архитектурной надежности ИУС предоставляет для более «тонкого» анализа архитектуры графики, где показано изменение характеристик надежности архитектуры в зависимости от изменения числа компонентов на одном из архитектурных уровней. В варианте архитектуры «А» имеется возможность варьировать число функ-

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

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

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

В пятом разделе приведена разработанная «Диалоговая система оценки надежности архитектуры программного обеспечения», которая реализуется в экспресс-анализе эффективности функционирования архитектуры ПС автоматизированной системы тестирования и диагностики электронной аппаратуры (АСТД).

Реализация АСТД как программно-информационной системы обеспечивает гибкость по отношению к аппаратуре управления (АУ) различных модификаций. Это достигается путем разработки соответствующего программного обеспечения, в котором учитываются алгоритмические и параметрические особенности объектов диагностирования.

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

• выделить архитектурные урони;

• выделить компоненты архитектуры на соответствующих уровнях:

• построить граф архитектуры и матрицу инцидентности;

• задать входные параметры;

• рассчитать параметры надежности;

• произвести анализ расчетов;

• выбрать оптимальный вариант архитектуры.

Представленные результаты работы системы демонстрируют, что.

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

Рис. 4.1. График изменения времени простоя в зависимости от изменения количества функций и данных

В данном разделе описывается комплект программной документации на разработанную диалоговую систему, включая описание программы (сведения о логической структуре и функционировании программы), описание применения, руководство системного программиста (руксзодство по настройке) и руководство оператора (руководство по интерфейсной части программы). Система создана с использованием среды визуального программирования Delphi (версия 5.0) фирмы Borland International Inc. Работа проводилась при помощи вспомогательных утилит Winsight 32, System Monitor и др. При проектировании структуры программы использовался объектно-ориентированный подход. Вид основных окон истемы приведен в данном разделе. На рис. 5.1. представлено главное окно диалоговой системы, содержащее поля для ввода всех данных, необходимых для надежностного анализа программной архитектуры.

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

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

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

Рнс. 5.1 - Главное окно диалоговой системы

ЗАКЛЮЧЕНИЕ

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

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

2. Сформирована модель анализа архитектурной надежности корпоративных информационно-управляющих систем с программной архитектурой «клиент-сервер».

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

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

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

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

1. Русаков, М.А. Модели поддержки многоэтапного анализа надежности программного обеспечения автоматизированных систем управления/ И.В. Ковалев, Р.Ю. Царев, МА Русаков, М.Ю. Слободин// Проблемы машиностроения и автоматизации,- № 2, 2005.- С. 73-81.

2. Русаков, М.А. Модель надежностого анализа на этапе архитектурного проектирования систем обработки информации/ М.А. Русаков// Вестник университетского комплекса: Сб. научн. трудов/ Под общ. ред. проф. Н.В. Василенко; Красноярск: ВСФ РГУИТП, НИИ СУВПТ.- 2004.-Вып. 3(17).- С. 252-259.

3. Русаков, М.А. Структура пооперационного распределения работ при проектировании систем обработки информации/ М.А. Русаков// Вестник университетского комплекса: Сб. научн. трудов/ Под общ. ред. проф. Н.В. Василенко; Красноярск: ВСФ РГУИТП, НИИ СУВПТ.- 2004.- Вып. 3 (17).-С. 247-251.

4. Русаков, М.А. Транзакционная надежность программно-информационных технологий в АСУ/ Е.С. Гаврилов, М.А. Русаков// Вестник университетского комплекса: Сб. научн. трудов/ Под общ. ред. проф. Н.В. Василенко; Красноярск: ВСФ РГУИТП, НИИ СУВПТ.- 2004.- Вып. 3 (17).-С. 3-15.

5. Русаков, М.А. Диалоговая система анализа архитектурной надежности автоматизированного информационно-управляющего комплекса/ М.А. Русаков// Вестник НИИ СУВПТ «Интеллектуальные технологии и

адаптация»: Сб. науч. трудов/ Под общей ред. профессора Н.В. Василенко. - Часть II. - Красноярск: НИИ СУВПТ, 2002. - С. 150-156.

Ь. Русаков, МА Архитектурная надежность программного обеспечения информационно-телекоммуникационных технологий/ А.С. Дегте-рев, М.А. Русаков// Сборник материалов всероссийской заочной электронной конференции «Приоритетные направления развития науки, технологий и техники» (Москва, март 2005 г.).-М.: РАЕН, 2005. С. 161-162.

7. Русаков. МА Анализ надежности мультиверсионных архитектур аппаратно-программных комплексов/ О.А Антамошкин, А.С. Дегтерев, МА Русаков. А.А. Усольцев//Сборник материалов всероссийской заочной электронной конференции «Приоритетные направления развития науки, технологий и техники» (Москва, март 2005 г.).- М.: РАЕН, 2005. С. 76-77.

8. Русаков, МА Надежностная оценка информационных технологий при комплексной автоматизации управления предприятием/ И.В. Ковалев, МА Русаков, М.Ю. Слободин// Татищевские чтения: актуальные проблемы науки и практики: Сб. материалов международной научной конференции/ ВУиТ. - Тольятти, 2005. - С. 131-136.

9. Русаков, МА Программно-информационные технологии формирования критичных по надежности систем управления. Монография/ Р.Ю. Царев, МА Русаков, СА. Шабалин// СПб.: ИнфоДа, 2005. - 172 с.

10. Русаков МА, Ковалев И.В., Гаврилов Е.С., Ежеманская С.Н. Программная система «IT-Rcliability Estimator vl.0» (Надежностная оценка информационных технологий при комплексной автоматизации управления предприятием). - М.: ВНТИЦ, 2005.- № 50200500208, Per. № ОФАП 4507.

11. Русаков МА. Ковалев И.В., Антамошкин ОА, Гаврилов Е.С. Диалоговая система оценки надежности архитектуры программного обеспечения (Rapid Reliability ArchitecEstimator vl.0). - М.: ВНТИЦ, 2005.- № 50200500219, Per. № ОФАП 4534.

Русаков Михаил Александрович Многоэтапный анализ архитектурной надежности в сложных информационно-управляющих системах Автореферат Подписано в печать 15.04.05 Формат 60х84Д6.Бумага писчая. Уч. изд. л.1. Тираж 100 экз. Заказ .№ 14 Отпечатано на ротапринте НИИ СУВПТ 660028. г. Красноярск, ул. Баумана, 20 В

Оглавление автор диссертации — кандидата технических наук Русаков, Михаил Александрович

Введение

1. Проблемы архитектурной надежности в информационно-управляющих

1 системах

1.1. Программная архитектура информационно-управляющих систем

1.2. Системная архитектура корпоративных систем по Захману

1.3. Повышение архитектурной надежности информационно-управляющих систем

1.4. Терминологические проблемы анализа архитектурной надежности 45 Выводы по разделу I

2. Архитектура ПО как обобщенная модель информационно-управляющей системы

2.1. Фазы разработки программного обеспечения

2.2. Анализ фазы архитектурного дизайна

2.3. Базовый архитектурный модуль системы

2.4. Общая характеристика инструментальных средств автоматизации проектирования информационно-управляющих систем

2.5. Архитектурная спецификация критичных информационно-управляющих систем 74 Выводы по разделу

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

3.1. Описание предлагаемой модели анализа архитектурной надежности

3.2. Усовершенствованная модель надежностного анализа архитектур ПО в сложных информационно-управляющих системах 93 Выводы по разделу

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

4.1. Особенности архитектуры корпоративных информационно-управляющих систем

4.2. Системы с программной архитектурой клиент-сервер

4.3. Клиент-серверные приложения КСУГ1 «Галактика»

4.4. Практическая реализация надежностного анализа архитектуры ИУС 131 Выводы по разделу , 5. Экспресс-анализ эффективности функционирования архитектуры информационно-управляющих систем

5.1. Анализ архитектурной надежности программного комплекса автоматизированной системы технической диагностики

5.2. Программная реализация системы оценки надежности программной архитектуры ИУС

Введение 2005 год, диссертация по информатике, вычислительной технике и управлению, Русаков, Михаил Александрович

Состояние проблемы качества архитектур информационно-управляющих систем (ИУС) регулярно обсуждается в ряде журнальных публикаций, монографий и учебников [1,8,9,17,25,31-36]. В них, как и в базовых стандартах, большое внимание уделяется современным проблемам и процессам обеспечения качества технической продукции, технологий и услуг.

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

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

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

Значительные системные ошибки при определении требуемых показателей качества, оценке трудоемкости, стоимости и длительности архитектурного проектирования ПО ИУС являются достаточно массовыми и типичными. Многие созданные ИУС не способны выполнять полностью требуемые функциональные задачи с гарантированным качеством и их приходится долго и иногда безуспешно дорабатывать для достижения необходимого качества и надежности функционирования, затрачивая дополнительно большие средства и время. В результате часто проекты систем не соответствуют исходному, декларированному назначению и первоначальным спецификациям требований к характеристикам качества, не укладываются в согласованные графики и бюджет разработки. Проекты оказываются неудачными или даже терпят полный провал из-за недостаточной компетентности привлекаемых разработчиков, их неадекватного «оптимизма», а также вследствие отсутствия у них современной технологии, методов и стандартов, обеспечивающих требуемое высокое качество проектов ПС.

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

- не полностью реализуются цели и требования заказчика к функциям и качеству комплексов программ;

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

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

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

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

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

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

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

За последние несколько лет создано множество международных стандартов, регламентирующих процессы и продукты жизненного цикла программных систем и систем управления базами данных (СУБД) [6,31]. Международные стандарты ISO содержат результаты обобщения мирового опыта в различных сферах производства и применения продукции и носят рекомендательный характер. Одна из серий стандартов (ISO 9000) содержит и развивает основное положение о том, что «поставщик должен разрабатывать и поддерживать в рабочем состоянии документально оформленную систему качества как средство, обеспечивающее соответствие продукции установленным требованиям заказчика». Применение этих стандартов может служить основой для систем обеспечения качества программных систем, однако требуется корректировка, адаптация или исключение некоторых положений стандартов применительно к принципиальным особенностям технологий и характеристик этого вида продукции. Кроме того, при реализации систем качества ПС необходимо привлечение ряда стандартов, формально не относящихся к этой серии и регламентирующих показатели качества, верификацию и тестирование, испытания, документирование и другие особенности ЖЦ комплексов программ.

В России в области обеспечения жизненного цикла и качества сложных программных систем существует и применяется очень небольшая группа устаревших стандартов (ГОСТов), которые отстают от мирового уровня на 5—10 лет [31]. Эти стандарты вынуждены использовать предприятия, выполняющие государственные заказы при создании ПС для применения внутри страны. Однако в экспортных заказах зарубежные клиенты требуют соответствия технологии проектирования, производства и качества продукции современным международным стандартам, которые необходимо осваивать и применять для обеспечения конкурентоспособности продукции на мировом рынке.

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

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

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

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

Для достижения поставленной цели решались следующие задачи:

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

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

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

- формирование модели анализа архитектурной надежности корпоративных информационно-управляющих систем с программной архитектурой «клиент-сервер»;

- реализация экспресс-анализа эффективности функционирования программной архитектуры автоматизированной системы технической диагностики и контроля;

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

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

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

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

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

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

3. Разработана методика автоматизированного 'экспресс-анализа эффективности функционирования программной архитектуры автоматизированной ИУС технической диагностики и контроля, которая применена в рамках современной технологии программирования автоматизированных систем управления.

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

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

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

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

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

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

Реализация результатов работы. Диссертационная работа выполнялась по проектам межотраслевых программ Минобразования России и Минатома России по направлению «Научно-инновационное сотрудничество» (проект VII-12), а также в рамках тематического плана НИР СибГАУ (2002-2005 гг.) и НИР КГТУ (2003-2005 гг.).

При использовании системы модельно-алгоритмической поддержки реализован модуль многоэтапного анализа архитектурной надежности распределенного ПО клиент-серверных приложений корпоративной системы управления предприятием «Галактика».

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

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

На защиту выносятся: универсальная модель и модификации универсальной модели анализа архитектурной надежности сложных программных систем, учитывающие многоуровневость и распределенность корпоративных информационно-управляющих систем с программной архитектурой «клиент-сервер»;

- методика автоматизированного экспресс-анализа эффективности функционирования программной архитектуры автоматизированной системы технической диагностики и контроля;

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

- система модельно-алгоритмической поддержки многоэтапного анализа архитектрурной надежности сложных программных систем.

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

- ежегодной Всероссийской электронной научно-технической конференции Российской академии естествознания «Приоритетные направления развития науки, технологий и техники» (Москва, 2004/2005);

- Всероссийской научно-технической конференции «Современные проблемы радиоэлектроники» (Красноярск, 2005);

- международной научной конференции «Татищевские чтения: актуальные проблемы науки и практики» (Тольятти, 2005);

- Всероссийской научно-методической конференции «Совершенствование системы управления качеством подготовки специалистов» (Красноярск, 2001);

- научно-практической конференции «Актуальные проблемы науки в России», Выпуск 2, 3 (Кузнецк, 2003 и 2005);

- еженедельных межвузовских семинарах Сибирского государственного технологического университета (Красноярск, 2001/2002).

Диссертационная работа в целом обсуждалась на научных семинарах кафедры информатики Красноярского государственного технического университета (2002-2005 гг.) и кафедры системного анализа и исследования опрераций Сибирского государственного аэрокосмического университета (2.004-2005 гг.).

Публикации. По теме диссертации опубликовано 11 печатных работ. Полный список публикаций представлен в конце автореферата.

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

Заключение диссертация на тему "Многоэтапный анализ архитектурной надежности в сложных информационно-управляющих системах"

Выход 1 та

MTTF шяш

Рис. 5.8 - Окно результатов анализа архитектуры.

Компонент

Архитектурный уровень 1 и

ОК

Рис. 5.9 - Диалоговое окно добавления компонента

Рис. 5.! О- Диалоговое окно удаления компонента.

Рис. 5.11- Диалоговое окно удаления связи.

5.2.1.6. Работа с меню

Меню главного окна диалоговой системы содержит следующие пункты:

• новая схема - приводит диалоговую систему в режим формирования новой архитектуры;

• загрузить - загрузка архитектуры с диска;

• сохранить - сохранение архитектуры на диск;

153

• добавить компонент - добавляет компонент архитектуры в окно;

• добавить связь - устанавливает связь между компонентами;

• удалить компонент - удаляет выбранный компонент;

• удалить связь - удаляет выбранную связь;

• создать матрицы - создает матрицы для исходных данных;

• инициализировать матрицы - инициализирует матрицы значениями, установленными по умолчанию;

• расчет параметров - рассчитывает основные параметры надежности;

• анализ архитектуры - переход в окно анализа архитектуры;

• выход - выход из диалоговой системы.

Меню окна анализа архитектуры содержит следующие пункты:

• старт - запускает процедуру анализа архитектуры;

• выход - выход из окна анализа архитектуры.

5.2.1.7. Порядок работы с диалоговой системой

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

1. Задать количество уровней архитектуры.

2. Загрузить или создать новую архитектуру (создание архитектуры производится добавлением компонент в рабочее окно и установлением связей между ними).

3. Создать матрицы.

4. Инициализировать матрицы и задать основные параметры компонент.

5. Выбрав пункт меню «расчет параметров», осуществить вычисление основных параметров надежности архитектуры.

6. Сохранить архитектуру, выбрав пункт меню «сохранить».

7. Перейти в окно анализа архитектуры ПО.

8. Выбрать максимальное количество версий компонент.

9. Выбрать критерий мультиверсионности.

10. Осуществить инициацию процедуры анализа.

11. Выбрать приемлемый вариант архитектуры или произвести коррекцию исходных данных.

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

Изменения можно внести в следующие параметры:

• вероятность использования компонента;

• вероятность сбоя компонента;

• условная вероятность сбоя на разных уровнях;

• время восстановления компонента;

• время использования компонента;

• стоимость разработки компонента;

• максимально-допустимое число компонентов;

• связи между компонентами.

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

Изменения производятся в обычном порядке — оператор устанавливает курсор «мыши» в место, где ему необходимо произвести изменения, а затем редактирует информацию.

В окне анализа результатов пользователь может наблюдать полученные результаты вычисления характеристик надежности архитектуры:

• среднее время простоя системы;

• среднее время появления сбоя в системе;

• стоимость разработки системы;

• коэффициент надежности системы;

• множество недомининируемых вариантов архитектур.

Заключение

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

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

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

3. Сформирована модель анализа архитектурной надежности корпоративных информационно-управляющих систем с программной архитектурой «клиент-сервер».

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

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

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

Библиография Русаков, Михаил Александрович, диссертация по теме Системный анализ, управление и обработка информации (по отраслям)

1. Движение, А.Н. Гарантоспособные вычисления: от идей до реализации в проектах / А.Н. Авиженис, Ж.-К. Лапри. ТИИЭР, 1986. - Т. 74. - № 5. -С. 8-21.

2. Ашимов, А.А. Оптимальные модульные системы обработки данных / А.А. Ашимов, А.Г. Мамиконов, В.В. Кульба. Алма-Ата: Наука. 1981. - 186 с

3. Баронов, В.В. Информационные технологии и управление предприятием/ В.В. Баронов, Г.Н. Калянов.- М.: Компания АйТи, 2004.

4. Богатырев, В.А. К повышению надежности вычислительных систем на основе динамического распределения функций/ В.А. Богатырев// Изв. вузов. Приборостроение. № 4, 1981.

5. Боэм, Б. Характеристики качества программного обеспечения / Б. Боэм, Дж. Браун, X. Каспар, М. Липов, Г. Мак-Леод, М. Мерит. М.: Мир, 1981. -208 с.

6. Боэм, Б.У. Инженерное проектирование программного обеспечения / Пер. с англ. М.: Радио и связь, 1985. -512 с.

7. Ю.Буч, Г. Объектно-ориентированный анализ и проектирование с примерами на С++. М.: БИНОМ, 1998. 560 с.

8. П.Воеводин, В.В. Математические модели и методы в параллельных процессах / М.: Наука, 1986. 328 с.

9. Волик, Б.Г. Методы анализа и синтеза структур управляющих систем / Под ред. Б.Г.Волика. М.: Энергоатомиздат, 1988. - 296 с.

10. Гантер, Р. Методы управления проектированием программного обеспечения / Под ред. Е.К.Масловского. М.: Мир, 1981. - 392 с.

11. Гудман, С. Введение в разработку и анализ алгоритмов / С. Гудман, С. Хидетниеми. Пер. с англ. - М.: Мир, 1981. - 366 с.

12. Дилон, Б. Инженерные методы обеспечения надежности систем / Б. Дилон, И. Сингх. М.: Мир, 1984. - 318 с.

13. Ковалев, И.В. Автоматизация создания программных средств систем управления / В кн.: Микроэлектронные устройства: проектирование и технология. Красноярск. КПИ, 1990. - С. 79-85.

14. Ковалев И.В. Многоатрибутивная модель формирования гарантоспособного набора проектов мультиверсионных программных систем / И.В. Ковалев, Р.Ю. Царев; Вестник НИИ СУВПТ. Вып.7. -Красноярск: НИИ СУВПТ, 2001. - С. 129-137.

15. Ковалев, И.В. Оптимальное проектирование мультиверсионных систем управления / И.В. Ковалев, А.А. Попов, А.С. Привалов. Доклады НТК с международным участием «Информационные технологии в инновационных проектах» . - Ижевск: ИжГТУ, 2000. - С. 24-29.

16. Ковалев, И.В. Модели поддержки многоэтапного анализа надежности программного обеспечения автоматизированных систем управления/ И.В.

17. Ковалев, Р.Ю. Царев, М.А. Русаков, М.Ю. Слободин// Проблемы машиностроения и автоматизации.- № 2, 2005.- С. 73-81.

18. Ковалев, И.В. Система мультиверсионного формирования программного обеспечения управления космическими аппаратами: Диссертация на соискание ученой степени доктора технических наук / Красноярск: КГТУ, 1997.-228 с.

19. Ковалев, И.В.Надежность архитектуры программного обеспечения телекоммуникационных технологий / И.В. Ковалев, Н.В. Василенко, Р.В.Юнусов; Международная научная конференция Telematica'2001, Санкт-Петербург, 2001- С. 23-24

20. Ковалев, И.В. Мультиверсионный метод повышения программной надежности информационно-телекоммуникационных технологий вкорпоративных структурах / И.В. Ковалев, Р.В. Юнусов; Телекоммуникации и информатизация образования. 2003. №2, С. 50-55.

21. Липаев, В.В. О проблемах оценивания качества программных средств/ В.В. Липаев. Информационные технологии, № 4, 2002.

22. Липаев, В.В. Качество программного обеспечения/ В.В. Липаев.- М.: Финансы и статистика, 1983. 264 с.

23. Липаев, В.В. Технология проектирования комплексов программ АСУ / В.В. Липаев, Л.А. Серебровский. М.: Радио и связь, 1983. - 287 с.

24. Липаев, В.В. Тестирование программ /В.В. Липаев.- М.: Радио и связь, 1986.-234 с

25. Липаев, В.В. Надежность программных средств/ В.В. Липаев.-М.:СИНТЕГ, 1998. -232 с

26. Майерс, Г. Надежность программного обеспечения: Пер. с англ./ Под ред. В.Ш.Кауфмана. М.: Мир, 1980. - 360 с

27. Мамиконов, А.Г. Типизация разработки модульных систем обработки данных / А.Г. Мамиконов, В.В. Кульба, С.А. Косяченко. М.: Наука, 1989. -165 с

28. Мамиконов, А.Г. Синтез оптимальных модульных систем обработки данных/ А.Г. Мамиконов, В.В. Кульба. М.: Наука, 1986

29. Михалевич, B.C. Вычислительные методы исследования и проектирования сложных систем / B.C. Михалевич, В.Л. Волкович. Наука, 1982. - 286 с.

30. Орлов, С.А. Технологии разработки программного обеспечения.- СПб.: Питер, 2002.

31. Привалов, А.С. Система формирования гарантоспособной программной архитектуры для АСУ ТП: Автореф. диссертации на соискание ученой степени кандидата технических наук / Красноярск: САА, 2000. 32 с.

32. Раинкшкс, К. Оценка надежности систем с использованием графов / К. Раинкшкс, И.А. Ушаков. М.: Радио и связь, 1988.

33. Саркисян, А.А. Повышение качества программ на основе автоматизированных методов / М.: Радио и связь, 1991. 160 с.

34. Сергеев, А. Технология Baikonur Web Application Server архитектура клиент-сервер для Intranet-систем доступа к корпоративным базам данных// Системы управления базами данных, № 5, 1996.

35. Системный анализ: Проектирование, оптимизация и приложения / В 2 т., под общ. ред. проф. Антамошкина А.Н. Красноярск: САА, 1996. - 206 с.

36. Соммервилл, И. Инженерия программного обеспечения, 6-е издание.: Пер. с англ.- М.: Издательский дом «Вильяме», 2002.

37. Фокс, Дж. Программное обеспечение и его разработка / Пер. с англ. Под ред. Д.Б.Подшивалова. - М.: Мир, 1985. - 268 с

38. Хорошевский, В.Г. Инженерный анализ функционирования вычислительных машин и систем / М.: Радио и связь, 1987. 256 с.

39. Царев, Р.Ю. Программно-информационные технологии формирования критичных по надежности систем управления. Монография/ Р.Ю. Царев, М.А. Русаков, С.А. Шабалин// СПб.: ИнфоДа, 2005. 172 с.

40. Царев, Р.Ю. Многокритериальное принятие решений при создании отказоустойчивого программного обеспечения / Вестник НИИ СУВПТ. -Вып.2. Красноярск: НИИ СУВПТ, 1999. - С. 190-194

41. Черкесов, Г.Н. Надежность аппаратно-программных комплексов.- СПб.: Питер, 2005.

42. Чжу, У.У. Копирование и размещение программных модулей в системе распределенной обработки в реальном времени / У.У. Чжу, Ц.К. Лян. -ТИИЭР, 1987. Т. 75, N 5. - С. 23-44.

43. Юдин, Д.Б. Математические методы оптимизации устройств и алгоритмов АСУ / Д.Б. Юдин, А.П. Горяшко, А.С. Немировский. М.: Радио и связь, 1982.-288 с.

44. Юнусов Р.В. Система модельно-алгоритмической поддержки многоэтапного анализа надежности программных средств: Автореф. диссертации на соискание ученой степени кандидата технических наук / Красноярск: КГТУ, 2003. 22 с.

45. Юнусов, Р.В. Анализ надежности аппаратно-программного информационно-управляющего комплекса /Р.В. Юнусов// Вестник НИИ СУВПТ: Сб. научн. трудов/ Под общей ред. профессора Н.В. Василенко; Красноярск: НИИ СУВПТ. 2003. Выпуск 11. С. 103-106

46. Юнусов, Р.В. Оценка надежности программного обеспечения клиент-сервер на примере комплексной системы управления предприятием «Галактика» / Вестник НИИСУВПТ; Красноярск: НИИСУВПТ.-2001 .-Вып.7. С.107-112

47. Юнусов, Р.В. Оценка надежности и гарантоспособная модель архитектуры программного обеспечения /Р.В. Юнусов// Вестник НИИСУВПТ; Красноярск: НИИСУВПТ. 2001. Вып.8. С. 194-208.

48. Юнусов, Р.В. Моделирование программных архитектур автоматизированных систем управления / Управляющие и вычислительные системы. Новые технологии: Материалы Всероссийской электронной научно-технической конференции. Вологда: ВоГТУ, 2001. С. 60-61.

49. Antamoshkin, A. System Analysis, Design and Optimization / A. Antamoshkin, H.P. Schwefel, and others. Ofset Press, Krasnoyarsk, 1993. - 312 p.

50. Ashrafi, N. Optimization Models for Selection of Programs, Considering Cost & Reliability / N. Ashrafl, O. Berman; IEEE Transaction on reliability. Vol. 41, No 2, June 1992, P.281-287.

51. Avizienis, A. The N-Version approach to fault-tolerant software / IEEE Trans, on Software Engineering. Vol. SE11,№ 12, December, 1985.-P. 1491-1501.

52. Berman, О. Choosing an Optimal Set of Libraries / O. Berman, M. Cutler.; IEEE Transaction on reliability. Vol. 45, No 2, June 1996, Pp. 303-307.

53. Bhatnagar, S.K. Network analysis techniques / Wiley Eastern Limited, New Delhi, 1986.-456 p.

54. Bogomolov, S. Fault Tolerance Software Library Support of Real-Time Embedded Systems / S. Bogomolov, A. Bondarenko, A. Fyodarov; Third European Dependable Computing Conference, EDCC-3, Prague, Czech Republic , September 15-17, 1999.

55. Cherif, A. Improving the Efficiency of Replication for Highly Reliable Systems/ A. Cherif, M. Toyoshima, T. Katayama; FastAbstract ISSRE Copyright 1999.

56. Choi, J.G. Reliability Estimation of nuclear digital I&C systems using Software Functional Block Diagram and control flow / J.G. Choi, H.G.Kang; FastAbstract „ ISSRE Copyright 2000.

57. Costa, D. On the Extention of Exception to Support Software Faults Models / D. Costa, T. Mendez; FastAbstract ISSRE Copyright 2000.

58. David, Ph. Development of a fault tolerant computer system for the Hermes Space Shuttle /Ph. David, C. Guidal. IEEE Trans., 1993. - P. 641-648.

59. Dunham, J.R. Eds. Production of reliable flight crucial software: Validation method research for fault-tolerant avionics and control systems sub-working-group meeting / J.R. Dunham, C.J. Knight.- NASA Conf. Pub. 2222, NASA, 1985.

60. Grams T. The Poverty of Reliabiliy Growth Models/ FastAbstract ISSRE Copyright 1999.

61. Goseva-Popova К. How Different Architecture Based Software Reliability Models are Reealated / K. Goseva-Popova, K.S. Trivedi, A.P.Mathur; FastAbstract ISSRE Copyright 2000.

62. Hamlet, D. Foundational Theory of Software Component Reliability / D. Hamlet, D. Mason, D. Wiot; FastAbstract ISSRE Copyright 2000.

63. Hecht, H. Fault tolerant software / IEEE Trans. Reliability, Vol. R-28, 1979. P. 227-232.

64. Hui-Qun, Z. A New Method for Estimating the Reliability of Software System Based on Components / Z. Hui-Qun, S. Jing, G. Yuan; FastAbstract ISSRE and Chillarege Corp. Copyright 2001.

65. Hudak, J. Evaluation & comparition of fault-tolerant software techniques / J. Hudak, B.-H. Suh, D. Sieweorek, Z. Segall. FastAbstract ISSRE and Chillarege Corp. Copyright 2001.

66. Karunanithi, N. Prediction of Software Reliability Using Connectionist / N. Karunanithi, D.Whitley, Y.K.Malaiya; IEEE transactions on reliability. Models. July 1992, Vol. 18, No. 7.

67. Kaszycki,. G. Using Process Metrics to Enhance Software Fault Prediction Models/FastAbstract ISSRE Copyright 1999.

68. Keene, S. Progressive Software Reliability Modeling/ FastAbstract ISSRE Copyright 1999.

69. Knight, C.J. An experimental evaluation of the assumption of independence in Multiversion programming / C.J. Knight, N.G. Levenson. IEEE Trans. Software Engineering, Vol. SE-12, 1986. - Pp. 96-109.

70. Kovalev, I.V. An Approach for the Reliability Optimization of N-Version Software under Resource and Cost/Timing Constraints /16th International Computer Measurement Group Conference, Nashville, TN, USA, December 913, 1991.

71. Kovalev, I. Computer-Aided Modelling of Production Cycles Optimal Sequence in: Letunovsky V.V.(Editor-in-chief): Problems of products quality assurance in machine-building: Proceedings of Int. Conf. KSTU / Krasnoyarsk, 1994. Pp. 43-48.

72. Kovalev, I. Optimization Reliability Model for Telecommunications Software Systems / I. Kovalev , A. Privalov, Ju. Shipovalov. In: Modelling, Measurement and Control. - AMSE Periodicals, Vol.4-5, 2000. - Pp. 47-52.

73. Kovalev, I. Software engineering of spacecraft control technological cycles / In: "Modelling, Measurement and Control, B". Vol.56, №3. -AMSE PRESS, 1994.-Pp. 45-49.

74. Kovalev, I.V. Fault-tolerant software architecture creation model based on reliability evaluation / I.V. Kovalev, R.V.Younoussov; Advanced in Modeling & Analysis, Vol. 48, № 3-4. Journal of AMSE Periodicals, 2002.- Pp.31-43.

75. Levendel, Y. Reliability analysis of large software systems: Defect data modeling / IEEE Trans. Software Engineering, 1990. Vol. 16. - Pp. 141-152.

76. Liestman, A. Fault-Tolerant Scheduling Problem / A. Liestman, R.-H. Campbell. IEEE Trans, on Software Engineering, 1986. - Vol. SE-12. - Pp. 1089-1095.

77. Lyu, M.R. Handbook of Software Reliability Engineering / Edited by Michael R. Lyu. Published by IEEE Computer Society Press and McGraw-Hill Book Company, 1996, 819 p.

78. Lyu, M.R. Software Fault Tolerance / Edited by Michael R. Lyu. Published by John Wiley & Sons Ltd, 1996.

79. McFarlan, F.W. Portfolio approach to information systems / Harvard Business Rev. 59.-Pp. 142-150.

80. Muralidhar, K. Using the analytic hierarchy process for information system project selection / K. Muralidhar, R. Santhanam, R. Wilson. Information Mgmt 18, 1990.-Pp. 87-95.

81. Oracle Education. Introduction to Oracle: SQL & PL/SQL , Volume 1: Students Guide, Production 1.1. 2000.

82. Pai, G.J. Enhancing Software Reliability Estimation Using Bayaesan Network and Fault Trees / G.J. Pai, J.B. Dugan; FastAbstract ISSRE and Chillarege Corp. Copyright 2001.

83. Silayeva, Т. K.-E. An Innovative Method for Program Reliability Evaluation / T. Silayeva, K.-E. Grosspietsch. Euromicro '95. Como (Italy), September 1995.

84. Tai, A. Performability Enhancement of Fault-Tolerant Software / A. Tai, J. Meyer, A. Avizienis. IEEE Trans, on Reliability, 1993. - Vol. 42, No. 2 . -Pp. 227-237.

85. Wattanapongsakorn, N. Reliability Optimization for Software Systems with Multiple Applications./ FastAbstract ISSRE and Chillarege Corp. Copyright 2001.