Object Oriented Design Expertise Reuse: An Approach Based on Heuristics, Design Patterns and Anti-patterns

  • Alexandre L. Correa
  • Cláudia M. L. Werner
  • Gerson Zaverucha
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1844)


Object Oriented (OO) languages do not guarantee that a system is flexible enough to absorb future requirements, nor that its components can be reused in other contexts. This paper presents an approach to OO design expertise reuse, which is able to detect certain constructions that compromise future expansion or modification of OO systems, and suggest their replacement by more adequate ones. Both reengineering legacy systems, and systems that are still under development are considered by the approach. A tool (OOPDTool) was developed to support the approach, comprising a knowledge base of good design constructions, that correspond to heuristics and design patterns, as well as problematic constructions (i.e., anti-patterns).


Design Pattern Object Orient Case Tool Deductive Database Problematic Construction 
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.
    Booch, G., Jacobson, I., Rumbaugh, J.: The Unified Modeling Language for Object Oriented Development - UML Semantics - version 1.1 (1997),
  2. 2.
    Braga, R., Werner, C., Mattoso, M.: Odyssey: A Reuse Environment Based on Domain Models. In: Proc. of 2nd. IEEE Symposium on Application-Specific Systems and Software Engineering Technology, Richardson (March 1999)Google Scholar
  3. 3.
    Brown, K.: Design Reverse-Engineering and Automated Design Pattern Detection in Smalltalk. Master Thesis (1997),
  4. 4.
    Brown, W., Malveau, R., McCormick III, H., Mowbray, T.: Anti-patterns - Refactoring Software, Architectures, and Projects in Crisis. Wiley Computer Publishing, Chichester (1998)Google Scholar
  5. 5.
    Cinnéide, M., Nixon, P.: Program Restructuring to Introduce Design Patterns. In: Proc. of the Workshop on Object Oriented Software Evolution and Re-Engineering, ECOOP 1998 (1998)Google Scholar
  6. 6.
    Crew, R.F.: ASTLOG: A Language for Examining Abstract Syntax Trees. In: Usenix Conference on Domain-Specific Languages (1997)Google Scholar
  7. 7.
    Demeyer, S., Tichelaar, S., Steyaert, P.: FAMOOS - Definition of a Common Exchange Model,
  8. 8.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  9. 9.
    Jacobson, I., Christerson, M., Jonsson, P., Overgaard, G.: Object Oriented Software Engineering. Addison-Wesley, Reading (1992)zbMATHGoogle Scholar
  10. 10.
    Krämer, C., Prechelt, L.: Design Recovery by Automated Search for Structural Design Patterns in Object Oriented Software. In: Proc. of the Working Conf. on Reverse Engineering. IEEE CS Press, Monterrey (1996)Google Scholar
  11. 11.
    Maughan, G., Avotins, J.: A Meta-model for Object Oriented Reengineering and Metrics Collection. Eiffel Liberty Journal 1(4) (1998)Google Scholar
  12. 12.
    Mittchel, T.M.: Machine Learning. McGraw Hill, New York (1997)Google Scholar
  13. 13.
    Rational Software Inc., Santa Clara, CA. - Rational Rose 1998 (1998),
  14. 14.
    Riel, A.: Object Oriented Design Heuristics. Addison-Wesley, Reading (1996)Google Scholar
  15. 15.
    Software Composition Group (SCG) - FAMOOS Project,
  16. 16.
    Zimmer, W.: Experiences using Design Patterns to Reorganize an Object Oriented Application. In: Proc. of the Workshop on OO Software Evolution and Re-Engineering, ECOOP (1998)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Alexandre L. Correa
    • 1
  • Cláudia M. L. Werner
    • 1
  • Gerson Zaverucha
    • 2
  1. 1.COPPE/UFRJ – Computer Science DepartmentFederal University of Rio de JaneiroRio de JaneiroBrazil
  2. 2.Department of Computer ScienceUniversity of WisconsinMadison

Personalised recommendations