Using UML software engineering with objects and components - Perdita stevens (Addison-Wesley)