Forums Forums  |  Forums Sitemap



A software framework, in computer programming, is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality.

Frameworks are similar to software libraries in that they are reuseable abstractions of code wrapped in a well-defined API. Unlike libraries, however, the overall program's flow of control is not dictated by the caller, but by the framework. This inversion of control is the distinguishing feature of software frameworks.

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 a web application framework to develop a banking web site can focus on the operations of account withdrawals rather than the mechanics of request handling and state management. However, it can be argued that frameworks add to "code bloat", and that due to competing and complementary frameworks and the complexity of their APIs, one often trades time spent on rote programming and design for time spent learning to use the framework. Of course once the framework is learned future projects will be much quicker and easier to complete.


View all Frameworks Solution offerings