Empirical Software Engineering

, Volume 12, Issue 3, pp 243–274 | Cite as

Identifying and addressing problems in object-oriented framework reuse



This paper describes the results of a long-term empirical investigation into object-oriented framework reuse. The aim is to identify the major problems that occur during framework reuse and the impact of current documentation techniques on these problems. Four major reuse problems are identified: understanding the functionality of framework components; understanding the interactions between framework components; understanding the mapping from the problem domain to the framework implementation; understanding the architectural assumptions in the framework design. Two forms of documentation are identified as having the potential to address these problems, namely pattern languages and micro-architecture descriptions. An in-depth, qualitative analysis suggests that, although pattern languages do provide useful support in terms of introducing framework concepts, this can be bypassed by developers using their previous knowledge, occasionally to the detriment of the final solution. Micro-architecture documentation appears to provide support for simple interaction and functionality queries, but it is not able to address large scale interaction problems involving multiple classes within the framework. The paper concludes that, although a combination of pattern language and micro-architecture documentation is useful for framework reuse, the forms of these documentation types used in this study require further enhancement to become effective. The paper also serves as an example to encourage others to perform evaluation of framework understanding and documentation.


Object-oriented frameworks Documentation Empirical study Software comprehension Qualitative study Framework reuse 


  1. Alexander C, Ishikawa S, Silverstein M, Jacobson M, Fiksdhal-King I, Angel S (1977) A pattern language—towns, buildings, construction. Oxford University Press, New YorkGoogle Scholar
  2. Beck K, Cunningham W (2005) HotDraw. http://www.c2.com/cgi/wiki?HotDraw (Accessed February 2005)
  3. Beck K, Johnson RE (1994) Patterns generate architectures. In Proceedings of the European Conference on Object-Oriented Programming, Bologna, Italy, pp139–149Google Scholar
  4. Bosch J, Molin P, Mattsson M, Bengtsson P (1999) Framework problems and experiences. In: Fayad ME, Schmidt DC, Johnson RE (eds) Building application frameworks: object-oriented foundations of framework design. Wiley, pp 55–82Google Scholar
  5. Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal M (1996) Pattern-oriented software architecture, vol 1: a system of patterns, Wiley.Google Scholar
  6. Butler G, Keller RK, Mili H (2000) A framework for framework documentation. ACM Comput Surv 32(1)Google Scholar
  7. Campbell D, Stanley J (1963) Experimental and quasi-experimental designs for research. Houghton Mifflin Company, BostonGoogle Scholar
  8. Dénommée P (1998) A case study in documenting and developing frameworks. Master’s Thesis, Concordia University, CanadaGoogle Scholar
  9. Dey I (1993) Qualitative data analysis: a user-friendly guide for social scientists. Routledge, LondonGoogle Scholar
  10. Eclipse (2005) Eclipse. http://www.eclipse.org (Accessed February 2005)
  11. Fairbanks G (2004) Software engineering environment support for frameworks: a position paper. In Workshop on Directions in Software Engineering Environments. Available online at: http://www.hdcp.org/Publications/WoDiSEE_ICSE04_Fairbanks.pdf (Accessed August 2005)
  12. Fayad M, Schmidt DC, Johnson RE (1999) Building application frameworks: object-oriented foundations of framework design. Wiley, New YorkGoogle Scholar
  13. Froehlich G, Hoover J, Liu L, Sorenson P (1997) Hooking into object-oriented application frameworks. In Proceedings of the International Conference on Software Engineering, Boston, USA, pp 491–501Google Scholar
  14. Gamma E, Eggenschwiler T (2005) JHotDraw. http://www.members.pingnet.ch/gamma/JHD-5.1.zip (Accessed February 2005)
  15. Gamma E, Helm R, Johnson RE, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison Wesley, Reading, MAGoogle Scholar
  16. Gangopadhyay D, Mitra S (1995) Understanding frameworks by exploration of exemplars. In Proceedings of the Seventh International Workshop on Computer-Aided Software Engineering, Toronto, Canada, pp 90–100Google Scholar
  17. Hakala M, Hautamäki J, Tuomi J, Viljamaa A, Viljamaa J, Koskimies K, and Paakki J (1999) Managing object-oriented frameworks with specialization templates. In Proceedings of the Workshop on Object-Oriented Technology, Brussels, Belgium, pp 199–209Google Scholar
  18. Harrison W (2000) N = 1: an alternative for software engineering research? Beg, borrow, or steal: using multidisciplinary approaches in empirical software engineering research, workshop, 5 June, 2000 at 22nd International Conference on Software EngineeringGoogle Scholar
  19. Helm R, Holland IM, Gangopadhyay D (1990) Contracts: specifying behavioral compositions in object-oriented systems. In Proceedings of the 1990 European conference on object-oriented programming, Ottawa, Canada, pp 169–180Google Scholar
  20. Höst M, Regnell B, Wohlin C (2000) Using students as subjects—a comparative study of students and professionals in lead-time impact assessment. Empir Softw Eng J 5(3):201–214MATHCrossRefGoogle Scholar
  21. Johnson RE (1992) Documenting frameworks using patterns. In Proceedings of the conference on object-oriented systems, languages and applications, Vancouver, Canada, October, pp 63–76Google Scholar
  22. Judd CM, Smith ER, Kidder LH (1991) Research methods in social relations 6th edn. Holt Rinehart and Winston, Fort Worth, TXGoogle Scholar
  23. Kaiser W (2005) JHotDraw as an Open-Source Project. http://www.jhotdraw.org (Accessed February 2005)
  24. Kirk D (2005) Understanding object-oriented frameworks. PhD Thesis, University of Strathclyde, Glasgow, UK. http://www.cis.strath.ac.uk/research/efocs/abstracts.html#dk_thesis (Accessed January 2006)
  25. Krasner GE, Pope ST (1988) A description of the model–view–controller user interface paradigm in the Smalltalk-80 system. J Object-Oriented Program 1(3):26–49Google Scholar
  26. Lajoie R (1993) Using reusing and describing object-oriented frameworks. Master’s Thesis, McGill University, CanadaGoogle Scholar
  27. Lajoie R, Keller RK (1994) Design and reuse in object-oriented frameworks: patterns, contracts, and motifs in concert. In the Proceedings of the Colloquium on Object-Orientation in Databases and Software Engineering, Montreal, Canada, pp 295–312Google Scholar
  28. Meusel M, Czarnecki K, Köpf W (1997) A model for structuring user documentation of object-oriented frameworks using patterns and hypertext. In Proceedings of the European Conference on Object-Oriented, Jyvaskyla, Finland, pp 496–510Google Scholar
  29. Microsoft (2005) Microsoft ASP.NET. http://www.asp.net (Accessed on 8 February 2005)
  30. Miles MB, Huberman MA (1994) Qualitative data analysis: an expanded sourcebook 2nd edn. Sage Publications, Thousand Oaks, CAGoogle Scholar
  31. Moser S, Nierstrasz O (1996) The effect of object-oriented frameworks on productivity. IEEE Comput 29(9):45–51Google Scholar
  32. Netu2 (2005).MediaCam high speed screen recording. http://www.netu2.co.uk/home.htm (Accessed February 2005)
  33. OMG (2005a) Corba. http://www.corba.org (Accessed February 2005)
  34. OMG (2005b) The unified modelling language. http://www.uml.org (Accessed April 2005)
  35. Ortigosa A, Campo M, Salomon RM (1999) Enhancing framework usability through smart documentation. In Proceedings of the 3rd Argentine Symposium on Object-Orientation, Buenos Aires, Argentina, pp 103–117Google Scholar
  36. Perry DE, Porter AA, Votta LG (2000) Empirical studies of programmers: a road map, international conference on software engineering, Proceedings of the Conference on The Future of Software Engineering, pp 345–355Google Scholar
  37. Pree W (1999) Hot spot driven development. In: Fayad ME, Schmidt DC, Johnson RE (eds) Building application frameworks: object-oriented foundations of framework design. Wiley, pp 379–394Google Scholar
  38. Robitaille S, Schauer R, Keller RK (2000) Bridging program comprehension tools by design navigation. In Proceedings of the International Conference on Software Maintenance San Jose, USA. Washington, DC: IEEE Computer Society, pp 22–32Google Scholar
  39. Schmidt DC (2005) The adaptive communication environment framework. http://www.cs.wustl.edu/~schmidt/ACE.html (Accessed February 2005)
  40. Schneider K, Repenning A (1995) Deceived by ease of use: using paradigmatic applications to build visual design environments. In Proceedings of the symposium on designing interactive systems: processes, practices, methods and techniques, Ann Arbor, MI, USA, pp 177–188Google Scholar
  41. Shull F, Lanubile F, Basili VR (2000) Investigating reading techniques for object-oriented framework learning. IEEE Trans Softw Eng 26(11):1101–1118CrossRefGoogle Scholar
  42. Slaney J, Thiébaux S (1994) Adventures in blocks world. Technical Report (TR-ARP-7-94), Research school of information sciences and engineering and centre for information science research, Australian National UniversityGoogle Scholar
  43. Sparks S, Benner K, Faris CA (1996) Managing object-oriented framework reuse. IEEE Compu 29(9):52–60Google Scholar
  44. Sun Microsystems (2005a) J2EE: JDBC Technology. http://www.java.sun.com/products/jdbc (Accessed February 2005)
  45. Sun Microsystems (2005b) Desktop Java: Java Foundation Classes (JFC/ Swing). http://www.java.sun.com/products/jdbc (Accessed February 2005)
  46. Sun Microsystems (2005c) Core Java: Javadoc Tool. http://www.java.sun.com/j2se/javadoc (Accessed February 2005)
  47. Together (2005) Borland Together Designer. http://www.borland.com/us/products/together/index.html. (Accessed January 2006)
  48. Van Grup J, Bosch J (2001) Design erosion: problems and causes. J Syst Softw 61(2):105–119CrossRefGoogle Scholar
  49. White S, O’Madadhain J, Fisher D, Boey Y (2005) JUNG: Java Universal Network/Graph Framework. http://www.jung.sourceforge.net (Accessed February 2005)

Copyright information

© Springer Science+Business Media, LLC 2006

Authors and Affiliations

  1. 1.Department of Computer and Information SciencesUniversity of StrathclydeGlasgowUK

Personalised recommendations