skip to main content
10.1145/1185448.1185519acmotherconferencesArticle/Chapter ViewAbstractPublication Pagesacm-seConference Proceedingsconference-collections
Article

Framework design using function generalization: a binary tree traversal case study

Published: 10 March 2006 Publication History

Abstract

A software framework is a technology that enables software reuse, potentially yielding rich dividends but requiring significant long-term investment. However, a framework is not a panacea because it is more difficult to design than a single application. Systematic approaches seek to make framework design more convenient and less error-prone. This paper illustrates the function generalization approach to framework design by developing a framework for binary tree traversals. A binary tree traversal is a well known algorithm, which makes it an excellent example. The approach involves a systematic process for generalizing a fixed application expressed as Haskell functions to produce a set of functions that precisely describe the generalized application. This generalized application encompasses various common and variable aspects of a family of applications. By using design patterns as a guide, the resulting set of functions can be converted to a Java framework.

References

[1]
H. C. Cunningham, Y. Liu, and C. Zhang. "Using Classic Problems to Teach Java Framework Design," Science of Computer Programming, Special Issue on Principles and Practice of Programming in Java (PPPJ 2004), Vol. 59, No. 1--2, pp. 147--169, January 2006.
[2]
H. C. Cunningham and P. Tadepalli. "Using Function Generalization to Design a Cosequential Processing Framework," In Proceedings of the 39th Hawaii International Conference on System Sciences, 10 pages, IEEE, January 2006.
[3]
M. Fontoura, W. Pree, B. Rumpe, The UML Profile for Framework Architectures, Addison-Wesley, 2002.
[4]
E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.
[5]
J. Gibbons. "Patterns in Datatype-Generic Programming," In Declarative Programming in the Context of Object-oriented Languages, Uppsala, Sweden, August 2003.
[6]
M. T. Goodrich and R. Tamassia, Data Structures and Algorithms in Java, 3rd Edition, Wiley, 2004.
[7]
D. R. Musser, G. J. Derge, and A. Saini. STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library, Second edition, Addison-Wesley, 2001.
[8]
D. L. Parnas. "On the Design and Development of Program Families," IEEE Transactions on Software Engineering, Vol. SE-2, pp. 1--9, March 1976.
[9]
D. L. Parnas. "Designing Software for Ease of Extension and Contraction," IEEE Transactions on Software Engineering, Vol. SE-5, pp. 128--138, March 1979.
[10]
S. Peyton Jones. Haskell 98 Language and Libraries: The Revised Report, Cambridge University Press, 2003.
[11]
D. Roberts and R. Johnson, "Patterns for Evolving Frameworks," In R. Martin, D. Riehle, F. Buschmann (Eds.), Pattern Languages of Program Design 3, pp. 471--486, Addison-Wesley, 1998.
[12]
H. A. Schmid. "Framework Design by Systematic Generalization," In Building Application Frameworks: Object-Oriented Foundations of Framework Design, M. E. Fayad, D. C. Schmidt, and R. E. Johnson, Eds. Wiley, 1999, pp. 353--378.
[13]
J. Visser. "Visitor Combination and Traversal Control," In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '01), pp. 270--282, October 2001.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ACMSE '06: Proceedings of the 44th annual ACM Southeast Conference
March 2006
823 pages
ISBN:1595933158
DOI:10.1145/1185448
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 March 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. frozen spot
  2. function generalization
  3. hot spot
  4. software framework
  5. tree traversal

Qualifiers

  • Article

Conference

ACM SE06
ACM SE06: ACM Southeast Regional Conference
March 10 - 12, 2006
Florida, Melbourne

Acceptance Rates

ACMSE '06 Paper Acceptance Rate 100 of 244 submissions, 41%;
Overall Acceptance Rate 502 of 1,023 submissions, 49%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media