Contents What is Reverse Engineering (RE)? Why do we need Reverse Engineering? Scope and Tasks of Reverse Engineering Reverse Engineering Tools Reverse.

Slides:



Advertisements
Similar presentations
Software Re-engineering
Advertisements

Reverse Engineering Computer Science Computer Science University of Windsor University of Windsor Shaochun Xu.
SWE 316: Software Design and Architecture Objectives Lecture # 23 Software Reengineering SWE 316: Software Design and Architecture  To describe the activities.
Chapter 3: Editing and Debugging SAS Programs. Some useful tips of using Program Editor Add line number: In the Command Box, type num, enter. Save SAS.
Systems Software.
CMMI – Continuous as well as staged model CMMI capability levels – Incomplete, performed, managed, defined, quantitatively managed, optimized Example.
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Reverse Engineering When is it the most cost effective? Raymond Utz.
Software Reengineering
Reverse Engineering Valeriya Perelman 12/10/04. Outline Motivation Terminology Related work Approach discussion Challenges References.
Feb. 15, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #10 Thursday, Feb. 15, 2001.
Programming Languages Structure
1 Software Maintenance and Evolution CSSE 575: Session 5, Part 1 Reverse Engineering and Reengineering Approaches Steve Chenoweth Office Phone: (812)
© Copyright Eliyahu Brutman Programming Techniques Course.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Driss Kettani Sommerville, 6th edition Software Engineering II Software re-engineering l Reorganising and modifying existing software systems to make them.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
Galin, SQA from theory to implementation © Pearson Education Limited Chapter 13 CASE Tools and their Effect on Software Quality.
 2003 Prentice Hall, Inc. All rights reserved Introduction Modules –Small pieces of a problem e.g., divide and conquer –Facilitate design, implementation,
Software Reengineering
CS 0008 Day 2 1. Today Hardware and Software How computers store data How a program works Operators, types, input Print function Running the debugger.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
The Re-engineering and Reuse of Software
Software Re-engineering
Software Construction and Evolution - CSSE 375 Reverse Engineering and Reengineering Approaches Shawn & Steve In long-term software developments, the “elephant.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 1 Introduction to Computers and Programming.
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
Computer Programming I Hour 1-Getting Started. Word of Day —Chinese proverb A journey of a thousand miles is started by taking the first step. —Aristophanes.
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.
Trying to like a boss… REVERSE ENGINEERING. WHAT EVEN IS… REVERSE ENGINEERING?? Reverse engineering is the process of disassembling and analyzing a particular.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Software Construction and Evolution - CSSE 375 Reverse Engineering Tools and Techniques Shawn & Steve Left – Reengineering from the competition can be.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
Reverse Engineering Unit 3, Lesson 3 Explanation.
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
BTEC Unit 06 – Lesson 08 Principals of Software Design Mr C Johnston ICT Teacher
CS266 Software Reverse Engineering (SRE) Reversing and Patching Java Bytecode Teodoro (Ted) Cipresso,
Object Oriented Reverse Engineering JATAN PATEL. What is Reverse Engineering? It is the process of analyzing a subject system to identify the system’s.
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 CO7206 System Reengineering 4.2 Software Reengineering Most slides are Slides.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design.
 Programming - the process of creating computer programs.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Reverse Engineering. Overview Need for RE Recovery of lost information – providing proper system documentation Assisting with maintenance – identification.
Reverse Engineering CS3300 Fall What is it? Extracting design information from existing software Two types: Source Code based (easier) or Binary.
“Software reverse engineering involves taking an existing system for which source code or proper documentation is not available and attempting to recover.
310414IMPLEMENTATION1 IMPLEMENTATIONIMPLEMENTATION SOFTWARE ENGINEERING SOFTWARE ENGINEERING.
Reverse Engineering Dept. of I&CT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering.
Friday, 23 August 2013 Session Work out Presented By: Abhijit Pal.
CASE Tools and their Effect on Software Quality
CASE (Computer-Aided Software Engineering) Tools
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
CS223: Software Engineering Lecture 34: Software Maintenance.
Maintenance Issues in Software Engineering
Environment Assessment
Software Maintenance.
Software Maintenance
Systems Operations and Support
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Re- engineeniering.
Review of Previous Lesson
Informatics 122 Alex Baker
Software Re-engineering and Reverse Engineering
Presentation transcript:

Contents What is Reverse Engineering (RE)? Why do we need Reverse Engineering? Scope and Tasks of Reverse Engineering Reverse Engineering Tools Reverse Engineering in Rational Rose Conclusions

What is Reverse Engineering ? You have an unexpected case: You finished one course project using Java Your program runs OK But, by accident, you delete the java file How to hand in your project?

What is Reverse Engineering ? You have an unexpected case: You finished one course project using Java Your program runs OK But, by accident, you delete the java file How to hand in your project? Reverse Engineering

What is Reverse Engineering ? Waterfall Model of software development Requirement analysis design Implementation Testing and Maintenance

What is Reverse Engineering ? Forward Engineering Requirements Design Source Code Behavior

What is Reverse Engineering ? Forward EngineeringReverse Engineering Requirements Design Source Code Behavior

What is Reverse Engineering ? Abstraction System Old systemNew System Forward Engineering Re-Implementation Reverse Engineering Abstraction

What is Reverse Engineering? RE encompasses any activity that is done to determine how a product works, to learn the ideas and technology that were used in developing that product. RE can be done at many levels RE generally belongs to Software Maintenance

Why do we need RE ? Recovery of lost information providing proper system documentation Assisting with maintenance identification of side effects and anomalies Migration to another hw/sw platform Facilitating software reuse

Why do we need RE ? Benefits maintenance cost savings quality improvements competitive advantages software reuse facilitation

Scope and Task of Reverse Engineering Redocumentation and/or document generation Recovery of design approach and design details at any level of abstraction Identifying reusable components and components that need restructuring Recovering business rules Understanding high-level system description.

Discovery of Abstraction Discovery of abstraction in large system maintenance purpose evolution purpose reengineering purpose

Reverse Engineering Tools Disassemblers take the machine language codes in the binary and display them in a friendlier format. They also extrapolate data such as function calls, passed variables and text strings. Debuggers are the bread and butter for reverse engineers. They first analyze the binary, much like a disassembler Debuggers then allow the reverser to step through the code, running one line at a time and investigating the results. Hex editors allow you to view the actual bytes in a binary, and change them. They also provide searching for specific bytes, saving sections of a binary to disk, and much more.

Eg:Reverse Engineering in Rational Rose

Conclusions Reverse Engineering is a new research area among software maintenance RE includes activities of understanding the system and recovery info from system Program understanding is the most important subset of Reverse Engineering Discovery of abstraction is key issue

Thank you