This book is the ideal introduction to object-oriented analysis and design for developers with little experience of developing OO software. The fist part takes the reader step-by-step through the development process using one continuous example to show how each principle and concept is applied in practice. Th second part explains the basics of UML in detail, with individual examples. Numerous cross references between the two parts mean that readers can follow the software development example, learning the appropriate features of UML as they become relevant. For more advanced readers, the book may be treated as a tutorial on the application of UML which includes a reference in case there are any concepts with which he/she is not familiar.