Towards Automated Software Architectures Design Using

advertisement
SOFTWARE REVERSE ENGINEERING
Presenter: Mohd Hafeez Osman
Mohd Hafeez Osman (hosman@liacs.nl)
Leiden Advanced Institute of Advanced Computer Science (LIACS),
Leiden University, the Netherlands
Leiden University. The university to discover.
OVERVIEW
2
1. HISTORY
2. SCENARIO
3. INTRODUCTION
4. REVERSE ENGINEERING
5. EXAMPLE TOOLS
6. ISSUE
7. CONCLUSION
REFERENCE
Q&A
Leiden University. The university to discover.
1. History
3
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.
Leiden University. The university to discover.
2. Scenario
4
A 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?
Leiden University. The university to discover.
3. Introduction
5
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.
Leiden University. The university to discover.
3. Introduction
6
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]
Leiden University. The university to discover.
4. Reverse Engineering
a.
7
Reverse Engineering and Related Topic [16]
i. Forward Engineering
Traditional process of moving high level abstraction and logical to
implementation of a system.
Leiden University. The university to discover.
4. Reverse Engineering
a.
8
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.
Leiden University. The university to discover.
4. Reverse Engineering
a.
9
Reverse Engineering and Related Topic [16]
iii. Design recovery
Reproduce all information required for a person to fully understand about
the system
iv. Redocumentation
Creation or revision of a semantically equivalent representation within the
same relative abstraction level
Leiden University. The university to discover.
4. Reverse Engineering
a.
10
Reverse Engineering and Related Topic [16]
v.
Restructuring
Transformation from one presentation to another while remain system’s
external behavior (functionality and semantic)
Leiden University. The university to discover.
4. Reverse Engineering
a.
11
Reverse Engineering and Related Topic [16]
vi. Reengineering
It 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.
Leiden University. The university to discover.
4. Reverse Engineering
b.
12
Reverse Engineering Model
Input :
Software work product such as :
a. Source code (.c, .cpp, .java)
b. Object code (.o, .class)
Leiden University. The university to discover.
4. Reverse Engineering
b.
13
Reverse Engineering Model
Process :
i. Parser, Semantic analyzer
Analyze input
ii . Information Base
Store analyzed information
iii. View composer
Prepare information to be viewed as output
Leiden University. The university to discover.
4. Reverse Engineering
b.
14
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. Logic
vi. Reports
Leiden University. The university to discover.
5. Example Tools
15
Operating
systems
Microsoft
Windows Linux
Mac OS X
Microsoft
Windows
Linux
Mac OS X
Microsoft
Windows
Linux
Microsoft
Windows
Mac OS X
Supported
languages
Tool
URL
License
AmaterasUML
Eclipse plugin
1.2.2
http://amateras.source.jp
free
ArgoUML 0.24
http://argouml.tigris.org
free
IBM Rational
Software
Architect 7.0
http://www-306.ibm.com/software/
awdtools/architect/swarchitect/index.
html
comm
JGrasp 1.8.6
http://www.jgrasp.org/
free
Microsoft Visio
2007
http://office.microsoft.com/enus/visio/default.aspx
comm
Microsoft
Windows
C++
C#
Visual Basic
Java
NetBeans 5.5
http://www.netbeans.org/
free
Microsoft
Windows Linux
Mac OS X
Solaris
StarUML 5.0
http://staruml.sourceforge.net/en
free
Microsoft
Windows
VisualParadigm
for UML 6.0
Enterprise
Edition
http://www.visual-paradigm.com
comm
Microsoft
Windows
Java
Java
Java
Java
Java
C++
C#
Java
C++
Ada
PHP
[22]
Leiden University. The university to discover.
6. Issue
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?
[22]
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.
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, 2007
URL : http://www.slidefinder.net/e/evaluation_case_tools_reverse_engineering/5810297
Leiden University. The university to discover.
Sekian. Terima Kasih
Leiden University. The university to discover.
Download