Professional programmers working with Java and thinking of using UML (or vice versa) would find it very useful. A different approach to Java and certainly worth looking at!
Java is now taught as the first programming language in many computing science and IT courses. Java therefore becomes suitable as a vehicle to teach other subjects including networks, HCI, distributed systems, etc. and many second level books are becoming available on these topics.
Introductory Java texts tend to concentrate on language syntax, APIs and applets and pay little attention to design (possibly an introduction to OO and the odd Booch diagram). The authors of this text maintain that it is important for programs to follow a well-defined development process. To this end Java is used as the implementation tool to teach OO and rigorous software engineering concepts with UML (the Unified Modelling Language).
For example chapter one starts by dissecting an application (which asks a question) looking at basic program syntax and layout and discussing good practice. Another application (which answers the question) is then introduced with the relationship between the two described by an instance diagram. The classes which make up the application are then described with the aid of class diagrams. Having introduced the concept of actions using simple examples, action design using JSP (Jackson Structured Programming) is then discussed. The book continues is this vein building class hierarchiesand stressing the design, build and test cycle. A point to note is that the AWT and graphical interfaces are not introduced until the final chapter.
This text could be used for an introductory programming/ software engineering module (i.e. totally different to the usual applet based approach). Otherwise it could be used for a second level software-engineering module following on from a 'traditional' Java programming module. Professional programmers working with Java and thinking of using UML (or vice versa) would find it very useful. A different approach to Java and certainly worth looking at!