A Taxonomy for Program Metamodels in Program Reverse Engineering accepted at ICSME 2016 (CORE Rank A)

Hironori Washizaki, Yann-Gael Gueheneuc, Foutse Khomh, “A Taxonomy for Program Metamodels in Program Reverse Engineering,” 32nd IEEE International Conference on Software Maintenance and Evolution (ICSME), October 2-10, Raleigh, North Carolina, USA. (to appear)

Metamodels are frequently used during program reverse engineering activities to describe and analyze constituents and relations between the constituents of a program for supporting program comprehension, maintenance, and extension. Reverse engineering tools often define their own metamodels according to their own purposes and intended features. These metamodels have all advantages, and limitations that might have been solved by others. Although there are some existing works on the evaluation and comparison of these metamodels and tools, none of them consider all the possible characteristics and limitations to provide a comprehensive guidance for classification, comparison, reuse and extension of program metamodels. To guide practitioners and researchers to classify, compare, reuse, and extend program metamodels and their corresponding reverse engineering tools according to their goals, we first establish a conceptual framework with definitions of program metamodels and related concepts. Based on this framework, we provide a comprehensive taxonomy named Program Metamodel TAxonomy (ProMeTA), which incorporates characteristics that are newly identified into those that have already been stated in previous works identified by a systematic literature survey on program metamodels, while keeping the orthogonality of the entire taxonomy. We validate the taxonomy in terms of its orthogonality and usefulness through the classification of popular metamodels.