Recovering the Evolution Stable Part Using an ECGM Algorithm: Is There a Tunnel in Mozilla?

Analyzing the evolutionary history of the design of Object-Oriented Software is an important and difficult task where matching algorithms play a fundamental role. In this paper, we investigate the applicability of an error-correcting graph matching (ECGM) algorithm to object-oriented software evolution. By means of a case study, we report evidence of ECGM applicability in studying the Mozilla class diagram evolution. We collected 144 Mozilla snapshots over the past six years, reverse-engineered class diagrams and recovered traceability links between subsequent class diagrams. Our algorithm allows us to identify evolving classes that maintain a stable structure of relations(associations, inheritances and aggregations) with other classes and thus likely constitute the backbone of Mozilla.

[1]  Giuliano Antoniol,et al.  A Google-inspired error-correcting graph matching algorithm , 2008 .

[2]  Marco Torchiano,et al.  Are fit tables really talking? , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[3]  Rajeev Motwani,et al.  The PageRank Citation Ranking : Bringing Order to the Web , 1999, WWW 1999.

[4]  Eleni Stroulia,et al.  UMLDiff: an algorithm for object-oriented design differencing , 2005, ASE.

[5]  Daniel M. Yellin,et al.  A Bayesian approach to diagram matching with application to architectural models , 2006, ICSE '06.

[6]  Michael W. Godfrey,et al.  An integrated approach for studying architectural evolution , 2002, Proceedings 10th International Workshop on Program Comprehension.

[7]  Horst Bunke,et al.  Error Correcting Graph Matching: On the Influence of the Underlying Cost Function , 1999, IEEE Trans. Pattern Anal. Mach. Intell..

[8]  Horst Bunke,et al.  On a relation between graph edit distance and maximum common subgraph , 1997, Pattern Recognit. Lett..

[9]  Fred W. Glover,et al.  Tabu Search , 1997, Handbook of Heuristics.

[10]  Eleni Stroulia,et al.  Analyzing the evolutionary history of the logical design of object-oriented software , 2005, IEEE Transactions on Software Engineering.

[11]  Giuliano Antoniol,et al.  Error Correcting Graph Matching Application to Software Evolution , 2008, 2008 15th Working Conference on Reverse Engineering.

[12]  Giuliano Antoniol,et al.  Maintaining traceability links during object‐oriented software evolution , 2001, Softw. Pract. Exp..

[13]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[14]  Michael W. Godfrey,et al.  Using origin analysis to detect merging and splitting of source code entities , 2005, IEEE Transactions on Software Engineering.

[15]  Sergey Brin,et al.  The Anatomy of a Large-Scale Hypertextual Web Search Engine , 1998, Comput. Networks.