skip to main content
article

Design fragments make using frameworks easier

Published:16 October 2006Publication History
Skip Abstract Section

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.

References

  1. Kent Beck and Donald G. Firesmith. Kent Beck's Guide to Better Smalltalk: A Sorted Collection (SIGS Reference Library). Cambridge University Press, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Brad Cox. Object-Oriented Programming, An Evolutionary Approach. Addison Wesley, New York, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. The Debian Linux Distribution. http://www.debian.org.Google ScholarGoogle Scholar
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle Scholar
  6. Marcus Fontoura, Wolfgang Pree, and Bernhard Rumpe. The UML Profile for Framework Architectures. Addison-Wesley Professional, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. Erich Gamma and Kent Beck. Contributing to Eclipse: Principles, Patterns, and Plugins. Addison-Wesley Professional, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. Imed Hammouda and Kai Koskimies. A pattern-based j2ee application development environment. Nordic Journal of Computing, 9(3):248--260, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. Ralph E. Johnson. Components, frameworks, patterns. SIGSOFT Softw. Eng. Notes, 22(3):10--17, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Ralph E. Johnson. Frameworks = (components + patterns). Commun. ACM, 40(10):39--42, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. Sun Microsystems. Java applets. http://java.sun.com/applets/.Google ScholarGoogle Scholar
  24. Richard Monson-Haefel. Enterprise JavaBeans (3rd Edition). O'Reilly, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle Scholar
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. Wolfgang Pree. Design Patterns for Object-Oriented Software Development. Addison Wesley Longman, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Trygve Reenskaug, P. Wold, O. A. Lehne, and Manning. Working With Objects: The Ooram Software Engineering Method. Manning Pubns Co, 1995.Google ScholarGoogle Scholar
  29. 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 ScholarGoogle Scholar
  30. Dirk Riehle. Framework Design: A Role Modeling Approach. PhD thesis, Swiss Federal Institute of Technology, Zurich, 2000.Google ScholarGoogle Scholar
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. Tom Tourwé. Automated Support for Framework-Based Software Evolution. PhD thesis, Vrije Universiteit Brussel, 2002.Google ScholarGoogle Scholar
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Design fragments make using frameworks easier

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 41, Issue 10
            Proceedings of the 2006 OOPSLA Conference
            October 2006
            480 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/1167515
            Issue’s Table of Contents
            • cover image ACM Conferences
              OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
              October 2006
              514 pages
              ISBN:1595933484
              DOI:10.1145/1167473

            Copyright © 2006 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 16 October 2006

            Check for updates

            Qualifiers

            • article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!