интересно
Предыдущая | Содержание | Следующая

Создание многослойных моделей с помощью графического конструктора

CASE-ТЕХНОЛОГИЯ МНОГОСЛОЙНОГО ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ

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

компьютерных экономико-математических моделей;

экономических информационных систем;

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

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

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

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

отвлечься от кодирования данных и обратить большее внимание на структуру разрабатываемой системы;

избежать некоторых ошибок за счет автоматического контроля;

ускорить процесс проектирования и разработки проекта, Теперь рассмотрим CASE-технологии применительно к системе

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

Учитывая, что текст модели обрабатывается препроцессором и стандартным компилятором C++ (Microsoft, Borland и др.), можно выделить ряд проблем, возникающих перед пользователем при описании модели в операторах Pilgrim, а именно:

необходимо знать элементы языка C++;

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

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

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

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

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

автоматическая генерация программного кода позволяет пользователю не задумываться о структуре и синтаксисе программы, уделяя все внимание структуре и параметрам самой модели и ее узлов;

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

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

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