Working With Spes 2020 on Real Projects
I spent about three years trying to make Model Based Engineering Of Embedded Systems The Spes 2020 Methodology work across a production automotive project before it actually clicked. The documentation reads fine. The tooling is competent. But there is a gap between what the standard says and what happens when you are five weeks from integration and the simulation is not matching the target behavior. This is what that looks like on the ground. SPES stands for Systèmes Productibles d'Embarqués. It is a French methodology, originally driven by researchers at Mines ParisTech and the CEA List, that maps directly onto ISO 26262 and DO-178C certification paths. The core idea is not new in principle. It uses hierarchical models to decompose a system from requirements down to executable code, with formal verification points baked into each layer. What makes the 2020 revision distinct from earlier versions is tighter alignment with MISRA guidelines, updated traceability matrices that plug into modern PLM environments, and explicit support for heterogeneous deployment targets like FPGA and multi-core MCU.
Practical Steps for Model Based Engineering Of Embedded Systems The Spes 2020 Methodology
The first thing you need is a clear decomposition structure. SPES organizes models into four levels: SML (System Model Level), AML (Architectural Model Level), BML (Behavioral Model Level), and ACL (Algorithmic Code Level). Each level has a defined set of constructs and a defined set of outputs. Do not skip the architectural level and jump straight to algorithmic. I have seen teams do that and end up with code that cannot be traced back to the functional safety requirements. The tool will let you do it. It does not prevent you from building an incomplete traceability chain. Start by capturing your top-level requirements in an SML block diagram. Use the SPES standard library for system blocks. This includes power domain models, communication bus models, and fault injection blocks. Your functional decompositon should result in an AML that defines components, interfaces, and deployment constraints. At this stage, run the consistency checks. The SPES 2020 toolchain has a validation engine that catches interface mismatches and unresolvable dependencies. In my experience, this catches roughly forty to sixty percent of integration defects before any code is generated. Move to BML next. This is where you define the behavioral semantics using finite state machines or continuous dynamics, depending on the component. Use the formal syntax. Avoid ad-hoc signal naming. When you later need to perform reachability analysis, having clean structured models cuts the simulation runtime significantly. I worked on a braking control module where the BML had inconsistent clock domains because someone used free-form signal connections instead of the SPES synchrony semantics. The model compiled. It ran. It produced wrong results under edge-case timing. Fixing that took two weeks of rewriting the interface definitions.
ACL is the code generation layer. SPES 2020 supports code emission for C and HDL. The generated code passes static analysis out of the box when you follow the modeling conventions. If you add hand-written code that bypasses the model, you break the traceability chain and you break certification readiness. Keep all custom logic inside model-defined blocks. Traceability is the part that most people handle poorly. SPES requires a bidirectional trace matrix from requirements through each model level to the final code. Build this incrementally. Do not generate it at the end. I use a simple rule: every model block must have at least one parent requirement reference and one child artifact reference. If a block sits in isolation, it is dead weight and it will not pass a compliance audit.
Get the Full Details

What Nobody Tells You About This Methodology
The biggest hidden cost is the learning curve on the formal notation. SPES uses a specific UML/SysML profile with extended stereotypes. Engineers coming from Simulink or Cameo System Modeler need time to adapt. The 2020 release added more drag-and-drop convenience, but the underlying semantics remain strict. Modeling something quickly in an informal way and then expecting the tool to validate it does not work. The model must be well-formed from the start. Another issue is tool interoperability. SPES 2020 tools integrate with common ALM platforms, but the APIs are not fully standardized across vendors. If you are working with a team that uses different tools for requirements management versus model authoring, you will spend real time on import-export mapping. I recommend locking in a single vendor stack early. The certification argument is easier to make when every artifact comes from a consistent tooling environment. Here is a specific problem I ran into. We were modeling a sensor fusion module for an ADAS application. The SML defined the input channels correctly. The BML implemented a Kalman filter in continuous time. When we generated code for an MCU with a fixed-point arithmetic constraint, the simulator showed acceptable noise attenuation, but the deployed code drifted after forty-eight hours of runtime. The issue was that the SPES code generator does not automatically insert quantization-aware wrappers for recursive filter structures unless you explicitly mark the signal paths as fixed-point in the AML deployment model. I added the deployment annotations to the relevant signal clusters, re-generated, and the drift disappeared. That alone took about three days of debugging because the documentation does not make this connection obvious.
If you are starting from scratch today, the practical path is to get the SPES 2020 toolchain from the official consortium partner distribution. There is no single universal download because the methodology is implemented by multiple vendors including Scilab/XTDS and several European system engineering tool suppliers. Check the SPES association website for the current approved tool list. Make sure the version you pick supports the traceability features required by your target standard. One counter-intuitive point about the methodology: more detailed models are not always better for certification. SPES 2020 explicitly allows abstraction at the BML level as long as the abstraction is justified and documented. Over-specifying the behavior at high model levels creates unnecessary verification burden. I have seen projects where adding detailed timing constraints at the SML level doubled the model check time with zero improvement in verification coverage. Keep abstractions at each level as coarse as the evidence requires. The methodology also has clear limitations. It does not handle stochastic or probabilistic systems well. If your embedded system depends heavily on Monte Carlo simulation or probabilistic fault trees, SPES 2020 is not the right fit. You would be better off using a separate probabilistic model tool and linking the results through traceability rather than trying to force that analysis into the SPES framework. Similarly, real-time scheduling analysis beyond fixed-priority preemptive schemes is outside the standard scope. You need an additional tool for EDF or mixed-criticality scheduling proofs.
For projects where these gaps matter, combining SPES with a dedicated scheduling analyzer and a separate stochastic modeling tool gives you full coverage. The traceability link between them satisfies the certification requirement. The extra tool does not weaken the methodology. It just means you acknowledge its boundary. Cost-wise, a typical SPES 2020 license for a medium team runs in the tens of thousands of dollars per year depending on the vendor. The real expense is not the license though. It is the time required to train engineers and the delay in early project phases while the model structure stabilizes. Projects that adopt SPES usually see a two-to-four week slowdown during adoption. After that, defect resolution at integration drops noticeably. In my own projects, integration test cycles went from averaging three weeks per release down to about ten days once the model discipline was in place. Do not attempt this methodology without a defined functional safety goal. SPES 2020 is built around safety integrity levels. If your project has no ASIL or DAL target, the overhead of the methodology is hard to justify. Use a lighter model-based approach instead. Save the full SPES workflow for projects where the regulatory pathway requires it.
![Download [PDF] Model-Based Engineering of Embedded Systems: The Spes 2020 Methodology by Klaus ...](https://img.yumpu.com/62503804/1/500x640/download-pdf-model-based-engineering-of-embedded-systems-the-spes-2020-methodology-by-klaus-pohl-full-books.jpg)
Getting Started
Download the latest SPES 2020 specification from the official SPES consortium portal and review the migration guide if you are coming from an earlier version. Pick one small subsystem to pilot the workflow. Do not start with the most complex safety-critical component. A window controller or a basic sensor interface will teach you the toolchain without risking a major schedule slip. Document every modeling decision. The audit trail matters more than speed. The reference materials are available freely. The training modules take about eighty hours of structured study to reach operational proficiency. Factor that into your planning. Most teams I know allocate a six-week onboarding period before they expect productive output from the methodology.