Skip to content

Layout and representation policy

Decision

Layout, rendering, visual representation, canvas coordinates, tree positions, and deterministic GSN presentation are not SACM concerns and must not be part of the reusable SACM library.

Assurance Forge may use deterministic layout so the same SACM data always appears the same way inside Assurance Forge. That can be compliant because strict SACM exchange concerns the SACM data and XMI semantics, not the visual layout chosen by a tool.

SACM library responsibility

The library is responsible for:

SACM 2.3 model data
containment
references
identity
validation
editing semantics
XMI import/export
semantic round-trip
strict and compatibility modes
machine-readable diagnostics

The library is not responsible for:

node positions
canvas lanes
tree expansion state
visual grouping
layout algorithms
localized labels
GSN display terms such as Goal or Strategy
Assurance Forge project UX

Assurance Forge responsibility

Assurance Forge may deterministically project SACM data into UI concepts:

SACM Claim -> GSN Goal display node
SACM AssertedInference -> GSN reasoning/strategy-like display
SACM AssertedEvidence -> GSN evidence/solution-like display
SACM ArtifactReference -> evidence-related display
SACM package containment -> tree/folder display

This projection is a client concern. It must be rebuildable from the library document.

Save/export rule

Strict SACM 2.3 save/export should not include Assurance Forge layout metadata.

If layout metadata is ever needed, prefer one of these options outside strict SACM export:

separate Assurance Forge project file
separate sidecar file
explicit compatibility/vendor-extension mode

Strict export should remain clean SACM 2.3 XMI.

SACM 2.4 changes the fallback, not the decision

Draft SACM 2.4 adds SACMView / SACMDiagram (§15.3), built on OMG Diagram Definition/Interchange. This policy survives: SACMView is an optional compliance point, the mandatory one is Packaging, and strict export at the mandatory point still needs no diagram data. Layout stays out of the library and out of strict output.

What changes is the third option above. Once SACMDiagram exists, a vendor-extension encoding is the wrong target — the standard-aligned one is SACMDiagram + SACMDiagramElement. Worth knowing what SACM actually standardises there: that a diagram exists, which model elements each diagram element denotes, and an opaque rendered representation (e.g. SVG). It defines no geometry — coordinates come from DD/DI.

Practical consequence, and the only thing to act on now: keep the deterministic layout module's output expressible as (element reference → geometry or rendered representation) pairs, because that is the shape SACMDiagramElement takes. No code change is warranted while 2.4 remains unpublished and every RTF issue is still open — see docs/sacm/sacm-2.4-watch.md.

Testing implication

SACM library tests should not assert visual layout. Assurance Forge adapter/UI tests may assert deterministic layout separately, but those tests do not prove SACM conformance.