Skip to main content

Part of the book series: Lecture Notes in Computer Science ((TPLOP,volume 6510))

Abstract

Good design and implementation are necessary but not sufficient pre-requisites for successfully reusing object-oriented frameworks. Although not always recognized, good documentation is crucial for effective framework reuse, and often hard, costly, and tiresome, coming with many issues, especially when we are not aware of the key problems and respective ways of addressing them. Based on existing literature, case studies and lessons learned, the authors have been mining proven solutions to recurrent problems of documenting object-oriented frameworks, and writing them in pattern form, as patterns are a very effective way of communicating expertise and best practices. This paper presents a small set of patterns addressing problems related to the framework documentation itself, here seen as an autonomous and tangible product independent of the process used to create it. The patterns aim at helping non-experts on cost-effectively documenting object-oriented frameworks. In concrete, these patterns provide guidance on choosing the kinds of documents to produce, how to relate them, and which contents to include. Although the focus is more on the documents themselves, rather than on the process and tools to produce them, some guidelines are also presented in the paper to help on applying the patterns to a specific framework.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight 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. Aguiar, A.: A minimalist approach to framework documentation. PhD thesis, Faculdade de Engenharia da Universidade do Porto (2003)

    Google Scholar 

  2. Aguiar, A., David, G.: Patterns for Documenting Frameworks – Part I. In: Proceedings of VikingPLoP 2005, Helsinki, Finland (2005) (to be published)

    Google Scholar 

  3. Aguiar, A., David, G.: Patterns for Documenting Frameworks – Part II. In: Proceedings of EuroPLoP 2006, Irsee, Germany (2006)

    Google Scholar 

  4. Aguiar, A., David, G.: Patterns for Documenting Frameworks – Part III. In: Proceedings of PLoP 2006, Portland, Oregon, USA (2006)

    Google Scholar 

  5. Aguiar, A., David, G.: Patterns for Documenting Frameworks – Process. In: Proceedings of SugarLoafPLoP 2007, Porto de Galinhas, Recife, Pernambuco, Brazil (2007)

    Google Scholar 

  6. Alexander, C., Ishikawa, S., Silverstein, M.: A Pattern Language. Oxford University Press, Oxford (1977)

    Google Scholar 

  7. Alur, D., Crupi, J., Malks, D.: Core J2EE Patterns: Best Practices and Design Strategies, 1st edn. Prentice Hall / Sun Microsystems Press (2001) ISBN:0130648841

    Google Scholar 

  8. Apple Computer, MacApp Programmer’s Guide. Apple Computer (1986)

    Google Scholar 

  9. Beck, K., Gamma, E.: JUnit homepage (1997), http://www.junit.org

  10. Beck, K., Gamma, E.: JUnit: Cookbook (2003b), http://junit.sourceforge.net/doc/cookbook/cookbook.htm

  11. Beck, K., Gamma, E.: JUnit: Test infected: Programmers love writing tests (2003c), http://junit.sourceforge.net/doc/testinfected/testing.htm

  12. Beck, K., Gamma, E.: JUnit: A cook’s tour (2003a), http://junit.sourceforge.net/doc/cookstour/cookstour.htm

  13. Beck, K., Johnson, R.: Patterns generate architectures, vol. 821, pp. 139–149. Springer, Berlin (1994)

    Google Scholar 

  14. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern Oriented Software Architecture — a System of Patterns. John Wiley & Sons, Chichester (1996)

    Google Scholar 

  15. Butler, G.: A reuse case perspective on documenting frameworks (1997), http://www.cs.concordia.ca/faculty/gregb

  16. Butler, G., Keller, R.K., Mili, H.: A framework for framework documentation. ACM Comput. Surv. 32(1es):15 (2000)

    Google Scholar 

  17. Carroll, J.M.: The Nurnberg Funnel: Designing Minimalist Instruction for Practical Computer Skill. MIT Press, Cambridge (1990)

    Google Scholar 

  18. Clark, M.: JUnit: FAQ - frequently asked questions (2003), http://junit.sourceforge.net/doc/faq/faq.htm

  19. Cotter, S., Potel, M.: Inside Taligent Technology. Addison-Wesley, Reading (1995)

    Google Scholar 

  20. Demeyer, S., De Hondt, K., Steyaert, P.: Consistent framework documentation with computed links and framework contracts. ACM Comput. Surv., 32(1es), 34 (2000)

    Google Scholar 

  21. Eckstein, R., Loy, M., Wood, D.: Java Swing. O’Reilly & Associates, Inc., Sebastopol (1998)

    Google Scholar 

  22. FEUP, doc-it project web site, http://doc-it.fe.up.pt/

  23. Fayad, M.E., Johnson, R.E.: Domain-Specific Application Frameworks — Frameworks Experience by Industry. John Wiley & Sons, Chichester (2000)

    Google Scholar 

  24. Fayad, M.E., Schmidt, D.C., Johnson, R.E.: Building Application Frameworks — Object-Oriented Foundations of Framework Design. John Wiley & Sons, Chichester (1999a)

    Google Scholar 

  25. Fayad, M.E., Schmidt, D.C., Johnson, R.E.: Implementing Application Frameworks — Object-Oriented Frameworks at Work. John Wiley & Sons, Chichester (1999b)

    Google Scholar 

  26. Froehlich, G., Hoover, H.J., Liu, L., Sorenson, P.G.: Hooking into object-oriented application frameworks. In: International Conference on Software Engineering, pp. 491–501 (1997)

    Google Scholar 

  27. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns — Elements of reusable object-oriented software. Addison-Wesley, Reading (1995b)

    MATH  Google Scholar 

  28. Gosling, J., Joy, B., Steele Jr., G.L.: The Java Language Specification. Addison-Wesley, Reading (1996), http://java.sun.com/docs/books/jls/

    MATH  Google Scholar 

  29. Hansen, T.: Development of successful object-oriented frameworks. In: Addendum to the 1997 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (Addendum), pp. 115–119. ACM Press, New York (1997)

    Chapter  Google Scholar 

  30. Hargis, G.: Developing quality technical information, 2nd edn. Prentice-Hall, Englewood Cliffs (2004)

    Google Scholar 

  31. IBM Corporation. Producing quality technical information. IBM Santa Teresa Laboratory (1983)

    Google Scholar 

  32. Johnson, R.: Documenting frameworks using patterns. In: Paepcke, A. (ed.) OOPSLA 1992 Conference Proceedings, pp. 63–76. ACM Press, New York (1992)

    Google Scholar 

  33. Johnson, R.E., Foote, B.: Designing reusable classes. Journal of Object-Oriented Programming 1(2), 22–35 (1988)

    Google Scholar 

  34. Johnson, R.E., Russo, V.F.: Reusing object-oriented design. Technical Report Technical Report UIUCDCS 91-1696, University of Illinois (1991)

    Google Scholar 

  35. Kirk, D.: Framework reuse: Process, problems and documentation. Technical Report EFoCS-43-2001, Department of Computer Science, University of Strathclyde, GLASGOW, UK (2001), http://www.cis.strath.ac.uk/research/efocs/

  36. Kirk, D., Roper, M., Wood, M.: Understanding object oriented frameworks: An exploratory case study. Technical Report EFoCS-42-2001, Department of Computer Science, University of Strathclyde, GLASGOW, UK (2001), http://www.cis.strath.ac.uk/research/efocs/

  37. Krasner, G.E., Pope, S.T.: A cookbook for using the model-view-controller user interface paradigm in smalltalk-80. Journal of Object-Oriented Programming 1(3), 27–49 (1988)

    Google Scholar 

  38. Lajoie, R., Keller, R.K.: Design and reuse in object-oriented frameworks: Patterns, contracts and motifs in concert, pp. 295–312. World Scientific Publishing, Singapore (1995)

    Google Scholar 

  39. Meszaros, G., Doble, J.: Metapatterns: A pattern language for pattern writing. In: The 3rd Pattern Languages of Programming Conference, Monticello, Illinois (September 1996)

    Google Scholar 

  40. Meusel, M., Czarnecki, K., Köpf, W.: A model for structuring user documentation of object-oriented frameworks using patterns and hypertext. In: Liu, Y., Auletta, V. (eds.) ECOOP 1997. LNCS, vol. 1241, Springer, Heidelberg (1997)

    Google Scholar 

  41. Odenthal, G., Quibeldey-Cirkel, K.: Using patterns for design and documentation. In: Akcsit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 511–529. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  42. Pree, W.: Design Patterns for Object-Oriented Software Development. Addison-Wesley / ACM Press (1995)

    Google Scholar 

  43. Schappert, A., Sommerlad, P., Pree, W.: Automated support for software development with frameworks. In: ACM SIGSOFT Symposium on Software Reusability, pp. 123–127 (1995)

    Google Scholar 

  44. Press, T.: The Power of Frameworks: for Windows and OS/2 developers. Addison-Wesley, Reading (1995)

    Google Scholar 

  45. Weinand, A., Gamma, E., Marty, R.: Design and implementation of ET++, a seamless object-oriented application framework. Structured Programming 10(2) (1989)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Aguiar, A., David, G. (2011). Patterns for Effectively Documenting Frameworks. In: Noble, J., Johnson, R., Avgeriou, P., Harrison, N.B., Zdun, U. (eds) Transactions on Pattern Languages of Programming II. Lecture Notes in Computer Science, vol 6510. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-19432-0_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-19432-0_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-19431-3

  • Online ISBN: 978-3-642-19432-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics