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.
The Application Framework
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:
Cocoa for Mac OS X, as well as free frameworks that exist as part of Mozilla, GNOME, OpenOffice.org, and KDE projects.
Microsoft had a similar product for Windows, called Microsoft Foundation Classes (MFC). At the moment, the main Microsoft product for software development is the .NET Framework.
Cross-platform app frameworks (for Macintosh, Linux, and Windows operating systems) are, for example, widget toolkit, wxWidgets, Qt, MyCoRe or FOX toolkit help the developers to create the applications, providing convenient facilities for coding and testing.
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.