Reverse Engineering Software-Models of Component-Based Systems

  • Authors:
  • Landry Chouambe;Benjamin Klatt;Klaus Krogmann

  • Affiliations:
  • Professional Services Organisation, Netviewer AG, Germany, landry.chouambe@netviewer.com;Institute for Program Structures and Data Organisation, Universitat Karlsruhe (TH), Germany, klatt@ipd.uka.de;Institute for Program Structures and Data Organisation, Universitat Karlsruhe (TH), Germany, krogmann@ipd.uka.de

  • Venue:
  • CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

An increasing number of software systems is developed using component technologies such as COM, CORBA, or EJB. Still, there is a lack of support to reverse engineer such systems. Existing approaches claim reverse engineering of components, but do not support composite components. Also, external dependencies such as required interfaces are not made explicit. Furthermore, relaxed component definitions are used, and obtained components are thus indistinguishable from modules or classes. We present an iterative reverse engineering approach that follows the widely used definition of components by Szyperski. It enables third-party reuse of components by explicitly stating their interfaces and supports composition of components. Additionally, components that are reverse engineered with the approach allow reasoning on properties of software architectures at the model level. For the approach, source code metrics are combined to recognize components. We discuss the selection of source code metric and their interdependencies, which were explictly taken into account. An implementation of the approach was successfully validated within four case studies. Additionally, afifth case study shows the scalability of the approach or an inutilsz system for an industrial-size system.