Proceedings Article | 20 June 1997
KEYWORDS: Visual process modeling, Systems modeling, C++, Performance modeling, Eye models, Computer simulations, Visualization, Data transmission, Process modeling, Human-computer interaction
MOOSE (multimodel object oriented simulation environment) is an enabling environment for modeling and simulation, under construction at University of Florida, based on OOPM (object oriented physical modeling). OOPM extends object-oriented program design with visualization and a definition of system modeling that reinforces the relation of model to program. OOPM is a natural mechanism for modeling large-scale systems, and facilitates effective integration of disparate pieces of code into one simulation. Components of MOOSE are modeler, translator, engine, and scenario: (1) Modeler interacts with model author via GUI to capture model design; (2) Translator is a bridge between model design and model execution, reading Modeler output, building structures representing model, and emitting C++ (or potentially other) code for model; (3) Engine is a C++ program, composed of translator output plus runtime support, compiled and linked once, then repeatedly activated for model execution; (4) Scenario is a visualization-enabling GUI which activates and interacts with engine, and displays engine output in a form meaningful to user. Dynamic model types supported include finite state machine, functional block model, and equational constraint models; alternatively, model authors may create their own C++ 'code models;' model types may be freely combined; class libraries facilitate reuse. MOOSE emphasizes multimodeling, which glues together models of the same or different types, produced during model refinement, reflecting various abstraction perspectives, to adjust model fidelity, during development and during model execution. Underlying multimodeling is 'block' as fundamental object. Every model is built from blocks, expressed in a modeling assembly language.