Reverse Engineering Reading List for Beginners
1. Reverse Engineering in General
- Basili, V. R., & Mills, H. D. (1982). Understanding and documenting programs. IEEE Transactions on Software Engineering, SE-8, 270-283.
- Biggerstaff, T. J., Mitbander, B. G., & Webster, D. E. (1994). Program understanding and the concept assignment problem. Communications of the ACM, 37, 72-82.
- Chikofsky, E. J., & Cross, J. H. II. (1990). Reverse engineering and design recovery: A taxonomy. IEEE Software, 7, 13-17.
- Lang, S., von Mayrhauser, A. (1997). Building a research infrastructure for program comprehension. In 5th Workshop on Program Comprehension (pp. 165-168). Los Alamitos, CA: IEEE.
- Rugaber, S., Ornburn, S. B., LeBlanc, R. J., Jr. (1990). Recognizing design decisions in programs. IEEE Software, 7, 46-54.
- Rugaber, S. (1996). Program understanding. In A. Kent and J. G. Williams (Eds.), Encyclopedia of Computer Science and Technology (pp. 341-368).
2. Psychology of program comprehension
- Pennington, N. Comprehension strategies in programming. In G. Olson, S. Sheppard, and E. Soloway (eds.), Empirical Studies of Programmers: Second Workshop (pp. 100-113). Norwood, NJ: Ablex.
- Pennington, N., & Nicolich, R. (1991). Transfer of training between programming subtasks: Is knowledge really use specific? In J. Koenemann-Belliveau, T. G. Moher, & S. P. Robertson (eds.), Empirical Studies of Programmers: Fourth Workshop (pp. 156-176). Norwood, NJ: Ablex.
- Quilici, A. (1994). A memory-based approach to recognizing programming plans. Communications of the ACM, 37, 84-93.
- von Mayrhauser, A., & Vans, A. M. (1994).Program Understanding - A survey. Technical Report CS94-120, Department of Computer Science. Colorado State Universy
- Ye, N., & Salvendy, G. (1994). Quantitative and Qualitative differences between experts and novices in chunking computer software knowledge. International Journal of Human-Computer Interaction, 6, 1, 105-118.
3. Methodologies
- Abowd, G., Goel, A., Jerding, D. F., McCracken, M., Moore, M., Murdock, J. W., Potts, C., Rugaber, S., & Wills, L. (1997). MORALE--Mission Oriented Architectural Legacy Evolution. In Proceedings International Conference on Software Maintenance '97.
- Murphy, G. C., Notkin, D., Sullivan, K. (1995). Software reflection models: Bridging the gap between source and high-level models. Sigsoft 95.
- Rugaber, S. (1994). Domain analysis and reverse engineering.
- Rugaber, S., Stirewalt, K., & Wills, L. (1996). Understanding interleaving code. Journal of Automated Software Engineering, 3, 47-76.
4. Techniques
- Jerding, D., Rugaber, S. (1997). Using visualization for architectural localization and extraction.
- Markosian, L., Newcomb, P., Brand, R., Burson, S., & Kitzmiller, T. (1994). Using an enabling technology to reengineer legacy systems. Communications of the ACM, 37, 58-70.
- Nanduri, S., & Rugaber, S. (1995). Requirements validation via natural language parsing. In Proceedings of the 28th Hawaii International Conference on System Sciences.
- Ning, J. Q., Engberts, A., Kozaczynski, W. (1994). Automated support for legacy code understanding. Communications of the ACM, 37, 50-57.
- Oman, P. W., & Cook, C. R. (1990). The book paradigm for improved maintenance. IEEE Software, 7, 39-45.
- Rich, C., & Wills, L. M. (1990). Recognizing a program's design: A graph-parsing approach. IEEE Software, 7, 82-89.
- Wills, L. (1993). Flexible control for program recognition. In Working Conference on Reverse Engineering (pp. 134-143).
List created by Terry Shikano