CDA: a system for understanding the dynamic properties of data processing programs

During software maintenance, it is of critical importance for maintenance staff to understand how a system works and when they make a change to part of the system, what effects this change will have on other parts of the system. It is observed that much of the program understanding process revolves around dynamic properties such as the states, state sequences and state transition operations. Hence, it is necessary to support the understanding process when the staff is reasoning about what could take place when the program is in operation and what could happen if part of the code is modified. CDA is a system for understanding the dynamic properties of large data processing programs. It allows the user to incrementally document their understanding of a program as working hypotheses and abstract operations with CDA comments. It then verifies these hypotheses to determine if they are justified. The justified hypotheses and abstract operations form an incremental specification of the program. Over time, the documentation improves in quality and completeness as new comments are added to justify and check the assumptions underlying new changes made to the code.<<ETX>>