Model-based development is the engineering of software systems using models, which may be graphical or textual in nature, but which should conform to some precise language definition. MBD is contrasted to traditional software development in which informal natural language text or low-level program code were the only artifacts.
The formal nature of modelling languages used in MBD permits the definition of analysis and transformation tools which operate on models. In particular, model transformations are considered to be an essential part of model-based development, and they enable the automation of many operations on models:
- Mapping a model at one level of abstraction to a model at a different level (refinement, abstraction or reverse engineering).
- Comparing two models for differences or for consistency with respect to some relation (eg., different views of the same system).
- Generating code or other text from a model, such as test cases. Propagating changes from one model to another linked model.
- Migrating models from one version of a modelling language to another version. Model-based development offers many advantages, including the ability to reuse models, to facilitate communication with non-software experts, and to reduce implementation costs by automating code generation
For these reasons, MBD has had increasing uptake across many industry sectors, including high-integrity and safety-critical application domains such as avionics. In consequence, standards for these domains, such as RTCA DO-178 (RTCA, 2012), have begun to incorporate guidance on the use of MBD for critical systems. The undisciplined use of models may actually decrease software reliability, if the models are developed without higher-level requirements (so that required functionality is omitted from the models) or without precise model analysis (so that the meaning of the model, when converted to code, is insufficiently understood). Therefore, DO-178C defines rigorous procedures for the use and validation of models. In this chapter, we will consider the requirements of the DO-178C standard in detail, and provide techniques for MBD which aim to satisfy these requirements.
Published on Thu 17 August 2017 by Adrian Foster in Programming with tag(s): mbd