Feature Location for Multi-Layer System Based on Formal Concept Analysis

Locating features in software composed of multiple layers is a challenging problem because we have to find program elements distributed over layers, which still work together to constitute a feature. This paper proposes a semi-automatic technique to extract correspondence between features and program elements among layers. By merging execution traces of each layer to feed into formal concept analysis, collaborative program elements are grouped into formal concepts and tied with a set of execution scenarios. We applied our technique to an example of web application composed of three layers. The result indicates that our technique is not only feasible but promising to promote program understanding in a more realistic context.

[1]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[2]  Norman Wilde,et al.  The role of concepts in program comprehension , 2002, Proceedings 10th International Workshop on Program Comprehension.

[3]  Martin Fowler,et al.  Patterns of Enterprise Application Architecture , 2002 .

[4]  Rainer Koschke,et al.  On dynamic feature location , 2005, ASE.

[5]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

[6]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[7]  Fabian Beck,et al.  Computer-Aided Extraction of Software Components , 2010, 2010 17th Working Conference on Reverse Engineering.

[8]  Shinji Kusumoto,et al.  CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code , 2002, IEEE Trans. Software Eng..

[9]  Andrian Marcus,et al.  Static techniques for concept location in object-oriented code , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[10]  Mark Johnson,et al.  Designing Enterprise Applications with the J2EE¿ Platform , 2002 .

[11]  Michel Wermelinger,et al.  Relating developers' concepts and artefact vocabulary in a financial software module , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).