Extracting Facts with Columbus from C++ Code

Abstract

Fact extraction from software systems is the fundamental building block in the process of understanding the relationships among the system’s elements. It is evident that in real life situations manual fact extraction must be supported by software tools which are able to analyze the subject system and provide useful information about it in various forms. These forms are most useful if they adhere to prescribed schemas and this way promote tool interoperability. In this work we outline our solution to tool supported fact extraction, which is built upon the reverse engineering framework Columbus and is supported by schemas for the C language. We describe the extraction process in detail and show how the extracted facts can be used in practice by processing the schema instances. We also introduce new features of the Columbus system not published previously, which among others include compiler wrapping and source code auditing.

Publication
Tool Demonstrations of the 8th European Conference on Software Maintenance and Reengineering (CSMR 2004), Tampere, Finland, Pages 4–8

BibTeX:

@InProceedings{FBG04b,
    author    = {Ferenc, Rudolf and Besz\'edes, {\'A}rp\'ad and Gyim\'othy, Tibor},
    booktitle = {Tool Demonstrations of the 8th European Conference on Software Maintenance and Reengineering (CSMR 2004)},
    title     = {Extracting Facts with {C}olumbus from {C++} Code},
    year      = {2004},
    address   = {Tampere, Finland},
    month     = mar,
    pages     = {4--8},
    keywords  = {Reverse engineering, fact extraction, tool interoperabil-ity, standard exchange format, schema, C, C++, Columbus, CAN, CANPP},
    url       = {http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.9.9057},
}