Abstract

In the development of complex and large scale software systems, it is important to detect and fix the deviations of systems' behaviors at different abstraction levels in early phases. Our main focus here is the containment checking -- a special type of consistency checking -- that verifies whether the behavior (or functions) described by a low-level behavior model encompasses those specified in the high-level counterpart. As shown in our previous work, containment checking can be realized based on model checking, but not always the costly exhaustive searches employed by model checking are necessary for addressing the containment checking problem, leading to potentials for optimization. In addition, model checking and similar techniques often yield the checking results as true (satisfied) or false (unsatisfied) with error traces (e.g., Counter-examples). Unfortunately, such feedback is rather not helpful for users with limited background on the underlying formal methods to analyze and understand the causes of consistency violations. In this paper, we propose a lightweight graph-based approach for addressing the aforementioned problems of containment checking. The theoretical complexity of our approach is a cubic polynomial of the number of elements of the input behavior models. Additionally, we aim at generating feedbacks that are relevant and easy-to-understand for the stakeholders. Our approach is illustrated and evaluated on UML activity diagrams -- that are widely used for modeling behaviors of software systems -- using use cases derived from industrial scenarios.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call