An object-oriented program is difficult to analyze even when the program is clearly structured. The difficulty results from the difference between static program structure (the structure of the source code) and program behavior. This difference impedes especially the analysis of dynamic properties for testing and documenting program behavior and hence the incremental development of object-oriented programs.
The results of this project support goal-oriented analysis of program behavior. A goal is expressed as a hypothesis about an object architecture, i.e., a mutably graph of interacting objects. The special-purpose language OASE was designed for stating hypotheses based on the source code of a program. OASE-scrips control a tool that automatically checks program executions against hypotheses. Using this tool an analysis is performed in several steps. Depending on the result of one step an analysis is finished, the hypothesis is refined, or another program execution is checked against the same hypothesis. By means of this procedure, hypotheses-driven analysis of program behavior helps to ensure quality of highly dynamic object-oriented programs.