Classical and object-oriented software engineering with UML and Java - STEPHEN R SCHACH (McGraw-Hill, 1999)