Search: in
Software framework
Software framework Encyclopedia
  Tutorials     Encyclopedia     Dictionary     Directory  
Software_framework Email this to a friend      Software_framework

Software framework

Ralph E. Johnson. Frameworks = (components + patterns). Commun. ACM, 40(10):39--42, 1997. Like software libraries, software frameworks aid the software developer by containing source code that solves problems for a given domain and provides a simple API. However, while a code library acts like a servant to other programs, software frameworks reverse the master/servant relationship. This reversal, called inversion of control, expresses the essence of software frameworks.[1]

Contents


Motivations

The designers of software frameworks aim to facilitate software development by allowing designers and programmers to spend more time on meeting software requirements rather than dealing with the more standard low-level details of providing a working system. For example, a team using Apache Struts to develop a banking web site can focus on the operations of account withdrawals rather than on how to control navigation between webpages in a bug-free manner. However, developers commonly complain that using frameworks adds to "code bloat", and that due to competing and complementary frameworks, one trades time spent on rote programming and design for time spent on learning frameworks.

Having a good framework in place allows developers to spend more time concentrating on the business-specific problem at hand rather than on the "plumbing" code behind it. Also a framework will limit choices during development, so it increases productivity, especially in large and complex systems.

Types of software frameworks

A software framework may focus on building graphical editors for different domains like artistic drawing, music composition, and mechanical CAD.[2][3] Another software framework can help build compilers for different programming languages and target machines.[4] Yet another might help build financial modeling applications.[5] or decision support systems[6] Frameworks exist for multimedia, web applications, and even communicating between different systems.

Architecture

According to Pree,[7] software frameworks consist of frozen spots and hot spots. On the one hand, frozen spots define the overall architecture of a software system, that is to say its basic components and the relationships between them. These remain unchanged (frozen) in any instantiation of the application framework. On the other hand, hot spots represent those parts where the programmers using the framework add their own code to add the functionality specific to their own project.

Software frameworks define the places in the architecture where application programmers may make adaptations for specific functionality ? the hot spots.

In an object-oriented environment, a framework consists of abstract and concrete classes. Instantiation of such a framework consists of composing and subclassing the existing classes.[8]

When developing a concrete software system with a software framework, developers utilize the hot spots according to the specific needs and requirements of the system. Software frameworks rely on the Hollywood Principle: "Don't call us, we'll call you."[9] This means that the user-defined classes (for example, new subclasses), receive messages from the predefined framework classes. Developers usually handle this by implementing superclass abstract methods.

List of general-purpose frameworks

See also

External links

References

bn:???????????? ca:Framework cs:Framework da:Framework de:Framework es:Framework fr:Framework ko:?? it:Framework he:??? ????? nl:Framework pl:Framework pt:Framework ru:Framework simple:Framework fi:Ohjelmistokehys th:?????????? uk:?????????





Source: Wikipedia | The above article is available under the GNU FDL. | Edit this article



Related Links in Software framework

Search for Software framework in Tutorials
Search for Software framework in Encyclopedia
Search for Software framework in Dictionary
Search for Software framework in Open Directory
Search for Software framework in Store
Search for Software framework in PriceGig


Help build the largest human-edited directory on the web.
Submit a Site - Open Directory Project - Become an Editor

Advertisement

Advertisement



Software framework
Software_framework top Software_framework

Home - Add TutorGig to Your Site - Disclaimer

©2008-2009 TutorGig.com. All Rights Reserved. Privacy Statement