Automatically Detecting and Tracking Inconsistencies in Software Design Models

Authors: Alexander Egyed

Consistency checkers help engineers find errors (inconsistencies) in software design models. Even if
engineers are willing to tolerate inconsistencies, they are better off knowing about their existence to avoid follow-on errors and unnecessary rework. However, current approaches do not detect or track inconsistencies fast enough. This paper presents an automated approach for detecting and tracking inconsistencies in design models in real time (while the model changes). Engineers only need to define consistency rules – in any language and without any manual annotations as required by the current state-of-the-art. Our approach automatically identifies how model changes affect these consistency rules. It does this through model profiling during consistency checking to observe the behavior of consistency rules to understand how they affect the model (and are thus affected by model changes). The approach is quick, correct, scalable, fully automated, and also easy to use as it does not require any special skills from the engineers who want to use it. We evaluated the approach on 34 models with model sizes of up to 162,237 model elements and 24 types of consistency and well-formedness rules. Our empirical evaluation shows that our approach requires only 1.4 ms to re-evaluate the consistency of the model after a change (in average), its performance is not affected by the model size but only by the number of consistency rules, at the expense of a quite acceptable, linearly increasing memory consumption.

 

 

 

Download PDF here!