Difference between revisions of "Software framework"

From Wiki @ Karl Jones dot com
Jump to: navigation, search
(See also)
(Description)
Line 7: Line 7:
 
Software frameworks may include support programs, compilers, code libraries, tool sets, and [[Application programming interface|application programming interfaces (APIs)]] that bring together all the different [[Component-based software engineering|components]] to enable development of a project or solution.
 
Software frameworks may include support programs, compilers, code libraries, tool sets, and [[Application programming interface|application programming interfaces (APIs)]] that bring together all the different [[Component-based software engineering|components]] to enable development of a project or solution.
  
Frameworks are related to [[Library (computing)|libraries]]. Features that distinguish frameworks from libraries include:
+
== Frameworks versus libraries ==
 +
 
 +
Frameworks are related to [[Library (computing)|libraries]].
 +
 
 +
Features that distinguish frameworks from libraries include:
  
 
* Inversion of control: In a framework, unlike in libraries or normal user applications, the overall program's flow of control is not dictated by the caller, but by the framework.
 
* Inversion of control: In a framework, unlike in libraries or normal user applications, the overall program's flow of control is not dictated by the caller, but by the framework.
 
* Default behavior: A framework has a default behavior. This default behavior must be some useful behavior and not a series of no-ops.[citation needed]
 
* Default behavior: A framework has a default behavior. This default behavior must be some useful behavior and not a series of no-ops.[citation needed]
* Extensibility: A framework can be extended by the user usually by selective overriding or specialized by user code to provide specific functionality.
+
* [[Extensibility]]: A framework can be extended by the user usually by selective overriding or specialized by user code to provide specific functionality.
 
* Non-modifiable framework code: The framework code, in general, is not supposed to be modified, while accepting user-implemented extensions. In other words, users can extend the framework, but should not modify its code.
 
* Non-modifiable framework code: The framework code, in general, is not supposed to be modified, while accepting user-implemented extensions. In other words, users can extend the framework, but should not modify its code.
  

Revision as of 18:54, 17 February 2016

In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software.

Description

A software framework is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate development of software applications, products and solutions.

Software frameworks may include support programs, compilers, code libraries, tool sets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or solution.

Frameworks versus libraries

Frameworks are related to libraries.

Features that distinguish frameworks from libraries include:

  • Inversion of control: In a framework, unlike in libraries or normal user applications, the overall program's flow of control is not dictated by the caller, but by the framework.
  • Default behavior: A framework has a default behavior. This default behavior must be some useful behavior and not a series of no-ops.[citation needed]
  • Extensibility: A framework can be extended by the user usually by selective overriding or specialized by user code to provide specific functionality.
  • Non-modifiable framework code: The framework code, in general, is not supposed to be modified, while accepting user-implemented extensions. In other words, users can extend the framework, but should not modify its code.

See also

External links