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

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

CC BY
276
42
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОЕКТИРОВАНИЕ / МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ / OBJECT ORIENTED PROGRAMMING / MATHEMATICAL MODELING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Лезарев Александр Викторович, Шкуркин Алексей Сергеевич

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Лезарев Александр Викторович, Шкуркин Алексей Сергеевич

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

The paper presents mathematical calculations subsystem design for object-oriented distributed system of queuing modeling. This subsystem is proposed to split into three main components. Parser component is a link between the Models Base, the Solver and client subsystems. It is designed to receive commands to carry out calculations and return results. A special representation of mathematical formulas need to be created to perform the calculations. Mathematical formulas are invited to be written in object form. Object representation allows you to create user-friendly formula designers and also to solve storage problems effectively. Solver component directly is intended to carry out mathematical calculations directly. In this paper we proposed to develop our own mechanisms for computing, as well as the possibility of connecting external components. The Solver was designed in order to an architectural pattern «Gateway». Models Base component is oriented to store model descriptions and their characteristics together with the expressions which calculate them. It is proposed to create in XML file form. One of the main parts of the Parser component is the module that performs creation processes of object-represented formulas. Object oriented design pattern «Composite» is used to design this subsystem. Main objects of the subsystem was presented in the paper: a special data type DataType that offers common interface for scalar and matrix values, Expression and Variable classes that are descendants of the FormulaAtom class and are designed for presentation of mathematical expressions (subexpressions) and variables respectively. Expression class descendants are designed for computing of specific functions or operations. They defines necessary parameters and specifies the method Calculate(). The actions sequence of formula calculation process was described. A sequence diagram for logarithm sample is presented in the article for the better understanding of performing calculations.

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

ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА

2010 Управление, вычислительная техника и информатика № 1(10)

УДК 004.415.2

А.В. Лезарев, А.С. Шкуркин

ОБЪЕКТНАЯ МОДЕЛЬ ПОДСИСТЕМЫ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ1

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

Ключевые слова: объектно-ориентированное проектирование, математическое моделирование.

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

1. Общая структура модуля

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

Рис. 1. Структура модуля «Алгоритмы математического моделирования»

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

1 Работа выполнена в рамках аналитической ведомственной целевой программы «Развитие научного потенциала высшей школы (2009-2010 годы)», проект № 4761.

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

Компонент Решатель предназначен непосредственно для математических вычислений. Предполагается реализация собственных механизмов вычисления, а также обращение в случае необходимости к внешним компонентам - библиотекам алгоритмов или математическим пакетам (например, MatLab). Для поддержки возможности смены решателя в компоненте Парсер будут реализованы механизмы для перевода объектного представления формулы в команду конкретного решателя. При проектировании данной подсистемы использовано типовое архитектурное решение «Шлюз» [2].

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

2. Схема математических рачетов

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

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

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

Для объектного представления математической формулы применяем паттерн объектно-ориентированного проектирования «Компоновщик» [3]. На рис. 3 представлена полученная диаграмма классов объектной модели математической формулы.

Класс FormulaAtom инкапсулирует общий интерфейс всех объектов математических расчетов. Операция Calculate() предназначена для получения окончательного значения выражения. Реализация этой операции возлагается на потомков -класс Variable и иерархию классов Expression. Последние, в свою очередь, содержат в себе более мелкие структурные блоки выражения, также являющиеся потомками FormualAtom.

Рис. 2. Диаграмма классов типа DataType

Form и! з Atom

♦ CaicuiateQ DataType

ъ

Variable

♦ Name: string - Value: DataType

+ Calculate!) : DataType

Рис. 3. Диаграмма классов объектной модели математической формулы

Класс Variable предназначен для представления переменных и констант, входящих в запись формулы. В поле Value хранится значение переменной или константы. Поле Name предназначено для хранения символьного обозначения переменной. Данный класс используется как для описания скалярных значений, так и для описания матриц. Метод Calculate() возвращает значение переменной.

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

ции. В этих классах определяется необходимое количество аргументов и конкретизируется метод Calculate(). Примеры наследников класса Expression приведены на диаграмме (рис. 4).

Рис. 4. Структура наследования класса Expression

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

Argument.

Для понимания процесса вычисления формул рассмотрим его на примере вычисления логарифма. На рис. 5. приведена диаграмма последовательности для процесса вычисления формулы.

Рис. 5. Диаграмма последовательности «Вычисление формулы»

Процесс взаимодействия начинается с того, что внешний субъект Client (в нашем случае это может быть и объект подсистемы, например, стоящий выше по иерархии объект формулы) обращается к операции Calculate() экземпляра LogExpression. Выполнение самой операции Calculate() начинается с последовательного вычисления аргументов. Для этого вызываются методы Calculate() объектов Base и Argument. Последние, в свою очередь, проделывают аналогичные операции над своими внутренними подвыражениями. Такой рекурсивный вызов продолжается до тех пор, пока метод Calculate() не будет вызван у экземпляра класса Variable, который возвратит конкретное числовое значение (или числовую матрицу). После того как будут готовы все промежуточные значения, вызывается соответствующая функция Решателя, которая производит непосредственные расчеты и возвращает результат. Затем результат передается объекту Client.

Заключение

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

ЛИТЕРАТУРА

1. Войтиков К.Ю., Моисеев А.Н. Модель компонентов объектной распределенной системы моделирования процессов массового обслуживания // Информационные технологии и математическое моделирование (ИТММ-2009): Материалы VIII Всероссийской научнопрактической конференции с международным участием (13-14 ноября 2009 г.). Томск: Изд-во Том. ун-та, 2009. С. 122 - 124.

2. Фаулер М. Архитектура корпоративных программных приложений: пер. с англ. М.: Издательский дом «Вильямс», 2004. 544 с.

3. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. СПб: Питер, 2007. 366 с.

Статья представлена оргкомитетом VIII Всероссийской научно-практической конференции с международным участием «Информационные технологии и математическое моделирование».

Лезарев Александр Викторович Шкуркин Алексей Сергеевич

Анжеро-Судженский филиал Кемеровского государственного университета E-mail: lezarev@asf.ru; shkurkin@asf.ru

Поступила в редакцию 21 января 2010 г.

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