Presentation is loading. Please wait.

Presentation is loading. Please wait.

Reverse Engineering Valeriya Perelman 12/10/04. Outline Motivation Terminology Related work Approach discussion Challenges References.

Similar presentations


Presentation on theme: "Reverse Engineering Valeriya Perelman 12/10/04. Outline Motivation Terminology Related work Approach discussion Challenges References."— Presentation transcript:

1 Reverse Engineering Valeriya Perelman 12/10/04

2 Outline Motivation Terminology Related work Approach discussion Challenges References

3 Motivation Improving comprehensibility of software systems Modifying software while keeping design and source code synchronized Software re-use Reengineering software on the design level

4 Terminology Requirements Analysis Design Implementation Re-engineering Forward engineering Reverse engineering

5 Related Work -- Commercial CASE Tools UML-Based Static Reverse Engineering is supported by: – Rational Rose – Together – Poseidon – CodeLogic (Can generate control-flow and sequence diagrams per method given by user) Pros: Fully automatic process of RE Highly scalable Cons: Dynamic aspect of design is not supported in the RE process(except for CodeLogic) Not all the relations are identified Multiplicity is not supported

6 Related Work -- Research Prototypes UML-Based – IDEA (Redocumentation of Java programs using UML class diagrams) – FUJABA (generating both dynamic and static aspects, requires specific code conventions): Example for an Association Comment /** * Associations * * * cardLeft cardRight * LeftClass ------------------------------ RightClass * leftRole rightRole * */

7 Related Work -- Research Prototypes – cont. Others – Rigi Has its own format (RSF-Rigi Standard Format) Semi-automatic Implemented for C/C++ Hierarchical clustering of related artifacts into subsystems Supports model visualization The RE based on certain modularity principles (such as data abstraction, low coupling among subsystems e.t.c.)

8 Related Work -- Design Pattern-Based Design Recovery Techniques Searching for minimal key structures: – DP++, KT, SPOOL Searching for class structures (Pat, IDEA) Searching based on fuzzy logic: – Technical Report tr-ri-01-222, University of Paderborn Searching based on metrics (Object oriented, structural and procedural): – Wizzard for C++ by Kim, H., Boldyreff, C.

9 Approach Discussion -- Input/Output Input: Java source code (widely used, OOP, built in design patterns, interfaces) Output: OPM design model (equal relation to Objects and Processes, hierarchical, giving simple way to express both dynamic and static aspects of the system)

10 Approach Discussion -- Techniques Static Analysis Identifying Objects vs. Processes (every class is object except for … ) Filtering simple getters/setters Detecting GOF patterns Improving analysis to the OPM generated code using its ’ javadoc.

11 Approach Discussion -- Simple Example public class Hello { int main(){ System.out.println( “ Hello World! ” ); return 1; }

12 Approach Discussion -- Challenges Weakly typed containers (Sets, Hash tables, e.t.c.) Scalability problem (number of patterns vs. processing, over-control flow analysis) Language Independency Re-Tour engineering

13 References Links: – http://www.rigi.csc.uvic.ca/UVicRevTut/F4rev.html http://www.rigi.csc.uvic.ca/UVicRevTut/F4rev.html Overview on Reverse Engineering + list of RE Tools – http://www.iste.uni-stuttgart.de/ps/reengineering http://www.iste.uni-stuttgart.de/ps/reengineering Reengineering Bibliography – http://www.gupro.de/GXL/Introduction/intro.html http://www.gupro.de/GXL/Introduction/intro.html Graph eXchange Language format Papers: – Design Pattern Recovery in Architectures for Supporting Product Line Development and Application Philippow, Streitferdt & Riebisch – Pattern-Based Design Recovery of Java Software Seemann & Wolf von Gudenberg


Download ppt "Reverse Engineering Valeriya Perelman 12/10/04. Outline Motivation Terminology Related work Approach discussion Challenges References."

Similar presentations


Ads by Google