OCSMP Model User cheat sheet
OCSMP Model User · Keep the key ideas within reach.
System Behavior
Control flow edges carry control tokens that enable action execution; object flow edges carry object tokens (data or items). A token is consumed when the target action begins.
A decision node has one input and multiple guarded outputs, where guards must be mutually exclusive; a merge node has multiple inputs and one output and performs no synchronization.
A fork node copies an incoming token to all outgoing edges (concurrency); a join node emits one token only after a token has arrived on every incoming edge.
State machine transition syntax is: trigger [guard] / effect. Triggers are signal events (signal name), time events (after(t)) or change events (when(condition)).
Composite states contain nested substates and may have several orthogonal regions that run concurrently; entry, exit and do behaviors of a composite state run on entry, exit and while active.
Interaction operators in combined fragments: alt (guarded alternatives), opt (optional), loop(min,max), par (parallel), break, neg, assert, strict, ignore and consider.
A synchronous message in a sequence diagram implies a reply message and blocks the sender; an asynchronous message does not; execution occurrences are drawn as thin bars on the lifeline.
Use case include is a mandatory, unconditional insertion of behavior; extend adds optional behavior conditioned by a condition at a named extension point of the base use case.
SysML adds flow rate information: item flows carry a rate property, and the «continuous» and «discrete» keywords can qualify flows and parameters.
System Structure
A block is a UML class stereotyped «block»; it can own properties (parts, references, value properties, ports, flow properties), operations, constraints and a classifier behavior.
Property kinds differ by ownership: a part property uses composition (strong ownership, destroyed with the whole); a reference property uses shared aggregation and refers to an element owned elsewhere.
A directed composition shows a filled diamond at the whole end and an arrowhead at the part end, meaning the whole can navigate to the part but not conversely.
A proxy port is a port stereotyped «proxy» whose type is a block or «interfaceBlock»; its features are those of its type and it delegates requests to internal parts.
Applying «conjugate» to an interface block type reverses feature directions, so a conjugated proxy port requires what the original interface block provided.
An item flow is shown as a line with an open arrowhead between ports or parts, labeled with the conveyed classifier; it specifies which items travel across a connector.
An assembly connector links ports of parts at the same level of the internal block diagram; a delegation connector links an outer port of the enclosing block to a port of a nested part.
A value type («valueType») models values with no identity, typically carrying a unit and dimension, and types value properties and flow properties.
A constraint property is a property typed by a constraint class («constraint»); its parameters are bound to value properties to express equations and inequalities on a block.
Requirements
A requirement is a UML class stereotyped «requirement» with two added properties: id (identifier string) and text (the requirement statement); both appear in the requirement's compartments.
Requirement diagrams may contain requirements, blocks, test cases and comments, joined by satisfy, deriveRequisite, verify, refine, copy and containment relationships.
A «satisfy» dependency runs from a design element (typically a block or part) to a requirement and asserts that the design element fulfills the requirement.
A «verify» dependency runs from a test case to a requirement and asserts that the test case demonstrates whether the requirement is met.
A «deriveRequisite» dependency points from a derived requirement to the requirement it is derived from, typically tracing a system requirement back to a stakeholder need.
A «copy» dependency points from a copied requirement to its source requirement when the requirement text is reused without change.
Requirements may be composite: nesting a requirement inside another through composition expresses decomposition of a parent requirement into subrequirements.
A «refine» dependency links any model element to a requirement it elaborates, adding detail without claiming satisfaction or verification.
The UML «trace» dependency may appear on requirement diagrams to record a non-specific traceability link between elements.
Cross-Cutting Constructs
Allocation is expressed as a «allocate» dependency drawn as a dashed arrow with the «allocate» keyword, or as an allocation compartment on a block listing allocatedFrom and allocatedTo entries.
Three common allocation kinds: behavior allocation (activity or action to a block or part), structure allocation (logical block to physical block) and flow allocation (item flow to a connector).
Allocation does not change the type or metaclass of the allocated element; it only records a mapping between elements.
A viewpoint («viewpoint») states stakeholders, concerns and purpose for a perspective; a view («view») is a subset or query of model elements that conforms to a viewpoint through a «conform» dependency.
SysML defines the comment stereotypes «rationale» (reasoning behind a modeling decision) and «problem» (an issue or open question), both applied to UML comments.
Model organization uses packages; package imports make public or private members of one package visible in another, and element imports bring in a single named element.
Quantity modeling uses «unit» and «dimension» stereotypes on instance specifications together with «valueType» so that values carry consistent units and dimensions.
A diagram frame carries a heading with the diagram kind abbreviation and name - for example bdd, ibd, act, stm, sd, req, par, alloc.
SysML-specific concepts are applied through stereotypes; the stereotype name appears in guillemets («block», «requirement», «allocate») on the model element.