ABSTRACT

The mixed-strategy approach to software maintenance and evolution emphasizes reuse of knowledge of past changes to implement new changes. Explicit representation of this knowledge in executable form is hardly possible at the level of contemporary programs. Mixed-strategy uses the generative technique of XVCL to facilitate explicit handling of design-level alternatives in a visible executable form. The name “mixed-strategy” is appropriate because it relies on conventional program languages and design techniques to define a core of program solutions, falling back on XVCL to handle issues related to changes and to the overall control over component versions and system releases produced during evolution. Reuse-based evolution is achieved by systematically identifying software similarity patterns and unifying them with generic, adaptable mixed-strategy software representations.