1. Introduction
Traditional simulation approaches do not provide for explicit representation of data, information, knowledge, and decisions (control) in a simulation model. A modeling formalism has been proposed [1,2] to overcome this shortcoming of conventional modeling approaches. There
2. Object-oriented programming
In object-oriented programming, a software system is composed of interacting 'objects'. Objects are the combination of the attributes of both data and procedures of traditional computer programming. In OOP, data is active in the form of an object and performs operations on itself. Each object represents some abstract or physical entity in the problem being solved and is a complete description of the entity, including the data structures to define its structure and state, and procedures to define its behavior. An object is an instance of a 'class'. The class object provides all the information necessary to construct and use objects of a particular kind. In other words, objects that have things in common are abstracted into a class. Each object instance is a member of a class and a class may have multiple instances. In addition to the data and the way in which it is stored, a class also provides storage for the methods that are simply procedures (similar to functions/subroutines in procedural programming) that are shared by all instances of the class and are invoked by sending messages (similar to function/subroutine calls in procedural programming). For example, in the object-oriented world view, adding two numbers such as 2 + 3 is viewed as sending a '+' message from an instance of number class (2) to another instance of number class (3).