What is "framework"

A framework (or framework), in software development, is an abstraction that unites common code among several software projects providing generic functionality. A framework can achieve a specific functionality, by configuration, during the programming of an application. Unlike libraries, it is the framework that dictates the control flow of the application, called Control Inversion.

"Framework is a set of classes that collaborate to realize a responsibility for a domain of an application subsystem." - Fayad and Schmidt,

A framework or conceptual framework is a set of concepts used to solve a specific domain problem. Conceptual framework is not an executable software, but a data model for a domain. Software framework comprises a set of classes implemented in a specific programming language, used to aid software development.

The framework acts where there are functionalities in common to several applications, but for this the applications must have something reasonably large in common so that it can be used in several applications.

Software design standards are not confused with frameworks, as standards have a higher level of abstraction. A framework includes code, unlike a project standard. A framework can be modeled with various design standards, and always have a domain of a particular application, something that does not occur in standards and software design.

Frameworks have advantages, such as: greater ease for error detection, as they are more concise pieces of software; concentration on abstracting solutions to the problem we are dealing with; efficiency in problem solving and resource optimization.