The Artima Developer Community
Sponsored Link

.NET Buzz Forum
What exactly is a Framework

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Jonathan Crossland

Posts: 630
Nickname: jonathanc
Registered: Feb, 2004

Jonathan Crossland is a software architect for Lucid Ocean Ltd
What exactly is a Framework Posted: Feb 19, 2004 10:35 AM
Reply to this message Reply

This post originated from an RSS feed registered with .NET Buzz by Jonathan Crossland.
Original Post: What exactly is a Framework
Feed Title: Jonathan Crossland Weblog
Feed URL: http://www.jonathancrossland.com/syndication.axd
Feed Description: Design, Frameworks, Patterns and Idioms
Latest .NET Buzz Posts
Latest .NET Buzz Posts by Jonathan Crossland
Latest Posts From Jonathan Crossland Weblog

Advertisement



As dictionary definitions go, you will get something like this -
  • A scaffold
  • A skeletal structure
  • A structure for supporting or enclosing something else
  • A set of guidelines for an idea, system or method

According to the authors Gamma, Helm, Johnson and Vlissades [Design Patterns, Addison-Wesley, 1995] (which is one of the nicest I have seen)

A Framework is ..... A set of cooperating classes that makes up a reusable design for a specific class of software. A framework provides architectural guidance by partitioning the design into abstract classes and defining their responsibilities and collaborations. A developer customizes the framework to a particular application by subclassing and composing instances of framework classes.

Seeing this quoted all over the place, I commonly see the phrase "reusable design for a specific class of software", misinterpreted.
Often it is taken to believe that it has to be for a "Business Domain".
If I had to reword it slightly.

A set of cooperating classes and architectural elements that make up a reusable design as a platform for building a software system.

One aspect in this definition which I hesitate about is the very OO centric talk of abstract classes.
Although, they are most definitely there within good frameworks as they exist today, one must believe that a framework could consist of Patterns that decorate and facade other components or provide complete extensible behaviour through other means.
Its not that it is preferred, but that it is possible.

Within the world of SOA, we must believe that we can create lightweight frameworks for Services, that do not rely heavily on OO.
Redefining this line slightly, I would say
A framework provides architectural and design guidance, by establishing a set of collaborating interfaces that can be extended and configured to develop the surrounding software.

Then to incorporate Domain-centric frameworks, we could add a last sentence.

The entire newly worded definition would then be

A Framework is set of cooperating classes and architectural elements that make up a reusable design as a platform for building a software system. A framework provides architectural and design guidance, by establishing a set of collaborating interfaces that can be extended and configured to develop the surrounding software. A Framework can be used as a whole or in part, and can be combined with other frameworks. A Framework can further be divided into those concerned with software construction or the Business Domain.

I like the newer more 'generic' slant on the definition. What do you think?


Read: What exactly is a Framework

Topic: In Depth Longhorn/XAML Property aliasing Previous Topic   Next Topic Topic: Oracle vs. SQL Server

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use