Columbus – Tool for Reverse Engineering Large Object Oriented Software Systems

Abstract

One of the most critical issues in large-scale software development and maintenance is the rapidly growing size and complexity of the software systems. As a result of this rapid growth there is a need to understand the relationships between the different parts of a large system. In this paper we present a reverse engineering framework called Columbus that is able to analyze large C/C++ projects. Columbus supports project handling, data extraction, -representation, -storage and -export. Efficient filtering methods can be used to produce comprehensible diagrams from the extracted information. The flexible architecture of the Columbus system (based on plug-ins) makes it a really versatile and an easily extendible tool for reverse engineering.

Publication
Proceedings of the 7th Symposium on Programming Languages and Software Tools (SPLST 2001), Szeged, Hungary, Pages 16–27

BibTeX:

@InProceedings{FMB01,
    author    = {Ferenc, Rudolf and Magyar, Ferenc and Besz\'edes, {\'A}rp\'ad and Kiss, {\'A}kos and Tarkiainen, Mikko},
    title     = {{C}olumbus -- Tool for Reverse Engineering Large Object Oriented Software Systems},
    booktitle = {Proceedings of the 7th Symposium on Programming Languages and Software Tools (SPLST 2001)},
    year      = {2001},
    pages     = {16--27},
    address   = {Szeged, Hungary},
    month     = jun,
    publisher = {University of Szeged},
    keywords  = {reverse engineering, source code parsing, large-scale software systems, UML, class model, C/C++, templates, call graph},
}