Объектная модель подсистемы математического моделирования | Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2010. № 1(10).

Объектная модель подсистемы математического моделирования

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

Object model of mathematical modeling subsystem.pdf При разработке системы «Объектно-ориентированная распределенная системамоделирования процессов массового обслуживания» [1] было выдвинуто требо-вание производить независимо от имитационного и математическое моделирова-ние систем массового обслуживания и представлять сравнительные результаты напримере конкретных систем. Для выполнения расчетов, не нуждающихся в ими-тационном моделировании, расчетов, имеющих аналитические или численныерешения, предлагается использовать компонент, отвечающий за алгоритмы мате-матического моделирования (АММ).1. Общая структура модуляВ процессе разработки была получена концептуальная схема модуля, общийвид которой представлен на рис. 1.Рис. 1. Структура модуля «Алгоритмы математического моделирования»Подсистема математических расчетов содержит три компонента. КомпонентПарсер, являющийся связующим звеном между Базой моделей, Решателем и кли-ентами, предназначен для получения команд от клиентов на проведение вычисле-ний и возвращения назад полученных результатов.1 Работа выполнена в рамках аналитической ведомственной целевой программы «Развитие научногопотенциала высшей школы (2009-2010 годы)», проект № 4761.Объектная модель подсистемы математического моделирования 85Для выполнения расчетов создается соответствующее представление матема-тических формул, записываемое в объектном виде, что позволяет упростить рабо-ту по конструированию формул, сохранение формулы и ее восстановление из ба-зы моделей, а также формирование команды для решателя. Объектное представ-ление формул используется также в подсистеме Конструктор системы [1] длясоздания выражений, с помощью которых рассчитываются определенные харак-теристики систем массового обслуживания.Компонент Решатель предназначен непосредственно для математических вы-числений. Предполагается реализация собственных механизмов вычисления, атакже обращение в случае необходимости к внешним компонентам - библиоте-кам алгоритмов или математическим пакетам (например, MatLab). Для поддержкивозможности смены решателя в компоненте Парсер будут реализованы механиз-мы для перевода объектного представления формулы в команду конкретного ре-шателя. При проектировании данной подсистемы использовано типовое архитек-турное решение «Шлюз» [2].Для хранения описания моделей и их характеристик совместно с выражения-ми, по которым они вычисляются, предназначен компонент База моделей, реали-зация которого планируется в виде XML-файла.2. Схема математических рачетовРассмотрим общую схему функционирования подсистемы математическихрасчетов. Парсер получает от Клиента команду на расчет определенной характе-ристики. В качестве параметров передаются название модели (идентификатор),название характеристики и значения параметров модели. После этого Парсер на-ходит в базе моделей соответствующую запись и получает объектное представле-ние формулы. Далее формируется команда для решателя. Решатель производитсоответствующие расчеты и возвращает значение. Затем Парсер передает реше-ние Клиенту.Рассмотрим более подробно один из главных модулей компонента Парсер, от-вечающий за создание объектного представления формулы. Задачи, возникающиепри расчете числовых значений характеристик систем массового обслуживания,разделим на два класса: вычисление значения выражения и численное решениеуравнений. На данном этапе рассматривается только первая задача.Для представления значений параметров и результатов создадим специальныйтип данных DataType. Он будет использоваться как для записи чисел, так и мат-риц. К тому же элементами матрицы могут быть не только числа, но и перемен-ные, и математические выражения. Диаграмма классов иерархии типа DataTypeприведена на рис. 2.Для объектного представления математической формулы применяем паттернобъектно-ориентированного проектирования «Компоновщик» [3]. На рис. 3 пред-ставлена полученная диаграмма классов объектной модели математической фор-мулы.Класс FormulaAtom инкапсулирует общий интерфейс всех объектов математи-ческих расчетов. Операция Calculate() предназначена для получения окончатель-ного значения выражения. Реализация этой операции возлагается на потомков -класс Variable и иерархию классов Expression. Последние, в свою очередь, содер-жат в себе более мелкие структурные блоки выражения, также являющиеся по-томками FormualAtom.86 А.В. Лезарев, А.С. ШкуркинРис. 2. Диаграмма классов типа DataTypeРис. 3. Диаграмма классов объектной модели математической формулыКласс Variable предназначен для представления переменных и констант, вхо-дящих в запись формулы. В поле Value хранится значение переменной или кон-станты. Поле Name предназначено для хранения символьного обозначения пере-менной. Данный класс используется как для описания скалярных значений, так идля описания матриц. Метод Calculate() возвращает значение переменной.Класс Expression определяет операции и функции, входящие в запись форму-лы. В поле Name хранится символьное обозначение выражения. От классаExpression наследуются классы для вычисления конкретной функции или опера-Объектная модель подсистемы математического моделирования 87ции. В этих классах определяется необходимое количество аргументов и конкре-тизируется метод Calculate(). Примеры наследников класса Expression приведенына диаграмме (рис. 4).Рис. 4. Структура наследования класса ExpressionКаждый наследник определяет прямые ссылки на переменные и выражения,входящие в его состав (являющиеся его аргументами или параметрами). Напри-мер, для вычисления логарифма (класс LogExpression) требуются два аргумента:основание задается с помощью поля Base, а подлогарифмическое выражение -Argument.Для понимания процесса вычисления формул рассмотрим его на примере вы-числения логарифма. На рис. 5. приведена диаграмма последовательности дляпроцесса вычисления формулы.Рис. 5. Диаграмма последовательности «Вычисление формулы»88 А.В. Лезарев, А.С. ШкуркинПроцесс взаимодействия начинается с того, что внешний субъект Client (в на-шем случае это может быть и объект подсистемы, например, стоящий выше поиерархии объект формулы) обращается к операции Calculate() экземпляраLogExpression. Выполнение самой операции Calculate() начинается с последова-тельного вычисления аргументов. Для этого вызываются методы Calculate() объ-ектов Base и Argument. Последние, в свою очередь, проделывают аналогичныеоперации над своими внутренними подвыражениями. Такой рекурсивный вызовпродолжается до тех пор, пока метод Calculate() не будет вызван у экземпляракласса Variable, который возвратит конкретное числовое значение (или числовуюматрицу). После того как будут готовы все промежуточные значения, вызываетсясоответствующая функция Решателя, которая производит непосредственные рас-четы и возвращает результат. Затем результат передается объекту Client.ЗаключениеТаким образом, в работе представлена концептуальная модель подсистемы ма-тематических расчетов, а также рассмотрены вопросы объектного представленияматематических выражений. Предложена структура модуля для работы с объект-ным представлением формул, рассмотрена последовательность действий, выпол-няемых при вычислении значений выражений.

Ключевые слова

Object oriented programming, mathematical modeling, математическое моделирование, объектно-ориентированное проектирование

Авторы

ФИООрганизацияДополнительноE-mail
Лезарев Александр ВикторовичАнжеро-Судженский филиал Кемеровского государственного университетакандидат технических наук, доцент кафедры информатики факультета информатики, экономики и математикиlezarev@asf.ru
Шкуркин Алексей СергеевичАнжеро-Судженский филиал Кемеровского государственного университетадоцент, кандидат технических наук, заведующий кафедрой информатики факультета информатики, экономики и математикиshkurkin@asf.ru
Всего: 2

Ссылки

Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб: Питер, 2007. 366 с.
Фаулер М. Архитектура корпоративных программных приложений: пер. с англ. М.: Издательский дом «Вильямс», 2004. 544 с.
Войтиков К.Ю., Моисеев А.Н. Модель компонентов объектной распределенной системы моделирования процессов массового обслуживания // Информационные технологии и математическое моделирование (ИТММ-2009): Материалы VIII Всероссийской научно- практической конференции с международным участием (13-14 ноября 2009 г.). Томск: Изд-во Том. ун-та, 2009. С. 122 - 124.
 Объектная модель подсистемы математического моделирования | Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2010. № 1(10).

Объектная модель подсистемы математического моделирования | Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2010. № 1(10).

Полнотекстовая версия