Today’s programmers need more than just Java software programming skills – they need to understand object-oriented design, software quality assurance, and software project management. In this unique text, the fundamentals of Java programming are presented in the context of object-oriented software engineering and a Unified-Process-based software development methodology.