The following are some of my views and reference pages on Frameworks. I must admit that I have been highly influenced by many framework people, most notably Ralph Johnson.



What Are Frameworks:

A framework is a reusable design of an application or subsystem and is represented as a set of abstract classes and the way their instances collaborate. Some frameworks are more technology frameworks (vertical) solving problems such as GUI's and object persistence, where other frameworks are more domain specific (horizontal) solving say manufacturing problems. Frameworks prescribes how to decompose a problem. There are white-box frameworks where you need to overwrite behavior or subclass in order to get them to work, and there are black-box frameworks where you customize by configuring which happens through polymorphism and parameterization. Iteration during framework development is important and they must "Work out of the Box" as presented in the Selfish Class pattern paper.

OOPSLA Framework Workshop:

I have attended OOPSLA since 1993 and have started attending the OOPSLA Framework workshop. Here is a summary from the OOPSLA'96 Framework Workshop. The 1996 position papers make for some good readings on frameworks along with 1997 position papers. The (1997) position paper link is a PDF format that also has a better format summarizing 1996 results (primarily because I have simply generated HTML from Word and MSWord doesn't generate good HTML). There is also a good summary from 1997 which can be found here.

My Frameworks:

A lot of my research has been focused around frameworks. I have consciously been working on Frameworks since 1992. The following is a list of some of the more involved frameworks that I have worked on and in which there are web pages for.

  • WLIS - A collaborative client-server database application for keeping track of engineering design changes.
  • TIS - A Smalltalk version of the above for keeping track of general design changes for tractors or whatever. Meta-data is used to describe the changes in the system.
  • Web-based applications - These are JAVA/Perl based applications that allow the users of the framework to develop customized web-based applications without any programming. The two of interest are the Tutorial Builder and the Task Management tools.
  • Financial Modeling Tool - Which is a very elaborate framework for developing a complete application for managing the finances of a business. Meta-modeling was used for generating the business rules and the GUIs.

Other Framework Pages:


Upcoming Travel


Joe's Publications

Can be downloaded from my website. I add new material as it's been published.

View Library

Training Mentoring

Are you looking for design patterns training or mentoring? Joseph provides training courses for a variety of languages.

Learn More