The Unified Modeling Language (UML) has emerged as a modeling language for specifying, visualizing, constructing, and documenting software-intensive systems. It unifies proven software modeling languages that incorporate the object-oriented community’s consensus on core modeling concepts. It also includes additional expressiveness to handle problems that previous visual languages did not fully address (Rumbaugh, Jacobson & Booch, 1999).