[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1753196.1753206acmconferencesArticle/Chapter ViewAbstractPublication PagesplopConference Proceedingsconference-collections
research-article

Patterns for understanding frameworks

Published: 18 October 2008 Publication 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.
[2]
Aguiar, A., and David, G. (2005). Patterns for Documenting Frameworks -- Part I. In Proceedings of VikingPLoP'2005, Helsinki, Finland.
[3]
Aguiar, A., and David, G. (2006). Patterns for Documenting Frameworks -- Part II. In Proceedings of EuroPLoP'2006, Irsee, Germany.
[4]
Aguiar, A., and David, G. (2006). Patterns for Documenting Frameworks -- Part III. In Proceedings of PLoP'2007, Portland, Oregon, USA.
[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).
[6]
Alexander, C., Ishikawa, S., and Silverstein, M. (1977). A Pattern Language. Oxford University Press.
[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.
[8]
Bruch, M., Schäfer, T. and Mezini, M., "FrUiT: IDE Support for Framework Understanding" (2006) OOPSLA Eclipse Techonology Exchange, 2006
[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.
[10]
Butler G., Xu L. "Cascaded Refactoring for Framework Evolution" (2001). Proceedings of 2001 Symposium on Software Reusability. ACM Press. P. 51--57. 2001
[11]
Butler, G. (1997). A reuse case perspective on documenting frameworks. http://www.cs.concordia.ca/faculty/gregb.
[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
[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.
[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.
[15]
Fairbanks, G., Garlan D. and Scherlis, W. "Design Fragments Make Using Frameworks Easier" (2006), OOPSLA 2006.
[16]
Fayad, M. E. and Schmidt, D. C. (1997b). "Object-oriented application frameworks." Communications of the ACM, 40(10):32--38.
[17]
Fayad, M. E., Schmidt D. C., Johnson, R. E. "Building Application Frameworks" (1999). John Wiley & Sons, Inc. 1999
[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.
[19]
Felder, R. M. and Silverman, L. K. "Learning and Teaching Styles in Engineering Education" (1988), Engr. Education, 78(7), 674--681, 1988
[20]
Flores, N. (2006). From Program Comprehension to Framework Understanding: a roadmap. Available at http://www.fe.up.pt/~nflores
[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.
[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.
[23]
Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995)."Design Patterns --- Elements of reusable object-oriented software". Addison-Wesley.
[24]
Jacobson, E. E., Nowack, P. "Frameworks and Patterns: Architectural Abstractions" (1999). In Building Application Frameworks, Chapter 2, pp. 29--54, John Wiley & Sons, 1999
[25]
Johnson, R. E. and Foote, B. (1988). "Designing reusable classes". Journal of Object-Oriented Programming, 1(2):22--35.
[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).
[27]
Letovsky, s. "Cognitive processes in program comprehension" (1986), Empirical Studies of Programmers, pp. 58--79, 1986
[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
[29]
Maryhauser and Vans. "Program comprehension during software maintenance" (1995), IEEE Computer pp. 44--55, August 1995.
[30]
Pennington, N., "Stimulus structures and mental representations in expert comprehension of computer programs" (1987), Cognitive Psychology, pp. 295--341, vol 19, 1987.
[31]
Pree, W. (1995). Design Patterns for Object-Oriented Software Development. Addison-Wesley / ACM Press.
[32]
Pree, W". "Design Patterns for Object-Oriented Software Development" (1995). Addison-Wesley / ACN Press 1995
[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.
[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.
[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
[36]
Schull, F., Lanubile, F., Basil, V. "Investigating Reading Techniques for Object-Oriented Framework Learning", IEEE TSE, vol. 26, n°.11, 2000
[37]
Shaw, M., Garlan, D., "Software Architecture -- Perspectives on an Emerging Discipline", Prentice Hall, 1996
[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), 1979
[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, 1998
[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)
[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.
[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.
[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
[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
[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/199203087
[46]
Zdun, U. and Avgeriou, P., (2005) "Modeling Architectural Patterns Using Architectural Primitives", OOPSLA

Cited By

View all
  • (2017)Recommending Framework Extension Examples2017 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME.2017.80(456-466)Online publication date: Sep-2017
  • (2016)Patterns for program reverse engineering from the viewpoint of metamodelProceedings of the 23rd Conference on Pattern Languages of Programs10.5555/3158161.3158165(1-10)Online publication date: 24-Oct-2016
  • (2015)DRIVERProceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2015.105(783-788)Online publication date: 9-Nov-2015
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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

Sponsors

In-Cooperation

  • Hillside Group: Hillside Group

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 18 October 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. learning
  2. object-oriented frameworks
  3. patterns
  4. understanding

Qualifiers

  • Research-article

Conference

PLOP '08
Sponsor:
PLOP '08: Pattern Languages of Programs
October 18 - 20, 2008
Tennessee, Nashville, USA

Acceptance Rates

Overall Acceptance Rate 28 of 36 submissions, 78%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2017)Recommending Framework Extension Examples2017 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME.2017.80(456-466)Online publication date: Sep-2017
  • (2016)Patterns for program reverse engineering from the viewpoint of metamodelProceedings of the 23rd Conference on Pattern Languages of Programs10.5555/3158161.3158165(1-10)Online publication date: 24-Oct-2016
  • (2015)DRIVERProceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2015.105(783-788)Online publication date: 9-Nov-2015
  • (2009)Patterns and Tools for Improving Framework UnderstandingProceedings of the 2009 Fourth International Conference on Software Engineering Advances10.1109/ICSEA.2009.82(524-529)Online publication date: 20-Sep-2009

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media