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 environment that provides particular functionality as part of a larger
software platform to facilitate development of
software applications, products and solutions. Software frameworks may 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.