Software Evolution Understanding: Automatic Extraction of Software Identifiers Map for Object-Oriented Software Systems

Ra'Fat Ahmad AL-msie'deen


Software companies usually develop a set of product variants within the same family that share certain functions and differ in others. Variations across software variants occur to meet different customer requirements. Thus, software product variants evolve over time to cope with new requirements. A software engineer who deals with this family may find it difficult to understand the evolution scenarios that have taken place over time. In addition, software identifier names are important resources to understand the evolution scenarios in this family. This paper introduces an automatic approach called Juana’s approach to detect the evolution scenario across two product variants at source code level and identifies the common and unique software identifier names across software variants source code. Juana’s approach refers to common and unique identifier names as a software identifiers map and compute it by comparing software variants to each other. Juana considers all software identifier names such as package, class, attribute and method. The novelty of this approach is that it exploits common and unique identifier names across the source code of software variants, to understand the evolution scenarios across software family in an efficient way. For validity, Juana was applied on ArgoUML and Mobile Media software variants. The results of this evaluation validate the relevance and the performance of the approach as all evolution scenarios were correctly detected via software identifiers map.


Software engineering, software evolution, software identifiers map, formal concept analysis, software product variant.

Full Text:



Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.