Public reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing this collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing this burden to Department of Defense, Washington Headquarters Services, Directorate for Information A This project has developed a theoretical framework for describing and reasoning about changes in software. The theory provides a basis for the implementation of tools to support software maintenance tasks in the presence of changes. Specific contributions include the choice calculus, a formalism for representing variation and changes in structured documents. The choice calculus offers laws and transformation rules that make variation representations flexible. A design theory for the choice calculus has been developed for the systematic elimination of redundancies or dead variants. Another focus of this project has been the development of methods for effectively checking properties of variational software, which has led to the design of variational type systems and new unification algorithms. The practical work with variational software is supported through a user study that has demonstrated that the dimension-structured choice constructs of the choice calculus help users reason about variational code faster and more accurately and ultimately support code understanding better than traditional CPP annotations. Finally, a domain-specific language (DSL) has been developed which makes it possible to write programs to query, manipulate, and analyze variation structures.
19Erwig, Martin (541) 737-8893