UML Components: A Simple Process for Specifying Component-Based Software
by John Cheesman, John Daniels
The authors address the two great challenges of designing and constructing enterprise-scale component-based software: finding a process that can support the construction of large component systems, and making the best use of the wide range of notations and techniques found in the UML.