← DE4SDV Model Viewer

Reading the DE4SDV SysML v2 model

DE4SDV expresses its systems model in SysML v2 textual notation. The model is not a diagram collection: the .sysml files are the source of truth, and the diagrams you see in the model viewer are rendered from the declared views.

This guide explains, on a high level, the element kinds DE4SDV uses and why it uses them. It is organized by what the elements do — from framing an increment to recording evidence — so you can open any .sysml file under textual-notation-of-model/packages/ and read it with context.

The examples below use real elements from the AEBS and middleware feature packages. Element names follow the same pattern across both pilots.

The package structure

Every increment produces one or more packages (files) that live under textual-notation-of-model/packages/:

requirement-candidate types, product-line semantics, stakeholders, process phases, viewpoints).

uses.

shared across features.

file per increment slice (middleware_requirements.sysml, aebs_logical_architecture.sysml, ...).

Packages import only what they need (private import) and define their own element names. Why: a contributor can review one slice — one engineering question — without reading the whole model, and the package boundary keeps naming collisions and unintended coupling out.

The increment shell (every file starts here)

Every slice begins with a part that names the increment and its scope:

part incMW007 : FeatureIncrement {
  doc /* INC-MW-007: middleware integration logical architecture. */
}

bounded work package that the slice serves. Specializations exist for needs/requirements increments and similar.

is how the model keeps traceability to the increment workflow.

IncrementTraceabilityShell, and IncrementEngineeringQuestion parts.

Why: every slice answers one engineering question and says so in the model itself — the file is self-describing for reviewers and for the viewer.

Concerns, viewpoints, and views

DE4SDV works viewpoint-first:

concern argumentationAssuranceConcern : ArgumentationAssuranceConcern {
  stakeholder systemsEngineer : SystemsEngineer;
  stakeholder verificationEngineer : VerificationEngineer;
}

view middlewareVerificationAssuranceView {
  viewpoint selectedArgumentationAssuranceViewpoint : ArgumentationAssuranceViewpoint {
    frame argumentationAssuranceConcern;
  }
  expose mw010ReferenceContractClaim;
  expose signalTranslationArgument010;
  ...
  render asTreeDiagram;
}

DE4SDV_Stakeholders and the SAF packages).

SAF viewpoints plus DE4SDV method-governance viewpoints (increment framing, product-line classification, regulatory scope).

expose lists exactly what the view shows; render picks the expression (tree, interconnection diagram, table, matrix).

Why: views keep the model reviewable and scoped. A view answers a stakeholder question; it is not a dump of a package. Because expose lists elements explicitly, a view can never silently include elements the model does not declare. Diagrams in the viewer are SysIDE renders of these views — if a renderer omits a relationship, the model remains authoritative.

Needs and requirements

Needs and requirements are modeled as requirement candidates — a DE4SDV-owned hierarchy that specializes the SYSMOD seam:

requirement def MiddlewareHealthMonitoringRequirement :> FunctionalRequirementCandidate;

requirement reqMonitorMiddlewareHealth : MiddlewareHealthMonitoringRequirement {
  doc /* REQ-MW-004 draft design-input requirement. */
  subject memberProduct : ProductLineMemberProduct;
  require constraint statement { language "English" /* Each SDV product-line
    member product shall monitor the health of the selected middleware
    integration boundary ... */ }
}

declares a concrete requirement with an ID (REQ-MW-…), a subject (what it constrains), and a verifiable require constraint statement.

product-line-constraint, traceability-constraint, and evidence-contract-traceability requirements, so reviewers can see the kind of obligation at a glance.

aebs-needs-requirements docs) — needs are not requirements.

Why: separating needs from requirements, and typing the requirement kind, is what makes the trace chain reviewable: a safety-constraint candidate cannot be mistaken for a functional requirement, and a draft candidate is visibly a draft.

Architecture elements: parts, ports, items, connections

Functional, logical, and physical slices share the same structural vocabulary:

part def MiddlewareIntegrationVandVBench {
  part system1MemberProduct : MiddlewareAutowareAAOSSDVConfiguredMember;
  part system2TestEnvironment : AOSPAAOSBuildRuntimeEnvironment;
  attribute scenario : MiddlewareScenarioIdentity;
}

port def SignalAccessApplicationPort {
  in item signalRequest : VehicleSignalAccessRequest;
  out item signalResponse : VehicleSignalAccessResponse;
}

structure once; usages place it in a context.

a port says which item flows in and out, and the item type carries the semantics (VehicleSignalAccessRequest, HealthForwardingStatus, ...).

MiddlewareEvidenceOutcome).

behavior; allocation from functions to logical elements is modeled as explicit dependencies/metadata, never as a diagram annotation.

Why: type/usage separation and typed ports are what make architecture composable across product-line variants: the same MiddlewareIntegrationVandVBench definition is reused by six verification cases with only the scenario attribute changing. Interfaces are checkable by tools and humans alike.

Variability and configuration

Product-line slices assemble configured members from shared assets:

part def MiddlewareAutowareAAOSSDVConfiguredMember :> ProductLineMemberProduct {
  part platformStack : MiddlewareAutowareAAOSSDVReference;
  part middlewareBoundary : MiddlewarePhysicalSoftwareBoundary;
}

part configuredMember : MiddlewareAutowareAAOSSDVConfiguredMember {
  doc /* MW-CONFIG-001. Configuration evidence only. ... */
}

:>> selections express which member product is configured and what varies — see de4sdv_product_line.sysml and model-based-product-line-engineering/.

product from another; otherwise it is a common capability. The model keeps this classification explicit (Phase 3) and assembles configurations in Phase 9.

not yet decided — out-of-scope and deferred choices stay visible instead of being silently assumed.

Why: configuration evidence is not runtime proof. The doc comment on configuredMember says exactly that — this is how the model prevents "configuration exists" from being read as "the product works".

Verification, evidence, and verdicts

The verification/evidence slices (middleware_verification_evidence.sysml, aebs_*_verification.sysml, aebs_nominal_evidence.sysml) contain the richest element set. The pattern, in order:

(VehicleSpeedTranslationObservation with input/expected/observed values, MiddlewareLifecycleObservation with transition flags, ...).

observations to identities: configuration, execution environment, contract, raw artifact, independent observer, a disposition (planned / observed-bounded / partial / blocked / accepted / rejected), and a claim boundary.

evidence into a scenario-scoped evaluation with an outcome (passBoundedVerification, passBoundedValidation, failObservedBehavior, inconclusiveMissingEvidence, blockedTargetRuntime, errorEvidence).

outcome enum to a VerdictKind (pass / fail / error / inconclusive) from the SysML v2 standard library. Blocked or missing evidence can never map to pass.

System 1 configured member under evaluation with the System 2 test environment, plus the scenario identity. This makes explicit what is being evaluated and in what environment — the two are never conflated.

subject bench and a require constraint; they are the verifiable conditions the verification objectives check.

subject bench, objectives that verify acceptance criteria, and a three-action pipeline collectData → processData → evaluateData with @VerificationMethod{ kind = (test, inspect, analyze) } annotations (from the standard library). A verificationSystem part performs the cases.

evidence hierarchy (ExecutionEnvironmentEvidenceArtifact → InspectedExecutionEnvironmentEvidence, PlannedExecutionEnvironmentEvidence) from packages/architecture/execution_environments.sysml. A planned artifact is visibly planned, and its doc comment names the evidence path and its limits (boundedAAOSBootBaseline010).

exactly which evidence does not exist yet.

Why: the whole chain exists to make one discipline mechanical: a verdict is only as strong as its evidence, and the model says which environment, which contract, and which claim boundary that evidence belongs to. planned or blocked can never render as a runtime pass, and every gap is a named element that stays visible until closed.

Claims, arguments, and counter-claims

On top of the verdict chain, assurance slices add an argumentation layer (framed by the SAF Argumentation Assurance viewpoint):

realize, bounded by a claimBoundary (CLM-MW-010-01).

(AGT-MW-010-…), each supported by verification cases and evidence via dependency links (claimSupportedBy, ReinforcesArgument).

evidence is missing (CCM-MW-010-…), each traced to its gap.

Two views publish the two sides: the positive slice (middlewareVerificationAssuranceView) and the challenge slice (middlewareOpenCounterclaimAssuranceView). Why: DE4SDV does not hide weaknesses. Counter-claims and gaps are first-class model elements precisely so an assurance argument shows what is not yet established, not just what is.

Traceability is expressed as dependency usages in the SysML model — not in YAML, not in prose:

dependency startupValidationToDiscoveryRequirement
  from acceptanceCriterion010VehicleStartup
  to reqProvideServiceDiscovery;

Every phase traces to the prior phase's accepted elements (acceptance criteria → requirements → needs → context), and verification/evidence traces to the configured member, physical boundary, signal mapping, contract, and execution environment. Pilot YAML files only index these dependency names; they never replace them. Why: the trace chain lives in the artifact that can be validated, queried, and rendered — and a PR can be reviewed for "what traces to what" instead of trusting prose claims.

Element kinds at a glance

KindUsed forExample
packageone reviewable sliceDE4SDV_MiddlewareRequirements
part def / partstructure, types and usagesMiddlewareIntegrationVandVBench
port deftyped interface with in/out itemsSignalAccessApplicationPort
item defexchanged or observed informationVehicleSpeedTranslationObservation
enum defclosed vocabulariesMiddlewareEvidenceOutcome
requirement def / requirementneeds and verifiable obligationsreqMonitorMiddlewareHealth
verification (def/usage)verification/validation casessignalTranslationVerification010
calc defdeterministic mappings (outcome → verdict)MapEvidenceOutcomeToVerdict
concern / viewpoint / viewscoped stakeholder-facing expressionsmiddlewareVerificationAssuranceView
dependencytrace links across the chainstartupValidationToDiscoveryRequirement
doc /* */rationale, IDs, and explicit limitsGAP-MW-025, MW-CONFIG-001

What comes from the standard library

Some types are not defined in DE4SDV files: VerdictKind, VerificationMethod (annotation kind), Views, and ScalarValues come from the SysML v2 standard library shipped with the pinned modeling environment. DE4SDV types always specialize DE4SDV-owned seams (DE4SDV_MethodContext, DE4SDV_ProductLine, packages/architecture/execution_environments.sysml) so upstream libraries stay behind controlled boundaries — see methodologies/sysmod-sysmlv2/de4sdv-tailoring.md.

Where this fits

explains when each slice is produced.

names the files per phase.

explains which viewpoints frame which concerns.