Why teach reverse engineering?

Muhammad Raza Ali
2005 Software engineering notes  
Software reverse engineering is a fascinating discipline of software engineering. But it has failed to attract attention from students. Largely due to the facts that many universities around the world do not offer relevant courses, developing new software has always been considered superior then to maintain existing systems. But owing to the arrival of the internet, and client-server technology. Many organizations wish to adapt their existing systems. Thus the trend has somewhat shifted towards
more » ... software evolution and maintenance. And now, more than ever before we need software engineers who can work effectively with legacy systems. In this paper I wish to highlight importance of incorporating Reverse engineering concepts and techniques into software engineering curriculum. I will start with a brief overview of reverse engineering concepts, and then discuss advantages of teaching reverse engineering. Keywords Legacy systems, software engineering, software reverse engineering, reengineering, program understanding, software evolution and maintenance, obfuscate, Internet, and plagiarism.
doi:10.1145/1082983.1083004 fatcat:z7ifldjiz5hi7hhgfiav5xmtf4