Model-based development and continuous integration

The complexity of modern embedded software in domains such as vehicular systems, is constantly growing as the demand for more advanced functionalities increases. One approach to manage this complexity, that have proven successful in many domains, is model-based development (MBD), where models at a higher level of abstraction are promoted to the main development artefacts instead of code. Functional models can be (i) analyzed and simulated, for example together with other models capturing aspects of other parts of the system and its environment; (ii) transformed as a result of optimization or evolution; and (iii) automatically synthesized into code that realizes the modeled structure and behavior.

In its simplest form, MBD is often presented as a one-way, sequential process, where high-level, abstract models are gradually refined and elaborated into models with enough details to perform a one-time transformation to code. In reality, though, there is a strong need for modelling different parts of the system, at different levels of abstraction and in parallel. Moreover, code synthesis is not a one-time operation, so there is a need for managing both code, models and dependencies between the two, as the system evolves.

The general trend in software development towards shorter development cycles and continuous integration of new functionalities is impacting also modern embedded systems. This change towards continuous integration puts additional stress on model-based practices and tools, and some strategies to overcome the limitations of existing modelling tools, e.g. statically partitioning the system into subsystems to be modelled independently by different developers, are no longer feasible in a continuous integration context.

The long-term goal of this project is to identify key factors that hinder the combination of model-based development and continuous integration, and to develop methods, techniques and tools to help alleviate them.

Striving for more agile development and shorter cycle time is a common theme in Software Center that probably does not require further motivation at this point. Model-based development is used in different ways in the two involved companies, but both rely on model-based approaches such as Simulink for parts of the software in their systems. While Saab has a more mature MBD background in general, Volvo CE has several ongoing initiatives to extend the use of models at system level and for capturing the overall behavior of communicating vehicles on a site.

Although there are no inherent conflicts between the principles of MBD and agile practices such as continuous integration, we believe that current MBD practices and tool chains provide insufficient support in terms of, for example, multi-level traceability and collaborative modeling, to fully support a continuous integration approach. Therefore, our aim is to identify the main issues that arise when combining the two in practice, and, in the longer perspective, propose ways to reduce the problems, allowing companies to take advantage of the combined benefits from MBD and continuous integration.

Participating companies

  • Volvo Construction Equipment
  • Saab AB

Participating researchers