Framework
A framework provides a reusable, common structure for applications. Developers build the framework into their own applications and extend it to meet their specific needs. Frameworks differ from toolkits in that they provide a coherent structure rather than a simple set of auxiliary classes. Besides application frameworks, there are other types, e.g. test frameworks or web frameworks.