UVic Reverse Engineering Tutorial
Program-Transformation.Org: The Program Transformation Wiki
Understanding Software Systems Using Reverse Engineering Technologies: Research and Practice
Hausi A. Müller, Department of Computer Science, University of Victoria
ICSE-18 tutorial, 1996.
Abstract
The need for maintaining and improving software systems has risen dramatically over the past decade. Dealing with old software systems, which
constitute billion-dollar assets to corporations and governments, has been recognized as a critical problem by industry, academia, and entrepreneurs.
Studies indicate that 50-90% of the time spent in Re-engineering software systems is used to understand these systems. As a result, interest in
software re-engineering technologies, and in particular technologies for understanding software, has exploded. Re-engineering involves capturing,
preserving, and extending knowledge about software, analyzing and understanding software, and finally changing, improving, and evolving software.
Reverse engineering approaches have been particularly useful in the re-engineering arena. Reverse engineering is the process of generating new
information about software such as synthesizing abstractions and generating different views.
This tutorial concentrates on the
ProgramUnderstanding aspects of
ReEngineering large, existing software systems. The primary purpose of the
tutorial is to review the state-of-the-art of program understanding with particular focus on
ReverseEngineering technologies in the context of
SoftwareMaintenance and
SoftwareEvolution. A secondary goal is to outline key research issues being pursued by various industrial and
academic groups around the world.
The tutorial is intended for practitioners and researchers with interest in re-ngineering, maintenance, and evolution of existing software systems.
See
http://www.rigi.csc.uvic.ca/UVicRevTut/UVicRevTut.html for the slides and references.
CategoryTutorial