Documentation menu

ArcLang metamodel: kinds, attributes, units

This page is generated by the compiler (arclang metamodel). A test fails when it and the compiler disagree.

Language version 4.0.0. GENERATED from src/compiler/metamodel.rs by arclang metamodel --format markdown; a golden test fails when this file and the compiler disagree. Do not edit by hand.

The metamodel is independent of Capella: it names the Arcadia metaclass each kind corresponds to, and the SysML v2 construct the exporter maps it to. Attribute values are typed; the compiler reports type violations as metamodel: warnings and the production gate turns them into blockers.

Element kinds

Operational Analysis

Actor

Human or external system interacting with the system.

  • Arcadia: OperationalActor
  • SysML v2: part def (actor)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
category text Actor category.
safety_level enum SafetyLevel ASIL, DAL or SIL assigned to the element.
asil enum Asil ISO 26262 ASIL (QM, ASIL-A..D).
dal enum Dal DO-178C design assurance level (DAL-A..E).
location location {lat, lon[, alt]} Where it stands on the Earth, WGS 84: { lat: 48.8566 deg lon: 2.3522 deg alt: 35 m } (alt optional). Drawn on maps (arclang export -f geojson).

OperationalEntity

Organization or system of the operational world.

  • Arcadia: Entity
  • SysML v2: part def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
type text Component category (free text).
layer text Overrides the architectural layer label.
safety_level enum SafetyLevel ASIL, DAL or SIL assigned to the element.
asil enum Asil ISO 26262 ASIL (QM, ASIL-A..D).
dal enum Dal DO-178C design assurance level (DAL-A..E).
memory text Memory configuration, descriptive ("2 GB DDR4, 64 GB eMMC"). Use ram/flash/storage for typed sizes.
ram quantity<data size> RAM capacity.
flash quantity<data size> Flash capacity.
storage quantity<data size> Mass storage capacity.
power quantity<power> Power consumption.
voltage quantity<voltage> Supply voltage.
mass quantity<mass> Mass.
weight quantity<mass> Alias of mass.
location location {lat, lon[, alt]} Where it stands on the Earth, WGS 84: { lat: 48.8566 deg lon: 2.3522 deg alt: 35 m } (alt optional). Drawn on maps (arclang export -f geojson).

OperationalCapability

Expected ability of the operational world. May be declared inside another operational capability.

  • Arcadia: OperationalCapability
  • SysML v2: use case def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
involves list<ref<Element>> Actors, entities, activities and processes involved.
extends list<ref<OperationalCapability>> Capabilities of the same level this one extends.
includes list<ref<OperationalCapability>> Capabilities of the same level this one includes.
specializes list<ref<OperationalCapability>> Capabilities of the same level this one is a special case of.

OperationalActivity

Activity performed by an entity or actor.

  • Arcadia: OperationalActivity
  • SysML v2: action def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
category text Functional category (free text).
inputs list<text> Input data names.
outputs list<text> Output data names.
latency quantity<time> Execution latency; summed along functional chains by the gate.
execution_time quantity<time> Alias of latency.
wcet quantity<time> Worst-case execution time.
period quantity<time> Activation period.
deadline quantity<time> Completion deadline.
frequency quantity<frequency> Activation frequency.
safety_level enum SafetyLevel ASIL, DAL or SIL assigned to the element.
asil enum Asil ISO 26262 ASIL (QM, ASIL-A..D).
dal enum Dal DO-178C design assurance level (DAL-A..E).

OperationalExchange

Interaction between operational entities.

  • Arcadia: CommunicationMean / OperationalExchange
  • SysML v2: connect
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
from ref<Element> Source element or port.
to ref<Element> Target element or port.
protocol text Transport protocol (CAN FD, Ethernet, ARINC 429...).
bandwidth quantity<data rate> Available or required data rate.
latency quantity<time> Transport latency.
frequency quantity<frequency> Message rate.
period quantity<time> Message period.
size quantity<data size> Payload size.
data_type text Exchanged data type.

OperationalProcess

Ordered path of activities fulfilling a capability.

  • Arcadia: OperationalProcess
  • SysML v2: action def (sequence)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
involves list<ref<Element>> Ordered functions, exchanges and chains of the chain.
latency_budget quantity<time> End-to-end budget checked by the gate.
capability ref<Capability> Capability this chain exemplifies.

System Analysis

Requirement

Stakeholder, system or safety requirement.

  • Arcadia: Requirement
  • SysML v2: requirement
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
priority enum Priority Business priority.
category text Requirement category (functional, performance, safety...).
rationale text Why the requirement exists.
source text Origin document or stakeholder.
status text Lifecycle status.
verification_method enum VerificationMethod Intended verification method.
parent ref<Requirement> Requirement it sits under in its document (ReqIF SPEC-HIERARCHY); structure, not refinement.
reqif_id text Identifier the requirement has in the tool it came from (ReqIF IDENTIFIER), given back on export.
applies_to list<ref<Configuration>> The configurations of the product line the requirement holds for; every one when absent. A case verifying it runs in one of them, and the gate wants a case in each.
frames list<ref<Concern>> The concerns the requirement addresses (SysML v2 frame).
subject ref<Element> What the requirement is about: a component, a node, a function (SysML v2 subject). The element shows it in its requirements compartment.
require list<text> Constraints the subject must meet, as expressions ("mass <= 1200 kg"; SysML v2 require constraint).
assume list<text> Constraints taken for granted for the requirement to hold ("ambient >= -20 °C"; SysML v2 assume constraint).
safety_level enum SafetyLevel ASIL, DAL or SIL assigned to the element.
asil enum Asil ISO 26262 ASIL (QM, ASIL-A..D).
dal enum Dal DO-178C design assurance level (DAL-A..E).

Concern

What a stakeholder cares about, framed by the requirements that address it. Declared in a requirements block: concern "Resists to bullets" { stakeholders: ["Owner"] }.

  • Arcadia: (none: carried as a requirement)
  • SysML v2: concern
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
stakeholders list<text> Who has the concern (SysML v2 stakeholder).
rationale text Why it matters.
parent ref<Concern> Concern it sits under.

Mission

High-level goal the system contributes to.

  • Arcadia: Mission
  • SysML v2: use case def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.

Capability

Expected ability of the system. May be declared inside another capability.

  • Arcadia: Capability
  • SysML v2: use case def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
mission ref<Mission> Mission this capability contributes to.
realizes ref<OperationalCapability> Operational capability realized.
involves list<ref<Element>> Functions, actors and chains involved.
extends list<ref<Capability>> Capabilities of the same level this one extends.
includes list<ref<Capability>> Capabilities of the same level this one includes.
specializes list<ref<Capability>> Capabilities of the same level this one is a special case of.

SystemFunction

Function the system performs.

  • Arcadia: SystemFunction
  • SysML v2: action def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
category text Functional category (free text).
inputs list<text> Input data names.
outputs list<text> Output data names.
latency quantity<time> Execution latency; summed along functional chains by the gate.
execution_time quantity<time> Alias of latency.
wcet quantity<time> Worst-case execution time.
period quantity<time> Activation period.
deadline quantity<time> Completion deadline.
frequency quantity<frequency> Activation frequency.
safety_level enum SafetyLevel ASIL, DAL or SIL assigned to the element.
asil enum Asil ISO 26262 ASIL (QM, ASIL-A..D).
dal enum Dal DO-178C design assurance level (DAL-A..E).

FunctionPort

Oriented port of a function (strictly in XOR out).

  • Arcadia: FunctionInputPort / FunctionOutputPort
  • SysML v2: in/out item
Attribute Type Meaning
data_type text Exchanged data type.
type enum PortKind data

FunctionalExchange

Data flow between function ports.

  • Arcadia: FunctionalExchange
  • SysML v2: flow
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
from ref<Element> Source element or port.
to ref<Element> Target element or port.
protocol text Transport protocol (CAN FD, Ethernet, ARINC 429...).
bandwidth quantity<data rate> Available or required data rate.
latency quantity<time> Transport latency.
frequency quantity<frequency> Message rate.
period quantity<time> Message period.
size quantity<data size> Payload size.
data_type text Exchanged data type.

SystemActor

External actor at system level.

  • Arcadia: SystemActor
  • SysML v2: part def (actor)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
safety_level enum SafetyLevel ASIL, DAL or SIL assigned to the element.
asil enum Asil ISO 26262 ASIL (QM, ASIL-A..D).
dal enum Dal DO-178C design assurance level (DAL-A..E).
location location {lat, lon[, alt]} Where it stands on the Earth, WGS 84: { lat: 48.8566 deg lon: 2.3522 deg alt: 35 m } (alt optional). Drawn on maps (arclang export -f geojson).

SystemComponent

The system or one of its external components.

  • Arcadia: SystemComponent
  • SysML v2: part def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
type text Component category (free text).
layer text Overrides the architectural layer label.
safety_level enum SafetyLevel ASIL, DAL or SIL assigned to the element.
asil enum Asil ISO 26262 ASIL (QM, ASIL-A..D).
dal enum Dal DO-178C design assurance level (DAL-A..E).
memory text Memory configuration, descriptive ("2 GB DDR4, 64 GB eMMC"). Use ram/flash/storage for typed sizes.
ram quantity<data size> RAM capacity.
flash quantity<data size> Flash capacity.
storage quantity<data size> Mass storage capacity.
power quantity<power> Power consumption.
voltage quantity<voltage> Supply voltage.
mass quantity<mass> Mass.
weight quantity<mass> Alias of mass.

FunctionalChain

Ordered functions, exchanges and chains realizing one dataflow path; control nodes and sequence links branch it.

  • Arcadia: FunctionalChain
  • SysML v2: action def (sequence)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
involves list<ref<Element>> Ordered functions, exchanges and chains of the chain.
latency_budget quantity<time> End-to-end budget checked by the gate.
capability ref<Capability> Capability this chain exemplifies.

ControlNode

Control node of a functional chain: control and|or|iterate "Name", joined to the chain's steps by sequence links.

  • Arcadia: ControlNode
  • SysML v2: fork / join / decision / loop node
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
kind enum ControlKind and

sequence "A" -> "B" { condition: "..." } inside a chain: each end a step of the chain or one of its control nodes.

  • Arcadia: SequenceLink
  • SysML v2: succession
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
condition text Guard of the branch.

Logical Architecture

LogicalComponent

Behavioral building block, may be nested. In a product line, a component variation: true holds the components that are its variants (variant: true).

  • Arcadia: LogicalComponent
  • SysML v2: part def + part
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
type text Component category (free text).
layer text Overrides the architectural layer label.
safety_level enum SafetyLevel ASIL, DAL or SIL assigned to the element.
asil enum Asil ISO 26262 ASIL (QM, ASIL-A..D).
dal enum Dal DO-178C design assurance level (DAL-A..E).
memory text Memory configuration, descriptive ("2 GB DDR4, 64 GB eMMC"). Use ram/flash/storage for typed sizes.
ram quantity<data size> RAM capacity.
flash quantity<data size> Flash capacity.
storage quantity<data size> Mass storage capacity.
power quantity<power> Power consumption.
voltage quantity<voltage> Supply voltage.
mass quantity<mass> Mass.
weight quantity<mass> Alias of mass.
multiplicity multiplicity How many of the element its owner has: a count (4) or a range as text ("0..1", "1..*", "*"). One when absent.
variation boolean A point of variation: the components it holds marked variant are the choices.
variant boolean One variant of the variation holding it.

LogicalFunction

Function of the logical level, declared inside the component that performs it (or at the level, unallocated), with its ports and sub-functions; realizes: names the system function it realizes.

  • Arcadia: LogicalFunction
  • SysML v2: action def (perform)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
category text Functional category (free text).
inputs list<text> Input data names.
outputs list<text> Output data names.
latency quantity<time> Execution latency; summed along functional chains by the gate.
execution_time quantity<time> Alias of latency.
wcet quantity<time> Worst-case execution time.
period quantity<time> Activation period.
deadline quantity<time> Completion deadline.
frequency quantity<frequency> Activation frequency.
safety_level enum SafetyLevel ASIL, DAL or SIL assigned to the element.
asil enum Asil ISO 26262 ASIL (QM, ASIL-A..D).
dal enum Dal DO-178C design assurance level (DAL-A..E).

ComponentPort

Oriented port of a component (in, out, inout); it may hold ports, named Owner.port.sub.

  • Arcadia: ComponentPort
  • SysML v2: port
Attribute Type Meaning
interface text Interface type carried.
protocol text Protocol.
multiplicity multiplicity How many of the element its owner has: a count (4) or a range as text ("0..1", "1..*", "*"). One when absent.
physics enum Physics What the port carries, for arclang export -f modelica: the Modelica Standard Library connector it becomes (a signal by its direction). A port saying none is not exported.
pole enum Pole For an electrical port: the pin it is (positive when absent).
flange enum Flange For a mechanical or thermal port: the flange it is (b for an out port, a otherwise, when absent).

LogicalInterface

Contract between two components.

  • Arcadia: Interface
  • SysML v2: interface def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
from ref<LogicalComponent> Provider.
to ref<LogicalComponent> Consumer.
protocol text Transport protocol (CAN FD, Ethernet, ARINC 429...).
bandwidth quantity<data rate> Available or required data rate.
latency quantity<time> Transport latency.
frequency quantity<frequency> Message rate.
period quantity<time> Message period.
size quantity<data size> Payload size.
data_type text Exchanged data type.

ComponentExchange

Exchange between component ports; with ends, between more than two.

  • Arcadia: ComponentExchange
  • SysML v2: connect
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
from ref<Element> Source element or port.
to ref<Element> Target element or port.
protocol text Transport protocol (CAN FD, Ethernet, ARINC 429...).
bandwidth quantity<data rate> Available or required data rate.
latency quantity<time> Transport latency.
frequency quantity<frequency> Message rate.
period quantity<time> Message period.
size quantity<data size> Payload size.
data_type text Exchanged data type.
ends list<ref<Element>> Every end of an exchange joining more than two (connect (a, b, c)); drawn through a junction.

CapabilityRealization

Realization of a system capability by components. May be declared inside another realization.

  • Arcadia: CapabilityRealization
  • SysML v2: use case def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
realizes ref<Capability> Capability realized.
involves list<ref<Element>> Components and chains involved.
extends list<ref<CapabilityRealization>> Capabilities of the same level this one extends.
includes list<ref<CapabilityRealization>> Capabilities of the same level this one includes.
specializes list<ref<CapabilityRealization>> Capabilities of the same level this one is a special case of.

Physical Architecture

PhysicalNode

Hardware node hosting behavior components.

  • Arcadia: PhysicalComponent (NODE)
  • SysML v2: part def + part
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
type text Component category (free text).
layer text Overrides the architectural layer label.
safety_level enum SafetyLevel ASIL, DAL or SIL assigned to the element.
asil enum Asil ISO 26262 ASIL (QM, ASIL-A..D).
dal enum Dal DO-178C design assurance level (DAL-A..E).
memory text Memory configuration, descriptive ("2 GB DDR4, 64 GB eMMC"). Use ram/flash/storage for typed sizes.
ram quantity<data size> RAM capacity.
flash quantity<data size> Flash capacity.
storage quantity<data size> Mass storage capacity.
power quantity<power> Power consumption.
voltage quantity<voltage> Supply voltage.
mass quantity<mass> Mass.
weight quantity<mass> Alias of mass.
location location {lat, lon[, alt]} Where it stands on the Earth, WGS 84: { lat: 48.8566 deg lon: 2.3522 deg alt: 35 m } (alt optional). Drawn on maps (arclang export -f geojson).
position position {x, y, z} Where it stands in its owner (the model at the top), in lengths: { x: 1.2 m y: 0 m z: 0.4 m }, a missing axis being 0. Placed so in CAD (arclang export -f step).
orientation orientation {yaw, pitch, roll} How it is turned in its owner: { yaw: 90 deg pitch: 0 deg roll: 0 deg }, about z, then y, then x.
shape `shape {box cylinder}`
multiplicity multiplicity How many of the element its owner has: a count (4) or a range as text ("0..1", "1..*", "*"). One when absent.
processor text Processor.
cpu text CPU description.
redundancy text Redundancy scheme.
model text The executable model of the element: a Modelica class extending the class arclang export -f modelica generates for it, with modifiers if needed ("DronePhysics.Rotors(rho=airframe.rho)"). The export rolls these up into Executable.<Configuration>, the model a simulated case without model: runs. Often written in a refine of an element imported from another tool.

PhysicalPort

Unoriented physical connector.

  • Arcadia: PhysicalPort
  • SysML v2: port
Attribute Type Meaning
connector text Connector type.
physics enum Physics What the port carries, for arclang export -f modelica: the Modelica Standard Library connector it becomes (a signal by its direction). A port saying none is not exported.
pole enum Pole For an electrical port: the pin it is (positive when absent).
flange enum Flange For a mechanical or thermal port: the flange it is (b for an out port, a otherwise, when absent).

BehaviorComponent

Software/behavior deployed on a node; declares the physical functions it performs.

  • Arcadia: PhysicalComponent (BEHAVIOR)
  • SysML v2: part
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
safety_level enum SafetyLevel ASIL, DAL or SIL assigned to the element.
asil enum Asil ISO 26262 ASIL (QM, ASIL-A..D).
dal enum Dal DO-178C design assurance level (DAL-A..E).
location location {lat, lon[, alt]} Where it stands on the Earth, WGS 84: { lat: 48.8566 deg lon: 2.3522 deg alt: 35 m } (alt optional). Drawn on maps (arclang export -f geojson).
position position {x, y, z} Where it stands in its owner (the model at the top), in lengths: { x: 1.2 m y: 0 m z: 0.4 m }, a missing axis being 0. Placed so in CAD (arclang export -f step).
orientation orientation {yaw, pitch, roll} How it is turned in its owner: { yaw: 90 deg pitch: 0 deg roll: 0 deg }, about z, then y, then x.
shape `shape {box cylinder}`
model text The executable model of the element: a Modelica class extending the class arclang export -f modelica generates for it, with modifiers if needed ("DronePhysics.Rotors(rho=airframe.rho)"). The export rolls these up into Executable.<Configuration>, the model a simulated case without model: runs. Often written in a refine of an element imported from another tool.

PhysicalFunction

Function of the physical level, declared inside the behavior component that performs it (or at the level, unallocated), with its ports and sub-functions; realizes: names the logical function it realizes.

  • Arcadia: PhysicalFunction
  • SysML v2: action def (perform)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
category text Functional category (free text).
inputs list<text> Input data names.
outputs list<text> Output data names.
latency quantity<time> Execution latency; summed along functional chains by the gate.
execution_time quantity<time> Alias of latency.
wcet quantity<time> Worst-case execution time.
period quantity<time> Activation period.
deadline quantity<time> Completion deadline.
frequency quantity<frequency> Activation frequency.
safety_level enum SafetyLevel ASIL, DAL or SIL assigned to the element.
asil enum Asil ISO 26262 ASIL (QM, ASIL-A..D).
dal enum Dal DO-178C design assurance level (DAL-A..E).

HardwareComponent

Hardware part of a node.

  • Arcadia: PhysicalComponent (NODE, nested)
  • SysML v2: part
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
memory text Memory configuration, descriptive ("2 GB DDR4, 64 GB eMMC"). Use ram/flash/storage for typed sizes.
ram quantity<data size> RAM capacity.
flash quantity<data size> Flash capacity.
storage quantity<data size> Mass storage capacity.
power quantity<power> Power consumption.
voltage quantity<voltage> Supply voltage.
mass quantity<mass> Mass.
weight quantity<mass> Alias of mass.

Physical medium between nodes or ports.

  • Arcadia: PhysicalLink
  • SysML v2: connect (binding)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
from ref<Element> Source element or port.
to ref<Element> Target element or port.
protocol text Transport protocol (CAN FD, Ethernet, ARINC 429...).
bandwidth quantity<data rate> Available or required data rate.
latency quantity<time> Transport latency.
frequency quantity<frequency> Message rate.
period quantity<time> Message period.
size quantity<data size> Payload size.
data_type text Exchanged data type.
route list<location {lat, lon[, alt]}> The way the link takes on the Earth, at least two points: [{ lat: .. lon: .. }, { lat: .. lon: .. }]. Its length is measured; a declared length may not be shorter.
length quantity<length> Length of the medium. Not shorter than its route, nor than the distance between located ends; with latency, light must cover it in that time.
max_length quantity<length> Longest the medium may be (a cable or bus limit): the route and the length must keep within it.

PhysicalExchange

Message routed over a link.

  • Arcadia: ComponentExchange (physical)
  • SysML v2: flow
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
from ref<Element> Source element or port.
to ref<Element> Target element or port.
protocol text Transport protocol (CAN FD, Ethernet, ARINC 429...).
bandwidth quantity<data rate> Available or required data rate.
latency quantity<time> Transport latency.
frequency quantity<frequency> Message rate.
period quantity<time> Message period.
size quantity<data size> Payload size.
data_type text Exchanged data type.
via ref<PhysicalLink> Carrying link.
message_type text Message/frame type.

Deployment

Allocation of a logical component to a node.

  • Arcadia: ComponentDeploymentLink
  • SysML v2: allocate
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.

PhysicalPath

Ordered links routing an exchange.

  • Arcadia: PhysicalPath
  • SysML v2: connect (sequence)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
involves list<ref<PhysicalLink>> Ordered links.

EPBS

EpbsSystem

Top configuration item.

  • Arcadia: ConfigurationItem (SYSTEM)
  • SysML v2: part def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
location location {lat, lon[, alt]} Where it stands on the Earth, WGS 84: { lat: 48.8566 deg lon: 2.3522 deg alt: 35 m } (alt optional). Drawn on maps (arclang export -f geojson).
position position {x, y, z} Where it stands in its owner (the model at the top), in lengths: { x: 1.2 m y: 0 m z: 0.4 m }, a missing axis being 0. Placed so in CAD (arclang export -f step).
orientation orientation {yaw, pitch, roll} How it is turned in its owner: { yaw: 90 deg pitch: 0 deg roll: 0 deg }, about z, then y, then x.
shape `shape {box cylinder}`

EpbsSubsystem

Subsystem configuration item.

  • Arcadia: ConfigurationItem (CS)
  • SysML v2: part def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
location location {lat, lon[, alt]} Where it stands on the Earth, WGS 84: { lat: 48.8566 deg lon: 2.3522 deg alt: 35 m } (alt optional). Drawn on maps (arclang export -f geojson).
position position {x, y, z} Where it stands in its owner (the model at the top), in lengths: { x: 1.2 m y: 0 m z: 0.4 m }, a missing axis being 0. Placed so in CAD (arclang export -f step).
orientation orientation {yaw, pitch, roll} How it is turned in its owner: { yaw: 90 deg pitch: 0 deg roll: 0 deg }, about z, then y, then x.
shape `shape {box cylinder}`

EpbsItem

Leaf configuration item or assembly.

  • Arcadia: ConfigurationItem (HW/SW)
  • SysML v2: part def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
part_number text Part number.
supplier text Supplier.
memory text Memory configuration, descriptive ("2 GB DDR4, 64 GB eMMC"). Use ram/flash/storage for typed sizes.
ram quantity<data size> RAM capacity.
flash quantity<data size> Flash capacity.
storage quantity<data size> Mass storage capacity.
power quantity<power> Power consumption.
voltage quantity<voltage> Supply voltage.
mass quantity<mass> Mass.
weight quantity<mass> Alias of mass.
location location {lat, lon[, alt]} Where it stands on the Earth, WGS 84: { lat: 48.8566 deg lon: 2.3522 deg alt: 35 m } (alt optional). Drawn on maps (arclang export -f geojson).
position position {x, y, z} Where it stands in its owner (the model at the top), in lengths: { x: 1.2 m y: 0 m z: 0.4 m }, a missing axis being 0. Placed so in CAD (arclang export -f step).
orientation orientation {yaw, pitch, roll} How it is turned in its owner: { yaw: 90 deg pitch: 0 deg roll: 0 deg }, about z, then y, then x.
shape `shape {box cylinder}`

Data model

Class

Structured data element; every attribute but id, description and extends is a field, kept in declared order.

  • Arcadia: Class
  • SysML v2: attribute def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
extends ref<Class> The class this one specializes.

Association

Association between two classes, as an element of its own; from owns the navigable end.

  • Arcadia: Association
  • SysML v2: connection def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
from ref<Class> The class owning the navigable end.
to ref<Class> The class at the navigable end.
role text The field of from typed by to (the navigable end).
kind enum AssociationKind association
multiplicity text Multiplicity of the navigable end (1, 0..*).

Enumeration

Enumerated data type.

  • Arcadia: Enumeration
  • SysML v2: enum def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
values list<text> Literals.

DataType

Primitive data type.

  • Arcadia: DataType
  • SysML v2: attribute def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
base text Base type.
unit enum Unit Unit symbol of the values.

ExchangeItem

Set of data elements exchanged together.

  • Arcadia: ExchangeItem
  • SysML v2: item def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
mechanism enum ExchangeMechanism Exchange mechanism.
elements list<ref<Class>> Grouped data elements.

Transverse

Hazard

HARA entry: hazardous event and its classification.

  • Arcadia: (safety extension)
  • SysML v2: requirement (hazard)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
severity enum HazardSeverity ISO 26262 S0-S3 or DO-178C failure condition.
exposure enum Exposure ISO 26262 E0-E4.
controllability enum Controllability ISO 26262 C0-C3.
condition enum FailureCondition DO-178C failure condition class.
asil enum Asil Declared ASIL; must match S/E/C.
dal enum Dal Declared DAL; must match the condition.
sil enum Sil IEC 61508 SIL of the hazard (SIL-1..SIL-4); classifies it without S/E/C.
mitigated_by list<ref<Requirement>> Safety requirements mitigating the hazard.
gate text Fault tree: or (default, one failure mode leading to it suffices) or and (all of them, a redundancy).
budget_fit number Fault tree: the most its rate may be, in FIT; else the target of its ASIL, failure condition, DAL or SIL.
mission_time quantity<time> Fault tree: the exposure the probability is computed over (1 h by default).

FmeaEntry

FMEA line: failure mode with S/O/D rating.

  • Arcadia: (safety extension)
  • SysML v2: requirement (failure mode)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
failure_mode text Failure mode.
effect text Effect.
cause text Cause.
severity text Severity: rating, class (S3) or description — free text by design, FMEA practices differ.
occurrence text Occurrence: rating, class or rate description.
detection text Detection: rating, class or detection means.
rpn number Risk priority number.
element ref<Element> The element that fails.
leads_to list<ref<Hazard>> The hazards this failure mode leads to: the fault trees it is a basic event of.
fit number Failure rate in FIT (failures per 10^9 hours).

Threat

Threat of a cybersecurity analysis: what an attacker may achieve, applied to primary assets and involving components. Its security needs are the free security_<need> attributes, checked against security_scales.

  • Arcadia: cybersecurity:Threat (Cybersecurity viewpoint)
  • SysML v2: requirement (threat)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
kind text Threat kind: one of security_scales.threat_kinds when declared.
level number Criticality level of the threat (an integer).
rationale text Why the threat is assessed so.
applies_to list<ref<PrimaryAsset>> Primary assets the threat applies to.
involves list<ref<Element>> Components, entities or actors involved.

PrimaryAsset

Primary asset of a cybersecurity analysis: a service, information or business concern to protect, made of declared elements.

  • Arcadia: cybersecurity:FunctionalPrimaryAsset / InformationPrimaryAsset / EnterprisePrimaryAsset
  • SysML v2: requirement (asset)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
kind enum AssetKind What the asset is.
members list<ref<Element>> Functions, exchange items or classes making up the asset.

Trace

Typed link between two elements.

  • Arcadia: AbstractTrace / Realization
  • SysML v2: satisfy / verify / allocate
Attribute Type Meaning
from ref<Element> Source.
to ref<Element> Target.
type enum TraceKind Link kind.
rationale text Justification.

Configuration

One product of a product line: the variant it selects in each variation. Two variants of one variation are an error, a variation left open a warning.

  • Arcadia: (product line)
  • SysML v2: part (#Configuration)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
selects list<ref<LogicalComponent>> The variants selected, one per variation.

IoBinding

io_binding "ECU" { ... }: the inputs and outputs of a state machine bound once to the channels of the I/O interface arclang_io.h (gpio, adc, dac, pwm, can, uart, with a clock and a watchdog). Checked by the compiler, against its target's channels too; arclang export -f c generates the glue that calls the channels, arclang sil runs it on the host board, arclang pil on the target's processor. See docs/embedded-c.md.

  • Arcadia: (embedded extension)
  • SysML v2: (none: an allocation of a state machine's events, conditions, states and actions to I/O channels)
Attribute Type Meaning
machine ref<StateMachine> The state machine bound (optional when the model has one).
period quantity<time> The step period on the target, a time (10 ms): the glue runs one cycle per period.
watchdog boolean Kick the watchdog after every cycle that read, stepped and wrote without error.
target text The target package it is deployed on (zephyr/litex_vexriscv; host by default): the compiler checks that the target has every channel bound. arclang export -f zephyr and arclang pil use it. See docs/embedded-targets.md.
inputs list<text> event or condition <- channel: an event from an edge (gpio 4 rising), a frame (can 0x120) or a byte (uart 0 0x41); a condition from a level (gpio 3), a raw threshold (adc 0 > 2048) or the first byte of the last frame (can 0x121). An event bound to a level, a condition to an edge, or an input bound twice is an error; an input left unbound, a warning.
outputs list<text> state or action -> channel: a state (1 while active) or an action (times run in the step) written to gpio 10, pwm 2 750 (per mille while not zero), dac 1 4095 (while not zero), can 0x300 (first byte, every period) or uart 1 0x45 (each step it is not zero). A channel written twice, or a pin both read and written, is an error.
description text Free-text description.

TestCase

Verification case covering requirements.

  • Arcadia: (V&V extension)
  • SysML v2: verification def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
verifies list<ref<Requirement>> Requirements verified.
method enum VerificationMethod Verification method.
procedure text Procedure.
expected text Expected result.
asserts list<ref<Constraint>> An analysis: the constraints whose evaluation is its verdict (pass when they all hold).
verdict enum Verdict Outcome of a test run elsewhere; computed, not given, when the case asserts: constraints or simulate:s. A requirement with a failing case is not verified.
simulate {backend, model, configuration, stop_time, start_time, sources, tolerance, intervals, sweep, uncertain, samples, seed, probability, confidence, mission} Verified by simulation: the backend (openmodelica, the default; fmu and command are declared, not built yet), the Modelica model to simulate (extending a system model of arclang export -f modelica; without it, the roll-up of the configuration, Executable.<Configuration>, when its elements carry model:), the configuration it is, a mission (a file of parameter values, one "Element".parameter = value a line, relative to the model file, added to the sweep), stop_time (and start_time), the hand-written Modelica sources (paths from the model file), tolerance, intervals, and a sweep (["body.mass = 1800 kg, 2100 kg", "vcu.target_speed = 80 km/h .. 130 km/h step 10 km/h"]: every combination is simulated, and the expectations must hold at each). Or uncertain parameters (["body.mass ~ normal(1850 kg, 40 kg)", "cell.capacity ~ uniform(58 kWh, 62 kWh)", "drive.efficiency ~ normal(0.9, 0.03) in [0.8, 0.97]"]: normal, uniform or triangular, kept between bounds by in [low, high]) drawn in samples (10 to 1000, default 200) from a seed: the case passes when the probability that the expectations hold is shown, at confidence (default 0.95), to reach probability (the Clopper-Pearson lower bound). Run by arclang verify; the verdict is cached, and inconclusive when stale or never run.
execute {machine, step, stop_time, inputs, binding, tolerance, quantisation, plant} Verified by executing a state machine at fixed step: the machine, the step (default the binding's period, else 10 ms), stop_time, the inputs (["0 s: main switch on", "10 ms: LF-022", "300 ms: main switch on = false"]: an event occurs in the step at its time, a condition holds or not from it on, an in variable takes a value from it on: "100 ms: speed = 50 km/h"), a binding (the run then goes through the I/O glue and the host board) and the tolerance of the comparison with the C (quantisation: of the fixed point of a machine allocated to programmable logic against the model, in arclang hdl and arclang soc). The expectations read the states ("Machine".State, 1 while active), the actions ("Machine".action.close_contactors, times run in the step) and the variables ("Machine".speed, in their unit). Compiling runs the model and reports a failing case; arclang sil runs the generated C against it.
snapshots list<text> Snapshots the simulation must reach: a snapshot, a timeslice (its snapshots) or an element (all its snapshots), by id (["LC-DRONE.Takeoff.At cruise"]). Each value of each one, at its at:, is an expectation within the snapshot's tolerance (at(40 s, "LC-DRONE".altitude) == 120 m within 1 %).
expects list<text> What the simulation result must show: comparisons over its variables read with min, max, final, initial, mean or at(t, var), with units (final(vehicle.distance) >= 300 km); == and != may say how far equal may be (at(1 h, battery.soc) == 0.7 within 2 %, or within 0.05). A comparison may name the requirement it checks ("REQ-SHED: at(40 min, cabin.drawn) <= 1 W"): each requirement is then judged on the comparisons naming it and those naming none.
reviewed list<text> The verifications reviewed: one entry per verified requirement, the requirement and the fingerprints of the case and of the requirement, written by arclang trace --review. A verification whose case or requirement changed since is suspect, and so is one the case verifies but does not name here.

Model

The model itself: root of the element graph, owner of every top-level element.

  • Arcadia: Project / SystemEngineering
  • SysML v2: package
Attribute Type Meaning
name text Model name.
version text Model version.
description text Free-text description.

Type

Reusable definition: type Name extends Base { ... }. Declares typed attributes, ports and the attributes instances must provide. Redefinitions must keep the dimension. Types have their own namespace. A type with ports typing a port is a port definition (its ports are the ports the port holds); typing an exchange, an interface definition; with from_kind and to_kind, typing an allocates trace, an allocation definition.

  • Arcadia: (extension — closest Capella notion: REC/RPL)
  • SysML v2: abstract part / action / port / connection / allocation def, specialized with :>
Attribute Type Meaning
required list<text> Attributes every instance must provide (declared or inherited).
description text Free-text description (not inherited).
from_kind text For an allocation definition: the kind every allocation of it goes from (PhysicalNode).
to_kind text For an allocation definition: the kind every allocation of it goes to (LogicalComponent).
physics enum Physics For a port definition: what the ports it types carry, for the Modelica export.

Note

A text about elements, declared at the top of a file (note "Text" { about: ["LC-A"] }): drawn on every view that draws one of them, tied to each by a dashed line. An element it names that the model does not declare is an error.

  • Arcadia: Note (diagram annotation)
  • SysML v2: comment about
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
about list<ref<Element>> The elements the note is about.

Constraint

Dimension-checked comparison over typed attributes (assert: <expression>). Ill-formed is a compile error; violated is a warning and a gate blocker.

  • Arcadia: Constraint
  • SysML v2: assert constraint
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.

Timeslice

A stretch of an element's life, declared in it (timeslice "Takeoff" { start: 0 s end: 40 s }); holds the snapshots it goes through. Its other attributes are the values the element has during it.

  • Arcadia: (none: carried as a property)
  • SysML v2: timeslice
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
start quantity<time> When it starts.
end quantity<time> When it ends; not before it starts.

Snapshot

One moment of an element's life, declared in it or in one of its timeslices (snapshot "Landed" { at: 5 min altitude: 0 m }). Its other attributes are the values the element has then; a value the element declares as a quantity keeps its dimension.

  • Arcadia: (none: carried as a property)
  • SysML v2: snapshot
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
at quantity<time> When it is; within its timeslice.
tolerance text How far a simulated value may be from the snapshot's and still reach it, when a test case checks it: a percentage of the value (2 %) or an amount (0.5 m). 1 % when absent.

StateMachine

Modes and states of an element.

  • Arcadia: StateMachine
  • SysML v2: state def
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
initial ref<State> Initial state.
variables list<text> Typed variables (SysML v2 attributes): `[in
equations list<text> Difference equations evaluated every step in the order written, before the transitions: target = expression over the variables, with the blocks delay, integrator, pid and the functions min, max, abs, saturate, gain. Typed and unit-checked.

State

State (undergone) or mode (chosen behavior).

  • Arcadia: State / Mode
  • SysML v2: state
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.

Transition

Transition between states.

  • Arcadia: StateTransition
  • SysML v2: transition
Attribute Type Meaning
trigger text Triggering event.
guard text Guard condition: an expression over the machine's variables (speed > 30 km/h and armed), else prose (a condition the reader sets).
action text Effect: assignments to the machine's variables (count := count + 1; on := true), else prose (reported, not executed).
timing quantity<time> Timing constraint: without a trigger, a timer (as after:); beside a trigger, a budget (as budget:).
after quantity<time> A timer: the transition fires when its source has been active this long (SysML v2 accept after). Not with a trigger.
budget quantity<time> A budget: how long the source may stay active before the transition fires; watched every step, an overrun is an output ("Machine".budget.<transition>), never a timer.
priority number Priority among concurrent transitions.

Diagram

A declared diagram: a named view cut from one Arcadia level, drawing the elements it names, what holds them and the exchanges between them. context: true adds the elements an exchange ties to a named one.

  • Arcadia: Diagram (DiagramRepresentation)
  • SysML v2: view
Attribute Type Meaning
view identifier The view it is cut from: oab, sab, lab, pab, cap, cdb or pbs.
shows list<ref<Element>> Elements drawn, by id or name; their containers are drawn around them.
context boolean Also draw the elements an exchange ties to a shown one.
under ref<Element> Draw what is under this element (instead of shows).
tagged list<text> Draw only the elements carrying one of these tags (tags:), with what holds them.
configuration ref<Configuration> Draw the view of one configuration: without the variants it does not select.
description text Free-text description.

Table

A live table or matrix, computed by the compiler on every change: requirements_coverage (text, satisfied by, verified by with verdicts, gate status), traceability_matrix, allocation_matrix, interface_n2, icd or elements. It belongs to the layer its scope names. arclang table writes it as JSON, CSV, TSV, Markdown, HTML or Excel.

  • Arcadia: (extension; Siemens/Cameo: generic or coverage table)
  • SysML v2: view (render asElementTable)
Attribute Type Meaning
kind identifier requirements_coverage, traceability_matrix, allocation_matrix, interface_n2, icd or elements.
scope text What the rows are taken from: a layer (OA, SA, LA, PA, EPBS) or an element, by id or name.
row_type text The kind of the rows (elements: any kind of this metamodel; several separated by commas).
columns list<text> The columns shown, in order; for a matrix, the kinds (or layers) of its columns.
rows list<text> For a matrix: the kinds (or layers) of its rows.
kinds list<text> For a traceability matrix: the trace kinds shown and created.
filter text Rows kept: words, column:text, column=text, column!=text, is:gap, -term (all must match).
gaps_only boolean Keep only the rows with a gap or a failure.
description text Free-text description.

Scenario

Sequence of messages between participants.

  • Arcadia: Scenario
  • SysML v2: interaction (sequence)
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.
participants list<ref<Element>> Lifelines.

Fragment

A combined fragment of a scenario: alt, opt, loop, par, seq or critical, framing the messages it holds, with its operands. Fragments nest.

  • Arcadia: CombinedFragment
  • SysML v2: combined fragment
Attribute Type Meaning
label text The guard or the condition shown in the frame's tag.

StateFragment

A state, mode or function asserted on a lifeline: state "Lifeline" "Armed" { ... } / function "Lifeline" "Sense" { ... }, spanning the messages of its body (an instant without any).

  • Arcadia: StateFragment
  • SysML v2: state invariant
Attribute Type Meaning
id identifier Stable identity; drives the UUIDv5. Defaults to the name.
name text Display name; overrides the block name.
description text Free-text description.
is ref<Type> User-defined type of the element, or a list of types; their attributes (and ports, for components) are inherited.
tags list<text> Tags the element carries (["Safety"]): a declared diagram draws what carries one with tagged:. In SysML v2, metadata usages of definitions in a Tags package.

Message

Message between two participants.

  • Arcadia: SequenceMessage
  • SysML v2: message
Attribute Type Meaning
type enum MessageKind sync
timing quantity<time> Timing constraint.

Relationships

The element graph served by the Systems Modeling API (/api/systems-modeling) is made of the kinds above and of these relationship types. A relationship whose end does not resolve is reported in the commit, never dropped.

Relationship Source Target Meaning
Trace element element A trace declaration; traceKind is one of the TraceKind values.
Verification TestCase Requirement verifies: of a test case.
Annotation Note element about: of a note.
Mitigation Requirement Hazard mitigated_by: of a hazard.
ThreatApplication Threat PrimaryAsset applies_to: of a threat.
ThreatInvolvement Threat component, entity or actor involves: of a threat.
AssetMember PrimaryAsset element members: of a primary asset.
Typing element or PhysicalLink Type is: — the element is an instance of the type.
Specialization Type Type extends — the source type specializes the target.
Involvement chain, path, capability element involves:; order is the 1-based position.
SequenceLink step or ControlNode step or ControlNode sequence A -> B of a functional chain; condition is its guard.
Association Class Class An association declaration; kind, role and multiplicity describe the navigable end.
Realization capability capability realizes: across layers.
CapabilityExtend capability capability of the same level extends: of a capability.
CapabilityInclude capability capability of the same level includes: of a capability.
CapabilityGeneralization capability capability of the same level specializes: of a capability.
Contribution Capability Mission mission: of a capability.
Deployment LogicalComponent PhysicalNode deploys / deployment.
OperationalExchange operational entity operational entity Interaction or communication means.
FunctionalExchange FunctionPort or function FunctionPort or function Data flow between functions.
ComponentExchange ComponentPort or component ComponentPort or component Exchange between components.
LogicalInterface LogicalComponent LogicalComponent Interface contract between two components.
PhysicalLink PhysicalNode PhysicalNode Physical medium; carries typed attributes and may be typed.
PhysicalExchange PhysicalNode PhysicalNode Message routed over a link.
Transition State State State machine transition.
Message element element Scenario message; order is the 1-based position.

Enumerations

Values match ignoring case and the separators -, _ and space.

Enumeration Values Meaning
ControlKind and, or, iterate Kind of a control node of a functional chain.
AssociationKind association, aggregation, composition Kind of an association between classes.
AssetKind functional, information, enterprise What a primary asset is (Capella's three PrimaryAsset metaclasses).
Asil QM, ASIL-A, ASIL-B, ASIL-C, ASIL-D ISO 26262 automotive safety integrity level.
Dal DAL-A, DAL-B, DAL-C, DAL-D, DAL-E DO-178C design assurance level.
Sil SIL-1, SIL-2, SIL-3, SIL-4 IEC 61508 safety integrity level.
SafetyLevel QM, ASIL-A, ASIL-B, ASIL-C, ASIL-D, DAL-A, DAL-B, DAL-C, DAL-D, DAL-E, SIL-1, SIL-2, SIL-3, SIL-4 Any integrity level: ASIL (ISO 26262), DAL (DO-178C) or SIL (IEC 61508).
Priority Critical, High, Medium, Low Requirement priority.
HazardSeverity S0, S1, S2, S3, Catastrophic, Hazardous, Major, Minor, No Effect ISO 26262 severity class or DO-178C failure condition.
Exposure E0, E1, E2, E3, E4 ISO 26262 exposure class.
Controllability C0, C1, C2, C3 ISO 26262 controllability class.
FailureCondition Catastrophic, Hazardous, Major, Minor, No Effect DO-178C failure condition classification.
VerificationMethod test, analysis, inspection, demonstration Verification method.
Physics signal, electrical, mechanical_translational, mechanical_rotational, thermal, fluid What a port carries, for the Modelica export: the Modelica Standard Library connector it becomes (fluid is not exported yet).
Pole positive, negative The pin an electrical port is (PositivePin, NegativePin).
Flange a, b The flange (or heat port) a mechanical or thermal port is (Flange_a, Flange_b).
Verdict pass, fail, inconclusive, error Verdict of a verification case (SysML v2 VerdictKind).
ExchangeMechanism EVENT, FLOW, OPERATION, DATA, SHARED_DATA Arcadia exchange item mechanism.
TraceKind satisfies, implements, validates, verifies, realizes, refines, derives, allocates Traceability link kinds.
PortKind data, control, event Function port nature.
MessageKind sync, async Scenario message kind.
Unit (unit table) Any symbol of the unit table below.

Units

A quantity is <number> <unit> (latency: 25 ms). Symbols are case-sensitive. Each dimension converts to its canonical unit for arithmetic.

Symbol Dimension Factor to canonical SysML v2 (SI)
ns time (s) 0.000000001 ns
us time (s) 0.000001 us
µs time (s) 0.000001 us
ms time (s) 0.001 ms
s time (s) 1 s
min time (s) 60 min
h time (s) 3600 h
Hz frequency (Hz) 1 Hz
kHz frequency (Hz) 1000 kHz
MHz frequency (Hz) 1000000 MHz
GHz frequency (Hz) 1000000000 GHz
bps data rate (bit/s) 1 'bit/s'
bit/s data rate (bit/s) 1 'bit/s'
kbps data rate (bit/s) 1000 'kbit/s'
Kbps data rate (bit/s) 1000 'kbit/s'
kbit/s data rate (bit/s) 1000 'kbit/s'
Mbps data rate (bit/s) 1000000 'Mbit/s'
Mbit/s data rate (bit/s) 1000000 'Mbit/s'
Gbps data rate (bit/s) 1000000000 'Gbit/s'
Gbit/s data rate (bit/s) 1000000000 'Gbit/s'
Tbps data rate (bit/s) 1000000000000 'Tbit/s'
Tbit/s data rate (bit/s) 1000000000000 'Tbit/s'
bit data size (bit) 1 bit
B data size (bit) 8 B
kB data size (bit) 8000 kB
KB data size (bit) 8000 kB
MB data size (bit) 8000000 MB
GB data size (bit) 8000000000 GB
TB data size (bit) 8000000000000 TB
KiB data size (bit) 8192 KiB
MiB data size (bit) 8388608 MiB
GiB data size (bit) 8589934592 GiB
mm length (m) 0.001 mm
cm length (m) 0.01 cm
m length (m) 1 m
km length (m) 1000 km
g mass (kg) 0.001 g
kg mass (kg) 1 kg
t mass (kg) 1000 t
N force (N) 1 N
kN force (N) 1000 kN
mV voltage (V) 0.001 mV
V voltage (V) 1 V
kV voltage (V) 1000 kV
mA electric current (A) 0.001 mA
A electric current (A) 1 A
mW power (W) 0.001 mW
W power (W) 1 W
kW power (W) 1000 kW
J energy (J) 1 J
kJ energy (J) 1000 kJ
Wh energy (J) 3600 'W*h'
kWh energy (J) 3600000 'kW*h'
Pa pressure (Pa) 1 Pa
kPa pressure (Pa) 1000 kPa
bar pressure (Pa) 100000 bar
K temperature (K) 1 K
°C temperature (K) 1 + 273.15 K
degC temperature (K) 1 + 273.15 K
C electric charge (C) 1 C
mAh electric charge (C) 3.6 'mA*h'
Ah electric charge (C) 3600 'A*h'
mOhm resistance (Ohm) 0.001 'mΩ'
Ohm resistance (Ohm) 1 'Ω'
Ω resistance (Ohm) 1 'Ω'
mΩ resistance (Ohm) 0.001 'mΩ'
kOhm resistance (Ohm) 1000 'kΩ'
kΩ resistance (Ohm) 1000 'kΩ'
W/K thermal conductance (W/K) 1 'W/K'
kW/K thermal conductance (W/K) 1000 'kW/K'
J/K heat capacity (J/K) 1 'J/K'
kJ/K heat capacity (J/K) 1000 'kJ/K'
MJ/K heat capacity (J/K) 1000000 'MJ/K'
cm² area (m²) 0.0001 'cm²'
m² area (m²) 1 'm²'
m2 area (m²) 1 'm²'
kg/s mass flow rate (kg/s) 1 'kg⋅s⁻¹'
g/s mass flow rate (kg/s) 0.001 'g/s'
m/s speed (m/s) 1 'm/s'
km/h speed (m/s) 0.2777777777777778 'km/h'
percent ratio (one) 0.01 '%'
% ratio (one) 0.01 '%'
deg angle (rad) 0.017453292519943295 '°'
rad angle (rad) 1 rad

Traceability rules

Dangling endpoints are compile errors. Kind mismatches are metamodel: warnings.

Kind From To Meaning
satisfies component, function, node, actor Requirement Architecture element satisfies a requirement. Counted by the gate.
implements component, node function, Requirement Element implements a function or requirement.
verifies TestCase Requirement Verification case covers a requirement (also via verifies:).
validates TestCase, Scenario Requirement, Capability Validation evidence.
realizes lower-layer element upper-layer element Inter-layer realization: SA→OA, LA→SA, PA→LA, EPBS→PA.
refines Requirement Requirement Requirement decomposition.
derives Requirement Requirement A requirement derived from another (SysML derive): trace "REQ-CELL-TEMP" derives "REQ-RANGE". Drawn on the requirements view.
allocates component, node function, component Allocation (also expressed by nesting and deployment).

Source: spec/METAMODEL.md in the ArcLang repository.