Finding the Pattern You Need: The Design Pattern Intent Ontology

  • Holger Kampffmeyer
  • Steffen Zschaler
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4735)

Abstract

Since the seminal book by the Gang of Four, design patterns have proven an important tool in software development. Over time, more and more patterns have been discovered and developed. The sheer amount of patterns available makes it hard to find patterns useful for solving a specific design problem. Hence, tools supporting searching and finding design patterns appropriate to a certain problem are required. To develop such tooling, design patterns must be described formally such that they can be queryed by the problem to be solved. Current approaches to formalising design patterns focus on the solution structure of the pattern rather than on the problems solved. In this paper, we present a formalisation of the intent of the 23 patterns from the Gang-of-Four book. Based on this formalisation we have developed a Design Pattern Wizard that proposes applicable design patterns based on a description of a design problem.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Eclipse – Rich Client Platform (2006), http://www.eclipse.org/home/categories/rcp.php
  2. 2.
    Jena – a semantic web framework for Java (2006), http://jena.sourceforge.net/
  3. 3.
    Protégé ontology editor and knowledge acquisition system (2006), http://protege.stanford.edu
  4. 4.
    Alexander, C., Ishikawa, S., Silverstein, M.: A Pattern Language. Center for Environmental Structure Series, vol. 2. Oxford University Press, New York, NY (1977)Google Scholar
  5. 5.
    Alur, D., Crupi, J., Malks, D.: Core J2EE Patterns: Best Practices and Design Strategies. Pearson Education (2001), Patterns catalog available at http://java.sun.com/blueprints/corej2eepatterns/index.html
  6. 6.
    Alur, D., Crupi, J., Malks, D.: Sun Java center – J2EE patterns (March 2001), http://java.sun.com/developer/technicalArticles/J2EE/patterns/
  7. 7.
    PatternShare Community. Patternshare community (2006), http://patternshare.org/
  8. 8.
    de Medeiros, A.P., Schwabe, D., Feijó, B.: A design rationale representation for model-based designs in software engineering. In: Belo, O., Eder, J., e Cunha, J.F., Pastor, O. (eds.) CAiSE Short Paper Proceedings, CEUR Workshop Proceedings. CEUR-WS.org. vol. 161 (2005), http://www.ceurws.org/Vol-161/FORUM_27.pdf
  9. 9.
    Dietrich, J., Elgar, C.: A formal description of design patterns using OWL. In: ASWEC 2005. Australian Software Engineering Conference, pp. 243–250. IEEE Computer Society, Los Alamitos (2005), http://doi.ieeecomputersociety.org/10.1109/ASWEC.2005.6 Google Scholar
  10. 10.
    Fowler, M.: Analysis Patterns: Reusable Object Models. The Addison-Wesley Object Technology Series. Addison-Wesley Professional, Reading (1996)Google Scholar
  11. 11.
    Fowler, M.: Patterns of Enterprise Application Architecture. The Addison-Wesley Signature Series. Addison Wesley, Reading (2003)Google Scholar
  12. 12.
    Fowler, M.: Patterns in enterprise software (2005), http://www.martinfowler.com/articles/enterprisePatterns.html
  13. 13.
    Fowler, M.: Writing software patterns (August 2006), http://martinfowler.com/articles/writingPatterns.html
  14. 14.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional Computing Series. Addison-Wesley Publishing Company, New York, NY (1995)Google Scholar
  15. 15.
    Gross, D., Yu, E.S.K.: From non-functional requirements to design through patterns. Requirements Engineering 6(1), 18–36 (2001), http://citeseer.ist.psu.edu/gross00from.html MATHCrossRefMathSciNetGoogle Scholar
  16. 16.
    Gruber, T.R.: A translation approach to portable ontology specifications. Knowledge Acquisition 6(2), 199–221 (1993), http://portal.acm.org/citation.cfm?id=173747 CrossRefGoogle Scholar
  17. 17.
    Henninger, S., Padmapriya, A.: An Ontology-Based Metamodel for Software Patterns. In: Seke2006. 18th Int. Conf. on Software Engineering and Knowledge Engineering, San Francisco (July 2006) (to be presented), http://cse.unl.edu/~scotth/papers/SEKE06-TechReport.pdf
  18. 18.
    Horridge, M., Drummond, N., Goodwin, J., Rector, A., Stevens, R., Wang, H.H: The Manchester OWL syntax (2005), http://owl-workshop.man.ac.uk/acceptedLong/submission_9.pdf
  19. 19.
    Racer Systems GmbH & Co. KG. Racerpro users guide version 1.9 (2005), http://www.racer-systems.com/products/racerpro/manual.phtml
  20. 20.
    Mahemoff, M., Johnston, L.: Principles for a usability-oriented pattern language (1998), http://citeseer.ist.psu.edu/article/mahemoff98principles.html
  21. 21.
    Mapelsden, D., Hosking, J., Grundy, J.: Design pattern modelling and instantiation using DPML. In: CRPIT 2002. Proceedings of the Fortieth International Conference on Tools Pacific, pp. 3–11. Australian Computer Society, Inc., Darlinghurst, Australia, Australia (2002)Google Scholar
  22. 22.
    Mikkonen, T.: Formalizing design patterns. In: ICSE 1998. Proceedings of the 20th international conference on Software engineering, pp. 115–124. IEEE Computer Society, Washington, DC, USA (1998)Google Scholar
  23. 23.
    Montero, S., Diaz, P., Aedo, I.: Formalization of web design patterns using ontologies (2005)Google Scholar
  24. 24.
    Noy, N.F., McGuinness, D.L.: Ontology development 101: A guide to creating your first ontology. Technical Report KSL-01-05, Knowledge Systems Laboratory, Stanford University, Stanford, CA, 94305, USA (March 2001)Google Scholar
  25. 25.
    Portland Pattern Repository. Portland pattern repository (2006), http://c2.com/ppr/
  26. 26.
    Smith, M.K., Welty, C., McGuinness, D.L.: OWL web ontology language guide (2004), http://www.w3.org/TR/owl-guide
  27. 27.
    Taibi, T., Ngo, D.C.L.: Formal specification of design patterns - a balanced approach. Journal of Object Technology 2(4), 127–140 (2003), http://www.jot.fm/issues/issue_2003_07/article4.pdf Google Scholar
  28. 28.
    Tichy, W.F.: A catalogue of general-purpose software design patterns. In: TOOLS 1997. Proceedings of the Tools-23: Technology of Object-Oriented Languages and Systems, IEEE Computer Society, Washington, DC, USA (1997)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Holger Kampffmeyer
    • 1
  • Steffen Zschaler
    • 1
  1. 1.Technische Universität DresdenGermany

Personalised recommendations