It is a highly expressive language, addressing all the views needed to develop and deploy such systems. The UML has gained substantial industry support from various organizations through the UML Partners Consortium and has been approved by the Object Management Group (OMG) as a criterion. The UML provides the rules and the vocabulary for conceptual and physical representation of a system. Additionally, UML renders the guidelines to create and read well-formed models of systems. Employing UML, application architects and programmers can make a blueprint of a project that visualizes the relationship between elements of software, which in turn makes the actual development process of the software easier. The originator of UML, the Rational Rose from Rational Software, is the most popular visual modeling tool. The UML is a modeling language that focuses on capturing, communicating and levering knowledge. However, the UML is not restricted to modeling software systems; it can also be utilized for modeling non-software systems. It helps in visualizing a system in that it can be used to visually depict a system before it is deployed. It helps in specifying systems in that it addresses "what" is required of system, and "how" the system may be deployed. By constructing a system, UML applies for guiding the realization of a system similar to a "blueprint", and by documenting a system UML applies for capturing knowledge about a system throughout its development (Xpdian.com, 2009).
Relationships in UML: 1. Dependency: It is a semantic relationship between two things in which a change to one thing (independent element) may affect the semantics of another thing (dependent element). Graphically, a dependency is rendered as a directed dashed line, including labels. 2. Association: It is a structural relationship that describes a asset of links, a link being connection among objects. Graphically, an association is rendered as a directed solid line, including a label, and often containing adornments like multiplicity, role names, etc. 3. Generalization: It is a specialization/generalization relationship in which objects of the specialized element (child) can be substituted for objects of the generalized element (parent). Graphically, a generalization is rendered as a solid line with a hollow arrowhead pointing to the parent. 4. Realization: It is a semantic relationship between classifiers, in which one classifier defines a contract that another classifier guarantees to execute. This relationship is seen in two places, between interfaces and the classes or components that realize them, and between use cases and collaborations that realize them. Graphically, a realization is rendered as a cross between generalization and a dependency relationship (Xpdian.com, 2009).
UML defines nine types of diagrams:
Class Diagrams: Class diagrams are the backbone of every object oriented method, including UML, and are most common diagrams found in modeling object oriented systems. Class diagrams address the static view/ structure of a system. Object Diagrams: Object diagrams represent static snapshots of instances of the things found in class diagrams. In other words, these diagrams describe the static structure of a system at a particular time. They are designed to test class diagrams for accuracy. Use Case