Up until a few years ago there were over 150 different modelling languages available to software developers. This vast array of choice however, only served to severely hinder effective communication. Therefore, to combat this, every methodologist and many companies agreed to speak the same language, hence the birth of the unified modelling language (UML). The UML offers a means to communicate complex information in a simple way using visual modelling; i.e. drawing diagrams to create a model of a system. This fully revised edition, based on a training course given by the author, coincides with the release of UML version 2 by the standard body, the Object Management Group, and covers the significant changes that have occurred since its release. It also includes material on life cycle management, examining the way the UML can be used to control and manage projects and the UML systems engineering profile.