Reverse Engineering When is it the most cost effective? Raymond Utz.

Slides:



Advertisements
Similar presentations
Software Re-engineering
Advertisements

Software Re-engineering
Chapter 11 Software Evolution
CMMI – Continuous as well as staged model CMMI capability levels – Incomplete, performed, managed, defined, quantitatively managed, optimized Example.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
1 Postdelivery Maintenance Xiaojun Qi. 2 Why Postdelivery Maintenance Is Necessary Corrective maintenance: To correct residual faults –Analysis, design,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Reverse Engineering: Legacy Systems Alexander Endert.
Software Evolution Managing the processes of software system change
Software Reengineering
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Driss Kettani Sommerville, 6th edition Software Engineering II Software re-engineering l Reorganising and modifying existing software systems to make them.
ERP Demystified (Second Edition) By Alexis Leon (2008)
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
The Re-engineering and Reuse of Software
Chapter 29 Maintenance and Reengineering
Software Re-engineering
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
The Center for Advanced Research In Software Engineering (ARISE) The University of Texas at Austin Reengineering of Large-Scale Polylingual Systems Mark.
11/09/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 1 & 2 The SWEBOK Chapter on Software Maintenance © IEEE
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
Software Engineering 2003 Jyrki Nummenmaa 1 CASE Tools CASE = Computer-Aided Software Engineering A set of tools to (optimally) assist in each.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
MathAmigo  Your Helping Hand. Why Use a Plan You can organize activities in two ways –Activity by Activity –By a Teaching Plan The advantage of the teaching.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE MAINTENANCE 1. TOPICS TO BE DISCUSSED.. Definition of Maintenance Software Maintenance Types of Maintenance Maintenance Process Need of Maintenance.
Figures – Chapter 9. Figure 9.1 A spiral model of development and evolution.
© 2007 by Prentice Hall Management Information Systems, 10/e Raymond McLeod and George Schell 1 Management Information Systems, 10/e Raymond McLeod Jr.
Mining System-User Interaction Traces for Use Case Models Mohammed El-Ramly Eleni Stroulia Paul Sorenson (presented by Hsiao-Ming Tsou)‏
RE’05 The 13 th International conference on Requirements Engineering Reverse Engineering Goal Models from Legacy Code Yijun Yu 1 Yiqiao Wang 1 John Mylopoulos.
©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.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Status of the LAr OO Reconstruction Srini Rajagopalan ATLAS Larg Week December 7, 1999.
Next week Tuesday Report on the project Demo of the working model. Today at the conclusion of lecture, class get together to figure out how you will present.
Requirements Engineering
1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 2.
CS451 Software Maintenance Yugi Lee STB #555 (816) Note: This lecture was designed based on Stephen Schach’s.
Object-Oriented Software Engineering Chapter 1 Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Reverse Engineering Dept. of I&CT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
CS223: Software Engineering Lecture 32: Software Maintenance.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
Contents What is Reverse Engineering (RE)? Why do we need Reverse Engineering? Scope and Tasks of Reverse Engineering Reverse Engineering Tools Reverse.
CS223: Software Engineering Lecture 33: Software Maintenance.
CS223: Software Engineering Lecture 34: Software Maintenance.
Maintenance Issues in Software Engineering
Environment Assessment
Introduction to Software Evolution and Maintenance
The number of times a number or expression (called a base) is used as a factor of repeated multiplication. Also called the power. 5⁴= 5 X 5 X 5 X 5 = 625.
2016 Maintenance Innovation Challenge
Software Maintenance.
Software Maintenance
Software Maintenance PPT By :Dr. R. Mall.
Software Maintenance Main issues: why maintenance is such an issue
Unit 5 15SE202 Software engineering Principles
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Re- engineeniering.
Introduction Software maintenance:
Software Re-engineering and Reverse Engineering
Types of Manufacturing
Chapter 1: Software and Software Engineering
Presentation transcript:

Reverse Engineering When is it the most cost effective? Raymond Utz

The Problem When is Reverse Engineering the correct choice over Forward Engineering?

Terminology Reverse Engineering - the process of recovering the design conditions of a legacy system that is currently being used and that is not fully documented. Forward Engineering - is the process of moving from high-level abstractions and models to the physical implementation of a system.

Benefits and Drawbacks of Reverse Engineering There is already a working system in place If tools are available then process can be automated to an extent The legacy system could be very hard to follow The lead software engineers for the legacy system are usually not around

What and How to measure Looked at the Algorithmic Model: –Effort = A x Size B x M –“A” is a constant factor for all local projects of the same type –“Size” is the number of lines of code or function points –“B” is usually assigned the values between 1 and 1.5 –“M” is a multiplier that consists of the sum of process, product, and development attributes

Effort = A x Size B x M The main difference between Reverse and Forward Engineering in this model would be the “Size” “M” would also vary because of the many factors it is based on

Ethics Therac 25 system –They Reverse Engineered code for different hardware due to the cheaper cost –A lot of the problems could have been stopped by just Forward Engineering a new system

Conclusion To improve a system’s maintainability no matter the size Reverse Engineering would be the best choice To try and migrate a small system to new hardware it would be beneficial to Reverse Engineer the design as a means to Reengineer the system. –For a larger system Forward Engineering would be beneficial