What is UML?
Unified Modeling Language (UML) is a general-purpose visual modeling language that is used to visualise, specify, construct and document the artifacts of a software system. It is a language in the sense that it has a standard vocabulary and rules. The vocabulary and rules of the UML tell us how to create and read well-formed models. But it does not tell us what models to create and when to create them. It has static, dynamic, environmental and organisational parts to help capture the differing aspects of a problem. At the same time it must be remembered that UML is not a programming language. Therefore, it can not be used for writing codes. It is most useful for modeling discrete systems like software, firmware etc. UML specification does not define a standard process, but is intended to be useful with an iterative development process. It is intended to support most existing object oriented development processes. The UML is a language for:
• Visualising. Firstly, The UML is more than just a bunch of graphical symbols. The UML notations are supported by well defined semantics. Using UML, one developer can develop a model, which can be easily interpreted by another. Secondly, there are a number of things about software which can not be easily comprehended. For example, looking at a code one may infer the classes by looking at the hierarachy, but how they relate to each other and what conditions apply to their operations can not be easily grasped. UML’s graphical notations help visualising these details. Finally, a developer who wrote the code does not write down the model, the information would be lost forever.
• Specifying. UML addresses all important analysis, design, and implementation decisions that must be made in developing and deploying software systems.
• Constructing. UML is not a visual programming language. But its models can be directly connected to a variety of programming languages. This means that UML models can be mapped to programming languages like C++, Java, Visual Basic etc., or even to RDBMS tables.
• Documenting. The very approach of developing models using UML is conducive to capturing all analysis, design, implementation, packaging, and deployment issues of a problem in well structured and defined models. By providing additional flexibility to its language, UML helps in expressing requirements for tests as well.
Building Blocks of UML
The vocabulary of UML encompasses three kinds of building blocks:
The ‘things’ are the nouns in a model. UML identifies four kinds of ‘things’. These are:
- Structural things (seven).
- Behavioural things (two).
- Grouping things (one).
- Annotational things (one).
There are four kinds of ‘relationships’ in the UML. These are:
A diagram is a graphical representation of a set of things and the relationships that exist between them. Diagrams are drawn to visualise the system from different perspectives, as mentioned earlier. There are nine diagrams in the UML. These are: