Managing Modelling Inconsistencies

In the partner companies, modeling is adopted to different degrees, but both companies are using models to move away from a document-centric approach, towards a model-centric approach to system and software development, thereby promoting communication and re-use. In some cases, detailed models, such as Simulink models, are used to design specific functionality. In other cases, this functionality is defined in code. For the industrial applicability of modeling practices, there is a need to support the management of complex ecosystems of high-level and low-level artefacts (being them represented by structured documents, models, or code), relations between them and versioning information associated with them. Explicitly capturing this information furthermore allows automatic evaluation and visualization of these complex environments, thus allowing engineers to get a better handle on the large sets of created models and other artefacts.

An important aspect of that is managing consistency among the various models, and in general between the models and other artefacts describing aspects concerning system and software under development. To fully benefit from the advantages of using models in multiple aspects of system and software development (such as specification, design, verification, and validation), inconsistencies between models should be identified and resolved before they are propagated to other design or implementation artefacts. It is important to note that this consistency management is not a one-time task, but it should rather be done throughout the entire system and software lifecycle, from design to maintenance, with as little overhead as possible. Furthermore, adequate consistency checking improves the opportunities for re-using models, or parts of models, for the development of other systems.

Inconsistencies can manifest themselves in many ways, between any models or other artefacts in the development. An example of consistency between models is that between a system model in SysML and Simulink models that refine certain parts of that model, or between EAST-ADL functions and software components in an AUTOSAR model. An example is consistency between different types of artefacts is that between AUTOSAR models capturing an overall system specification and code implementing individual AUTOSAR components. In all these cases, both artefacts describe the same part of the system and consistency should be ensured. In general, we can also consider consistency between less explicitly linked artefacts, such as different software models, e.g. UML state machines and Simulink models, or even between models and documents. In this project we plan to focus on the industrially most relevant forms of inconsistency.

Based on discussions with the partner companies, we identified a need for support for maintaining consistency between different artefacts throughout their evolution, during the development and maintenance of systems and software. Automatically resolving inconsistencies is not always possible, nor desirable. Nevertheless, developers should be made aware of them to have a chance to resolve them and to avoid their propagation to other artefacts; the later inconsistencies are discovered, the more expensive in terms of time and cost it is to resolve them. Thus, inconsistencies should be identified and handled. Such consistency management should be integrated into existing development processes and environments in a non-disruptive manner, to promote its usability in industrial contexts.

The long-term goal of this project is to provide effective support for consistency management for industrial modeling practices.

Participating companies

  • Volvo Construction Equipment
  • Saab AB

Participating researchers