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!