Functional Representation and Understanding of Software: Technology and Application

by John Hartman and B. Chandrasekaran

IEEE Dual-Use Technologies & Applications Conference (1995)

Government and industry spend over $100 billion a year to preserve and extend existing software. Existing tools have shallow analysis and limited impact. Improved tools with deeper, human-like program understanding will reduce the huge cost of activities involving existing software.

We describe our automatic program understanding theory and technology. Our approach has two parts: understanding and representation. The UNPROG system uses programming plan knowledge to recognize deep programming concepts in existing programs. Functional Representation (FR) is a theory and language for representing understanding of devices, including programs. We use FR to capture program understanding to give the explanations required by applications.

Automatic reverse engineering and reengineering tools can use this understanding to produce more useful program descriptions and reengineered code. We describe what has been accomplished so far, and discuss how this strategic dual-use technology can be further developed and applied.


hartman@cis.ohio-state.edu
Original: 16-March-1995