Введение к работе
Актуальность темы
В настоящее время компьютеризированные системы все чаще используются как для решения задач в промышленности, управлении, информационно-вычислительных системах, бизнесе, так и в быту. Компьютеризации часто подвергаются области, где ранее использовалось специализированное оборудование, предназначенное для выполнения узкого класса задач.
Замена такого оборудования компьютеризированными аналогами часто представляется более универсальным, гибким и экономически эффективным подходом. При этом проектирование прибора как такового во многом заменяется проектированием программного обеспечения для компьютерного контроллера. Часто несколько компьютеризированных приборов или программных комплексов работают в составе одной системы, обмениваясь данными и сообщениями. В таком случае совокупность программ этих приборов составляет многокомпонентную программную систему. К надежности такой системы предъявляются очень высокие требования: ошибка в проектировании может привести к самым серьезным последствиям.
Жесткие требования предъявляются также к надежности и производительности многокомпонентных систем – серверным приложениям, на которые приходится большая часть функциональной нагрузки в клиент-серверных системах. Кроме того, в серверных приложениях широко используется параллельное программирование, что затрудняет поиск ошибок и оценку производительности. Часто традиционные методы отладки, используемые при разработке клиентских приложений, не обеспечивают должного уровня тестирования.
Математическое описание программной системы и требований к ней позволяет улучшить качество критически важных систем, в частности многокомпонентных.
При моделировании многокомпонентных систем можно выделить два аспекта: моделирование данных и моделирование алгоритмов. Большинство из существующих формальных методов позволяют полно описать только один из этих аспектов. Для моделирования данных обычно используют иерархические, сетевые или реляционные модели, а для описания алгоритмов – модели, основанные на автоматах (машинах состояний): конечные автоматы, автоматы с магазинной памятью, машины Тьюринга.
Одним из немногих методов, позволяющих сочетать достоинства обоих подходов, является моделирование на основании Х-машин. В определении Х-машины к состояниям конечного автомата добавляется память, позволяющая хранить типизированные данные. Это дает возможность описывать как динамические, так и статические аспекты системы.
Поскольку многокомпонентные программные системы состоят из набора компонентов, для их моделирования применяются не отдельные Х-машины, а системы взаимодействующих друг с другом Х-машин. Существуют несколько методов построения систем взаимодействующих Х-машин, однако все они не допускают асинхронных коммуникаций между отдельными Х-машинами. Это не позволяет адекватно моделировать системы с параллельными вычислениями. Кроме того, с помощью этих методов невозможно разрабатывать модели поэтапно, начиная с создания и верификации отдельных Х-машин и заканчивая описанием связей между ними.
Необходимым условием возможности применения рассматриваемого метода на практике является существование достаточно развитого языка для описания систем взаимодействующих Х-машин, а также программного обеспечения для осуществления моделирования динамического поведения системы.
Таким образом, область моделирования при помощи систем взаимодействующих Х-машин содержит много нерешенных или не полностью решенных задач.
Цель работы
Целью работы является создание метода моделирования многокомпонентных систем, основанного на взаимодействующих Х-машинах, допускающего поэтапную разработку и тестирование компонентов и асинхронную коммуникацию между частями системы, а также проверка применимости этого метода на практике.
Таким образом, в работе решаются следующие задачи:
-
Разработка теоретических основ и метода построения систем взаимодействующих Х-машин, допускающих асинхронное взаимодействие между Х-машинами и поэтапное проектирование;
-
Формальная верификация Х-машин, позволяющая осуществлять тестирование компонентов систем взаимодействующих Х-машин;
-
Описание языка для создания спецификаций систем взаимодействующих Х-машин, а также комплекса программ позволяющего моделировать программные системы;
-
Моделирование распределенного хранилища данных с использованием предложенного метода.
Научная новизна
В работе предложен новый эффективный подход к моделированию многокомпонентных систем, основанный на системах взаимодействующих Х-машин. По сравнению с существующими методами данный подход обладает следующими достоинствами:
-
Модульность – система строится из отдельных независимых компонентов, которые могут быть впоследствии использованы при создании других систем;
-
Возможность построения систем с асинхронной коммуникацией;
-
Возможность формальной верификации компонент системы;
-
Удобство практического применения: спецификация разработанного языка описания взаимодействующих X-машин существенно сокращает трудоемкость описания многокомпонентных систем для практического применения при моделировании, создании и сопровождении и отражает требования практики, принятые при разработке и проектировании программных систем.
Основные положения, выносимые на защиту
-
Математическая модель системы взаимодействующих Х-машин;
-
Метод формальной верификации Х-машин;
-
Язык для создания спецификаций систем взаимодействующих Х-машин, а также комплекс программ, позволяющий производить моделирование программных систем при помощи таких спецификаций;
-
Модель распределенного хранилища данных, созданная с применением изложенного в работе метода.
Теоретическая и практическая ценность
Большинство современных многокомпонентных систем относятся к классу реактивных систем. Это означает, что работа системы заключается в получении объектов-запросов, их обработке и формировании ответов.
В работе предложен и теоретически описан метод поэтапного моделирования и тестирования компонентов подобных систем. Это позволяет существенно повысить их надежность.
Для практического моделирования реактивных систем в работе создан язык XDL и программная библиотека, позволяющая использовать XDL-описания в программах на Java.
Апробация и публикации
Основные результаты диссертации докладывались и обсуждались на следующих научных семинарах и конференциях:
Научные конференции МФТИ «Современные проблемы фундаментальных и прикладных наук» (Долгопрудный, 2008, 2009);
IX международная научно-практическая конференция «Исследование, разработка и применение высоких технологий в промышленности» (Санкт-Петербург, 2010);
Научные семинары кафедры математических основ управления МФТИ (Долгопрудный, 2007- 2010);
Научный семинар отдела математического моделирования систем проектирования Вычислительного центра РАН (Москва, 2010).
По теме диссертации опубликовано 7 работ, в том числе две работы – в журналах из Перечня изданий, рекомендованных ВАК РФ [5,6].
Структура и объем диссертации
Диссертация состоит из введения, пяти глав, заключения и списка использованных источников. Общий объём работы составляет 110 страниц, список использованных источников содержит 54 наименования.