This text is an introduction to the Unified Modeling Language for students learning about object and component based software design and development. It places UML in the context of the software engineering discipline as a whole, providing students with a practical understanding of the software development process and good design practice. The book is divided into four parts continuing introductory and more advanced chapters enabling readers to follow different routes through the text depending on their existing knowledge and experience. --This text refers to the Paperback edition.