Considering the software development process, a project usually starts with an analysis, the creation of a specification and a prototype. Those steps are iterative, and may be repeated. After several iterations, the artifacts such as the requirements, architecture and design document specifications are available. The software implementation based on these artifacts must be tested and verified. It is essential to note that several participants from different companies are usually working on such automotive projects.
In the “analysis” step, a Unified Modeling Language (UML) abstract system model is created, which includes specific requirements, use cases, etc. UML is the widespread modeling language used in software development. The mature UML tools may be a great help in verifying the integrity of the model, so the usage of UML reduces the time needed to create such a model. The UML model, and especially the diagrams that specify the API and dynamic behaviour, are the important parts of the specification.
One of the possible automation methods is code generation. It provides the ability to create ready-to-use program code directly from the UML model or from an exchange format. This generated code works together with a framework and implements a public visible interface of the business logic of the component. It helps to rapidly build a prototype application.
A prototype application is a skeleton with the default (dummy) implementation of the interfaces. Existing software can be integrated into this skeleton. Another possibility is to extend the skeleton with functions that simulate the behaviour of the specified device or component.