Updated: 04/26/2017 by Computer Hope

When referring to computer software, a framework is a foundation with a specified level of complexity (based on user level) that a programmer may extend using their own code. It might include a set of software libraries, compilers, interpreters, or an API. In general, it provides an environment that facilitates a specific type of programming for a software development project.

Most software frameworks are characterized by a design philosophy called IoC (Inversion of Control). Normally, computer programs define a program's flow of control and make calls to libraries for individual functions. When using a framework, however, the relationship is inverted: the framework manages the overall control flow and makes calls to the user's code when needed. A frameworks allows the developer to focus on details specific to the project and bypass the more general requirements.

Examples of software frameworks include AJAX APIs, multimedia authoring and scripting tools, and web application middleware.

API, Flow of control, Programming terms, Software development, Web application