This is an attempt to assemble a glossary of terms to establish a common vocabulary that can be used by those working on LHC software projects.
[1] A skeleton that provides the essential components of an application. Frameworks are good for providing a starting point for creating applications as well as defining the minimum functionality of an application.
[2] A set of cooperating classes that makes up a reusable design for a specific class of software. A framework provides architectural guidance by partitioning the design into abstract classes and defining their responsibilities and collaborations A developer customizes the framework to a particular application by subclassing and composing instances of framework classes [Erich Gamma et al.].
[3] A framework is a set of classes that embodies an abstract design for solutions to a family of related problems. (quoted in "Designing Reusable Classes", the journal of O-OP, Vol.1 No.2, 1988, pp 22-35)
[4] The role of the framework is to provide the flow of control, while the developer's
code waits for the call from the framework.