MP consists of a simple event grammar with two basic relations: precedence (to establish event ordering) and inclusion (to establish event hierarchy). Behaviors are composed using operations like concurrency, alternative selection, and iteration, comparable to those used in Functional Flow Block Diagram (FFBD), Unified Modeling Language (UML), Systems Modeling Language (SysML), and Business Process Modeling Notation (BPMN) activity models. Unlike other executable modeling formalisms, MP provides for the exhaustive generation, visualization, and querying of event traces (or use case scenarios) up to the specified scope.
MP allows for the compact specification of distinct behaviors for each component, separately from interactions among components. Behaviors within different components are interleaved through the imposition of interaction constraints on events in the component models. While current approaches commonly use manual methods to generate behavior scenario variants, MP generates the exhaustive set of possible combinations of permitted behaviors up to a specified scope limit. MP leverages the Small Scope Hypothesis to expose most errors or other behaviors of interest on small examples (small number of loop iterations).
The Small Scope Hypothesis states that most errors can be exposed on small examples.* Using MP, a finite number of event traces are generated from a specification containing potentially infinite number of behaviors by simulating only a small number of iterations on loops contained in the model. Many errors of consequence have been exposed for correction at a modest scope of 1, 2, or 3.
* Jackson, D. Software Abstractions: Logic, Language, and Analysis; MIT Press: Cambridge, MA, USA, 2012.