Compositional software reuse with case-based reasoning

Case-based reasoning can be applied to software reuse. The approach presented goes beyond furnishing a library of potentially reusable modules and provides a tool that supports the process of reusing software. It uses case-based reasoning to add flexibility and adaptability to the compositional model of reuse. The authors describe the structure of the case base, emphasizing the case acquisition process during which high level functional information is associated with its components. The system performs advanced data-flow analysis of source code to guide acquisition of the functional specification of a library of software modules. The system then decomposes a user's problem, retrieves matching cases, and adapts and assembles their code. The data-flow of the result is again analyzed to produce test cases which can be used to evaluate the success of case-based reasoning.<<ETX>>

[1]  J. M. Neighbors,et al.  Draco: a method for engineering reusable software systems , 1989 .

[2]  Stan Matwin,et al.  CAESAR: a system for case based software reuse , 1992, Proceedings of the Seventh Knowledge-Based Software Engineering Conference.

[3]  R. Prieto-Diaz,et al.  Classification of reusable modules , 1989 .

[4]  Peter Freeman,et al.  Classifying Software for Reusability , 1987, IEEE Software.

[5]  Bonnie MacKellar,et al.  A knowledge base for code reuse by similarity , 1989, [1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference.

[6]  Ray Bareiss,et al.  Concept Learning and Heuristic Classification in WeakTtheory Domains , 1990, Artif. Intell..

[7]  Wojtek Kozaczynski,et al.  Program concept recognition , 1992, Proceedings of the Seventh Knowledge-Based Software Engineering Conference.

[8]  Paul Bassett,et al.  Frame-Based Software Engineering , 1987, IEEE Software.

[9]  William Mark,et al.  Explanation-Based Indexing of Cases , 1988, AAAI.

[10]  Rubén Prieto-Díaz Implementing faceted classification for software reuse , 1991, CACM.

[11]  Douglas H. Fisher,et al.  Combining Evidence of Deep and Surface Similarity , 1991, ML.

[12]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[13]  Jim Q. Ning,et al.  Knowledge-based program analysis , 1990, IEEE Software.

[14]  Michael Redmond Combining Case-Based Reasoning, Explanation-Based Learning, and Learning form Instruction , 1989, ML.

[15]  Elaine J. Weyuker,et al.  The Cost of Data Flow Testing: An Empirical Study , 1990, IEEE Trans. Software Eng..

[16]  Iwao Toda How to Prevent the Coming Software Crisis , 1992 .