A comparison of abstract data types and objects recovery techniques
In the context of the authors' research on architectural features recovery, abstract data types (ADT) and abstract data objects (ADO, also called objects) have been identified as two of the smallest components which are useful for building a significant architectural overview of the system. The authors have named these the atomic components (AC) of an architecture. This article compares six published techniques which extract ADTs and ADOs from source code without extensive data flow analysis. A prototype tool implementing each technique has been developed and applied to three medium-sized and systems written in C (each over 30 Kloc). The results from each approach are compared with the atomic components identified by hand by a group of software engineers. This article extends previous papers by discussing how the software engineers' AC identification was validated and by analyzing the false positives, i.e., the atomic components identified by automatic approaches which were not identified by software engineers.