In computer programming, a software framework is a software abstraction that provides generic functionality which developers can extend with custom code to create applications. From Wikipedia