A Tool for Management and Reuse of Software Design Knowledge

  • Paulo Gomes
  • André Leitão
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4248)


As software systems become bigger and more complex, researchers try to find ways to increase development productivity and efficiency. Knowledge generated during the software development process can be a valuable asset for a software company. But in order to take advantage of this knowledge, the company must store it for reuse. This can be achieved through the use of knowledge management tools integrated in CASE tools. This paper provides an overview of a system integrated in a CASE tool that manages and reuses software design knowledge. We describe how knowledge is stored and reused based on a Case-Based Reasoning approach. This tool aids the software designer in new ways: searching the design repository, suggesting designs, learning new knowledge from the user interaction, and other capabilities. We show the innovative aspects of our system.


Class Diagram Semantic Distance Software Development Process Case Tool Target Case 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Coulange, B.: Software Reuse. Springer, Heidelberg (1997)Google Scholar
  2. 2.
    Gamma, E., et al.: Design Patterns: Elements of Reusable Object-Oriented Software, p. 395. Addison-Wesley, Reading (1995)Google Scholar
  3. 3.
    Jacobson, I., Griss, M., Jonsson, P.: Software Reuse: Architecture Process and Organization for Business Success, p. 497. ACM Press, New York (1997)Google Scholar
  4. 4.
    Meyer, B.: Reusability: The Case for Object-Oriented Design. IEEE Software 4, 50–64 (1987)CrossRefGoogle Scholar
  5. 5.
    Prieto-Diaz, R.: Status Report: Software Reusability. IEEE Software (May 1993)Google Scholar
  6. 6.
    Boehm, B.: A Spiral Model of Software Development and Enhancement. IEEE Press, Los Alamitos (1988)Google Scholar
  7. 7.
    Tong, C., Sriram, D.: Artificial Intelligence in Engineering Design, vol. I. Academic Press, London (1992)Google Scholar
  8. 8.
    Aamodt, A., Plaza, E.: Case-Based Reasoning: Foundational Issues, Methodological Variations, and System Approaches. AI Communications 7(1), 39–59 (1994)Google Scholar
  9. 9.
    Kolodner, J.: Case-Based Reasoning. Morgan Kaufmann, San Francisco (1993)Google Scholar
  10. 10.
    Althoff, K.-D.: Case-based reasoning. In: Chang, S.K. (ed.) Handbook on Software Engineering and Knowledge Engineering, pp. 549–588. World Scientific, Singapore (2001)Google Scholar
  11. 11.
    Gomes, P.: A Case-Based Approach to Software Design. In: Department of Informatics Engineering, University of Coimbra, Coimbra (2004)Google Scholar
  12. 12.
    Gomes, P., et al.: REBUILDER: A CBR Approach to Knowledge Management in Software Design. In: Melnik, G., Holz, H. (eds.) LSO 2004. LNCS, vol. 3096, pp. 31–42. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  13. 13.
    Gomes, P., et al.: Case Retrieval of Software Designs using WordNet. In: European Conference on Artificial Intelligence (ECAI 2002), Lyon, France. IOS Press, Amsterdam (2002)Google Scholar
  14. 14.
    Seco, N., Gomes, P., Pereira, F.C.: Using CBR for Semantic Analysis of Software Specifications. In: Funk, P., González Calero, P.A. (eds.) ECCBR 2004. LNCS, vol. 3155, pp. 778–792. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  15. 15.
    Seco, N., Gomes, P., Pereira, F.C.: Modelling Software Specifications with Case Based Reasoning. In: The First International Workshop on Natural Language Understanding and Cognitive Science (NLUCS 2004), Porto, Portugal (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Paulo Gomes
    • 1
  • André Leitão
    • 1
  1. 1.AILabCentro de Informática e Sistemas da Universidade de Coimbra 

Personalised recommendations