Java implementation verification using reverse engineering

  • Authors:
  • David Cooper;Benjamin Khoo;Brian R. von Konsky;Michael Robey

  • Affiliations:
  • Curtin University of Technology, Perth, Western Australia;Curtin University of Technology, Perth, Western Australia;Curtin University of Technology, Perth, Western Australia;Curtin University of Technology, Perth, Western Australia

  • Venue:
  • ACSC '04 Proceedings of the 27th Australasian conference on Computer science - Volume 26
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

An approach to system verification is described in which design artefacts produced during forward engineering are automatically compared to corresponding artefacts produced during reverse engineering. The goal is to automatically determine if an implementation is consistent with the original design. In the system described, XML Metadata Interchange (XMI) representations of Unified Modelling Language (UML) class diagrams are recovered from compiled Java class files. These are automatically compared with the corresponding diagrams produced during forward engineering by software engineers using CASE tools. Examples are provided in which reversed engineered UML class diagrams differ from those produced during forward engineering but are still faithful to the original design intent. Such differences are often due to more abstract system representations being captured in forward engineered design artefacts, the inclusion of design attributes and annotations that are not retained in the final implementation, and issues associated with the use of weakly typed containers. In other cases, differences indicate a deviation from the intended design. It is this latter type of difference that this paper is particularly interested in identifying. We advocate that an automated comparison of forward and reverse engineering artefacts should be performed during formal code inspection preparation and used to guide human review of the identified differences.