Reverse Engineering: Legacy Systems Alexander Endert.

Slides:



Advertisements
Similar presentations
Lecture 6: Software Design (Part I)
Advertisements

Chapter 11 Software Evolution
THE INTELLIGENCE SYSTEM OF SOFTWARE COMPLEXITY AND QUALITY EVALUATION AND PREDICTION Oksana Pomorova, Tetyana Hovorushchenko Khmelnitsky National University.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Ch 3 System Development Environment
OBP Research Oy for simpler creation of embedded systems.
Information Systems Analysis and Design
CSCE 121, Sec 200, 507, 508 Software Engineering Fall 2010 Prof. Jennifer L. Welch.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Essentials of Systems Analysis and Design Fourth Edition Joseph S. Valacich Joey F.
Chapter 1 The Systems Development Environment
Reverse Engineering When is it the most cost effective? Raymond Utz.
COMS W3156: Software Engineering, Fall 2001 Lecture #12: Design, Distributed Objects Janak J Parekh
Ch3: Software Engineering Principles 1 What is a principle?  Definition:  Goals of accounting principles:  Goals of software engineering principles?
Copyright 2006 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Third Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter.
UML and Object Oriented Concepts
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Chapter.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall 1.1.
INFO415 Approaches to System Development: Part 2
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
Rapid Application Development (RAD) Software Development Approaches.
Copyright © 2015 Pearson Education, Inc. Chapter 7: Software Engineering.
Software Measurement & Metrics
Stephenson College DP 96 1 Object-Orientation by Derek Peacock.
1Software Measurement Advanced Software Engineering COM360 University of Sunderland © 2001.
Software Engineering SM ? 1. Outline of this presentation What is SM The Need for SM Type of SM Size Oriented Metric Function Oriented Metric 218/10/2015.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida
Chapter 7 Software Engineering. © 2005 Pearson Addison-Wesley. All rights reserved 7-2 Chapter 7: Software Engineering 7.1 The Software Engineering Discipline.
SOFTWARE CONFIGURATION MANAGEMENT. Change is inevitable when computer software is built. And change increases the level of confusion among software engineers.
Object Oriented Reverse Engineering JATAN PATEL. What is Reverse Engineering? It is the process of analyzing a subject system to identify the system’s.
An Automatic Software Quality Measurement System.
Slide 13.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
Scenario-Based Analysis of Software Architecture Rick Kazman, Gregory Abowd, Len Bass, and Paul Clements Presented by Cuauhtémoc Muñoz.
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Chapter 7 Software Engineering © 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 7: Software Engineering
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Software Engineering Introduction.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Static Software Metrics Tool
Chapter 7: Software Engineering
Software Design.
Chapter 7: Software Engineering
Pivot Tables, Macros and VBA
Software Engineering Design
Lecture 9- Design Concepts and Principles
2016 Maintenance Innovation Challenge
Software Design Mr. Manoj Kumar Kar.
Software Maintenance PPT By :Dr. R. Mall.
SOFTWARE DESIGN AND ARCHITECTURE
Chapter 1 The Systems Development Environment
Lorenz and Kidd Operation-Oriented Metrics Suite
Subject Name: Embedded system Design Subject Code: 10EC74
Software Engineering Lecture #45
Lecture 9- Design Concepts and Principles
Quality Measurable characteristic Cyclomatic complexity Cohesion
Chapter 7 Software Engineering.
Information Flow Metric
Presented by Trey Brumley and Ryan Carter
Chapter 8 Software Evolution.
PPT and video are due no later than February 15, 2019
Re- engineeniering.
Coupling Interaction: It occurs due to methods of a class invoking methods of other classes. Component Coupling: refers to interaction between two classes.
Introduction Software maintenance:
DESIGN CONCEPTS AND PRINCIPLES
Presentation transcript:

Reverse Engineering: Legacy Systems Alexander Endert

Overview of Reverse Engineering  A powerful method for gaining useful knowledge about a software system.  When is the new system complete?  Scaling up Reverse engineer the modules, then the system as a whole.

Modularization  Breaking a large, complex system into modules is essential.  Modules are grouped according to functionality.  A module’s characteristics include: Low Coupling High Cohesion

Call Graphs  A visual representation of a system. Nodes/Vertices represent functions. Edges represent invocations.

K-Cut Method using Call Graphs  Breaking apart a call graph to group together functions that exhibit the modular characteristics. High Cohesion Low Coupling  Difficulty arises in determining the minimal “cuts” to divide the original graph.

Adequacy  Two metrics to measure adequacy: Completeness Accuracy  The use of tool suites automates both the testing and the code generation. Example: Specware  A toolkit for developing software strictly from specifications.

Testing  Must test and update not only code, but requirements and documentation as well.  Commonly used method: MORALE Mission Oriented Architectural Legacy Evolution Uses existing inputs and results in order to generate the new system.

Ethical Implications  RE is a very powerful tool.  An engineer must have the proper permission to gain the information.  Cracking a software system by reverse engineering gives the discipline a bad reputation.

Examples of Badly Engineered Legacy Systems  Therac-25 Badly documented software. Poor error messages. Lack of customer support.

Q & A