A software experimental analysis approach that unifies static and dynamic techniques is presented. The goal was to develop practical means to obtain precise, in-depth, and relevant performance information, especially execution time, for guiding design decisions. First, computation cost functions of a program are derived. This is done by modeling the program using the computation structure model and then applying a flow analysis technique to derive the program's cost function. In addition, program instrumentation techniques are employed to measure control flows and to trace program variables. Finally, precise execution-time information is computed by evaluating the cost function against the measured control flows. The three classes of parameters (execution time, control flow and program variables) can be analyzed selectively and interactively; this gives much insight about an individual design alternative's actual behavior. To cope with tedious and frequent analyses of large and complex software, a tool COPES, was built that automates the static and dynamic techniques required. The implementation and usage of this tool are illustrated. >
['R. Ammar', 'Howard A. Sholl', 'Bin Qin']
A computation-oriented program experimentation system (COPES)