Abstract
Object oriented frameworks impose additional burdens on programmers that libraries did not, such as requiring the programmer to understand the method callback sequence, respecting behavior constraints within these methods, and devising solutions within a constrained solution space. To overcome these burdens, we express the repeated patterns of engagement with the framework as a design fragment. We analyzed the 20 demo applets provided by Sun and created a representative catalog of design fragments of conventional best practice. By evaluating 36 applets pulled from the internet we show that these design fragments are common, many applets copied the structure of the Sun demos, and that creation of a catalog of design fragments is practical. Design fragments give programmers immediate benefit through tool-based conformance assurance and long-term benefit through expression of design intent.
- Kent Beck and Donald G. Firesmith. Kent Beck's Guide to Better Smalltalk: A Sorted Collection (SIGS Reference Library). Cambridge University Press, 1998. Google Scholar
Digital Library
- Brad Cox. Object-Oriented Programming, An Evolutionary Approach. Addison Wesley, New York, 1987. Google Scholar
Digital Library
- The Debian Linux Distribution. http://www.debian.org.Google Scholar
- D. Fay. An architecture for distributed applications on the internet: Overview of microsoft's .NET platform. IEEE International Parallel and Distributed Processing Symposium, April 2003. Google Scholar
Digital Library
- Gert Florijn, Marco Meijers, and Pieter van Winsen. Tool support for object-oriented patterns. In Mehmet Aksit and Satoshi Matsuoka, editors, Proceedings ECOOP '97, volume 1241 of Lecture Notes in Computer Science, pages 472--495, Jyvaskyla, Finland, June 1997.Google Scholar
- Marcus Fontoura, Wolfgang Pree, and Bernhard Rumpe. The UML Profile for Framework Architectures. Addison-Wesley Professional, 2001. Google Scholar
Digital Library
- Gary Froehlich, H. James Hoover, Ling Liu, and Paul Sorenson. Hooking into object-oriented application frameworks. In ICSE '97: Proceedings of the 19th international conference on Software engineering, pages 491--501, New York, NY, USA, 1997. Google Scholar
Digital Library
- Erich Gamma and Kent Beck. Contributing to Eclipse: Principles, Patterns, and Plugins. Addison-Wesley Professional, 2003. Google Scholar
Digital Library
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series). Addison-Wesley Professional, 1995. Google Scholar
Digital Library
- David Garlan, Robert T. Monroe, and David Wile. Acme: Architectural description of component-based systems. In Gary T. Leavens and Murali Sitaraman, editors, Foundations of Component-Based Systems, chapter 3, pages 47--67. Cambridge University Press, 2000. Google Scholar
Digital Library
- Aaron Greenhouse, T. J. Halloran, and William L. Scherlis. Observations on the assured evolution of concurrent java programs. Science of Computer Programming, 58:384--411, March 2005. Google Scholar
Digital Library
- Markku Hakala, Juha Hautamäki, Kai Koskimies, Jukka Paakki, Antti Viljamaa, and Jukka Viljamaa. Annotating reusable software architectures with specialization patterns. In WICSA '01: Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA'01), page 171, Washington, DC, USA, 2001. Google Scholar
Digital Library
- Imed Hammouda and Kai Koskimies. A pattern-based j2ee application development environment. Nordic Journal of Computing, 9(3):248--260, 2002. Google Scholar
Digital Library
- Jan Hannemann and Gregor Kiczales. Design pattern implementation in java and aspectj. In OOPSLA '02: Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 161--173, New York, NY, USA, 2002. Google Scholar
Digital Library
- Richard Helm, Ian M. Holland, and Dipayan Gangopadhyay. Contracts: specifying behavioral compositions in object-oriented systems. In OOPSLA/ECOOP '90: Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications, pages 169--180, New York, NY, USA, 1990. ACM Press. Google Scholar
Digital Library
- Daqing Hou and H. James Hoover. Towards specifying constraints for object-oriented frameworks. In CASCON '01: Proceedings of the 2001 conference of the Centre for Advanced Studies on Collaborative research, page 5. IBM Press, 2001. Google Scholar
Digital Library
- Daqing Hou, Kenny Wong, and H. James Hoover. What can programmer questions tell us about frameworks? In IWPC '05: Proceedings of the 13th International Workshop on Program Comprehension, pages 87--96, Washington, DC, USA, 2005. Google Scholar
Digital Library
- Ralph E. Johnson. Documenting frameworks using patterns. In OOPSLA '92: conference proceedings on Object-oriented programming systems, languages, and applications, pages 63--76, New York, NY, USA, 1992. Google Scholar
Digital Library
- Ralph E. Johnson. Components, frameworks, patterns. SIGSOFT Softw. Eng. Notes, 22(3):10--17, 1997. Google Scholar
Digital Library
- Ralph E. Johnson. Frameworks = (components + patterns). Commun. ACM, 40(10):39--42, 1997. Google Scholar
Digital Library
- Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An overview of aspectj. In ECOOP '01: Proceedings of the 15th European Conference on Object-Oriented Programming, pages 327--353, London, UK, 2001. Google Scholar
Digital Library
- Glenn E. Krasner and Stephen T. Pope. A cookbook for using the model-view controller user interface paradigm in smalltalk-80. J. Object Oriented Program., 1(3):26--49, 1988. Google Scholar
Digital Library
- Sun Microsystems. Java applets. http://java.sun.com/applets/.Google Scholar
- Richard Monson-Haefel. Enterprise JavaBeans (3rd Edition). O'Reilly, 2001. Google Scholar
Digital Library
- Harold Ossher, William Harrison, Frank Budinsky, and Ian Simmonds. Subject-oriented programming: Supporting decentralized development of objects. In Proc. 7th IBM Conf. Object-Oriented Technology, July 1994.Google Scholar
- Dewayne E. Perry. The inscape environment. In ICSE '89: Proceedings of the 11th International Conference on Software Engineering, pages 2--11, New York, NY, USA, 1989. Google Scholar
Digital Library
- Wolfgang Pree. Design Patterns for Object-Oriented Software Development. Addison Wesley Longman, 1994. Google Scholar
Digital Library
- Trygve Reenskaug, P. Wold, O. A. Lehne, and Manning. Working With Objects: The Ooram Software Engineering Method. Manning Pubns Co, 1995.Google Scholar
- Charles Rich and Richard. C. Waters. The programmer's apprentice: A research overview. In D. Partridge, editor, Artificial Intelligence & Software Engineering, pages 155--182. Norwood, NJ, 1991.Google Scholar
- Dirk Riehle. Framework Design: A Role Modeling Approach. PhD thesis, Swiss Federal Institute of Technology, Zurich, 2000.Google Scholar
- Peri Tarr, Harold Ossher,William Harrison, and Jr. Stanley M. Sutton. N degrees of separation: multi-dimensional separation of concerns. In ICSE '99: Proceedings of the 21st international conference on Software engineering, pages 107--119, Los Alamitos, CA, USA, 1999. Google Scholar
Digital Library
- Tom Tourwé. Automated Support for Framework-Based Software Evolution. PhD thesis, Vrije Universiteit Brussel, 2002.Google Scholar
- Tom Tourwé and Tom Mens. Automated support for framework based software evolution. In ICSM '03: Proceedings of the International Conference on Software Maintenance, page 148, Washington, DC, USA, 2003. Google Scholar
Digital Library
Index Terms
Design fragments make using frameworks easier
Recommendations
Design fragments make using frameworks easier
OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applicationsObject oriented frameworks impose additional burdens on programmers that libraries did not, such as requiring the programmer to understand the method callback sequence, respecting behavior constraints within these methods, and devising solutions within ...
Design fragments make using frameworks easier
OOPSLA '06: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applicationsObject oriented frameworks impose new burdens on programmers that libraries did not, such as requiring the programmer to understand the method callback sequence, respecting behavior constraints within these methods, and devising solutions within a ...
Using framework interfaces with design fragments
OOPSLA '06: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applicationsFramework interfaces are complex, so programmers often copy repeating patterns, either their own or from others, to interact with them. Design Fragments allow framework interactions to be explicitly defined, describing known-good uses of the framework. ...







Comments