ASIL D Unintended self-steering at highway speed

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.

  1. Concept freeze
  2. A-sample
  3. B-sample
  4. C-sample
  5. Design freeze
  6. 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 automotive V-model with each left-leg definition paired to the right-leg activity that verifies itThe left leg descends from the safety goal to the software unit. Its mirror, the right leg, ascends from unit verification to safety validation. Each dashed edge is a trace link, so a right-leg activity always names the left-leg artifact it proves. At the base, the vertex is the MISRA-clean, AUTOSAR-hosted implementation.

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.

The automotive software development process cross-walk: four standards clipped to each V-model stage (illustrative, standards-accurate)
V-model stage and deliverableASPICE process: CL2 vs CL3 evidenceISO 26262 part.clause and work productV&V gate
SYS.1 Requirements elicitation: item definition, HARA, safety goalsCL2: stakeholder needs baselined and traced. CL3: elicitation follows the org standard processISO 26262-3 Cl.5 to 7: item definition, HARA, functional safety conceptConcept review; safety goals baselined
SYS.2 System requirements analysis: technical safety requirementsCL2: reqs reviewed, bidirectionally traced. CL3: a tailored req process with defined rolesISO 26262-4 Cl.6: technical safety requirements specificationRequirements review and trace check
SYS.3 System architectural design: technical safety conceptCL2: architecture baselined, decisions recorded. CL3: architecture method is an org assetISO 26262-4 Cl.7: system architecture with FMEA and FTA safety analysesArchitecture and safety-analysis review
SWE.1 Software requirements analysis: software safety requirementsCL2: SW reqs traced to system reqs. CL3: derived from the standard SW req processISO 26262-6 Cl.6: software safety requirementsSW requirements review
SWE.2 Software architectural design: monitor and control partitionsCL2: interfaces defined, resources budgeted. CL3: partitioning follows an org patternISO 26262-6 Cl.7: software architecture and freedom-from-interference argumentArchitecture review; interference analysis
SWE.3 Detailed design and unit construction: unit design plus codeCL2: units traced, design reviewed. CL3: coding and design rules are org assetsISO 26262-6 Cl.8: unit design and MISRA-compliant implementationDesign review; static analysis clean
SWE.4 Unit verification: unit test results and coverageCL2: results recorded, defects tracked. CL3: the verification strategy is standardisedISO 26262-6 Cl.9: unit verification, MC/DC for ASIL DUnit test and coverage gate
SWE.5 Software integration test: integrated partitionsCL2: integration sequence planned and traced. CL3: an org integration strategy appliesISO 26262-6 Cl.10: software integration and verificationIntegration test; interface coverage
SWE.6 Software qualification test: requirements-based SW testCL2: test cases traced to SW reqs. CL3: the qualification method is an org assetISO 26262-6 Cl.11: testing of the embedded softwareRequirements-based test pass
SYS.4 System integration test: integrated itemCL2: system tests traced and recorded. CL3: a standard system integration processISO 26262-4 Cl.8: item integration and testingSystem integration gate
SYS.5 System qualification test: validated itemCL2: validation planned and evidenced. CL3: validation is an org-wide practiceISO 26262-4 Cl.8: safety validation of the itemSafety 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.

The single safety thread: select a node to trace it both ways
Select any node below to trace it up and down the V.

No node selected yet. Select any node to trace it up and down the V.

Select any artifact on the steering-safety chain. The nodes it derives from light up one way, the nodes that refine and verify it light up the other, and the readout names the two endpoints. Every node maps to its ISO 26262 clause or ASPICE process. With JavaScript off the full thread renders with the safety goal selected. The example is illustrative and standards-accurate, never client data.

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.

plausibility-dirty.c · c
/* 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. */

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.

Worked ASIL determination and decomposition
Severity (S)
Exposure (E)
Controllability (C)
S3 × E4 × C3 determinesASIL D
Decomposition scheme (ISO 26262-9, Clause 5)

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.

Hardware-metric targets: one undecomposed channel versus each decomposed element (ISO 26262-5)
ElementSPFMLFMPMHF budget
Undecomposed ASIL D99%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.

Set Severity, Exposure, and Controllability to determine the ASIL through the ISO 26262-3 risk graph, then pick a decomposition scheme to see the per-element SPFM, LFM, and PMHF relief. The default S3 x E4 x C3 determines ASIL D, and the default split is ASIL B(D) plus ASIL B(D). The metrics table is the accessible source of truth; the bars are decorative. Every value is a published ISO 26262 figure, used as a teaching model.

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.

Random-failure budget per element, before and after ASIL decomposition10x looser per element

10 FIT

Undecomposed ASIL D element (SPFM 99%, LFM 90%, PMHF below 10^-8 per hour)

10x looser

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.

Random-failure budget per element, before and after ASIL decomposition (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.)
OptionPermitted 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

Source: ISO 26262 functional safety series

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.

ASPICE capability-level self-locator: what the assessor asks at each rung
Capability rungWhat the assessor asksEvidence you must showThe gap that caps you here
CL1 Performed (PA1.1)Is the process outcome achieved at all?The work products exist: requirements, design, tests, and resultsThey exist but are ad hoc, untraced, and not baselined
CL2 Managed (PA2.1, PA2.2)Is the work planned and monitored, and are the work products controlled and traced?Plans, schedules, baselines, bidirectional traceability, and reviews with recorded resultsA traceability hole or an unmanaged change drops you back to CL1
CL3 Established (PA3.1, PA3.2)Does this follow a tailored organisational standard process with defined roles?An org standard process, tailoring records, role definitions, and a deployed process-asset libraryPer-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.

  1. 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.

  2. 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.

  3. B-sample

    Near-production design, representative parts

    Hardware-in-the-loop campaigns run. ASPICE CL2 evidence matures. Interfaces stabilise.

  4. C-sample

    Production-tooled parts, full vehicle integration

    Parts come off production tooling. Safety validation runs on the vehicle. The right leg closes.

  5. Design freeze

    No further design change without formal change control

    From here, any change re-enters through the change-management loop below.

  6. PPAP

    Production Part Approval Process

    The supplier proves the part can be made repeatably at volume, to specification.

  7. 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.

The change-management loop that re-runs an affected slice of the V after a late changeA change request triggers an impact analysis. If a safety-relevant slice is affected, the process re-opens that slice of the V, re-verifies it, re-validates when the safety goal is touched, and re-baselines the traceability and the interface agreement. If nothing safety-relevant is touched, the deviation is logged and closed.

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.

Talk to us about a safety-critical program

Keep reading