Automatic Detection of Design Problems in Object-Oriented Reengineering

  • Authors:
  • Oliver Ciupke

  • Affiliations:
  • -

  • Venue:
  • TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
  • Year:
  • 1999

Quantified Score

Hi-index 0.02

Visualization

Abstract

The evolution of software systems over many years often leads to unnecessarily complex and inflexible designs which in turn lead to a huge amount of effort for enhancements and maintenance. Thus, the reengineering of object-oriented software becomes more and more important as the number, age and size of such legacy systems grow. A key issue during reengineering is the identification and location of design problems which prevent the efficient further development of a system. Up to now this problem area has not been sufficiently supported, either by methods, or by tools.In this paper, we present a technique for analyzing legacy code, specifying frequent design problems as queries and locating the occurrences of these problems in a model derived from source code. We present our experiences with a tool set which we implemented to support this task by automatically analyzing a given system and detecting the specified problems.We applied our tools to check violations of a number of well-known design rules in existing source code taken from several case studies, both from industrial and academic fields. These experiments showed that the task of problem detection in reengineering can be automated to a large degree, and that the technique presented can be efficiently applied to real-world code.