February 25, 2021
Hot Topics:


  • By Yasser EL-Manzalawy
  • Send Email »
  • More Articles »

When Should You Use a Framework?

Do you think that you can get the benefits of a framework with no cost? Even if the framework is freely distributed, you still have to pay, in terms of time and efforts, to learn how to use this framework.

Obviously, use a framework when the cost of learning it is lower than the cost of writing the code from scratch. Also, keep in mind that the cost of learning a framework is amortized every time you reuse this framework in a new application.

Are Frameworks Worth the Struggle?

The answer is "Yes." I admit that learning how to use a framework is not an easy task. The bad news is that you need to practice building up to three applications using a framework to realize what this framework is capable of. The good news is that frameworks can help you save 10%–95%, depending on the type of framework used. Not only are frameworks worth the struggle of learning them; they also are worth a company's struggle to develop them for reuse in its software products.

Frameworks Classification

Frameworks are classified by their scope to:

  • System infrastructure frameworks
  • Middleware integration frameworks
  • Enterprise application frameworks

Frameworks also may be classified by the techniques used to extend them to:

  • Whitebox frameworks
  • Blackbox frameworks

In this series, we suggest classifying frameworks according to their target application. Table 1 shows an extended list of Java frameworks. This list could be extended either by adding a new application category or by adding new frameworks to an existing category.

Table 1: Java Frameworks
Application Frameworks
Database JRelational
Intelligent Agents Jade, JAF, ABLE
Logging Java logging framework, Log4J
Multimedia JMF
Networking RMI
Testing JUnit, Cactus, JFCUnit, Abbot, Hansel
Web Development Struts, WebWork, SOFIA, Cocoon, JBoss, JOFFAD
XML Dom4j, JBind
Others Java Collections, BSF, Joone, ...

What Is Next?

This article is intended to be the first in a monthly series. The following articles will introduce at least a framework for each type of application in Table 1. The main objective of this series is to show how Java developers can use different open source Java frameworks for more programming productivity and enhanced software quality.


The author would like to thank Rosemarie Graham for suggesting the idea of this series.

About the Author

Yasser EL-Manzalawy has been a Java programmer and instructor since 1998. He is currently an assistant Lecturer at the Systems & Computers Engineering Department, AZHAR University, Cairo. His Ph.D. research project aims to extend the Java language for agent-based systems.


  • [GAM95] E. Gamma, R. Helm, R. Johnson, and J. Vlissades. Design Patterns: Elements of Reusable Software Architecture. Addison-Wesley, 1995.
  • [FAY99] M. Fayad, D. Schmidt, R. Johnson. Building Application Frameworks: OO Foundations of Framework Design. John Wiley and Sons, 1999.

Related Links

Page 2 of 2

This article was originally published on March 15, 2004

Enterprise Development Update

Don't miss an article. Subscribe to our newsletter below.

Thanks for your registration, follow us on our social networks to keep up-to-date