Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Patterns for evolving frameworks
Pattern languages of program design 3
STL tutorial and reference guide, second edition: C++ programming with the standard template library
STL tutorial and reference guide, second edition: C++ programming with the standard template library
Visitor combination and traversal control
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Uml Profile for Framework Architectures
The Uml Profile for Framework Architectures
Data Structures and Algorithms in Java
Data Structures and Algorithms in Java
Using Function Generalization to Design a Cosequential Processing Framework
HICSS '06 Proceedings of the 39th Annual Hawaii International Conference on System Sciences - Volume 09
Using classic problems to teach Java framework design
Science of Computer Programming - Special issue: Principles and practices of programming in Java (PPPJ 2004)
Hi-index | 0.00 |
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.