Establishing the software architecture, allocating requirements to elements, and defining interfaces and dynamic behaviour — with traceability back to SWE.1.
ASPICE SWE.2 Software Architectural Design establishes a software architecture that identifies the software elements, allocates the software requirements to those elements, defines their interfaces and dynamic behaviour, and establishes bidirectional traceability and consistency between software requirements (SWE.1) and the architecture.
SWE.2 is where requirements become structure. The failure mode is an architecture that lives in slides instead of a model, with no allocation of requirements to elements.
Purpose (per the ASPICE PAM): establish an architectural design and identify which software requirements are to be allocated to which elements of the software, and evaluate the architecture against defined criteria.
The process is achieved when these outcomes hold:
Define the elements/structure of the software.
Allocate each software requirement to architecture elements.
Specify the interfaces of and between elements.
Define timing, concurrency, and resource consumption.
Evaluate against defined criteria (e.g. quality attributes).
Trace SWE.1 ↔ SWE.2 (requirement ↔ element).
Keep architecture consistent with the requirements.
Baseline and communicate.
The output work products SWE.2 asks for (named per the standard):
This is where the standard meets reality. Each work product and outcome has a concrete home — an issue type, work-item type, or model element — in the tools you already run. Types are configurable, so treat this as the typical ASPICE setup:
| Work product / outcome | Jira | Polarion | Codebeamer | DOORS Next | Enterprise Architect | Confluence |
|---|---|---|---|---|---|---|
| Architecture element / component | Component / Epic (weak — not a model) | Architecture work item linked to a model | Architecture tracker item | architecture module object | Component / Block / Package + diagrams (native home) | architecture page + embedded diagram |
| Interface | linked interface issue | Interface work item | Interface tracker item | interface object | Interface / Port / connector | interface table |
| Requirement → element allocation | issue link req → component | Linked Work Item 'is allocated to' | allocation ref | link module | «allocate» / «satisfy» | allocation matrix |
| Bidirectional traceability (SWE.1 ↔ SWE.2) | issue links + suspect | Linked Work Items + suspect | trace links + suspect | link modules | «trace» matrix | — |
| Dynamic behaviour | — | linked model / diagram | linked diagram | — | sequence / activity / state diagrams | diagram page |
The trap isn't the tools — it's that the links between them are maintained by hand and decay the moment a requirement changes. (See best ASPICE tools.)
Here is the part almost everyone misses. SWE.2 can never reach a mature capability level (CL2+) on its own — it can only be as mature as the configuration-management data model underneath it. SUP.8 Configuration Management is the secret enabling layer: the shared data model of items, versions, baselines and links that is the basis on which every other process group becomes provable. Scatter that data model across a Jira project, a Polarion space, a DOORS module, an EA model and a Confluence tree, and the model is fragmented by construction — the traceability that SWE.2 depends on decays the moment anything changes, and no amount of process ceremony fixes it.
What actually unlocks maturity is a headless ALM — an API-first, tool-agnostic configuration-management data model that is the single source of truth for every work product and every link, readable and writable by both humans and agents — plus an agent/human workflow definition, coordination and traceability platform on top of it, so every change is planned, assigned (to a human or an agent), executed and traced against that one model. That is the layer that lets SWE.2 be mature instead of theatrical.
ASPICE deliberately gives you no blueprint. So we wrote one. This SWE.2 guide is part of The Blueprint — our free, open template QMS for ASPICE: every VDA-scope process area, its outcomes and work products, mapped to concrete artifacts in your tools and grounded in one configuration-management data model. Take it, use it, no cost.
Agents reconstruct the architecture and the requirement-to-element allocation from the code and intent, and generate the SWE.1 ↔ SWE.2 traceability with confidence scores — turning an out-of-date model back into evidence. And we offer to implement The Blueprint for you: our agentic solutions (Vera generates SWE.2's work products and traceability as a byproduct of the build, each with a confidence score and audit trail) running on a partner headless ALM — the API-first configuration-management data model that makes the whole thing provable.
SWE.2 Software Architectural Design establishes the software architecture, allocates the software requirements to elements, defines interfaces and dynamic behaviour, and maintains bidirectional traceability and consistency with the software requirements (SWE.1).
The software architectural design, interface specifications, a dynamic-behaviour/resource model, traceability records (SWE.1 ↔ SWE.2), and review records.
Typically in Enterprise Architect (or another modelling tool) as components/blocks/packages with diagrams, linked back to the requirements in Polarion, Codebeamer, DOORS or Jira via allocation/trace links.
By allocating each software requirement to the architecture element that realizes it — «allocate»/«satisfy» in EA, 'is allocated to' links in Polarion, or issue links in Jira — and keeping the links suspect-aware as things change.
Grounded in the standard, honest about the theater: All VDA-scope process areas · SWE.1 Requirements · SWE.3 Detailed Design · SWE.5 Integration