Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.

Slides:



Advertisements
Similar presentations
Systems Development Environment
Advertisements

May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
Data Model driven applications using CASE Data Models as the nucleus of software development in a Computer Aided Software Engineering environment.
CMMI – Continuous as well as staged model CMMI capability levels – Incomplete, performed, managed, defined, quantitatively managed, optimized Example.
IBM Business Consulting Services © Copyright IBM Corporation 2006 Unified Process March 27, 2006 Chris Armstrong.
Rational Unified Process
Reverse Engineering When is it the most cost effective? Raymond Utz.
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
SE 555 Software Requirements & Specification Requirements Management.
Unit Five – Transforming Organizations
Introduction to Software Engineering Dr. Basem Alkazemi
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Lecture Nine Database Planning, Design, and Administration
DITSCAP Phase 2 - Verification Pramod Jampala Christopher Swenson.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
CHAPTER 19 Building Software.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
The Re-engineering and Reuse of Software
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
UML - Development Process 1 Software Development Process Using UML (2)
Overview of the Database Development Process
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
RUP Fundamentals - Instructor Notes
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Appendix D McGraw-Hill/Irwin Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
ITEC224 Database Programming
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
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.
Systems Analysis and Design in a Changing World, 3rd Edition
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
PRJ566 Project Planning & Management Software Architecture.
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
Smart Home Technologies
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
Software Architecture in the Future 1960s. Assembly languages, subroutines, semicolon as connectors 1970s. Structuring of programs to achieve qualities.
Prof. Hany H. Ammar, CSEE, WVU, and
Reverse Engineering. Reverse engineering is the general process of analyzing a technology specifically to ascertain how it was designed or how it operates.
Requirement Engineering
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Chapter 9 Database Planning, Design, and Administration Transparencies © Pearson Education Limited 1995, 2005.
UML Diagrams By Daniel Damaris Novarianto S..
Environment Assessment
CASE Tools and Joint and Rapid Application Development
Evaluating Existing Systems
Software Maintenance.
Evaluating Existing Systems
Chapter 20 Object-Oriented Analysis and Design
For University Use Only
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Presentation transcript:

Karolina Muszyńska

Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to understand it, build a copy or improve it Reverse engineering is used to examine software or software components to figure out how they’re processing business rules, where they’re sourcing data, and how they make decisions. Basically, you want to understand how the software is supporting the business. The use of this elicitation technique is increasing across the field because of all the legacy systems (old computer systems) which need to be updated or replaced. Applications built 30 years ago have to be reverse engineered so people can figure out how they work. 2

 When you are not sure what is happening within your code or need to understand how an old computer system calculates a certain field (business users may ask about how the system supports the business process)  When the software documentation is out of date (sometimes there is no documentation at all)  When business users are not aware of the business rules being enforced (t he business may have changed in the years since the rules were hard-coded into the application)  When you are interfacing systems and need to know the correctness of data in each system (t his challenge is one you face when you create ongoing interfaces or one- time data migrations) 3

 As a learning tool  As a way to make new, compatible products that are cheaper than what is currently on the market  For making software interoperate more effectively or to bridge data between different operating systems or databases  To uncover the undocumented features of commercial products 4

 Security flaws  Questionable privacy practices  Two main areas of threats to reverse-engineering ◦ shrink-wrap licenses that explicitly prohibit anyone who opens or uses the software from reverse-engineering it ◦ Digital Millennium Copyright Act (DMCA), which prohibits the creation or dissemination of tools or information that could be used to break technological safeguards that protect software from being copied 5

 One important activity in reverse engineering is to recover the architecture of the system – there must be a process to rebuild the UML models that together provide the architectural view of the system  In RUP, the construction of the use-case model is central to the reverse engineering process: ◦ use cases are used to recover the business process model the system supports ◦ use cases are analyzed to build the system analysis model that represents a hypothetical architecture for the software ◦ use cases are used as the source of scenarios to be run to find the software elements that are involved in the implementation of the business functions 6 Based on:

 RUP reverse engineering process proceeds through the following three steps: 1.Assess the scope of the reengineering project 2.Build the abstract models 3.Recover the architecture of the software 7 Based on:

 This step includes: ◦ Developing vision ◦ Developing business cases ◦ Finding actors and use cases ◦ Identifying and assessing risks  In this initial step, the business scope and desired quality attributes of the reengineered system are set. Usually, these quality attributes are defined beforehand, and the system is restructured to fulfill them. 8 Based on:

 If the quality of the actual code is too bad, it may not be worth the effort of complete reengineering: ◦ management may decide to extract and reengineer some critical component only ◦ when the system structure is so bad that no useful piece of code can be reused, the reengineering work could be limited to the extraction of the knowledge embedded in the old system to help specify a new one  This step is iterative: the more we know about the actual structure of the system, the better we can assess the economic relevance of the restructuring of the system 9 Based on:

 This step includes: ◦ Detailing a business use case ◦ Finding business workers and entities ◦ Detailing a business entity ◦ Database analysis  Building the architectural model requires understanding the system itself, since its source code does not offer much help; as an aid in system understanding, we can create a hypothetical architecture to potentially be discovered in the code  A representation of the business process the system is intended to support as well as a tentative domain model can be built, by gathering system usage information from all the people involved 10 Based on:

 This step contains the following tasks: ◦ Analysis of the Implementation Model ◦ Running the use cases ◦ Analyzing the call graph ◦ Mapping the functions to the Implementation Model ◦ Validating the hypothetical architecture ◦ Rebuilding the high-level architecture  The problem is to create the traceability link between the high-level analysis model elements and the low-level software components 11 Based on:

 One of the key problems in reverse engineering a legacy software system is to understand the code and build an architectural representation of it  One possible solution is the reconstruction of the UML models through RUP  Some application, like for example Microsoft Visual Studio.NET, can be used to reverse engineer applications into UML or other development diagrams 12 Summary