Spec-First Application Development for µP-Based ECUs
Set up Projects Faster and Easier
Specification-first development often slows down iteration, especially when modeling and implementation are tightly coupled. The Vector Application Framework breaks up this sequence by introducing a data-centric abstraction layer, allowing development to start independently of the system model.
With a fully text-based workflow, CLI automation and seamless VS Code integration, teams can work more flexibly while staying aligned. Existing specifications remain usable, and integration into production environments is ensured, without reworking the entire process.
The Challenge
Specification-driven software development is a common approach in automotive projects. The process involves several steps arranged in the form of a sequential workflow. First, a detailed model of the system and its components is created, either in text form or supported by a graphical tool. In any case, the resulting specification is exported to a textual representation, such as XML or JSON. This database is then used by generators to produce source code tailored to the modelled system. Finally, programmers include this codebase in their projects and access the required functionality using the generated classes and application programming interfaces (APIs).


Although iterations of this workflow are possible, the spec-first approach requires the entire sequence to be re-executed in the event of a system model update. This is particularly problematic if modeling and development responsibilities lie with different teams or organizations. Processes must be established to organize cooperation, and even minor specification changes result in considerable turnaround time. Agile work is hardly possible for software developers.
The Solution
Projects for microcontroller-based ECUs with AUTOSAR Adaptive middleware follow this pattern and therefore face the aforementioned challenge. However, the Vector Application Framework offers an easy solution. It reduces the strong dependency between the system model and software development through abstraction. Rather than working directly with the middleware interface derived from the system model, a data-centric abstraction layer serves as the sole point of contact for developers.
The corresponding Application Framework API covers two basic patterns for handling and exchanging data. Data elements mimic publish/subscribe (pub/sub) messaging and provide a means for persistent data storage. Operations represent remote procedure calls. These basic patterns are grouped by interfaces, setting the basic environment for users of the framework.
This core setup, paired with a modular software architecture for the executable, enables different teams to work independently. Nevertheless, the Vector Application Framework workflow provides an integration path for individual building blocks. Existing model artifacts can be used as the starting point for application development. If they are unavailable or incomplete, a Configuration as Code solution is included to configure and modify the project accordingly. This introduces considerable flexibility by breaking up the sequential work mode described earlier. The included command-line tool automates all workflow steps and facilitates CI integration. Software developers are also provided with a Visual Studio Code extension. The good news is that there is no need to switch tools anymore, as the entire development process is covered within the IDE.


Middleware abstraction modules facilitate integration with a target system. These modules map middleware to the Vector Application Framework API and vice versa. Abstraction modules for different middleware stacks are possible, and they can be combined in mixed integration projects and executables. The original application modules are unaffected and do not need to be modified.
The control module completes the modular software architecture at the executable level and relieves software development teams of the implementation and maintenance of integration code, often referred to as boilerplate.
In short, the Vector Application Framework is a modern solution that enables agile collaboration in model-driven software projects for microcontroller-based ECUs. Its holistic workflow incorporates independence and tight integration, addressing the needs of OEMs and suppliers in the automotive industry.
The Advantages
- Modular software architecture: Application modules enable developers to concentrate on business logic.
- Rapid prototyping. Project templates and boilerplate creation relieve developers and enable quick ramp-up.
- Text-based user experience. It has a workflow-covering CLI and Configuration as Code. It is ready for CI integration or AI agents.
- Comprehensive, data-centric API. Free of automotive terminology for easy access and a low learning curve.
- Open source ensures no lock-in. The core framework is publicly available in the Eclipse Automotive API Framework project.
- Full test journey: This includes early unit tests with generated mocks and test stubs, as well as SIL testing and pre-integration tests.
- It is a middleware-agnostic solution. It allows development out of context and supports the off-the-shelf software idea of suppliers.
- It enables flexible integration. This is enabled by middleware abstraction modules. Pre-integration occurs at the supplier and final integration occurs at the OEM.

