Preface to BP-UML 2006
The Unified Modeling Language (UML) has been widely accepted as the standard object-oriented (OO) modeling language for modeling various aspects of software and information systems. UML is an extensible language, in the sense that it provides mechanisms to introduce new elements for specific domains if necessary, such as Web applications, database applications, business modeling, software development processes, data warehouses and so on. Furthermore, the latest version of UML 2.0 got even bigger and became more complicated with a higher number of diagrams. Although UML provides different diagrams for modeling different aspects of a software system, not all of them need to be applied in most cases. Therefore, heuristics, design guidelines, and lessons learned from experiences are extremely important for the effective use of UML 2.0 and for avoiding unnecessary complications.