framework:
A framework is a semi-complete application1. A framework provides a reusable, common structure that can be shared between applications. Develops incorporate the framework into their own application and extend it to meet their specific needs, Frameworks differ from toolkits by providing a coherent structure, rather than a simple set of utility classes.
1: Ralph Johnson and Brian Foote, "Designing Reusable Classes," Journal of Object-Oriented Programming 1.5(June / July 1988): 2235; http://www.laputan.org/drc/drc.html.