Software Reverse Engineering: Program Understanding
We investigate the application of artificial intelligence plan recognition,
constraint satisfaction, and other algorithms to perform reverse-engineering
and program understanding based on known programming knowledge such as abstract
data types and program schemas. We demonstrate the feasibility of such
approaches by performing empirical systematic tests on real and simulated
legacy code examples.
Our Current Research Program
- Constraint-basd Design Recovery for Software Re-engineering: Theory and Experiments. Book with Alex Quilici and Qiang Yang. Kluwer, 1997.
- Program Plan Recognition For Year 2000 Tools. Conference (WCRE-97)
article with Arie van Deursen and Alex Quilici.
- New Experiments With A Constraint-Based Approach To Program Plan Matching. Conference (WCRE-97) article with Alex Quilici and Yongjun Zhang.
Ph.D. (1996) Dissertation
Please Note: The research in this dissertation is somewhat dated, with the results presented in subsequent publications significantly advancing and clarifying the results presented. A much more readable and comprehensive discussion of these results (including new results up to and including Fall, 1997) is available in the form of a book now available from Kluwer Publishing. You can order this book HERE .
- A Method of Program Understanding using Constraint Satisfaction for Software Reverse Engineering (1996).
Past Publications
Check out my publication list
Previews of What's Coming Next ...
- Applying Plan Recognition Algorithms
to Program Understanding. With Qiang Yang and Alex Quilici (Journal
article in review, 1997).
- A New Hierarchical Constraint-Satisfaction Algorithm for Plan Recognition.
- Incorporating Concept Recovery in an Industrial Re-engineering Toolset,
1998.
- Leveraging the Year 2000 Re-engineering process with Concept Recovery,
1998.
Unpublished Presentations and Etc
Some Shared Thesis Data
Members of my Doctoral Committee
- Supervisor Dr. Qiang
Yang, AI, planning, knowledge-based software engineering,
constraint satisfaction.
- Dr. Rick Kazman, HCI, software engineering, computational linguistics.
- Dr. Robin Cohen, AI, user interfaces, natural language, computational linguistics, social issues in computing.
- Dr. Grant Weddell, software engineering, databases.
- Extra-Departmental member Dr. Rudolph Seviora, reliability engineering, automated software development and maintenance assistance, machine understanding of software.
- External member Dr. Hausi
Muller, software engineering, software analysis, reverse
engineering. See also the Rigi homepage.
Related Interests ...
- Constraint Satisfaction problems. In particular, I am interested in
investigating novel strategies for hybridization of search and
constraint propagation, and in application of these to some real
problems. I have built a tool, MOTORS, that can combine CSP search and
constraint propagation algorithms to form various problem solvers.
- Non-linear planning, abstraction, and search. Specifically I built a
non-linear planner known as AbTweak , based primarily on the earlier work of Yang and Tenenberg, and implemented
Left Wedge, a novel search strategy for abstraction.
Questions or Comments?
Steven Woods, Ph.D.