The model builder allows the designer (the user of the tool) to create and modify a dynamic model. Thus, the model builder is some kind of an editor. The means of expression (as discussed in section 3) plays an important role for the model builder. There are basically two different possibilities: A linguistic approach and a `data structure approach'.
In the linguistic approach the dynamic model is formulated as text in a formal language, which later can be processed and interpreted in an appropriate way (we will later in this section come back to what interpretation of dynamic models means).
In the data structure approach a dynamic model is represented by an (internal) data structure which may be viewed in different ways on a display medium. The data structure may be directly interpreted without prior parsing. The data structure, which represents the model, is constructed via a structure editor.
The `data structure approach', supported by a structure editor, is preferred. In our case the data structure is a tree which represents objects, messages, object-provisions, actual parameters and understandings (and other concepts) of the dynamic model. One reason for chosing the data structure approach is that it allows for an incremental definition of the various aspects (e.g., formal and informal aspects) in a dynamic model. At first, a scene may constructed which is appropriate for a number of related scenarios. Next, a naked message passing structure may be built on top of the scene. Finally, the scene and the message passing structure may be attributed with informal explanations (called understandings in our model). If we use the traditional linguistic approach all of these aspects would be described together, thereby giving us large and unwieldy descriptions that are hard to define and hard to grasp. Moreover, using the data structure approach we may switch between a textual and diagrammatic interaction style. It is clearly the case that while formulating the understandings we should use plain text. However, when defining the message structures, it may be much more convenient to use a grapher tool, in which each object manifests itself as a node from which we can define messages to other nodes as edges.
As the name indicates, the second part of the tool lets the user explore the dynamic model. The purpose of `exploring' is to consolidate the understanding of the dynamic behavior of an object system. To some degree, it may be possible to gain such an understanding by simply reading the model (in some linguistic og diagrammatic presentation). The model may also be traced in the order of the actual message passings. While tracing, some overview of the objects on the scene may be maintained. During tracing, the explorer (the user) may determine the control course through selections and iterations (if/when they become part of the model). Tracing may be seen as one possible way of animating the model.
The purpose of the model analyzer is to infer and extract properties of the dynamic model. The analysis results may be used as the starting point of a static model. The analysis results may alternatively be used to enhance the dynamic model itself, e.g., removal of inconsistencies.