Skip to content
Leon Starr edited this page Jun 20, 2023 · 14 revisions

Welcome to the Shlaer-Mellor metamodel wiki!

The complete metamodel is beginning to take shape. Most of the loose ends are in the Action Metamodel subsystems at this point.

UPDATE: 23-6-20 I am now deeply focused on the task of populating the Activity Subsystem, making necessary changes to that subsystem in this repository along the way. These semantics are the result of parsing Scrall action language and then converting the parsed actions into a population of the relevant Activity Subsystems. Thus my focus is in the model database repository mentioned below, but it is having an impact, as anticipated, here.

As of 22-11-20 I have written Python code in the class-model-dsl repository to generate a database schema from the metamodel and then populate it with user models. I am using the Elevator Management models as initial test input. The .xmm files used in this repository to define the class models has been upgraded to the .xcm format (Executable Class Model). This format captures the relationship formalizations, so they are being removed from the wiki descriptions as I go along.

Unfortunately, Flatland does not yet know how to process .xcm files, so I need to backfill into the existing .xmm files to keep the drawings up to date. At some point in 2023 I plan to upgrade Flatland so that it can handle the updates metamodel file formats. At this point, both the xcm and updated xsm formats (class and state models) have only minor variations. They still look basically the same.

So far the domain, class, state and event subsystems (minus polymorphic events for now) have loaded along with the complete elevator class model and the cabin and transfer state models. As of 23-2-2, I have started on the action semantic subsystems, starting with the Activity subsystem. I am updating the metamodel here as I go along since faults are exposed in the process populating the database (which is why I'm doing that now!)

This is still a work in progress, but I am doing my best to get to the point where we are in a release cycle by 2024 so that we can get anyone interested in helping productively involved.

– Leon

Clone this wiki locally