Abstract
Case-based reasoning (CBR) is a technology that is based on the idea of analogy. Solutions from past problems (cases) can be retrieved and deployed, with adaptation where necessary, to solve new problems. It is argued that CBR as a technology has a number of strengths, since it deals well with poorly understood problem domains, does not require explicit knowledge elicitation and supports collaboration with users. This chapter provides some general background information on CBR and then considers how CBR has been deployed to solve problems in the domain of software engineering. These problems fall into two general categories, namely prediction and reuse. The main prediction problems are related to project characteristics such as effort and duration, whilst the chief reuse foci are related to learning from past experiences. The chapter concludes by identifying three research challenges. These are to be able to better adapt retrieved solutions to solve new problems, to explore richer forms of representation for complex problems and, last, to encourage better collaboration between the user and the CBR system.
Keywords
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Aamodt, A. Plaza E. (1994) Case-based reasoning: foundational issues, methodical variations and system approaches. AI Communications, 7: 39–59
Aha D.W. (1991) Case-based learning algorithms. In: 1991 DARPA Case-based reasoning workshop: Morgan Kaufmann, Washington, DC, USA 196 Shepperd
Aha D.W., Bankert R.L. (1995) A comparative evaluation of sequential feature selection algorithms. In: Proceedings of the Fifth international workshop on artificial intelligence and statistics, Ft. Lauderdale, FL, USA, pp. 1–7
Aha D.W., Breslow L.A. (1997) Refining conversational case libraries. In: Leake D., Plaza, E. (Eds.), Case-based reasoning research and development, Springer, Berlin Heidelberg New York, pp. 267–278
Aha D.W., Maney T., Breslow L.A. (1998) Supporting dialogue inferencing in conversational case-based reasoning. In: Smyth B., Cunningham P., (Eds.), Advances in case-based reasoning, Springer, Berlin Heidelberg New York, pp. 262–273
Aha D.W., Wettscherek D. (1997) Case-based learning: beyond classification of feature vectors. In: Proceedings of 9th European conference on machine learning, Prague, Czech Republic, pp. 329–336
Albrecht A..J., Gaffney J.R. (1983) Software function, source lines of code, and development effort prediction: a software science validation. IEEE transactions on software engineering, 9: 639–648
Althoff K.-D. (2001) Case-based reasoning. In: Chang S.K. (Ed.) Handbook on software engineering and knowledge engineering. Vol. 1, World Scientific, Singapore, pp. 549–588
Althoff K: D., Birk A., Wangenheim C.G., von Tautz C. (1998) Case-based reasoning for experimental software engineering. In: Lenz M., Bartsch-Spörl B., Burkhard H.-D., Wess S. (Eds.) Case-based reasoning technology–from foundations to applications, Springer, Berlin Heidelberg New York, pp. 235–254
Atkinson K., Shepperd M.J. (1994) The use of function points to find cost analogies. In: Proceedings of 5th European software cost modeling meeting, Ivrea, Italy, pp. 170–178
Basili V.R., Caldiera G., Rombach H.D. (1994) Experience factory. In: Encyclopedia of software engineering, Marciniak J.J. (Ed.), John Wiley and Sons, New York, USA pp. 469–476
Basili V.R., Rombach H.D. (1988) The TAME project: towards improvement-oriented software environments. IEEE transactions on software engineering, 14: pp. 758–771
Bergmann R. (2002) Experience management — Foundations, development methodology, and Internet-based applications. Lecture notes in artificial intelligence, Springer, Berlin Heidelberg New York, Vol. 2432
Bergmann R., Stahl S. (1998) Similarity measures for object-oriented case representations. In: Lecture notes in computer science, Springer, Berlin Heidelberg London, 1488: 25–36
Bisio R., Malabocchia F. (1995) Cost estimation of software projects through case base reasoning. In: Proceedings 1st International conference on case-based reasoning research and development. Springer, Heidelberg New York, pp. 11–22
Boehm B.W. (1981) Software engineering economics. Prentice-Hall, Englewood Cliffs, NJ
Briand L., Langley T., Wieczorek I. (2000) Using the European space agency data set: a replicated assessment and comparison of common software cost modeling techniques. In: Proceedings of 22nd IEEE international conference on software engineering, Limerick, Ireland, pp. 337–386
Case-Based Reasoning Homepage, University of Kaiserslautern. Available from: www.cbr-web.org (Accessed 4th December, 2002)
Desharnais J.M. (1989) Analyse statistique de la productivitie des projets informatique a partie de la technique des point des fonction, Master thesis, University of Montreal, Canada
Efron B., Gong G. (1983) A leisurely look at the bootstrap, the jackknife and cross-validation. The American statistician 37: 36–48
Finnie G.R., Sun Z. (2002) R5 model for case-based reasoning. Knowledge-based systems 16: pp. 59–65
Finnie G.R., Wittig G.E., Desharnais J.-M. (1997) Estimating software development effort with case-based reasoning. In: Proceedings of 2nd international conference on case-based reasoning, Providence, Rhode Island, pp. 13–22
Grupe F.H., Urweiler R., Ramarapu N.K., Owrang M. (1998) The application of case-based reasoning to the software development process. Information and software technology, 40: 493–500
Hanney K., Keane M.T. (1997) The adaptation knowledge bottleneck: how to ease it by learning from cases. In: Proceedings of the 2nd international CBR conference, Amsterdam, The Netherlands, pp. 359–370
Maiden N.A. (1991) Analogy as a paradigm for specification reuse. Software engineering journal, 6: 3–15
Maiden N.A., Sutcliffe A.G. (1992) Exploiting reusable specifications through analogy. Communications of the ACM, 35: 55–64
Mukhopadhyay T., Vicinanza S.S., Prietula M.J. (1992) Examining the feasibility of a case-based reasoning model for software effort estimation. MIS quarterly, 16: 155–171
Myrtveit I., Stensrud E. (1999) A controlled experiment to assess the benefits of estimating with analogy and regression models. IEEE transactions on software engineering, 25: 510–525
Niessink F., van Vliet H. (1997) Predicting maintenance effort with function points. In: Proceedings of international conference on software maintenance, Bari, Italy, pp. 32–39
Kadoda G., Cartwright M., Shepperd M.J. (2001) Issues on the effective use of CBR technology for software project prediction. In: Proceedings of the 4th international conference on case based reasoning, Vancouver, Canada, pp. 276–290
Kemerer C.F. (1987) An empirical validation of software cost estimation models. Communications of the ACM, 30: 416–429
Kirsopp C., Shepperd M.J., Hart J. (2002) Search heuristics, case-based reasoning and software project effort prediction. In: Proceedings of the genetic and evolutionary computation conf., New York, USA, pp. 1367–1374
Kohavi R., John G.H. (1997) Wrappers for feature selection for machine learning. Artificial intelligence, 97: 273–324
Kolodner J.L. (1993) Case-based reasoning. Morgan-Kaufmann, San Mateo, CA, USA
Klein G. (1998) Sources of power: how people make decisions. MIT press, Cambridge, MA, USA
Leake D. (1996) Case-based reasoning: experiences, lessons, and future directions. AAAI press, Menlo Park, CA, USA
Leake D. (1996) CBR in context: the present and the future. In: Leake D. (Ed.), Case based reasoning: experiences, lessons and future directions, AAAI press, Menlo Park, pp. 1–35
Little R.J.A., Rubin D.B. (2002) Statistical analysis with missing data. John Wiley and Sons, New York, USA 198 Shepperd
Ostertag E., Hendler J., Prieto-Diaz R., Braun C. (1992) Computing similarity in a reuse library system: an AI-based approach. ACM transactions on software engineering methodology, 1: 205–228
Priéto-Diaz R., Freeman P. (1987) Classifying software for reusability. IEEE Software, 4: 6–16
Schank R. (1982) Dynamic memory: A theory of reminding and learning in computers and people. Cambridge university press, Cambridge, UK
Schenker D.F., Khoshgoftaar T.M. (1998) The application of fuzzy enhanced case-based reasoning for identifying fault-prone modules. In: Proceedings of the 3rd IEEE international high-assurance systems engineering symposium, Washington, D.C., USA, pp 90–97
Shepperd M.J., Schofield C., Kitchenham B.A. (1996) Effort estimation using analogy. In: Proceedings of 18th international conference on software engineering, Berlin, Germany, pp. 170–179
Shepperd M.J., Schofield C. (1997) Estimating software project effort using analogies. IEEE transactions on software engineering, 23: 736–743
Skalak D.B. (1994) Prototype and feature selection by sampling and random mutation hill climbing algorithms. In: Proceedings of the 11th international machine learning conference, New Brunswick, NJ, USA, pp. 293–301
Success stories, INRECA Center, University of Kaiserslautern. Available from: www.inreca.org/data/cbr/success.html (Accessed 4th December, 2002)
Tautz C., Althoff K.-D. (1997) Using case-based reasoning for reusing software knowledge. In: Proceedings of the 2nd international conference on case-based reasoning, Springer, Berlin Heidelberg New York, pp. 156–165
von Wangenheim C.G., Althoff K.-D., Barda R.M. (2000) Goal-oriented and similarity-based retrieval of software engineering experienceware. In: Ruhe G., Bomarius, F. (Ed.). Learning software organizations: methodology and applications, Springer, Berlin Heidelberg New York, pp. 118–141
Watson I., Marir F. (1994) Case-based reasoning: a review. The knowledge engineering review, 9: 327–354
Weber R., Aha D.W., Becerra-Fernandez I. (2001) Intelligent lessons learned systems. Expert systems with applications, 20: 17–34
Whitley D., Beveridge J.R., Guerra-Salcedo C., Graves C. (1997) Messy genetic algorithms for subset feature selection. In: Proceedings of the international conference on genetic algorithms, East Lansing, Michigan, USA, pp. 568–575
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Shepperd, M. (2003). Case-Based Reasoning and Software Engineering. In: Aurum, A., Jeffery, R., Wohlin, C., Handzic, M. (eds) Managing Software Engineering Knowledge. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-05129-0_9
Download citation
DOI: https://doi.org/10.1007/978-3-662-05129-0_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-05573-7
Online ISBN: 978-3-662-05129-0
eBook Packages: Springer Book Archive