Using UML software engineering with objects and components - Rob Pooley (Addison-Wesley)