An introduction to the Unified Modeling Language for students learning about object- and component-based software design and development. This book places UML in the context of the software engineering discipline as a whole, providing students with a practical understanding of good practice in software design and development.