Department of Computer Science and Engineering, School of Fundamental Science and Engineering, Waseda University


Home > Research > Framework


Framework is:

Framework is in a nutshell, "a half finished application". A framework only implements the common functionality used in all applications, and the application-specific functionality is not implemented. Usually the application-specific functionality is implemented by sub-classing the already supplied classes from the framework.

The benefits of the frameworks are summarized below. Because of these advantages, using a framework to develop applications (particularly web applications), has become common practice.

Improved productivity
By using the framework as a base for the part of the application that requires advanced knowledge, and leaving the design and analysis to the developer, the foundation is laid out and the effort can be put in the more essential part of the application. In this way the amount of code to be written is reduced and the productivity is increased
Homogeneous development
When a framework is used to develop an application, the development must be done in accordande to the framework, maintaining the same level of quality.
Shorter test process
There is no need for making unit tests for the framework.
Improved maintenance
By using a framework is easier to understand the big picture of the application, making easier the maintenance.

However useful the frameworks are, they have the following disadvantages:

Step learning curve
To understand all of the framework is difficult. If the form of use is not explained clearly, or when we want to make a change in the framework, we need to understand how the framework works in detail.
To develop a good framework is very difficult
For a framework to be used in many applications, we need to know the common functionality. However, to determine the common functionality is difficult. And to make this common functionality easy to use by many different applications is even more difficult.
Adding non supported functionality to the framework is difficult
The application-specific functionality can be achieved by sub-classing the classes provided by the framework. However, if we want to change the functionality of the framework, we need to modify the framework itself. When developing with a framework making a change that is supported is easy, but making a change that was not foreseen can be very difficult. Tho cost of understanding can be very high. To develop a framework easy to extend is very difficult.

In the framework group we do research to solve this problems. Recently me are doing research about frameworks for Web applications.

Top of page