Framelets - Go Slim and Flexible

Home Up Java Resources C++ Resources .NET Resources DevHood Search

    What is wrong with frameworks?

    • Design frameworks is hard. Complexity and size of application frameworks often leads to restructuring lots of classes, lengthy development cycles etc.
    • Reusing is often hard also. One needs to understand the basic architecture of an application in order to specialize the corresponding framework.
    • Combining frameworks is also hard. Often frameworks assume the main control of the application; thus making the combination of two or more highly non-trivial.
    So, size does matter! And so does technique!

    We need to change the idea of a framework being a skeleton of a complex, full-fledged application. We dont need to attack the principles of the frameworks, we need to think more about the size and granularity of the target systems. This can be done using framelets.

    So, what is a framelet?

    • building blocks like frameworks
    • small size (<10 classes)
    • does not assume main control of application
    • has simple interface
    • has both a white-box and a black-box aspect
    • uses the same construction principles with a framework

    The idea is to provide a family of related framelets as an alternative to a complex framework, i.e. modularization.

    An example: GUIs of different applications do the same thing: provide list boxes and buttons to add, modify, or remove items in the list. Instead of implementing again and again these GUIs, we can create a single framelet, call it the list box framelet. Specializations of the list box framelet differ only in the dialog box used for item modification. So the reuser needs only to implement the dialog box to display the data of an item. The data transfer between an item object and the dialog can be automated with careful naming convention, and hidden by the reuser. Components of the list box framelet:

    • class Matcher
    • class LBoxGroup (implements GUI representation)
    • interface DataDisplay

    Summarizing: There is a need for having reusable software based on modern design patterns. Using frameworks might not be the best way to go. Frameworks are big, complex, often hrd to specialize and on top of that would be more difficult to be accepted as a replacement of an existing running application. Framelets are small, flexible, easier to specialize and asembly. They also can easier "corrupt" and finally transform existing applications to modern, nice, reusable code.

    Written by Demetrios Demopoulos. 3/20/02