Skip to main content

Case-Based Reasoning and Software Engineering

  • Chapter
Managing Software Engineering Knowledge

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aamodt, A. Plaza E. (1994) Case-based reasoning: foundational issues, methodical variations and system approaches. AI Communications, 7: 39–59

    Google Scholar 

  2. Aha D.W. (1991) Case-based learning algorithms. In: 1991 DARPA Case-based reasoning workshop: Morgan Kaufmann, Washington, DC, USA 196 Shepperd

    Google Scholar 

  3. 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

    Google Scholar 

  4. 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

    Chapter  Google Scholar 

  5. 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

    Chapter  Google Scholar 

  6. 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

    Google Scholar 

  7. 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

    Article  Google Scholar 

  8. 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

    Google Scholar 

  9. 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

    Google Scholar 

  10. 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

    Google Scholar 

  11. 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

    Google Scholar 

  12. Basili V.R., Rombach H.D. (1988) The TAME project: towards improvement-oriented software environments. IEEE transactions on software engineering, 14: pp. 758–771

    Article  Google Scholar 

  13. Bergmann R. (2002) Experience management — Foundations, development methodology, and Internet-based applications. Lecture notes in artificial intelligence, Springer, Berlin Heidelberg New York, Vol. 2432

    Google Scholar 

  14. 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

    Google Scholar 

  15. 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

    Google Scholar 

  16. Boehm B.W. (1981) Software engineering economics. Prentice-Hall, Englewood Cliffs, NJ

    MATH  Google Scholar 

  17. 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

    Google Scholar 

  18. Case-Based Reasoning Homepage, University of Kaiserslautern. Available from: www.cbr-web.org (Accessed 4th December, 2002)

    Google Scholar 

  19. 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

    Google Scholar 

  20. Efron B., Gong G. (1983) A leisurely look at the bootstrap, the jackknife and cross-validation. The American statistician 37: 36–48

    MathSciNet  Google Scholar 

  21. Finnie G.R., Sun Z. (2002) R5 model for case-based reasoning. Knowledge-based systems 16: pp. 59–65

    Article  Google Scholar 

  22. 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

    Google Scholar 

  23. 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

    Article  Google Scholar 

  24. 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

    Google Scholar 

  25. Maiden N.A. (1991) Analogy as a paradigm for specification reuse. Software engineering journal, 6: 3–15

    Article  Google Scholar 

  26. Maiden N.A., Sutcliffe A.G. (1992) Exploiting reusable specifications through analogy. Communications of the ACM, 35: 55–64

    Article  Google Scholar 

  27. 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

    Article  Google Scholar 

  28. 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

    Article  Google Scholar 

  29. 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

    Book  Google Scholar 

  30. 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

    Google Scholar 

  31. Kemerer C.F. (1987) An empirical validation of software cost estimation models. Communications of the ACM, 30: 416–429

    Article  Google Scholar 

  32. 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

    Google Scholar 

  33. Kohavi R., John G.H. (1997) Wrappers for feature selection for machine learning. Artificial intelligence, 97: 273–324

    Article  MATH  Google Scholar 

  34. Kolodner J.L. (1993) Case-based reasoning. Morgan-Kaufmann, San Mateo, CA, USA

    Google Scholar 

  35. Klein G. (1998) Sources of power: how people make decisions. MIT press, Cambridge, MA, USA

    Google Scholar 

  36. Leake D. (1996) Case-based reasoning: experiences, lessons, and future directions. AAAI press, Menlo Park, CA, USA

    Google Scholar 

  37. 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

    Google Scholar 

  38. Little R.J.A., Rubin D.B. (2002) Statistical analysis with missing data. John Wiley and Sons, New York, USA 198 Shepperd

    Google Scholar 

  39. 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

    Article  Google Scholar 

  40. Priéto-Diaz R., Freeman P. (1987) Classifying software for reusability. IEEE Software, 4: 6–16

    Article  Google Scholar 

  41. Schank R. (1982) Dynamic memory: A theory of reminding and learning in computers and people. Cambridge university press, Cambridge, UK

    Google Scholar 

  42. 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

    Google Scholar 

  43. 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

    Google Scholar 

  44. Shepperd M.J., Schofield C. (1997) Estimating software project effort using analogies. IEEE transactions on software engineering, 23: 736–743

    Article  Google Scholar 

  45. 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

    Google Scholar 

  46. Success stories, INRECA Center, University of Kaiserslautern. Available from: www.inreca.org/data/cbr/success.html (Accessed 4th December, 2002)

    Google Scholar 

  47. 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

    Google Scholar 

  48. 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

    Chapter  Google Scholar 

  49. Watson I., Marir F. (1994) Case-based reasoning: a review. The knowledge engineering review, 9: 327–354

    Article  Google Scholar 

  50. Weber R., Aha D.W., Becerra-Fernandez I. (2001) Intelligent lessons learned systems. Expert systems with applications, 20: 17–34

    Article  Google Scholar 

  51. 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

    Google Scholar 

Download references

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics