Event Details

Abstraction Patterns For Reverse Engineering

Presenter: Ian Bull - University of Victoria, Canada
Supervisor:

Date: Fri, February 14, 2003
Time: 13:30:00 - 00:00:00
Place: EOW 430

ABSTRACT

As software systems continue to grow in size, often requiring several millions of lines of code, automated methods to assist a software engineer's understanding are indispensable. Currently, reverse-engineering toolkits exist that extract and present information to a software engineer about a software system. The views these applications provide are produced by deducing new information and removing extraneous information from extracted program artifacts. It is this process which we consider to be abstraction. In order to handle large programs, the programs must be split into smaller, manageable pieces. Abstractions can then be performed on these smaller pieces and the abstracted parts linked together. In this thesis we formalize the notion of abstraction and linking to show how these two ideas can be used together to produce a number of useful views of large software systems. We have also cataloged the ways in which abstractions are performed in practice. Four reverse-engineering tools were studied and from these tools, eleven patterns of abstraction were uncovered. These patterns can be used as a basis for designing or enhancing reverse-engineering toolkits.