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

Slides:



Advertisements
Similar presentations
Reverse Engineering Computer Science Computer Science University of Windsor University of Windsor Shaochun Xu.
Advertisements

And so to Code. Forward, Reverse, and Round-Trip Engineering Forward Engineering Reverse Engineering Round-Trip Engineering.
Ch 3 System Development Environment
Unnat-e Infotech 1 Object Oriented Concepts Introduction.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
Designing the system Conceptual design and technical design
Rainbow: XML and Relational Database Design, Implementation, Test, and Evaluation Project Members: Tien Vu, Mirek Cymer, John Lee Advisor:
Unified Modeling (Part I) Overview of UML & Modeling
Improving UML Class Diagrams using Design Patterns Semantics Shahar Maoz Work in Progress.
© Copyright Eliyahu Brutman Programming Techniques Course.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
UML and Object Oriented Concepts
Unified Modeling Language(UML) BY
The Re-engineering and Reuse of Software
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Chapter 2: Approaches to System Development
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Technical Overview.
Systems Analysis And Design © Systems Analysis And Design © V. Rajaraman MODULE 14 CASE TOOLS Learning Units 14.1 CASE tools and their importance 14.2.
Describing Methodologies PART II Rapid Application Development*
Software Construction and Evolution - CSSE 375 Reverse Engineering Tools and Techniques Shawn & Steve Left – Reengineering from the competition can be.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Arc Hydrology Data Model An Overview of the Modeling Process Kim Davis and Tim Whiteaker Center for Research in Water Resources University of Texas at.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Introduction to Software Testing Chapter 8.1 Building Testing Tools –Instrumentation Paul Ammann & Jeff Offutt
Generic API Test tool By Moshe Sapir Almog Masika.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Methodologies of the SDLC Traditional Approach to SDLC Object-Oriented Approach to SDLC CASE Tools.
Object Oriented Reverse Engineering JATAN PATEL. What is Reverse Engineering? It is the process of analyzing a subject system to identify the system’s.
TAL7011 – Lecture 4 UML for Architecture Modeling.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Rainbow: XML and Relational Database Design, Implementation, Test, and Evaluation Project Members: Tien Vu, Mirek Cymer, John Lee Advisor:
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Slide 13.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
© SERG Reverse Engineering (REportal) REportal: Reverse Engineering Portal (reportal.cs.drexel.edu)
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
Executive Overview. Software modeling is essential, because it is the map that guides your developers. Additionally: Modeling Software  Visual information.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
Object Oriented Analysis & Design By Rashid Mahmood.
Contents What is Reverse Engineering (RE)? Why do we need Reverse Engineering? Scope and Tasks of Reverse Engineering Reverse Engineering Tools Reverse.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
Testing Tools & Standards
Introduction to Compiler Construction
Unified Modeling Language
Software Architecture & Design Pattern
Chapter 13 Logical Architecture.
CS223: Software Engineering
Software Engineering Lecture #45
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 13 Logical Architecture.
Software Design Lecture : 14.
Review CSE116 2/21/2019 B.Ramamurthy.
4+1 View Model of Software Architecture
Interactive Exploration of Reverse-Engineered UML Sequence Diagrams
4+1 View Model of Software Architecture
Chapter 13 Logical Architecture.
Presentation transcript:

Reverse Engineering Valeriya Perelman 12/10/04

Outline Motivation Terminology Related work Approach discussion Challenges References

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

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

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

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 * */

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.)

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 , University of Paderborn Searching based on metrics (Object oriented, structural and procedural): – Wizzard for C++ by Kim, H., Boldyreff, C.

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)

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.

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

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

References Links: – Overview on Reverse Engineering + list of RE Tools – Reengineering Bibliography – 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