Many variability-rich object-oriented systems rely on multiple traditional techniques (inheritance, patterns) to implement their variability in a single codebase. These variability implementation places are neither explicit nor documented, hampering their detection and variability comprehension. Based on the identification of symmetry property in seven implementation techniques, a first approach was proposed with symfinder to automatically identify and display the variability of a system in a graph-based visualization structured by inheritance. However, composition, or more generally the usage relationship, is extensively used to implement the variability in object-oriented systems, and without this information, comprehending the large amount of variability identified by symfinder is not trivial. In this paper, we present symfinder-2, an extension of the former approach that incorporates the usage relationships to better identify potential variability implementations. We provide two ways to mark classes as entry points, user-defined and automatic, so that the visualization is filtered and enables users to have a better focus when they identify variability. We also report on the evaluation of this extension to ten open-source Java-based systems.
CITATION STYLE
Mortara, J., Tërnava, X., Collet, P., & Pinna-Dery, A. M. (2021). Extending the identification of object-oriented variability implementations using usage relationships. In ACM International Conference Proceeding Series (Vol. Part F171625-B, pp. 91–98). Association for Computing Machinery. https://doi.org/10.1145/3461002.3473943
Mendeley helps you to discover research relevant for your work.