Exploiting Traceability Uncertainty between Architectural Models and Code
Achraf Ghabi, Alexander F. Egyed · 2012
Documenting and maintaining the traceability between architectural models and code is one of the foremost challenges of model-based software development. Yet, traceability is rarely captured immediately while models and code co-evolve but usually recovered later. By then key people may have moved on or their recollection of facts may be blurred or inconsistent. In previous work, we proposed a language for capturing traceability that allows for uncertainty and incompleteness. This paper investigates this language on the unique properties that characterize model-to-code traceability. Our approach takes ambiguous, incomplete, and possibly incorrect assumptions about the traceability between model and code as input. It then validates the correctness of these assumptions and completes the input by inserting their logical consequences. This paper demonstrates the correctness and scalability of our approach which has been validated on several third-party software systems. Our approach is automated and fully tool supported.