Columbus - Tool For Reverse Engineering Large Object Oriented Software Systems

  • Uploaded by: Mike
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Columbus - Tool For Reverse Engineering Large Object Oriented Software Systems as PDF for free.

More details

  • Words: 702
  • Pages: 12
Columbus - Tool for Reverse Engineering Large Object Oriented Software Systems

Rudolf Ferenc1 Ferenc Magyar1 Árpád Beszédes1 Ákos Kiss1 Mikko Tarkiainen2 1

Research Group on Artificial Intelligence, University of Szeged 2 Nokia Research Center

June 15-16, 2001

SPLST 2001 - Szeged, Hungary

1

Introduction • Software systems are rapidly growing and are getting more and more complex • As a result of this growth there is a need to understand the relationships between the different parts of a large system • Existing legacy code and high number of participants in code development also necessitates the use of tools for reverse engineering • Reverse engineering is “the process of analyzing a subject system to (a) identify the system’s components and their interrelationships and (b) create representations of a system in another form at a higher level of abstraction” [Chikofsky et al.] June 15-16, 2001

SPLST 2001 - Szeged, Hungary

2

Assessment of RE tools • Analysis

• Editing/browsing

– Parsable source languages – Project definition types (ease of project definition) – Incremental parsing – Fault tolerant parser – Parse speed

• Representation – – – –

Speed of generation Filters, scopes, grouping Sorting Layout algorithms

June 15-16, 2001

– Integrated text editor/browser – External editor/browser

• General capabilities – Toolset extensibility – Storing capabilities – Output capabilities [Bellay, B. and Gall, H.]

SPLST 2001 - Szeged, Hungary

3

Columbus/CAN • Tool for reverse engineering large object oriented systems • Developed in a cooperation between the Nokia Research Center & University of Szeged • Fast, fault tolerant C/C++ parser • Extracts the UML class diagram and the call graph June 15-16, 2001

SPLST 2001 - Szeged, Hungary

4

Columbus/CAN (cont.) • Supports project handling, data extraction, data representation, data storage, filtering and visualization • Follows the standard C++ compilation model • High extensibility due to the plug-in architecture • Easy to use API for writing third party plug-ins June 15-16, 2001

SPLST 2001 - Szeged, Hungary

5

User Interface • IDE like user interface

June 15-16, 2001

SPLST 2001 - Szeged, Hungary

6

Overview of the Columbus System • Extractor-, Linkerand Exporter plug-in-s

EXTRACTION

LINKING & FILTERING

target file 1

object 1

1.cpp

1st C/C++ exporter

C/C++ extractor C/C++ linker 2.i

internal repr. for C/C++

target file 2

object 2 2nd C/C++ exporter

C/C++ extractor

target file 3

object 3

1.other Other extractor

June 15-16, 2001

EXPORTING

Other linker

SPLST 2001 - Szeged, Hungary

Other internal repr.

Other exporter

7

CAN – the C++ Analyzer • Extractor plug-in for Columbus • Command-line tool (can be integrated into makefiles) • Fault tolerant (error recovery) • Use of precompiled headers • Fast: about 6800 non-empty LOC/sec! (PIII-800 machine) • Two-pass parser for template-handling • Instantiation of templates at source level June 15-16, 2001

SPLST 2001 - Szeged, Hungary

8

Instantiation of Templates • Small example: template class A { T a; };

class _CTC20B70D45F2;

char c; A var;

char c; class _CTC20B70D45F2 { int a; }; _CTC20B70D45F2 var;

June 15-16, 2001

SPLST 2001 - Szeged, Hungary

9

Producing Comprehensible Diagrams • Reverse engineered code can produce huge amount of extracted data • Different filtering methods are available – – – – –

Filtering by input source files Filtering according to scopes Filtering using class dependencies Filtering “by hand” Diagram Completing

June 15-16, 2001

SPLST 2001 - Szeged, Hungary

10

Experiments • Five publicly available C++ programs Project

No. of Size Extract. Mem. No. of No. of No. of files (MB) time (MB) classes methods attributes

jikes

76

3.6 00:00:58

20

275

3.464

1.719

boost

281

2.4 00:04:46

27

1.712

5.187

1.197

leda

505

3.1 00:05:31

51

1.562

1.562

8.310

StarCalc

8.527

61.5 01:59:11

110

3.983

47.747

18.098

StarWriter

9.449

69.2 02:10:08

128

4.995

60.515

23.929

(Machine: PIII-800; 256MB RAM)

June 15-16, 2001

SPLST 2001 - Szeged, Hungary

11

Conclusion • We presented the functionalities of the Columbus toolset with respect to its reverse engineering capabilities • Current version is able to analyze C/C++ projects (supporting Java is under development) • Powerful C/C++ extraction • Direct access to the extracted information (API) • Extensibility • Various output formats (Mermaid, TED, Rose, MS Jet, html, XML, ASCII) June 15-16, 2001

SPLST 2001 - Szeged, Hungary

12

Related Documents


More Documents from "ALI HANZALA"