These models are best studied in the order presented as most aspects covered in earlier examples are not repeated in later examples.
The Matrix model, test scenario and generated source code files for all these examples are available on GitHub .
UML Diagram Notation Conversion
Unfortunately, the existing de facto UML notation is sub-optimal for Matrix analysis. Instead, the notation used in the Shlaer-Mellor method has been enhanced for use with the Matrix language. For completeness, the names of the Shlaer-Mellor diagrams have also been included in the table below:
||Executable UML Notation
|Domain Bridge Diagram (DBD)
|Entity Relationship Diagram (ERD)
|State Transition Diagram (STD)
||State Transition Diagram
|Process Flow Diagram (PFD)
||Action Data Flow Diagram
Hello World! - The standard Hello World! demo that every language must have.
Ping Pong - A model that demonstrates generating and listening for events.
Zig Zag - A model that demonstrates the asynchronous creation and deletion of objects.
Banking Application - This model is taken from the book Object Lifecycles: Modeling the World in States by Sally Shlaer and Stephen J. Mellor.
Passenger Elevator - A larger model that describes a workable elevator (lift) system that employs a simplistic allocation algorithm. An assigner entity is used to resolve any possible contention for elevators.
Windows WiX Installer - A model that generates an application's WiX installation source file in XML format. The file is processed by the WiX toolset to produce an installable MSI file for the Windows platform. This model is used to generate the installer for the Model Compiler download.
Gothic Hotel Controller - This model is based on a state machine design of an amusing but fantastical security system described by Martin Fowler in a discussion of Domain Specific Languages. The subsequent example model, Gothic Hotel is based on entities abstracted from the problem space.
Gothic Hotel - This example presents how the Gothic Hotel securty system should be analysed using entities abstracted from the problem space. The previous example model, Gothic Hotel Controller followed the original article by implementing a state machine based solution.