Abstract
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.
Similar content being viewed by others
References
Alexander C, Ishikawa S, Silverstein M, Jacobson M, Fiksdhal-King I, Angel S (1977) A pattern language—towns, buildings, construction. Oxford University Press, New York
Beck K, Cunningham W (2005) HotDraw. http://www.c2.com/cgi/wiki?HotDraw (Accessed February 2005)
Beck K, Johnson RE (1994) Patterns generate architectures. In Proceedings of the European Conference on Object-Oriented Programming, Bologna, Italy, pp139–149
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–82
Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal M (1996) Pattern-oriented software architecture, vol 1: a system of patterns, Wiley.
Butler G, Keller RK, Mili H (2000) A framework for framework documentation. ACM Comput Surv 32(1)
Campbell D, Stanley J (1963) Experimental and quasi-experimental designs for research. Houghton Mifflin Company, Boston
Dénommée P (1998) A case study in documenting and developing frameworks. Master’s Thesis, Concordia University, Canada
Dey I (1993) Qualitative data analysis: a user-friendly guide for social scientists. Routledge, London
Eclipse (2005) Eclipse. http://www.eclipse.org (Accessed February 2005)
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)
Fayad M, Schmidt DC, Johnson RE (1999) Building application frameworks: object-oriented foundations of framework design. Wiley, New York
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–501
Gamma E, Eggenschwiler T (2005) JHotDraw. http://www.members.pingnet.ch/gamma/JHD-5.1.zip (Accessed February 2005)
Gamma E, Helm R, Johnson RE, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison Wesley, Reading, MA
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–100
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–209
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 Engineering
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–180
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–214
Johnson RE (1992) Documenting frameworks using patterns. In Proceedings of the conference on object-oriented systems, languages and applications, Vancouver, Canada, October, pp 63–76
Judd CM, Smith ER, Kidder LH (1991) Research methods in social relations 6th edn. Holt Rinehart and Winston, Fort Worth, TX
Kaiser W (2005) JHotDraw as an Open-Source Project. http://www.jhotdraw.org (Accessed February 2005)
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)
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–49
Lajoie R (1993) Using reusing and describing object-oriented frameworks. Master’s Thesis, McGill University, Canada
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–312
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–510
Microsoft (2005) Microsoft ASP.NET. http://www.asp.net (Accessed on 8 February 2005)
Miles MB, Huberman MA (1994) Qualitative data analysis: an expanded sourcebook 2nd edn. Sage Publications, Thousand Oaks, CA
Moser S, Nierstrasz O (1996) The effect of object-oriented frameworks on productivity. IEEE Comput 29(9):45–51
Netu2 (2005).MediaCam high speed screen recording. http://www.netu2.co.uk/home.htm (Accessed February 2005)
OMG (2005a) Corba. http://www.corba.org (Accessed February 2005)
OMG (2005b) The unified modelling language. http://www.uml.org (Accessed April 2005)
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–117
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–355
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–394
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–32
Schmidt DC (2005) The adaptive communication environment framework. http://www.cs.wustl.edu/~schmidt/ACE.html (Accessed February 2005)
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–188
Shull F, Lanubile F, Basili VR (2000) Investigating reading techniques for object-oriented framework learning. IEEE Trans Softw Eng 26(11):1101–1118
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 University
Sparks S, Benner K, Faris CA (1996) Managing object-oriented framework reuse. IEEE Compu 29(9):52–60
Sun Microsystems (2005a) J2EE: JDBC Technology. http://www.java.sun.com/products/jdbc (Accessed February 2005)
Sun Microsystems (2005b) Desktop Java: Java Foundation Classes (JFC/ Swing). http://www.java.sun.com/products/jdbc (Accessed February 2005)
Sun Microsystems (2005c) Core Java: Javadoc Tool. http://www.java.sun.com/j2se/javadoc (Accessed February 2005)
Together (2005) Borland Together Designer. http://www.borland.com/us/products/together/index.html. (Accessed January 2006)
Van Grup J, Bosch J (2001) Design erosion: problems and causes. J Syst Softw 61(2):105–119
White S, O’Madadhain J, Fisher D, Boey Y (2005) JUNG: Java Universal Network/Graph Framework. http://www.jung.sourceforge.net (Accessed February 2005)
Acknowledgments
This work was made possible by funding from UK EPSRC research grant GR/N07509. We are also grateful to the students from the University of Strathclyde software architecture class for their enthusiasm and contributions and to the postgraduate students who volunteered to participate in the second study. We also thank the reviewers for their useful comments and suggestions which helped to improve the content and clarity of the paper.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Kirk, D., Roper, M. & Wood, M. Identifying and addressing problems in object-oriented framework reuse. Empir Software Eng 12, 243–274 (2007). https://doi.org/10.1007/s10664-006-9027-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-006-9027-z