One function. Four standards. Concept to start of production.
A real program runs the V-model, ASPICE, ISO 26262, and V&V at the same time
Every left-leg activity that defines the steering function is paired with a right-leg activity that proves it. Four standards run in lockstep at each stage. This guide clips all four together and follows one hazard from concept to the line.
- Concept freeze
- A-sample
- B-sample
- C-sample
- Design freeze
- SOP
The automotive software development process, run as one program spine
The V-model, ASPICE, ISO 26262, MISRA, and AUTOSAR are not five glossaries. They are one program. We follow a single ASIL D steering hazard from concept to start of production and clip all four standards together at every stage.
Talk to us about a safety-critical program
Why the V-model dominates safety-critical automotive software#
Most guides to the automotive software development process open with a definition list. First they define the V-model. Then they define ASPICE, ISO 26262, MISRA, and AUTOSAR in turn. However, a definition never shows how the standards mesh on a real program. Therefore this guide refuses the glossary. Instead it threads one hazard through a single spine and clips every standard to it.
The V-model looks like a waterfall bent into a V. Yet the shape carries a claim the waterfall never made. Because each descending activity has an ascending partner, every definition step gains a matching proof step. So the automotive software development process is not a line from idea to code. Rather it is a set of pairs, and the pairing is the whole point.
The left leg defines, the right leg proves#
Read the diagram as pairs, not as two separate arms. First the safety goal at the top is validated by the on-vehicle test at the top of the other leg. Then the software architecture is proved by the software integration test. Next the unit design is proved by unit verification. Because every artifact earns a matching check, nothing ships unverified. In short, the pairing is what turns a drawing into an accountability structure.
This pairing also fixes the meaning of two words teams use loosely. Verification asks whether you built the thing right against a spec. Validation asks whether you built the right thing against the real world. Therefore the right leg is mostly verification, and only the top step is validation. Consequently a clean verification pass can still fail validation, and that gap is where field defects hide.
Why not Agile or pure waterfall for an ASIL D function#
Agile suits software where a wrong guess is cheap to correct. However, an ASIL D steering fault can kill, so a wrong guess is not cheap. Because the safety case needs traceable evidence at every step, the process cannot skip the paired proofs. Therefore the rigor is not bureaucracy. Instead it is the price of a hazard that severe.
Pure waterfall fails for the opposite reason. It defines everything, builds everything, then tests at the end. Yet a late defect in a safety function is the most expensive kind to fix. Because the V-model verifies at every rung, it catches defects while they are still cheap. So the automotive software development process keeps the discipline of waterfall and adds the paired proofs that waterfall lacks. Later sections show where even the V-model strains against continuous delivery.
The one function we follow: an ASIL D steering hazard#
A worked thread beats an abstract lifecycle. So pick one hazard and follow it the whole way. Our hazard comes from a hazard analysis and risk assessment. The function reads: no unintended steering torque at highway speed. Because unwanted self-steering can cause a fatal loss of control, it lands at ASIL D, the highest integrity level.
How a real automotive software development process runs four standards at once#
Here is the wiring diagram nobody draws. Each row is a V-model stage. The columns clip the four layers together: the V-model activity and deliverable, the ASPICE process ID with its CL2-versus-CL3 evidence, the ISO 26262 part.clause with its ASIL-scaled work product, and the V&V gate. Read one row and you see how all four standards land on the same stage at the same time. This is the single cross-walk the SERP leaders keep siloed.
| V-model stage and deliverable | ASPICE process: CL2 vs CL3 evidence | ISO 26262 part.clause and work product | V&V gate |
|---|---|---|---|
| SYS.1 Requirements elicitation: item definition, HARA, safety goals | ASPICE process: CL2 vs CL3 evidenceCL2: stakeholder needs baselined and traced. CL3: elicitation follows the org standard process | ISO 26262 part.clause and work productISO 26262-3 Cl.5 to 7: item definition, HARA, functional safety concept | V&V gateConcept review; safety goals baselined |
| SYS.2 System requirements analysis: technical safety requirements | ASPICE process: CL2 vs CL3 evidenceCL2: reqs reviewed, bidirectionally traced. CL3: a tailored req process with defined roles | ISO 26262 part.clause and work productISO 26262-4 Cl.6: technical safety requirements specification | V&V gateRequirements review and trace check |
| SYS.3 System architectural design: technical safety concept | ASPICE process: CL2 vs CL3 evidenceCL2: architecture baselined, decisions recorded. CL3: architecture method is an org asset | ISO 26262 part.clause and work productISO 26262-4 Cl.7: system architecture with FMEA and FTA safety analyses | V&V gateArchitecture and safety-analysis review |
| SWE.1 Software requirements analysis: software safety requirements | ASPICE process: CL2 vs CL3 evidenceCL2: SW reqs traced to system reqs. CL3: derived from the standard SW req process | ISO 26262 part.clause and work productISO 26262-6 Cl.6: software safety requirements | V&V gateSW requirements review |
| SWE.2 Software architectural design: monitor and control partitions | ASPICE process: CL2 vs CL3 evidenceCL2: interfaces defined, resources budgeted. CL3: partitioning follows an org pattern | ISO 26262 part.clause and work productISO 26262-6 Cl.7: software architecture and freedom-from-interference argument | V&V gateArchitecture review; interference analysis |
| SWE.3 Detailed design and unit construction: unit design plus code | ASPICE process: CL2 vs CL3 evidenceCL2: units traced, design reviewed. CL3: coding and design rules are org assets | ISO 26262 part.clause and work productISO 26262-6 Cl.8: unit design and MISRA-compliant implementation | V&V gateDesign review; static analysis clean |
| SWE.4 Unit verification: unit test results and coverage | ASPICE process: CL2 vs CL3 evidenceCL2: results recorded, defects tracked. CL3: the verification strategy is standardised | ISO 26262 part.clause and work productISO 26262-6 Cl.9: unit verification, MC/DC for ASIL D | V&V gateUnit test and coverage gate |
| SWE.5 Software integration test: integrated partitions | ASPICE process: CL2 vs CL3 evidenceCL2: integration sequence planned and traced. CL3: an org integration strategy applies | ISO 26262 part.clause and work productISO 26262-6 Cl.10: software integration and verification | V&V gateIntegration test; interface coverage |
| SWE.6 Software qualification test: requirements-based SW test | ASPICE process: CL2 vs CL3 evidenceCL2: test cases traced to SW reqs. CL3: the qualification method is an org asset | ISO 26262 part.clause and work productISO 26262-6 Cl.11: testing of the embedded software | V&V gateRequirements-based test pass |
| SYS.4 System integration test: integrated item | ASPICE process: CL2 vs CL3 evidenceCL2: system tests traced and recorded. CL3: a standard system integration process | ISO 26262 part.clause and work productISO 26262-4 Cl.8: item integration and testing | V&V gateSystem integration gate |
| SYS.5 System qualification test: validated item | ASPICE process: CL2 vs CL3 evidenceCL2: validation planned and evidenced. CL3: validation is an org-wide practice | ISO 26262 part.clause and work productISO 26262-4 Cl.8: safety validation of the item | V&V gateSafety validation on the vehicle |
Layer 1: the V-model activity and its deliverable#
The first column names what each stage produces. Because every stage owns a concrete deliverable, the process never trades in vague intent. First SYS.2 produces technical safety requirements. Then SWE.2 produces the software architecture. Next SWE.3 produces the unit design and its code. So the automotive software development process is a chain of deliverables, each one the input to the next.
Layer 2: the ASPICE process ID and the CL2 vs CL3 evidence#
ASPICE rates how capably you run each process, not whether the product is safe. The scale runs from CL1 performed, to CL2 managed, to CL3 established. Therefore the second column states what an assessor samples at each rung. At CL2 the assessor wants the work product planned, baselined, and traced. At CL3 the assessor wants the same process derived from an organisational standard with defined roles. The VDA Automotive SPICE reference is the binding source for the process reference model.
Layer 3: the ISO 26262 part.clause and its ASIL-scaled work product#
ISO 26262 attaches a functional-safety work product to each stage. Moreover the rigor of that work product scales with the ASIL. Because our function is ASIL D, the coverage and independence obligations sit at the top of every table. The third column names the exact part and clause, so the work product is never a guess. The standard itself is the ISO 26262 road-vehicle functional safety series.
Layer 4: the V&V gate, and where the testing page takes over#
The fourth column names the gate that lets the stage pass. Because this post is about the process, it stops at the gate name. However, the test methods behind those gates deserve their own treatment. Therefore the actual techniques, MIL, SIL, PIL, and HIL, live in the automotive software testing techniques guide. Read this post for how the standards mesh, and read that one for how each gate is actually run.
The safety thread, followed node by node#
The cross-walk shows the stages side by side. Now walk the trace itself. Traceability is bidirectional, so you can start at any artifact and move both ways. The interactive thread below makes that concrete. Select any node and the whole chain re-tints to show what it derives from and what verifies it. Because the relation is labelled in text as well as colour, it reads the same with or without sight of the tint.
No node selected yet. Select any node to trace it up and down the V.
Down the left leg: safety goal to FSR to TSR to software safety requirement to unit#
The left leg derives one artifact from the one above it. First the safety goal states the outcome to protect. Then the functional safety requirement says what the system must do to hold it. Next the technical safety requirement makes that testable at the system level. After that the software safety requirement pins it to a 5 ms plausibility check. Finally the architecture and unit design place that check in an independent partition. Because each step traces to its parent, an assessor can walk the chain in either direction.
At the bottom of the V: MISRA and AUTOSAR discipline in the implementation#
At the vertex of the V, the design becomes code. Because the code runs a safety function, it must obey a coding standard. MISRA C is that standard for automotive C, and AUTOSAR Classic is the runtime it sits on. The tabs below show the same plausibility unit three ways. First a version that violates three MISRA rules. Then the compliant rewrite of the same logic. Finally a deviation record, which is how a genuinely needed exception is documented rather than silenced.
/* MISRA C:2023 NON-COMPLIANT. torque_plausibility_check():
the static analyser flags three rules on this unit. */
int16_t torque_plausibility_check(int16_t demanded, uint16_t estimated)
{
int16_t delta;
/* Rule 10.4: operands mix signed and unsigned essential types. */
delta = demanded - estimated;
/* Rule 14.4: the controlling expression is not a boolean.
Rule 15.6: the if body has no braces. */
if (delta)
return fault_flag = 1; /* Rule 13.4: the assignment result is used. */
return 0;
}
/* Three deviations, one 20-line unit. On an ASIL B(D) element this fails review. */ /* MISRA C:2023 COMPLIANT. The same plausibility law, deviations removed. */
int16_t torque_plausibility_check(int16_t demanded, int16_t estimated)
{
/* Same essential type on both operands, explicit cast on the result. */
int16_t delta = (int16_t)(demanded - estimated);
if (delta > TORQUE_TOLERANCE) /* explicit boolean, Rule 14.4 satisfied */
{ /* braces mandatory, Rule 15.6 satisfied */
fault_flag = 1; /* assignment stands alone, Rule 13.4 ok */
return 1;
}
return 0;
}
/* The law is unchanged. The analyser is now silent, and the unit is traceable. */ Deviation record DEV-STEER-014
--------------------------------------------------------------
Rule MISRA C:2023 Rule 11.4 (cast between pointer and integer)
Location hal_steer.c, memory-mapped register write
Category Advisory
Rationale Register addresses are fixed in the SoC memory map. The cast is
confined to one HAL translation unit and checked against the
device datasheet. No arithmetic runs on the cast value.
Containment Encapsulated in the REG_WRITE macro; reviewed by two people.
Approved Functional safety manager, ASIL B(D) monitoring element
Trace TSR-STEER-07 -> SW-SR-STEER-19 -> unit hal_steer_write()
--------------------------------------------------------------
A deviation is a documented, approved exception. It is not a silenced warning. Notice that the law never changed between the first two tabs. Instead the second tab removes the ambiguity the analyser flagged. Because a signed-unsigned mix or a missing brace can hide a real defect, the rules are not style preferences. The MISRA C:2023 guidelines are the source for each rule, and the runtime contract comes from the AUTOSAR Classic Platform standard. The third tab matters too. A deviation is an approved, contained exception with a rationale, not a warning you turned off.
Back up the right leg: unit test to integration to safety validation#
From the vertex the thread climbs. First unit verification proves the code against the unit design, with MC/DC coverage because the function is ASIL D. Then software integration proves the partitions hold together and stay independent. Next software qualification tests against the software safety requirements. Finally safety validation proves the safety goal on the vehicle. Because each step verifies a specific left-leg artifact, the climb closes every pair the descent opened. The methods behind these steps are covered in the sibling testing guide.
Worked ASIL decomposition: one ASIL D channel into two ASIL B(D) channels#
ASIL D on one monolithic channel is expensive to build and verify. So ISO 26262 offers a lever. Because a requirement can be met by two sufficiently independent elements, an ASIL D goal can split across them. The calculator below works the arithmetic. Set the hazard parameters, read the determined ASIL, then pick a decomposition scheme and watch the per-element metric burden drop.
One undecomposed ASIL D channel must hit SPFM 99%, LFM 90%, and PMHF < 10 FIT. Split into B(D) + B(D), each element only owes its own, looser target, a 10x looser random-failure budget on the larger element.
| Element | SPFM | LFM | PMHF budget |
|---|---|---|---|
| Undecomposed ASIL D | 99% | 90% | < 10 FIT |
| B(D) | 90% | 60% | < 100 FIT |
| B(D) | 90% | 60% | < 100 FIT |
S3 x E4 x C3 classifies as ASIL D. Split into B(D) plus B(D), the larger element needs SPFM 90%, LFM 60%, and PMHF < 100 FIT, versus the undecomposed SPFM 99%, LFM 90%, PMHF < 10 FIT, a 10x looser random-failure budget per element.
A worked teaching model of the ISO 26262 determination and decomposition algebra, not a certification tool. The split is valid only when freedom from interference between the two elements is demonstrated through Dependent Failure Analysis (ISO 26262-9, Clause 7). Confirm every target against the standard and a qualified functional safety assessor before you rely on it.
Step 1: classify the hazard, S3 x E4 x C3 = ASIL D#
ISO 26262-3 rates three parameters. Severity S3 means life-threatening or fatal injuries. Exposure E4 means a high-probability situation, such as normal highway driving. Controllability C3 means the average driver cannot control the outcome. Because the risk-graph cell for S3, E4, and C3 sits at the top, the hazard classifies as ASIL D. So the strictest obligations apply to every downstream stage.
Step 2: decompose with the ASIL algebra, 4 = 2 + 2#
ISO 26262-9 Clause 5 defines a small algebra. Map the levels to numbers: QM is 0, A is 1, B is 2, C is 3, and D is 4. Because an ASIL D requirement scores 4, it can split across two independent elements whose values sum to 4. The chosen scheme is ASIL B(D) plus ASIL B(D), that is 2 plus 2. The tag B(D) records that each element still traces to an original ASIL D goal. However, the split is valid only when freedom from interference is proved through Dependent Failure Analysis, per ISO 26262-9, Clause 7.
Step 3: the metric relief this buys, SPFM, LFM, PMHF#
The split changes the hardware-metric burden per element. An undecomposed ASIL D element must reach a Single-Point Fault Metric of 99 percent, a Latent-Fault Metric of 90 percent, and a random-failure budget below 10 FIT. After the split, each ASIL B(D) element only needs 90 percent, 60 percent, and a budget below 100 FIT. So the random-failure budget per element loosens by a factor of ten. The comparison below makes that relief felt.
10 FIT
Undecomposed ASIL D element (SPFM 99%, LFM 90%, PMHF below 10^-8 per hour)
100 FIT
Each ASIL B(D) element after the split (SPFM 90%, LFM 60%, PMHF below 10^-7 per hour)
Splitting one ASIL D channel into two independent ASIL B(D) channels relaxes each element's random-failure budget tenfold, from 10 FIT to 100 FIT, provided the independence argument holds.
| Option | Permitted random-hardware-failure budget in FIT (failures per 10^9 hours), ISO 26262-5. A higher budget is a looser obligation. Illustrative, standards-accurate. |
|---|---|
| Undecomposed ASIL D element (SPFM 99%, LFM 90%, PMHF below 10^-8 per hour) | 10 FIT |
| Each ASIL B(D) element after the split (SPFM 90%, LFM 60%, PMHF below 10^-7 per hour) | 100 FIT |
Read the relief as a trade, not a discount. Because the burden moves from one gold-plated channel to two cheaper channels plus an independence claim, the team now builds a primary controller and an independent monitor. However, the independence itself must be proved, or the whole relief collapses. So decomposition saves cost only when the freedom-from-interference argument is real. For the budget picture around choices like this, see what custom software development costs at this level of rigor.
Locating your program's real maturity: ASPICE CL1 to CL2 to CL3#
Teams often claim a capability level they cannot evidence. So use this self-locator to find your true rung. Each row states what an assessor asks, the evidence you must show, and the gap that caps you below the next level. Because the levels build on each other, a hole at CL2 pulls the whole process back to CL1, whatever the intent.
| Capability rung | What the assessor asks | Evidence you must show | The gap that caps you here |
|---|---|---|---|
| CL1 Performed (PA1.1) | What the assessor asksIs the process outcome achieved at all? | Evidence you must showThe work products exist: requirements, design, tests, and results | The gap that caps you hereThey exist but are ad hoc, untraced, and not baselined |
| CL2 Managed (PA2.1, PA2.2) | What the assessor asksIs the work planned and monitored, and are the work products controlled and traced? | Evidence you must showPlans, schedules, baselines, bidirectional traceability, and reviews with recorded results | The gap that caps you hereA traceability hole or an unmanaged change drops you back to CL1 |
| CL3 Established (PA3.1, PA3.2) | What the assessor asksDoes this follow a tailored organisational standard process with defined roles? | Evidence you must showAn org standard process, tailoring records, role definitions, and a deployed process-asset library | The gap that caps you herePer-project heroics with no org standard cap you at CL2 |
Because most automotive programs target CL2 or CL3, the honest question is where your evidence actually sits today. First check whether every requirement traces both ways. Then check whether your process is written down as an org standard, not carried in one lead's head. If either check fails, you know your real rung, and you know the next thing to fix.
The time dimension: concept to start of production#
The V-model shows structure, not calendar. So overlay it on the real automotive milestones. The timeline below runs from concept freeze to start of production, or SOP. Because the samples harden the design in stages, the V is not run once. Instead slices of it repeat as the hardware matures from A-sample to C-sample. This concept-to-start-of-production spine is what tool-vendor diagrams usually omit.
- Concept freeze
Item definition, HARA, and safety goals baselined
The ASIL D steering goal is set. The functional safety concept is agreed. The left leg of the V opens.
- A-sample
First prototypes, core functions on the bench
Hand-built parts. Model and software-in-the-loop work is active. The design is still fluid.
- B-sample
Near-production design, representative parts
Hardware-in-the-loop campaigns run. ASPICE CL2 evidence matures. Interfaces stabilise.
- C-sample
Production-tooled parts, full vehicle integration
Parts come off production tooling. Safety validation runs on the vehicle. The right leg closes.
- Design freeze
No further design change without formal change control
From here, any change re-enters through the change-management loop below.
- PPAP
Production Part Approval Process
The supplier proves the part can be made repeatably at volume, to specification.
- SOP
Start of production
The line runs. The safety case is complete and the traceability is closed.
The change-management loop that re-triggers a slice of the V#
A late change is the real test of the process. Suppose a torque sensor is swapped after design freeze. Because the change may touch a safety goal, you cannot just edit the code. Instead an impact analysis decides which artifacts and units are affected. Then the affected slice of the V re-opens, re-verifies, and if the safety goal is touched, re-validates. Finally the traceability and the interface agreement are re-baselined. The loop below draws that cycle.
What tool-vendor pages won't tell you#
When NOT to run the full V#
Where to go next#
This post covered the process. The companion methods and the wider context live next door. For the test techniques behind every V&V gate, read the automotive software testing techniques guide, which traces one ASIL D requirement down the MIL, SIL, PIL, and HIL chain. For the generalised lifecycle beyond safety-critical work, read the enterprise software development lifecycle guide. To see where embedded and safety-critical systems sit among other build types, read the guide to custom software categories.
So treat this cross-walk as a planning tool. First determine the ASIL from your hazard analysis. Then decide how far each requirement must travel down the V. Finally decide whether a decomposition earns its independence cost. If you want a partner who works this way, explore Atyantik's software development services. Measure the hazard first, then run only as much process as the safety goal demands.