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 overtime 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 the 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 computes 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 a software identifiers map.
翻译:软件软件公司通常在同一个家庭内开发一套产品变异,这些变异具有某些功能,而其他的则不同。不同的软件变异则不同,以满足不同的客户要求。因此,软件产品变异会演变成加班费以满足新的要求。处理这个家庭的软件工程师可能发现难以理解随着时间推移而出现的演化情景。此外,软件识别名称是了解这个家庭演化情景的重要资源。本文采用了一种自动办法,称为Juana的方法,以在源代码一级探测两种产品变异的演化情景,并查明不同软件变异源代码的通用和独特的软件识别名称。Juana的方法将通用和独特的识别名称作为软件识别特征图,并通过比较软件变异图进行计算。Juana认为所有软件变异名称,如软件、类别、属性和方法,都是了解这个家庭的演化情景的重要资源。这一方法的新颖之处是,它利用了源代码中常见和独特的识别名称,以高效的方式了解不同软件组的演化情景。关于有效性,Juana在ArgoUM和移动媒体软件变异的变异性图中应用了通用和精确的演化方法。