Videos

How to Specify Software in Complex Safety Critical Systems

The Model Integration Youtube channel featuring Leon Starr’s course in the link above.

Platform Independent Time and Synchronization (animation)

Animates the rules described in the article below.

How roads are modeled

A series of videos describing how fundamental road structure and traffic rules can be abstracted away from regional signaling technology (lights and painted lines) so that an international standard terminology and traffic flow rules can be modeled.

Platform independent models of the road environment

How and why to model requirements, presentation at OSS.5 2022 ADAS conference

Articles / Papers

How to build Articulate UML Class Models

This article demonstrates the difference between an executable UML class model that articulately expresses platform independent data and policies vs. a sloppy ‘high level’ model that fails to express critical system details.

Platform Independent Time and Synchronization

This article illustrates the platform independent timing and synchronization rules that modelers use and architects implement to support Executable UML® applications.

Introducing Open Source Reference Models of the Driving Environment

Using platform independent models to assess the performance of autonomous vehicles. (I wrote and published this article while I was working at the Toyota Research Institute).

Books

Using a pragmatic approach, Models to Code quickly dives into two case studies of Executable UML models. The models and code are extensively annotated and illustrate key principles such as:

  • How detailed models resolve ambiguity and contradiction common in requirements.

  • How a model can be detailed enough to be executable and testable while remaining platform independent.

  • How code is produced from a model, leaving the model intact so it can be redeployed on new platforms or adapted to changing software and hardware technology.

  • How the platform independent model execution rules are implemented in platform specific run-time code.

Code production is shown using "C" as the implementation language and targeting microcomputer class processors.

In Executable UMI, Leon Starr shows how to build precise class models that form the foundation of rigorous software specifications. These specifications can be tested, debugged, and optimized to generate code for multiple languages and platforms. Leon presents a wide range of examples from his projects in the fields of science and engineering focusing on real-time environments where precise and accurate software specification is especially critical.

Using the materials in his classic How to Build Shlaer-Mellor Object Models as a starting point, Leon offers an introduction to Executable UML class models, expressing all diagrams in Executable UML notation with more object modeling techniques. Coverage includes:

  • Executable UML classes and attributes

  • Associations and relationships

  • Binary associations and association classes

  • Specialization-generalization relationships

  • Loop constraints

  • Reflexive, network, linear, and tree patterns for effective object modeling

Whether you're creating technical or business applications, Executable UML gives you the tools you need to build reliable software, readily deployable on a variety of specialized hardware and software platforms.

Code to Models

A Microcontroller from the Bottom Up

G. Andrew Mangogna

A lot has been written about the process of converting models to code.. This book takes the opposite approach. Andrew Mangogna starts with booting up a microcontroller environment and traces back to an executable foundation and a process for converting platform independent models into an efficient and reliable platform specific implementation

This pre-release book is in progress, and includes both text and working code.

Models

Elevator Case Study

Here is an executable model of a skyscraper elevator management system. This is the working example referenced throughout the Blueprint tool documentation.

Lane Change Behavior

This model captures the macro behavior of a lane change with an emphasis on the key decisions made while attempting or abandoning a single or multiple lane change.

This model has been compiled to C code in the past for the purposes of verifying black box driving data, but that code was proprietary to the Toyota Research Institute, so it is not available here. But an executable version in the Blueprint toolset is in the works.

The link above takes you to a set of models that also includes limited intersection traversal behavior. See the video section above for an explanation of some of the underlying concepts.

The Modeling Language Itself

The underlying modeling language and its execution semantics has itself been modeled forming the Shlaer-Mellor Executable UML Metamodel.

The linked github readme and wiki walks through each model element and relationship yielding a formal definition of the model language semantics.

Zero notation or action language syntax is defined here by intention so that a multitude of notations, standards, and action language grammars can be fitted to data, logic, and execution rules.