In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. A software framework is a universal, reusable software platform to develop software applications, products and solutions. Software frameworks include support programs, compilers, code libraries, tool sets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or solution.
Software Frameworks are similar to:
- Web Application Framework
- CSS Framework
- Application Framework - General GUI applications
- Enterprise Architecture framework
- Financial modeling applications
- Decision support systems
- Artistic drawing, music composition, and mechanical CAD
- Compilers for different programming languages and target machines.
- Multimedia framework - Media playback and authoring
- Cactus Framework - High performance scientific computing
- Earth system modeling applications