Essentials

Before you start building models in ModelMaker, you need to know a few concepts. These concepts are also discussed in the Modeling Environment page.

Model

The model contains classes, class parts and patterns. A model maintains and verifies the associations between classes you created and will always make sure your model has a sane structure. So even if you decide to throw a way a base class from your class hierarchy the model will reconstruct the model and rewire ancestors to compensate for the loss of the base class.

A model is stored in the file with the name <Model>.MMM.

Diagram

There can be many diagrams that describe some or all aspects of the current model. A diagram will in most cases show only part of a model an thus focus your attention on certain design aspects of the class structure.

All diagrams are stored in the file with the name <Model>.MMD.

Documentation

For most model parts documentation can be entered when the part is defined or edited. This documentation is transformed into HTML that can be read with the internal HTML browser. The generated documentation describes the current model from both a user and a designer perspective.

All documentation is stored in the file with the name <Model>.MDC.

Event Library

An event library is an external file that contains signatures of methods. This library is used in the definition of events.

Class

The class is the most important entity in the model as it is a container of class parts. Classes always have an ancestor (super) class and sometimes have descendant (sub) classes. The TObject class is a special class that is always present in the model.

Class part

The fields, methods, properties and events are all class parts. They can be created and added to a class. Class parts are owned by either the user or by patterns, properties or events. When for example a property is deleted, also the class part it owns are deleted from the model.

Current Class

The current class is the class that has the focus in the Class Tree View. The Class Parts View will always show the class parts of the current class. You also can set the current class by selecting a class in a diagram in the Diagrams View.

Current Class Part

The current class part is the class part that has the focus in the Class Parts View. When the current class part is a method, the Method Implementation View shows the implementation of that method. You can also select the current class part by selecting a field or property association in a diagram in the Diagrams View.

Field

Field matches the field concept in Delphi, they are the basic class part. You will use fields to store the data of a class. If the datatype of a field is a class, then changing the class name in the model will automatically change the datatype name of the field.

Method

Method matches the method concept in Delphi, and can be constructors, destructors, procedures or functions.

Access Method

A method that is owned by a property with the specific task of accessing the state field that holds the property information.

State Field

A field that is owned by a property or event and that holds the state information for that property or event.

Property

Property matches the property concept in Delphi.

Event

An event is a special property. In Delphi code you can assign a method of an object to an event, calling the event will then execute the method of the object. When you design an event you use a method signature from the Event Library as the event type.

Pattern

A pattern is an active agent that can be inserted into your model to perform special tasks like writing methods and classes, or updating an external file whenever the model changes.

Internal Pattern

An internal pattern is a pattern that is focused on the model itself. It is totally contained within the model. Examples of this type of pattern are the LockWizard, Wrapper Pattern, Mediator Pattern and Visitor Pattern.

External Pattern

An external pattern is a pattern that is focused on the relation between something inside the model and something outside the model. Examples of this type of pattern are the Unit Link Pattern and the Unit Pattern.

Unit Pattern

Unit patterns form the link between the ModelMaker model and Delphi unit files. A unit pattern relates a number of classes to a unit file. Whenever the classes or parts of the classes change, the unit pattern updates the code contained within the unitfile to match the model. It then instructs Delphi to reload the unit that was changed.