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