Focuses on the software process and how UML, Java technology, and object-oriented programming can be used effectively. Describes how these complementary technologies can be used together as a system of checks and balances to ensure successful creation of high-quality software.