In model-driven software development as much as in classical code-driven development maintenance costs make up the bulk of the total life cycle costs of a software system. However, as development methods in MDSD differ from classical methods, assuring the maintainability of systems built with MDSD requires companies to adjust their quality assurance to work with the new paradigm and the novel type of development artefacts. As the automotive industry has already applied model-driven approaches for some time (usually in the form of Matlab/Simulink) it proves to be a fertile ground to advance assurance methods for the maintainability of model-based systems. In this chapter we describe a two-dimensional quality metamodel and present an instance that defines maintainability for MDSD with Matlab/Simulink and TargetLink. We exemplify how such a model serves as the basis of all quality assurance activities and report on experiences made in an industrial case study with one of the leading international providers of commercial vehicles and transport solutions.
Embedded Systems Development With Matlab/Simulink/Targetlink
We investigate a slightly different flavour of MDSD than the MDA approach proposed by the OMG. In embedded systems development model-based tools such as Rhapsody, ASCET or Matlab/Simulink are commonly used. However, there is no explicit need to have different types of models on different levels and the modelling language is often not UML. Nevertheless, many characteristics are similar and quality-related results can easily be transferred to an MDA setting.
Matlab/Simulink is a tool commonly used in the automotive industry. It constitutes a representative example for a model-based tool-chain in embedded systems development. The original Simulink has its focus on continuous control engineering. Its counterpart Stateflow is a dialect of statecharts that is used to model the event-driven parts of a system. Fig. 1 shows example screenshots of the Simulink and Stateflow modelling environment.
Simulink and Stateflow examples