Software Framework

In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software. A software framework is a universal, reusable software platform used to develop applications, products and solutions. Software frameworks include support programs, compilers, code libraries, an application programming interface (API) and tool sets that bring together all the different components to enable development of a project or solution.

Frameworks contain key distinguishing features that separate them from normal libraries:

  1. 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.
  2. default behavior - A framework has a default behavior. This default behavior must actually be some useful behavior and not a series of no-ops.
  3. extensibility - A framework can be extended by the user usually by selective overriding or specialized by user code to provide specific functionality.
  4. non-modifiable framework code - The framework code, in general, is not allowed to be modified, excepting extensibility. Users can extend the framework, but not modify its code.

Read more about Software Framework:  Rationale, Examples, Architecture

Famous quotes containing the word framework:

    Most young black females learn to be suspicious and critical of feminist thinking long before they have any clear understanding of its theory and politics.... Without rigorously engaging feminist thought, they insist that racial separatism works best. This attitude is dangerous. It not only erases the reality of common female experience as a basis for academic study; it also constructs a framework in which differences cannot be examined comparatively.
    bell hooks (b. c. 1955)