reverse engineering – recent advances and applications - OpenLibra
reverse engineering – recent advances and applications - OpenLibra
reverse engineering – recent advances and applications - OpenLibra
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
X Preface<br />
answering specific questions on the function, structure, <strong>and</strong> behavior of the artifact<br />
under study. Secondly, new data sources, such as 3D scanners, cell microarrays, <strong>and</strong> a<br />
large variety of sensors, has made new types of data sources available from which<br />
detailed insights about mechanical <strong>and</strong> living structures can be extracted.<br />
Given the above factors, <strong>reverse</strong> <strong>engineering</strong> <strong>applications</strong>, techniques, <strong>and</strong> tools have<br />
shown a strong development <strong>and</strong> diversification. However, in the same time, the types<br />
of questions asked by end users <strong>and</strong> stakeholders have become increasingly complex.<br />
For example, while a decade ago the <strong>reverse</strong> <strong>engineering</strong> of a software application<br />
would typically imply extracting the static structure of an isolated code base of tens of<br />
thous<strong>and</strong>s of lines of code written in a single programming language, current software<br />
<strong>reverse</strong> <strong>engineering</strong> aims at extracting structural, behavioral, <strong>and</strong> evolutionary<br />
patterns from enterprise <strong>applications</strong> of millions of lines of code written in several<br />
programming languages, running on several machines, <strong>and</strong> developed by hundreds of<br />
individuals over many years. Similarly, <strong>reverse</strong> <strong>engineering</strong> the geometric <strong>and</strong><br />
mechanical properties of physical shapes has evolved from the extraction of coarse<br />
surface models to the generation of part-whole descriptions of complex articulated<br />
shapes with the submillimeter accuracy required for manufacturing processes. This<br />
has fostered the creation of new <strong>reverse</strong> <strong>engineering</strong> techniques <strong>and</strong> tools.<br />
This book gives an overview of <strong>recent</strong> <strong>advances</strong> in <strong>reverse</strong> <strong>engineering</strong> techniques,<br />
tools, <strong>and</strong> application domains. The aim of the book is, on the one h<strong>and</strong>, to provide the<br />
reader with a comprehensive sample of the possibilities that <strong>reverse</strong> <strong>engineering</strong><br />
currently offers in various application domains, <strong>and</strong> on the other h<strong>and</strong> to highlight the<br />
current research-level <strong>and</strong> practical challenges that <strong>reverse</strong> <strong>engineering</strong> techniques <strong>and</strong><br />
tools are faced.<br />
Structure of this book<br />
To provide a broad view on <strong>reverse</strong> <strong>engineering</strong>, the book is divided into three parts:<br />
software <strong>reverse</strong> <strong>engineering</strong>, <strong>reverse</strong> <strong>engineering</strong> shapes, <strong>and</strong> <strong>reverse</strong> <strong>engineering</strong> in<br />
medical <strong>and</strong> life sciences. Each part contains several chapters covering <strong>applications</strong>,<br />
techniques, <strong>and</strong> tools for <strong>reverse</strong> <strong>engineering</strong> relevant to specific use-cases in the<br />
respective application domain. An overview of the structure of the book is given below.<br />
Part 1: Software Reverse Engineering<br />
In part 1, we look at <strong>reverse</strong> <strong>engineering</strong> the function, structure, <strong>and</strong> behavior of large<br />
software-intensive <strong>applications</strong>. The main business driver behind software <strong>reverse</strong><br />
<strong>engineering</strong> is the increased effort <strong>and</strong> cost related to maintainting existing software<br />
<strong>applications</strong> <strong>and</strong> designing new <strong>applications</strong> that wish to reuse existing legacy software.<br />
As this cost increases, getting detailed information on the structure, run-time behavior,<br />
<strong>and</strong> quality attributes of existing software <strong>applications</strong> becomes highly valuable.<br />
In Chapter 1, Kienle et al. Give a comprehensive overview of <strong>reverse</strong> <strong>engineering</strong> tools<br />
<strong>and</strong> techniques applied to embedded software. Apart from detailing the various pro’s