Department of Computer Science and Technology

Technical reports

Mining and tracking in evolving software

Silvia Breu

June 2013, 104 pages

This technical report is based on a dissertation submitted April 2011 by the author for the degree of Doctor of Philosophy to the University of Cambridge, Newnham College.

DOI: 10.48456/tr-838

Abstract

Every large program contains a small fraction of functionality that resists clean encapsulation. For example, code for debugging or locking is hard to keep hidden using object-oriented mechanisms alone. This problem gave rise to aspect-oriented programming: such cross-cutting functionality is factored out into so-called aspects and these are woven back into mainline code during compilation. However, for existing software systems to benefit from AOP, the cross-cutting concerns must be identified first (aspect mining) before the system can be re-factored into an aspect-oriented design.

This thesis on mining and tracking cross-cutting concerns makes three contributions: firstly, it presents aspect mining as both a theoretical idea and a practical and scalable application. By analysing where developers add code to a program, our history-based aspect mining (HAM) identifies and ranks cross-cutting concerns. Its effectiveness and high precision was evaluated using industrial-sized open-source projects such as ECLIPSE.

Secondly, the thesis takes the work on software evolution one step further. Knowledge about a concern’s implementation can become invalid as the system evolves. We address this problem by defining structural and textual patterns among the elements identified as relevant to a concern’s implementation. The inferred patterns are documented as rules that describe a concern in a formal (intensional) rather than a merely textual (extensional) manner. These rules can then be used to track an evolving concern’s implementation in conjunction with the development history.

Finally, we implemented this technique for Java in an Eclipse plug-in called ISIS4J and evaluated it using a number of concerns. For that we again used the development history of an open-source project. The evaluation shows not only the effectiveness of our approach, but also to what extent our approach supports the tracking of a concern’s implementation despite, for example, program code extensions or refactorings.

Full text

PDF (2.0 MB)

BibTeX record

@TechReport{UCAM-CL-TR-838,
  author =	 {Breu, Silvia},
  title = 	 {{Mining and tracking in evolving software}},
  year = 	 2013,
  month = 	 jun,
  url = 	 {https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-838.pdf},
  institution =  {University of Cambridge, Computer Laboratory},
  doi = 	 {10.48456/tr-838},
  number = 	 {UCAM-CL-TR-838}
}