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