Supporting Simulink Model Management
With the increasing use of Simulink modeling in embedded system development, there comes a need for effective techniques and tools to support managing these models and their related artifacts. Because maintenance of models, like source code, makes up such a large portion of the cost and effort of the system as a whole, it is increasingly important to ensure that the process of managing models is as simple, intuitive and efficient as possible. By examining the co-evolution patterns of Simulink models and their respective test cases (a useful modeling artifact), it is possible to gain an understanding of how these systems evolve over time, and what the impact of changes to a model are on the relevant test cases. This analysis uncovered opportunities to present useful findings to developers in order to effectively manage model changes. By tracing the impact of a change to a Simulink model block on both the surrounding blocks and the tests associated with the model, developers can ensure that changes are accurately propagated, and can avoid changes that would lead to inconsistencies. To support the model management process, three tools have been produced, each addressing a different aspect of the maintenance process: SimPact is used to identify and highlight the impact of changes to model blocks on tests and the rest of the model, SimTH automatically generates test harnesses for Simulink models, and SimEvo combines these tools into a comprehensive evolution support package, with the ability to interface with existing industry tools. Each of these tools has been evaluated against a large industrial model set, and some are already in current use in industry, demonstrating their effectiveness and applicability to real world problems.