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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aguiar, A.: A minimalist approach to framework documentation. PhD thesis, Faculdade de Engenharia da Universidade do Porto (2003)
Aguiar, A., David, G.: Patterns for Documenting Frameworks – Part I. In: Proceedings of VikingPLoP 2005, Helsinki, Finland (2005) (to be published)
Aguiar, A., David, G.: Patterns for Documenting Frameworks – Part II. In: Proceedings of EuroPLoP 2006, Irsee, Germany (2006)
Aguiar, A., David, G.: Patterns for Documenting Frameworks – Part III. In: Proceedings of PLoP 2006, Portland, Oregon, USA (2006)
Aguiar, A., David, G.: Patterns for Documenting Frameworks – Process. In: Proceedings of SugarLoafPLoP 2007, Porto de Galinhas, Recife, Pernambuco, Brazil (2007)
Alexander, C., Ishikawa, S., Silverstein, M.: A Pattern Language. Oxford University Press, Oxford (1977)
Alur, D., Crupi, J., Malks, D.: Core J2EE Patterns: Best Practices and Design Strategies, 1st edn. Prentice Hall / Sun Microsystems Press (2001) ISBN:0130648841
Apple Computer, MacApp Programmer’s Guide. Apple Computer (1986)
Beck, K., Gamma, E.: JUnit homepage (1997), http://www.junit.org
Beck, K., Gamma, E.: JUnit: Cookbook (2003b), http://junit.sourceforge.net/doc/cookbook/cookbook.htm
Beck, K., Gamma, E.: JUnit: Test infected: Programmers love writing tests (2003c), http://junit.sourceforge.net/doc/testinfected/testing.htm
Beck, K., Gamma, E.: JUnit: A cook’s tour (2003a), http://junit.sourceforge.net/doc/cookstour/cookstour.htm
Beck, K., Johnson, R.: Patterns generate architectures, vol. 821, pp. 139–149. Springer, Berlin (1994)
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern Oriented Software Architecture — a System of Patterns. John Wiley & Sons, Chichester (1996)
Butler, G.: A reuse case perspective on documenting frameworks (1997), http://www.cs.concordia.ca/faculty/gregb
Butler, G., Keller, R.K., Mili, H.: A framework for framework documentation. ACM Comput. Surv. 32(1es):15 (2000)
Carroll, J.M.: The Nurnberg Funnel: Designing Minimalist Instruction for Practical Computer Skill. MIT Press, Cambridge (1990)
Clark, M.: JUnit: FAQ - frequently asked questions (2003), http://junit.sourceforge.net/doc/faq/faq.htm
Cotter, S., Potel, M.: Inside Taligent Technology. Addison-Wesley, Reading (1995)
Demeyer, S., De Hondt, K., Steyaert, P.: Consistent framework documentation with computed links and framework contracts. ACM Comput. Surv., 32(1es), 34 (2000)
Eckstein, R., Loy, M., Wood, D.: Java Swing. O’Reilly & Associates, Inc., Sebastopol (1998)
FEUP, doc-it project web site, http://doc-it.fe.up.pt/
Fayad, M.E., Johnson, R.E.: Domain-Specific Application Frameworks — Frameworks Experience by Industry. John Wiley & Sons, Chichester (2000)
Fayad, M.E., Schmidt, D.C., Johnson, R.E.: Building Application Frameworks — Object-Oriented Foundations of Framework Design. John Wiley & Sons, Chichester (1999a)
Fayad, M.E., Schmidt, D.C., Johnson, R.E.: Implementing Application Frameworks — Object-Oriented Frameworks at Work. John Wiley & Sons, Chichester (1999b)
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)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns — Elements of reusable object-oriented software. Addison-Wesley, Reading (1995b)
Gosling, J., Joy, B., Steele Jr., G.L.: The Java Language Specification. Addison-Wesley, Reading (1996), http://java.sun.com/docs/books/jls/
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)
Hargis, G.: Developing quality technical information, 2nd edn. Prentice-Hall, Englewood Cliffs (2004)
IBM Corporation. Producing quality technical information. IBM Santa Teresa Laboratory (1983)
Johnson, R.: Documenting frameworks using patterns. In: Paepcke, A. (ed.) OOPSLA 1992 Conference Proceedings, pp. 63–76. ACM Press, New York (1992)
Johnson, R.E., Foote, B.: Designing reusable classes. Journal of Object-Oriented Programming 1(2), 22–35 (1988)
Johnson, R.E., Russo, V.F.: Reusing object-oriented design. Technical Report Technical Report UIUCDCS 91-1696, University of Illinois (1991)
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/
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/
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)
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)
Meszaros, G., Doble, J.: Metapatterns: A pattern language for pattern writing. In: The 3rd Pattern Languages of Programming Conference, Monticello, Illinois (September 1996)
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)
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)
Pree, W.: Design Patterns for Object-Oriented Software Development. Addison-Wesley / ACM Press (1995)
Schappert, A., Sommerlad, P., Pree, W.: Automated support for software development with frameworks. In: ACM SIGSOFT Symposium on Software Reusability, pp. 123–127 (1995)
Press, T.: The Power of Frameworks: for Windows and OS/2 developers. Addison-Wesley, Reading (1995)
Weinand, A., Gamma, E., Marty, R.: Design and implementation of ET++, a seamless object-oriented application framework. Structured Programming 10(2) (1989)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)