Method - modelint/shlaer-mellor-metamodel GitHub Wiki

A method is a Synchronous Activity defined on some Class and invocable on individual instances of that Class. Methods are not defined as part of the Shlaer-Mellor Method. That said, the concept of common processing, in which the same set of actions may be invoked from multiple states, is prescribed by Shlaer-Mellor in [OOA96] .

The key motivation for including Methods is that they can simplify State Activities by consolidating common processing that might be invoked from more than one State.

A Method also provides a way to define instance based processing on a Class that doesn't define a Lifecycle. If the Class can be thought of as always being in the same state Exists, for example, there isn't much point in defining that State Model.

Methods aren't the only soultion, however, and in many cases, a Derived Attribute is a better choice.

All Methods are instance based.

Identifiers

  1. ID + Domain
  2. Name + Class + Domain

Attributes

Name

Type: Method Name, based on String