|
ABSTRACT
Comprehending and modifying software is at the heart of many software engineering tasks, and this explains the growing interest that software reverse engineering has gained in the last 20 years. Broadly speaking, reverse engineering is the process of analyzing a subject system to create representations of the system at a higher level of abstraction. This paper briefly presents an overview of the field of reverse engineering, reviews main achievements and areas of application, and highlights key open research issues for the future.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
|
| |
3
|
|
| |
4
|
|
| |
5
|
[5] G. Antoniol, E. Merlo, U. Villano, and M. Di Penta. Analyzing cloning evolution in the Linux Kernel. Information and Software Technology, 44:755-765, Oct 2002.
|
| |
6
|
|
| |
7
|
|
 |
8
|
|
| |
9
|
|
| |
10
|
|
| |
11
|
|
| |
12
|
|
| |
13
|
|
| |
14
|
|
 |
15
|
|
| |
16
|
|
| |
17
|
|
 |
18
|
|
| |
19
|
|
| |
20
|
|
| |
21
|
|
| |
22
|
|
| |
23
|
[23] G. Canfora, A. Cimitile, and M. Munro. Reverse engineering and reuse re-engineering. Journal of Software Maintenance and Evolution - Research and Practice, 6(2):53-72, 1994.
|
| |
24
|
[24] L. Cerulo. On the Use of Process Trails to Understand Software Development. PhD thesis, RCOST - University of Sannio, Italy, 2006.
|
| |
25
|
|
| |
26
|
|
| |
27
|
|
| |
28
|
|
| |
29
|
|
| |
30
|
|
| |
31
|
|
| |
32
|
|
| |
33
|
[33] J. R. Cordy, T. R. Dean, A. J. Malton, and K. A. Schneider. Source transformation in software engineering using the TXL transformation system. Information & Software Technology, 44(13):827-837, 2002.
|
| |
34
|
|
| |
35
|
[35] A. De Lucia. Program slicing: Methods and applications. In 1st IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2001), 10 November 2001, Florence, Italy, pages 144-151, 2001.
|
| |
36
|
|
| |
37
|
|
| |
38
|
|
| |
39
|
[39] S. Ducasse, M. Lanza, and S. Tichelaar. Moose: an extensible language-independent environment for reengineering object-oriented systems. In Proceedings of the Second International Symposium on Constructing Software Engineering Tools (CoSET 2000), 2000.
|
| |
40
|
|
| |
41
|
|
| |
42
|
|
| |
43
|
|
| |
44
|
[44] M. D. Ernst. Static and dynamic analysis: synergy and duality. In ICSE Workshop on Dynamic Analysis (WODA), Portland, Oregon, USA, May 2003.
|
| |
45
|
|
| |
46
|
|
| |
47
|
|
| |
48
|
|
| |
49
|
[49] R. Geiger, B. Fluri, H. C. Gall, and M. Pinzger. Relation of code clones and change couplings. In Proceedings of FASE 2005, number 3922 in Lecture Notes in Computer Science, pages 411-425, Vienna, Austria, March 2006. Springer.
|
| |
50
|
|
| |
51
|
|
| |
52
|
[52] Grammatech Inc. The CodeSurfer slicing system, 2002.
|
| |
53
|
|
| |
54
|
|
| |
55
|
[55] M. Harman. Software engineering optimization using search based techniques. In ICSE - Future of SE Track, 2007.
|
 |
56
|
|
| |
57
|
|
| |
58
|
|
| |
59
|
|
| |
60
|
[60] IEEE. std 1219: Standard for Software maintenance. IEEE Computer Society Press, Los Alamitos, CA, USA, 1998.
|
| |
61
|
[61] G. Jayaraman, V. P. Ranganath, and J. Hatcliff. Kaveri: Delivering the Indus Java program slicer to Eclipse. In Proceedings of FASE 2005, Edinburgh, UK, April 4-8, 2005, pages 269-272, 2005.
|
| |
62
|
|
| |
63
|
|
| |
64
|
|
| |
65
|
|
| |
66
|
|
| |
67
|
[67] R. Koschke. Atomic Architectural Component Recovery for Program Understanding and Evolution. PhD thesis, Univ. of Stuttgart, Germany, 2000.
|
| |
68
|
|
| |
69
|
|
| |
70
|
|
 |
71
|
Danny B. Lange , Yuichi Nakamura, Interactive visualization of design patterns can help in framework understanding, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.342-357, October 15-19, 1995, Austin, Texas, United States
|
| |
72
|
|
| |
73
|
|
 |
74
|
Xavier Llorà , Kumara Sastry , David E. Goldberg , Abhimanyu Gupta , Lalitha Lakshmi, Combating user fatigue in iGAs: partial ordering, support vector machines, and synthetic fitness, Proceedings of the 2005 conference on Genetic and evolutionary computation, June 25-29, 2005, Washington DC, USA
[doi> 10.1145/1068009.1068228]
|
| |
75
|
|
| |
76
|
|
| |
77
|
|
| |
78
|
|
| |
79
|
|
 |
80
|
|
| |
81
|
|
| |
82
|
|
 |
83
|
|
| |
84
|
Ettore Merlo , Pierre-Yves Gagné , Jean-Francois Girard , Kostas Kontogiannis , Laurie Hendren , Prakash Panangaden , Renato De Mori, Reengineering User Interfaces, IEEE Software, v.12 n.1, p.64-73, January 1995
[doi> 10.1109/52.363164]
|
 |
85
|
|
| |
86
|
|
| |
87
|
|
| |
88
|
|
| |
89
|
|
| |
90
|
|
 |
91
|
Hausi A. Müller , Jens H. Jahnke , Dennis B. Smith , Margaret-Anne Storey , Scott R. Tilley , Kenny Wong, Reverse engineering: a roadmap, Proceedings of the Conference on The Future of Software Engineering, p.47-60, June 04-11, 2000, Limerick, Ireland
[doi> 10.1145/336512.336526]
|
| |
92
|
|
| |
93
|
|
 |
94
|
|
| |
95
|
|
| |
96
|
|
| |
97
|
|
| |
98
|
|
| |
99
|
|
| |
100
|
|
| |
101
|
|
| |
102
|
|
| |
103
|
|
| |
104
|
[104] T. Systä. Static and Dynamic Reverse Engineering Techniques for Java Software Systems. PhD thesis, Univ. of Tampere, Finland, 2000.
|
| |
105
|
|
| |
106
|
|
| |
107
|
|
| |
108
|
|
| |
109
|
[109] M. Turner, D. Budgen, and P. Brereton. Turning software into a service. IEEE Computer, 36(10):38-44, 2003.
|
| |
110
|
|
| |
111
|
|
| |
112
|
[112] M. Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352-357, July 1984.
|
| |
113
|
|
| |
114
|
|
| |
115
|
|
| |
116
|
|
| |
117
|
Yiyun Yu , John Mylopoulos , Yiqiao Wang , Sotirios Liaskos , Alexei Lapouchnian , Ying Zou , Martin Littou , Julio C. S. P. Leite, RETR: Reverse Engineering to Requirements, Proceedings of the 12th Working Conference on Reverse Engineering, p.234, November 07-11, 2005
[doi> 10.1109/WCRE.2005.27]
|
|