A number of factors are driving a change in how the automotive industry develops software. Some of these factors include: increasing complexity of the software; increasing quantity of software in the vehicle; reduced resources of development time, engineers, money; and the emergence of software-based safety-critical systems. To address these issues, the automotive industry, as well as a number of other embedded industries, are moving to a model-based software design process. The goals of the model-based process are to reduce the overall cost and time of the development process while increasing the quality of the software. These goals will be accomplished by re-aligning the emphasis of the engineering effort to earlier in the design process and by automating as much of the design process as is possible.
This paper will present a number of the key steps in the software design process, describing the objective of each step and listing a number of issues that need to be addressed. This should provide a good overview of a model-based software design process with enough detail to provide a sense for the scope of the problem.
Some of the particular steps that will be described include: modeling style guides, automatic code generation, model checking, automatic test vector generation, rapid prototyping/hardware-in-the-loop, schedulability analysis, networked applications, and configuration management.