The Unified Process Construction Phase: Best Practices for Completing the Unified Process

A framework is a collection of classes and/or components that work together to fulfill a cohesive goal. For example, persistence frameworks, discussed in detail in Chapter 4, implement the behavior needed to manage the interactions between your objects and permanent storage. Other examples of frameworks include: middleware frameworks to manage the interactions between objects/components deployed on different machines, user interface frameworks to support effective and consistent user interface development, and system management frameworks to support audit control and system monitoring (also known as instrumentation)within your software. As you can readily imagine, and as I argue in section 3.4.3 "A Realistic Look At Object-Oriented Reuse" ( Software Development, January 1998), framework reuse is one of the most productive forms of reuse. In section 3.4.7 "Improving Framework Usability" ( Software Development, July 1999), Arthur Jolin describes a collection of best practices for developing effective frameworks such as keeping it simple, helping developers to be productive quickly, to identify the right tools for the job, to be consistent, and to supply task-based documentation. The interesting thing about this article is that the tips and techniques it presents can easily be generalized to the development of effective classes and components as well as frameworks.
When designed properly, frameworks provide a high-impact source of reuse.
It is not enough to build effective frameworks; you also need to use them effectively in practice. In section 3.4.8 "Making Frameworks Count" ( Software Development, February 1998), Gregory Rogers, author...