The Metaphor Project Summary Report: Technology for Analyzing Change and Composing Reusable, Real-Time Components and Applications
There is an increasing need for software systems to adaptively support changes in application-level objectives [Fayad96]. Real-time software evolution involves changes in software structure and meaning over time to satisfy changes in application requirements. The problem is that the process of changing real-time software often involves extensive impact of change (non-localized change) and substantial manual effort. The process can be costly and error-prone. The Metaphor Project hypothesis was that a systematic approach to thinking about change used with an analytical method for “localizing” software solution features that would be impacted by the same changes can result in a significant reduction in the effort needed to modify these solutions over time. The proposed work was the research and development of a model for organizing information about change, of algorithms to systematically and automatically localize change to basic solution features such as data/operations and control flow, and of a process for analyzing the basic features with respect to change and reuse. This report summarizes the Metaphor Project objectives, accomplishments, and technical as well as educational contributions.