By: Hans Vangheluwe
When studying existing systems, observations (of structure and behaviour) are the only tangible artifacts we have at our disposal [Kli85]. A modeller may, based on observations and/or insight, build progressively more complex models of a system. Here, we present a hierarchy of abstract model structures. Each structure elaborates on the previous one, introducing (and representing) more detailed knowledge about the system. The reverse operation, going from a model containing more information to a less detailed one, must be shown to be possible. This, as some questions about the behaviour and structure of the system are better answered at lower levels in the hierarchy. In particular, explicit behaviour in the form of input and output trajectories, described at the lowest level, is often required.
In object-oriented terminology, a simulation model consists of model objects (often used to represent real-world objects, entities, or concepts) as well as relationships among those objects. In general, a model object is anything that can be characterized by one or more attributes to which values are assigned. Attributes are either called indicative if they describe an aspect inherent to the object or relational if they relate the object to one or more other objects. The values assigned to attributes have a type in the programming language sense.
Link to material: http://www.cs.mcgill.ca/~hv/classes/MS/SYS.pdf