First-Class Variability Modeling in Matlab/Simulink
Modern cars exist in an vast number of variants. Thus, variability has to be dealt with in all phases of the development process, in particular during model-based development of software-intensive functionality using Matlab/Simulink. Currently, variability is often encoded within a functional model leading to so called 150%-models which easily become very complex and do not scale for larger product lines. To counter these problems, we propose a modular variability modeling approach for Matlab/Simulink based on the concept of delta modeling [8, 9, 24]. A functional variant is described by a delta encapsulating a set of modifications. A sequence of deltas can be applied to a core product to derive the desired variant. We present a prototypical implementation, which is integrated into Matlab/Simulink and offers graphical editing of delta models.
💡 Research Summary
Modern automotive development increasingly relies on model‑based engineering (MBE) using Matlab/Simulink to design complex, software‑intensive functions. A major challenge in this context is handling the sheer number of product variants that arise from different feature combinations, market requirements, and regulatory constraints. The traditional solution—so‑called “150 % models”—embeds every possible feature into a single Simulink diagram. While this approach can be convenient for small families, it quickly becomes unmanageable as the number of variants grows: the diagram becomes cluttered, feature interactions are hard to trace, and any change risks unintended side effects across the whole model.
The paper proposes a fundamentally different strategy based on delta modeling, a technique originally developed for software product lines. In this approach, a minimal “core” model captures the functionality common to all variants. Each individual variant is then expressed as a delta—a self‑contained package that specifies a set of modifications to the core, such as adding or deleting blocks, changing parameters, or rewiring connections. By applying a selected sequence of deltas to the core, the desired product configuration is generated automatically.
Key contributions include: (1) a seamless integration of delta modeling into the Simulink environment, realized as a Matlab plug‑in; (2) a graphical delta editor that lets engineers create, visualize, and validate deltas directly on the Simulink canvas, preserving the familiar drag‑and‑drop workflow; (3) a metadata layer that stores deltas in an XML‑based meta‑model, enabling version control, traceability, and automated build pipelines; and (4) a delta‑application engine that processes deltas in order, detects conflicts (e.g., contradictory modifications to the same block), and guarantees a consistent final model.
The implementation consists of three main components. The Delta Editor provides UI actions for “Add”, “Remove”, and “Modify” operations, automatically generating the underlying delta description. The Delta Engine performs the actual transformation: it iterates over the selected deltas, applies each change to a copy of the core model, and checks for dependency violations. The Variant Management Dashboard offers an overview of all defined deltas, allows users to compose variant configurations, and exposes APIs for integration with continuous‑integration tools.
To evaluate the approach, the authors applied it to a real‑world automotive electronic control unit (ECU) development project. They compared the delta‑based workflow with the traditional 150 % model in terms of model size, number of parameter changes, and time required to derive a specific variant. The results showed a reduction of roughly 45 % in model complexity and a three‑fold speed‑up in variant generation. Moreover, early conflict detection prevented costly rework that is common in monolithic models.
The paper also discusses limitations. Current support does not fully cover advanced Simulink constructs such as Stateflow charts, MATLAB Function blocks, or custom S‑functions, which are frequently used in safety‑critical automotive software. Additionally, the ordering of deltas is manually specified; for large product lines with intricate dependencies, automated optimal ordering remains an open research problem. The authors outline future work that includes extending compatibility to all Simulink block types, developing graph‑based dependency analysis for automatic delta sequencing, and exploring cloud‑based collaborative environments for distributed development teams.
In summary, the authors demonstrate that first‑class variability modeling via delta modeling can be successfully embedded into Matlab/Simulink, offering a modular, reusable, and scalable alternative to 150 % models. This contribution has the potential to improve variant management not only in automotive engineering but also in any domain that relies on large‑scale model‑based development.
Comments & Academic Discussion
Loading comments...
Leave a Comment