What is Framework?

Framework is incomplete, though concrete, driving solution to recurring high-value problem. To elaborate more, let me go through properties of framework one by one.

1. Framework is concrete.

In other words, framework has physical components – usually files usable during production.
Java and .Net frameworks are set of concrete components like dlls, arjs, exes etc.

GoF Design Patterns are not framework as they are practical design ideas. It is up to you to apply those ideas to context. Design patterns are logical ideas which you convert to concrete software in a project, whereas framework is concrete already.

2. Framework is incomplete.

Framework itself is not usable on its own. Framework does leave some fill-in-the-blanks for its user.

If you deploy Java/.Net framework to a end-user computer, it does not add any usability value unless you write your own code to use Java/.Net and then deploy that code in executable form along with framework.

More powerful is framework, less complex are fill-in-the-blanks and more efforts in learning to use framework.
Frameworks pose trade-off challenge between learning curve and saving-coding-time.

3. Framework drives solution.

Framework dictates how you do fill-in-the-blanks. Framework dictates overall architecture of complete specific solution.

You have to follow ASP.Net rules, if you have to use ASP.Net framework to build a website.

4. Framework helps solving recurring problems.

That just means that framework are very much reusable as they are helpful in many recurring problem contexts. This also implies commercial case for building a framework for set of problem contexts.

5. Framework deal with high-valued problems.

How to add two number is a problem. Solution is a routine in a form of library. But then it is not a framework as problem is not high-valued.

Providing object persistence is high-valued problem and you can build framework for same. Note that value is relative term.

If you look at these properties, it does not make sense to try to solve any specific non-trivial problem without help from a already existing and proven framework!

  • RSS
  • Print
  • PDF
  • Twitter
  • del.icio.us
  • Facebook
  • LinkedIn
  • Google Bookmarks
  • Digg
  • Add to favorites
  • StumbleUpon

Comments 13

  1. Marco wrote:

    Hi, this is so far the best definition of a framework. Question: Did it come out of your head or based on some literature? If the former, congratulations (unfortunately, I can’t cite blog entries). If the latter, could you indicate me some further links? Thanks a lot and have a nice day. Marco

    Posted 03 Jan 2009 at 4:09 pm
  2. Chetan wrote:

    Hi Marco,

    Thanks for appreciation.

    This is not copy from anywhere though Point 3 is obviously stated everywhere.

    You can check following:

    http://www.codeproject.com/KB/architecture/WhatIsAFramework.aspx

    http://en.wikipedia.org/wiki/Software_framework

    Thanks.

    Posted 04 Jan 2009 at 9:09 am
  3. Manaswini wrote:

    Great explanation. I have just little knowledge on Java and never got chance to work in java. Your article really gave me understanding in a very generic manner. Thank you.

    I need some more information. Can you give similar understanding for design patterns as well.

    Posted 09 Feb 2009 at 7:54 pm
  4. Kim wrote:

    For more information on Frameworks and expert advise regarding Software development; check out Dr. Dobb’s Portal @ http://www.ddj.com/blog/architectblog/archives/2006/07/frameworks_vs_l.html

    Posted 14 Mar 2009 at 1:32 am
  5. Mahmood wrote:

    Hi Chetan,
    Thanks a lot for your simple, clear and to the point explanation.

    I have one question please.
    -Is there any framework for building a wireless patients monitoring system?

    Posted 25 Mar 2009 at 8:40 am
  6. Pravind wrote:

    Dear Chetan,
    i got it is good for first look and much specific analysis. i appreciate your work. These days i am working on financial framework. if you have idea about financial framework, that should be more generic, then please share with me.

    thanks a lot
    Pravind Kumar

    Posted 03 May 2009 at 11:37 am
  7. elshera wrote:

    hi..that’s a great explanation..

    do u have any idea about departmentalized examination framework?..please share it with us..tnx

    Posted 27 Aug 2009 at 9:03 pm
  8. Shaun wrote:

    Awesome explaination! Thanks a million!

    Posted 12 Dec 2009 at 6:52 pm
  9. Pramila wrote:

    A wonderful explanation on framework. I have browsed a lot to know the exact definition of framework but none served the purpose. I am a newbie in Java, and I am into a new project which will be based on JSF, JSP, servlets. Your help will be much appreciated if you can suggest me good books or links for the beginners on such concepts. I also want to know what are the prerequisites for me before I start coding on the advanced Java technologies as mentioned above.

    Posted 16 Feb 2010 at 5:41 pm
  10. George Birbilis wrote:

    mind you that there also frameworks in academia, where a set of methodologies combined with theory make up a (conceptual) framework

    Posted 11 Mar 2010 at 1:33 am
  11. kiran wrote:

    Nice definition has given by you
    It is very clear and simple…..

    Thank you…

    Posted 01 Apr 2010 at 11:10 am
  12. lhyn wrote:

    thanks i really appreciated your answers.it helps me a lot in my paper.God bless you always

    Posted 27 Apr 2010 at 12:38 pm
  13. rob wrote:

    thaaaaaaaaaaaaaaaaaaaank you so much!

    Posted 30 Apr 2010 at 5:09 am

Trackbacks & Pingbacks 1

  1. From Framework dla aplikacji webowych | Szlifowanie Javy on 11 May 2009 at 8:29 pm

    […] http://blog.newtonicaonline.com/2008/12/06/what-is-framework/ […]

Post a Comment

Your email is never published nor shared. Required fields are marked *