Порядок инициализации модели
Чтобы
не возникало ошибок, вызванных тем, что пользователь пытается перед
запуском модели присвоить значение или выполнить какие-то действия с
элементом, который еще не был создан, мы приводим здесь краткую
информацию о порядке инициализации модели.
Модель создается в следующем порядке:
- Создается агент верхнего уровня модели, присваиваются начальные значения его параметрам, и вызывается его метод
create(). Параметры инициализируются в том порядке, в котором они представлены в секции Предв. просмотр параметров в свойствах типа агента. Инициализируются динамические переменные, создается анимация. Метод
create()
выполняет эту же последовательность шагов для всех вложенных в данный
тип агента агентов. К этому моменту завершается создание всей модели и
ее анимации.
- Для каждого агента вызывается метод
start().
Каждый агент создает и инициализирует свои диаграммы состояний (каждая
диаграмма состояний входит в свое начальное состояние) и события.
Напоследок выполняется Действие при запуске,
вначале у тех вложенных агентов, которые находятся на низших ступенях
иерархического дерева модели, и затем выше и выше вдоль веток дерева
модели, заканчивая агентом верхнего уровня модели, т.е. Действие при
запуске агента Main будет выполняться в последнюю очередь.
- Начинается выполнение модели.
Таким образом,
Действие при запуске
выполняется
на финальном этапе инициализации модели, уже после того, как все агенты
созданы, соединены и проинициализированы, и перед тем, как в модели
что-либо произошло. Именно здесь рекомендуется производить
дополнительную инициализацию и запуск активностей агентов, таких, как
события.