Development of computer software requires that programs be debugged, validated, modified, and reused. In order to perform these tasks, one must understand precisely what a particular program does. Supporting documentation that describes the development of a program in adequate detail is rarely available. This thesis describes the development of a software tool that facilitates analysis of programs. The software tool constructed takes a program written in C, C++, or Java language as input and produces a script of the operation of the program in terms that are easier to understand than the original program. The program analysis performed by the tool developed in this thesis is based on pathwise decomposition methodology. The outputs of the tool include a set of trace subprograms relying on Huang’s state constraint notation that is functionally equivalent to the original program but is easier to understand, and the user is allowed to analyze and edit the results of program decomposition process interactively. The set of trace subprograms produced by this tool provides an effective means to analyze a C, C++, or Java program. With the help of the tool developed in this research, programs will be comprehended faster and easier, and the results of the tool can be useful in software maintenance and software reuse.