The framework life span
Davide Brugali, Giuseppe Menga, Amund Aarsten · Communications of the ACM · 1997
A framework is an integrated set of domain-specific software components that can be reused to create applications. In object-oriented programming, the interpretation of "framework" ranges from structures of classes of cooperating objects that provide, through extension, reusable basic designs for a family of similar applications, to the more restrictive view of complete high-level modules that, through customization, directly result in specific applications for a certain domain. Customization is done through parameterization or by writing functional specifications. Frequently, the two views of framework reuse, referred to as "white box" and "black-box" approaches to reuse, are simultaneously present in one framework. Features likely to be common to most applications can be offered and therefore reused as black boxes with minor changes. On the other hand, the class library accompanying the framework usually provides base classes or white boxes that can be specialized by adding subclasses as needed and that are specially integrated with the rest of the framework.