skip to main content
10.1145/1753196.1753206acmconferencesArticle/Chapter ViewAbstractPublication PagesplopConference Proceedingsconference-collections
research-article

Patterns for understanding frameworks

Published:18 October 2008Publication History

ABSTRACT

Learning and understanding a framework is usually a major obstacle to its effective reuse. Before being able to use a framework successfully, users often go through a steep learning curve by spending a lot of effort understanding its underlying architecture and design principles. This is mainly due to users having to understand not only single isolated classes, but also complex designs of several classes whose instances collaborate for many different purposes, and using many different mechanisms. In addition, frameworks are also full of delocalized plans, and use inheritance and delegation intensively, which makes their design more difficult to grasp. How to obtain the necessary information from the framework itself and its accompanying documentation is the main problem with framework understanding. Considering its importance, this paper presents an initial attempt to capture, in the pattern form, a set of proven solutions to recurrent problems of understanding frameworks. The fundamental objective of this work is to help non-experts on being more effective when trying to learn and understand object-oriented frameworks.

References

  1. Aguiar, A. (2003). A minimalist approach to framework documentation. PhD thesis, Faculdade de Engenharia da Universidade do Porto.Google ScholarGoogle Scholar
  2. Aguiar, A., and David, G. (2005). Patterns for Documenting Frameworks -- Part I. In Proceedings of VikingPLoP'2005, Helsinki, Finland. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Aguiar, A., and David, G. (2006). Patterns for Documenting Frameworks -- Part II. In Proceedings of EuroPLoP'2006, Irsee, Germany. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Aguiar, A., and David, G. (2006). Patterns for Documenting Frameworks -- Part III. In Proceedings of PLoP'2007, Portland, Oregon, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Ahamed, S. I., Pezewski, A., and Pezewski, A. (2004). "Towards Framework Selection Criteria and Suitability for an Application Framework." In Proceedings of the international Conference on information Technology: Coding and Computing (Itcc'04). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Alexander, C., Ishikawa, S., and Silverstein, M. (1977). A Pattern Language. Oxford University Press.Google ScholarGoogle Scholar
  7. Brooks, R., "Towards a theory of the comprehension of computer programs" (1983), International Journal of Man-Machine Studies, pp. 543--554, vol. 18, 1983.Google ScholarGoogle Scholar
  8. Bruch, M., Schäfer, T. and Mezini, M., "FrUiT: IDE Support for Framework Understanding" (2006) OOPSLA Eclipse Techonology Exchange, 2006 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P. and Stal, M. (1996) "Pattern oriented software architecture - a system of patterns". John Wiley and Sons. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Butler G., Xu L. "Cascaded Refactoring for Framework Evolution" (2001). Proceedings of 2001 Symposium on Software Reusability. ACM Press. P. 51--57. 2001 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Butler, G. (1997). A reuse case perspective on documenting frameworks. http://www.cs.concordia.ca/faculty/gregb.Google ScholarGoogle Scholar
  12. Codenie W., Hondt K., Steyaert P., Vercammen A. "From Custom Applications to Domain-Specific Frameworks." (1997) Communications of the ACM, 40(10): 71--77. 1997 Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Cortés, M., Fontoura, M., Lucena, C. "Framework Evolution Tool" (2006). Journal of Object Technology, vol. 5, no. 8, November-December 2006, pp. 101--124.Google ScholarGoogle Scholar
  14. Deutsch, L. P. (1989). "Design reuse and frameworks in the smalltalk-80 system". In Software reusability: vol. 2, applications and experience, pages 57--71. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Fairbanks, G., Garlan D. and Scherlis, W. "Design Fragments Make Using Frameworks Easier" (2006), OOPSLA 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Fayad, M. E. and Schmidt, D. C. (1997b). "Object-oriented application frameworks." Communications of the ACM, 40(10):32--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Fayad, M. E., Schmidt D. C., Johnson, R. E. "Building Application Frameworks" (1999). John Wiley & Sons, Inc. 1999 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Felder, R., and Spurlin, J. (2005) "Applications, Reliability, and Validity of the Index of Learning Styles". International Journal of Engineering Education, v. 21, n. 1, pp. 103--112.Google ScholarGoogle Scholar
  19. Felder, R. M. and Silverman, L. K. "Learning and Teaching Styles in Engineering Education" (1988), Engr. Education, 78(7), 674--681, 1988Google ScholarGoogle Scholar
  20. Flores, N. (2006). From Program Comprehension to Framework Understanding: a roadmap. Available at http://www.fe.up.pt/~nfloresGoogle ScholarGoogle Scholar
  21. Froehlich, G., Hoover, H., Lui, L. and Sorenson, P. (1997) "Hooking into Object-Oriented Application Frameworks", Proceedings of the 19th International Conference on Software Engineering, pp. 491--501. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Froehlich, G., Hoover, H. J., Liu, L., Sorenson, P. G. "Choosing an Object-Oriented Domain Framework" (2000), ACM Computing Surveys, vol. 32(1), 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995)."Design Patterns --- Elements of reusable object-oriented software". Addison-Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Jacobson, E. E., Nowack, P. "Frameworks and Patterns: Architectural Abstractions" (1999). In Building Application Frameworks, Chapter 2, pp. 29--54, John Wiley & Sons, 1999Google ScholarGoogle Scholar
  25. Johnson, R. E. and Foote, B. (1988). "Designing reusable classes". Journal of Object-Oriented Programming, 1(2):22--35.Google ScholarGoogle Scholar
  26. Kirk, D., Roper, M., and Wood, M. (2005). "Identifying and Addressing Problems in Framework Reuse". In Proceedings of the 13th international Workshop on Program Comprehension (May 15--16, 2005). Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Letovsky, s. "Cognitive processes in program comprehension" (1986), Empirical Studies of Programmers, pp. 58--79, 1986 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Littman, D. C., Pinto, J., Letovsky, S. and Soloway, E., "Mental models and software maintenance" (1986), Empirical Studies of Programmers, pp. 80--98, 1986 Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Maryhauser and Vans. "Program comprehension during software maintenance" (1995), IEEE Computer pp. 44--55, August 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Pennington, N., "Stimulus structures and mental representations in expert comprehension of computer programs" (1987), Cognitive Psychology, pp. 295--341, vol 19, 1987.Google ScholarGoogle Scholar
  31. Pree, W. (1995). Design Patterns for Object-Oriented Software Development. Addison-Wesley / ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Pree, W". "Design Patterns for Object-Oriented Software Development" (1995). Addison-Wesley / ACN Press 1995 Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Roberts, D. and Johnson, R. E. (1997). Evolving frameworks: A pattern language for developing object-oriented frameworks. In Pattern Languages of Program Design 3. Addison Wesley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Robillard et al. "How Effective Developers Investigate Source Code: An Exploratory Study" (2004). IEEE Transactions on Software Engineering, Vol. 30, N°12, December 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Robillard, M., Coelho, W., and Murphy, G., (2004) "How Effective Developers Investigate Source Code: An Exploratory Study", IEEE Transactions on Software Engineering, vol. 30, no. 12, December 2004 Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Schull, F., Lanubile, F., Basil, V. "Investigating Reading Techniques for Object-Oriented Framework Learning", IEEE TSE, vol. 26, n°.11, 2000 Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Shaw, M., Garlan, D., "Software Architecture -- Perspectives on an Emerging Discipline", Prentice Hall, 1996 Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Shneiderman, B. and Mayer, R., "Syntactic/semantic interactions in programmer behavior: A model and experimental results" (1979). International Journal of Computer and Information Science, pp. 219--238, 8(3), 1979Google ScholarGoogle Scholar
  39. Shull, F., Lanubile, F., and Basili, V. R., "Investigating Reading Techniques for Framework Learning" (1998), Technical Report CS-TR-3896, UMCP Dept. of Computer Science, 1998Google ScholarGoogle Scholar
  40. Sillito, J., Murphy, G. C., and De Volder, K. (2006). "Questions programmers ask during software evolution tasks". In Proceedings of the 14th ACM SIGSOFT international Symposium on Foundations of Software Engineering (Portland, Oregon, USA, November 05--11, 2006) Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Soloway, E. and Erlich, K. "Empirical studies of programming knowledge" (1984), IEEE Transactions on Software Engineering, pp. 595--609, SE-10(5), September 1984.Google ScholarGoogle Scholar
  42. Storey, M-A, "Theories, Methods and Tools in Program Comprehension: Past, Present and Future." (2005) Proceedings of the 13th IEEE International Workshop on Program Comprehension (IWPC). St. Louis, MO, pp. 181--191, IEEE Computer Society Press 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Storey, M-A, Fracchia, F. and Muller, H. "Cognitive design elements to support the construction of a mental model during software visualization". (1997) Proceedings of the 5th International Workshop on Program Comprehension (IWPC'97), Dearborn, Michigan, pp. 17--28, May, 1997 Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Surowiecki J. "The Wisdom of Crowds: Why the Many Are Smarter Than the Few and How Collective Wisdom Shapes Business, Economies, Societies and Nations" (2004), Little Brown 2004 Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Turner, A. and Wang, C. (2007). "AJAX: Selecting the Framework that Fits". Dr. Dobb's Journal, May 01, 2007. http://www.ddj.com/web-development/199203087Google ScholarGoogle Scholar
  46. Zdun, U. and Avgeriou, P., (2005) "Modeling Architectural Patterns Using Architectural Primitives", OOPSLA Google ScholarGoogle ScholarDigital LibraryDigital Library
  1. Patterns for understanding frameworks

    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
    • Published in

      cover image ACM Conferences
      PLoP '08: Proceedings of the 15th Conference on Pattern Languages of Programs
      October 2008
      295 pages
      ISBN:9781605581514
      DOI:10.1145/1753196
      • General Chair:
      • Joseph Yoder,
      • Program Chair:
      • Ademar Aguiar

      Copyright © 2008 Copyright is held by the author(s).

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 18 October 2008

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate28of36submissions,78%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader