Reveal Tool [22]

Classes, Relationship

Dependencies Associations Generalization

Realization Aggregation

Input from C++ Code and output as Class Diagram

1) Method based on Keystone.

2) Mechanism used Bottom Up & Backtracking Parse Algorithm Token Decoration.

3) Detection/Mapping attributes based on ambiguity level: Classes it has low ambiguity.

4) Semantically Accuracy in C++ to UML plotting more accurate in and Classes and Association.

5) Ease and sufficient generation of Reverse models.

1) Detection/Mapping attributes based on ambiguity level: Relationships contains high ambiguity (Dependencies contains high ambiguities, Associations contains high ambiguity, Generalization contains ambiguity, Realization contains medium ambiguity), Aggregation contains high ambiguity.

Rational Rose Tool [23]

Classes, Relationship

Dependencies Associations

Input from C++ Code and output as UML Diagram.

1) Method based on parsing.

2) Mechanism used disassembler.

3) Detection/Mapping attributes based on ambiguity level: Classes it has low ambiguity.

1) Detection/Mapping attributes based on ambiguity level: Relationships contains high ambiguities (Dependencies contains high ambiguities, and Associations contains high ambiguities).

2) Exact Mapping is not done and less accurate.

3) UML does not include internal dependencies such as method invocations and

variable accesses. Those dependencies are necessary in the problem detection and reorganization phases of the re-engineering life cycle. Thus, choosing UML would violate the requirement of being a sufficient basis of re-engineering operations.

Super Womble [24]

Classes

Input from C++ Code and output as Class Diagram.

1) Method based on parsing.

2) Mechanism used Abstract Syntax Tree, Token Stream, Lexical Analyzer.

3) Detection/Mapping attributes based on ambiguity level: Classes it has low ambiguity and Object Diagrams Contains low ambiguity.

Exact Mapping is not done and less accurate.

Pilfer [25]

Classes Relations Dependencies Association, Generalization Realization Aggregation

Input from C++ Code and output as Class Diagram.

1) Method based on parsing.

2) Detection/Mapping attributes based on ambiguity level: Classes it has low ambiguity

3) Light weight Detection.

4) More accurate in graph generation.

Detection/Mapping attributes based on ambiguity level: Relationships contains high ambiguity Dependencies contains high ambiguities, Associations contains high ambiguity, Generalization contains ambiguity, Realization contains medium ambiguity, and Aggregation contains high ambiguity.