The Object Primer: The Application Developer's Guide to Object Orientation and the UML