St. Louis

May 15th - 16th, 2005

St. Louis, Missouri, USA

Collocated with the 27th IEEE International Conference on Software Engineering (ICSE 2005)

On-site registration opens the morning of Saturday May 14.

Sunday Evening Social Event


The Program [pdf] includes Technical Papers and special sessions with Short Papers and Tool Demos. Working Sessions include Textual Views of Source-Code to Support Comprehension and Interoperable Reengineering Services.


Doug Smith (Kestrel Institute, Palo Alto, California, USA) - Comprehension through Derivation

Abstract: We argue that to comprehend a software system is to have a handle on its requirements, specifications, and design decisions. These kinds of information support the reuse of system code for a variety of purposes and support its ongoing extension, migration, and evolution. Our work at Kestrel Institute has focused on ways to mechanize the development and evolution of software from formal specifications. By-products of such a process include formal records of design decisions and proofs, as well as executable code. In this approach, reuse can take place at non-code levels, including domain theories, specifications, and design knowledge. Evolution takes place by modifying requirements, specifications, or design decisions, and then reusing previous design structures. When restricted to particular application domains, the generation of correct-by-construction code from specifications can be completely automatic.

Margaret-Anne Storey (University of Victoria, British Columbia, Canada) - Theories, Methods, and Tools in Program Comprehension: Past, Present, and Future

Abstract: Program comprehension research can be characterized by both the theories that provide rich explanations about how programmers comprehend software, as well as the tools that are used to assist in comprehension tasks. During this talk I will review some of the key cognitive theories of program comprehension that have emerged over the past thirty years. Using these theories as a canvas, I will then explore how tools that are popular today have evolved to support program comprehension. Specifically, I will discuss how the theories and tools are related and reflect on the research methods that were used to construct the theories and evaluate the tools. The reviewed theories and tools will be further differentiated according to human characteristics, program characteristics, and the context for the various comprehension tasks. Finally, I will predict how these characteristics will change in the future and speculate on how a number of important research directions could lead to improvements in program comprehension tools and methods.


Program comprehension is a vital software engineering and maintenance activity. It is necessary to facilitate reuse, inspection, maintenance, reverse engineering, reengineering, migration, and extension of existing software systems. IWPC provides an opportunity for researchers and industry practitioners to present and discuss both the state-of-the art and the state-of-the-practice in the general area of program comprehension.

ICSE 2005 IEEE Computer Society