| A method is proposed to analyze the behavior of sequential algorithms. Most current methodologies are in the form of semantic analysis, domain decomposition or fixed point approximation. These tools, though useful in design, verification and testing, are not general enough to characterize the behavior at run-time without the aid of a correct set of specifications. In addition, a thorough understanding of the program and of the mathematical notations are necessary to use these tools effectively. The methodology described in this thesis is a general purpose tool which addresses and alleviates the problem of having to be an applications expert by appealing to the basic structures and data domains of the program to attain a better understanding of program behavior. The proposed methodology is based on the extraction of two general features of program behavior: feasibility and progress. These two features are used to characterize the notion of a correct execution sequence. An automated program visualization tool was developed to illustrate the program's behavior is terms of the two properties proposed. Wheels take as input program code, reverse engineers the behavior by analyzing the code and then visually relays the extracted information back to the user allowing the user to gain a visual understanding of the program's behavior. The intent of this research is to facilitate the means of learning and teaching as well as provide for run-time assurance to check the expected behavior. |