|
Within the overall process of software evolution or software maintenance falls the specific task of understanding the existing system. This is non-trivial; estimates are that up to 50% of the software maintenance task consists of program understanding. This is due to many factors, not the least of which is the `cardinal, fundamental law of programming':
-
It's harder to read code than to write it.
Reverse engineering, or program comprehension, is the focus of a number of professional organizations and academic research groups. The following internet resources provide a range of related information, ranging from introductory tutorials to publication of the latest research.
- Tutorials
-
On-line introductions to the terminology and techniques of understanding existing software include:
- Bibliographies
-
There's a large body of published materials covering the research and practice of reverse engineering. Lists of these writings include:
- Academic and Government Sites
-
There are a number of academic and government groups which are focused on legacy code and reverse engineering:
- Organizations
-
- Conferences
-
For those willing to put up with the rigors of travels to locations such as Florida and Hawaii, for the sake of
a suntan enlarging and sharing their knowledge, there are number of related conferences:
- ICPC - International Conference on Program Comprehension
- ICPC 2008 (16th) Amsterdam, The Netherlands June 10-13, 2008
- WCRE - Working Conference on Reverse Engineering
- WCRE 2007 (14th) Vancouver, CA Oct 28-31, 2007
- Related Subjects
-
Reverse engineering of software has dual meanings. The focus of this page, and Imagix Corporation, is on reverse engineering as a way to improve understanding of source code. For the alternative meaning of reverse engineering, involving executable binaries, a starting point for a web search can be found at the Decompilation Wiki.
|