Framework is the skeleton of the software system (or subsystem). It includes code libraries, auxiliary programs, programming language and other software that facilitates the programming and integration of various components of a large project. Usually, the union is due to the use of a single API.
Examples: web frameworks like PHP frameworks Zend Framework and Symfony, or Django, written in Python.
"Framework" differs from the “library” in that the latter can be used in a software product simply as a set of subprograms of similar functionality, without affecting the architecture of the software product and without imposing any restrictions on it. While the "framework" dictates the rules for building the architecture of an app, setting the default behavior at the initial stage of development - the "framework," which will need to be expanded and changed, according to the specified requirements.
One of the main advantages of using "frameworks" in applications is that such items speed up the development of the software. Some examples of frameworks are the "standard" solution for printing documents, email processing, which can be integrated in the structure of the app. "Frameworks" became popular with the advent of graphical user interfaces (GUI).
One of the first commercial app frameworks was MacApp, written by Apple for Macintosh. Originally created with the help of an extended (object-oriented) version of the language Object Pascal, it was subsequently rewritten to C ++.
The examples of application frameworks are:
Together with the updates in the operational system editions, new versions of popular frameworks are developed to support the advanced features of OS. Modern frameworks must be used as a complementary sets for the development. Control of version matching is a part of testers work in quality assurance.