According to the Unified Modeling Language User Guide By Grady Booch, James Rumbaugh, Ivar Jacobson, the Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. The UML gives you a standard way to write a system's blueprints, covering conceptual things, such as business processes and system functions, as well as concrete things, such as classes written in a specific programming language, database schemas, and reusable software components. (Booch, Rumbaugh, & Jacobson, 1998) By writing models in UML keeps, everyone involved speaking the same language so miscommunication of ideas and concepts are kept to a minimum. UML is not used for programming but rather is the model or structure for programmers to build their programs with, such as C, C++, and Java, or even to model tables in relational databases, and for objects in OOP. UML is a pivot point for either forward or reverse engineering.
One can construct code form UML modeling and conversely one can take code and model it back to UML. Combining these two paths of forward code generation and reverse engineering yields round-trip engineering, meaning the ability to work in either a graphical or a textual view, while tools keep the two views consistent. (Booch, Rumbaugh, & Jacobson, 1998)
There are three major elements to UML. They are basic building blocks, the rules that control those blocks, and some common mechanisms that tread through whole process. The three building blocks of UML are things, relations, and diagrams.
Things are the abstractions that are first-class citizens in a model; relationships tie these things together; diagrams group interesting collections of things. There are four kinds of things in the UML. They are Structural thing. Behavioral things, Grouping things, and There are four kinds of things in the...