Enriching Reverse Engineering with Annotations

  • Authors:
  • Andrea Brühlmann;Tudor Gîrba;Orla Greevy;Oscar Nierstrasz

  • Affiliations:
  • Software Composition Group, University of Bern, Switzerland;Software Composition Group, University of Bern, Switzerland;Software Composition Group, University of Bern, Switzerland;Software Composition Group, University of Bern, Switzerland

  • Venue:
  • MoDELS '08 Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Much of the knowledge about software systems is implicit, and therefore difficult to recover by purely automated techniques. Architectural layers and the externally visible features of software systems are two examples of information that can be difficult to detect from source code alone, and that would benefit from additional human knowledge. Typical approaches to reasoning about data involve encoding an explicit meta-model and expressing analyses at that level. Due to its informal nature, however, human knowledge can be difficult to characterize up-front and integrate into such a meta-model. We propose a generic, annotation-based approach to capture such knowledge during the reverse engineering process. Annotation types can be iteratively defined, refined and transformed, without requiring a fixed meta-model to be defined in advance. We show how our approach supports reverse engineering by implementing it in a tool called Metanooland by applying it to (i) analyzing architectural layering, (ii) tracking reengineering tasks, (iii) detecting design flaws, and (iv) analyzing features.