19
Leiden University. The university to discover. Mohd Hafeez Osman ([email protected]) SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute of Advanced Computer Science (LIACS), Leiden University, the Netherlands Presenter: Mohd Hafeez Osman

Leiden University. The university to discover. Mohd Hafeez Osman ([email protected])[email protected] SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Embed Size (px)

Citation preview

Page 1: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

Mohd Hafeez Osman ([email protected])

SOFTWARE REVERSE ENGINEERING

Leiden Advanced Institute of Advanced Computer Science (LIACS),

Leiden University, the Netherlands

Presenter: Mohd Hafeez Osman

Page 2: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

OVERVIEW 1. HISTORY

2. SCENARIO

3. INTRODUCTION

4. REVERSE ENGINEERING

5. EXAMPLE TOOLS

6. ISSUE

7. CONCLUSION

REFERENCE

Q&A

2

Page 3: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

1. History

a. Reverse engineering.. The origins…

“The process of developing a set of specification for a complex hardware system by an orderly examination of specimens of that system.[13].

b. Objective

To clone the original hardware system.

3

Page 4: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

2. ScenarioA company wins a maintenance contract to maintain a Office Automation System. However, the list of document that the client only has are as follows :

i. Software requirement specification (SRS)ii. Old Software Design Document (SDD)iii. Object code/ java class file /source code

How to understand the software structure?

4

Page 5: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

3. Introduction

a. Reverse engineering is the process of analyzing a subject system to [16]

• Identify the system’s component and their relationship

• Create representations of the system in another form or at a higher level of abstraction.

5

Page 6: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

3. Introduction

b. Usage of Reverse Engineering

• To support software engineers in the process of analyzing and understanding complex software systems during maintenance activities [13].

• To retrieve missing design documents from the existing source code in an abstract model UML format for studying both the static structure and dynamic behaviour of a system.[2]

6

Page 7: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

4. Reverse Engineeringa. Reverse Engineering and Related Topic [16]

i. Forward Engineering Traditional process of moving high level abstraction and logical to

implementation of a system.

7

Page 8: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

4. Reverse Engineeringa. Reverse Engineering and Related Topic [16]

ii. Reverse Engineering It is a process of examination, not change of replicate. Two subarea of reverse engineering are redocumentation and design recovery.

8

Page 9: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

4. Reverse Engineeringa. Reverse Engineering and Related Topic [16]

iii. Design recoveryReproduce all information required for a person to fully understand about the system

iv. RedocumentationCreation or revision of a semantically equivalent representation within the same relative abstraction level

9

Page 10: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

4. Reverse Engineeringa. Reverse Engineering and Related Topic [16]

v. RestructuringTransformation from one presentation to another while remain system’s external behavior (functionality and semantic)

10

Page 11: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

4. Reverse Engineeringa. Reverse Engineering and Related Topic [16]

vi. ReengineeringIt is also known as reclamation and renovation. Reengineering exam and alter subject system to reconstitute it in a new from and the subsequent implementation of the new form.

11

Page 12: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

4. Reverse Engineeringb. Reverse Engineering Model

Input :

Software work product such as :a.Source code (.c, .cpp, .java)b.Object code (.o, .class)

12

Page 13: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

4. Reverse Engineeringb. Reverse Engineering Model

Process :i. Parser, Semantic analyzer

Analyze input ii . Information Base

Store analyzed informationiii. View composer

Prepare information to be viewed as output

13

Page 14: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

4. Reverse Engineeringb. Reverse Engineering Model

Output :Result of Reverse Engineering that may contain item as follows i.Format (XMI/XML/GXL)ii.Graphics (UML)iii.Documentation (javadoc)iv.Metrics (soft. Metric)v.Logicvi.Reports

14

Page 15: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

Tool URL License Operating

systems Supported languages

AmaterasUML Eclipse plugin

1.2.2 http://amateras.source.jp free

Microsoft Windows Linux

Mac OS X Java

ArgoUML 0.24 http://argouml.tigris.org free

Microsoft Windows

Linux Mac OS X

Java

IBM Rational Software

Architect 7.0

http://www-306.ibm.com/software/ awdtools/architect/swarchitect/index.

html comm

Microsoft Windows

Linux Java

JGrasp 1.8.6 http://www.jgrasp.org/ free Microsoft Windows Mac OS X

Java

Microsoft Visio 2007

http://office.microsoft.com/en-us/visio/default.aspx

comm Microsoft Windows

C++ C#

Visual Basic

NetBeans 5.5 http://www.netbeans.org/ free

Microsoft Windows Linux

Mac OS X Solaris

Java

StarUML 5.0 http://staruml.sourceforge.net/en free Microsoft Windows

Java C++ C#

VisualParadigm for UML 6.0

Enterprise Edition

http://www.visual-paradigm.com comm Microsoft Windows

Java C++ Ada PHP

5. Example Tools

[22]

15

Page 16: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

6. Issue

[22]

16

Several issue(s) encountered

a. Do reverse engineering tools extract information that not need?

b. How to validate the correctness of the result?

c. What type of diagram do reverse engineering tool capable to reversed?

d. How to choose a good tool?

Page 17: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

7. Conclusion 17

For conclusion :

Reverse engineering tools can be used to enhance system comprehension and retrieving missing design document. Although the correctness and completeness of the tools result is varies and sometimes questionable, however, it can be a good starting option to understand a system.

Page 18: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

Reference [2] Reverse Engineering UML class and sequence diagrams from Java code with IBM Rational Software Architect, Fenglian Xu, Alex Wood, IBM Technical Library United Kingdom, 2008 URL : http://www.ibm.com/developerworks/rational/library/08/0610_xu-wood/index.html

[13] A Comparison of four Reverse Engineering Tools, Bernt Bellay and Harald Gall, Technical University of Vienna, Austria, 1997 Proceedings of the Fourth Working Conference on Reverse Engineering

[16] Reverse Engineering and Design Recovery : A taxonomy, Elliot J. Chikofsky, James H. Cross II, IEEE Software, January 1990

[22] Evaluation of some CASE tools for reverse engineering and application generators, Krešimir Fertalj, Faculty of Electrical Engineering and Computing, University of Zagreb, 2007URL : http://www.slidefinder.net/e/evaluation_case_tools_reverse_engineering/5810297

Page 19: Leiden University. The university to discover. Mohd Hafeez Osman (hosman@liacs.nl)hosman@liacs.nl SOFTWARE REVERSE ENGINEERING Leiden Advanced Institute

Leiden University. The university to discover.

Sekian. Terima Kasih