UML(Unified Modelling Language) 2.0 Diagrams

--Kiran Reddy

Purpose of these notes is to give you a quick, simple and snapshot details of UML diagrams for students, learners and beginners.

What is UML?

You might think that you will get a lengthy answer for your question but I simply put it as, UML is a modeling language that helps you to understand and design software systems.

Another simple definition, by Mortin Fowler: UML is a family of graphical notations, backed by single meta model, that help in describing and designing software systems.

The OMG(Object Management Group) specification defines UML as: The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system.
The UML offers a standard way to write a system's blueprints, including conceptual things such as business processes and system functions as well as concrete things such as programming language statements, database schemas, and reusable software components.

Why UML?

Why UML? Good question! Designing is an essential part of any engineering field and software engineering is not an exception to that. To design a software system, you need designing principles and notations, in short you need a modeling language. Now, we all agree that we need a modeling language to design a software system.

But Why UML? why not any other modeling language?
Brilliant question again, you are a star! I’m not a great admirer of history reading, because you've asked that question, in order to answer your question completely, we need to dig little bit of UML history. In the period of 1980 - 90, there were many software modeling languages in the market, most importantly Grady Booch's OOAD, Ivary Jacobson's Objectory, James Rumbaugh's OMT, Peter Coad's OOA and many other modeling languages. each of these methods provide similar functionality with significant differences in notations and concepts; the differences posed lot of troubles for companies, developers used to get many problems to understand new modeling language when they move from one company to other company that uses different modeling language. during that period every body was talking about standardization but no company agreed on any standard, at the same time Jacobson and Rumbaugh joined Rational company and united with Booch who was already working with Rational, because these three amigos(Booch, Jacobson and Rumbaugh are called three amigos in software modeling community) Rational was about to win the modeling language fight, that made many other modeling language companies worried, at that point when OMG(Object Management Group) came forward to standardize the modeling language; because of Rational domination all other companies agreed for standardization, there was no other chance for Rational than submitting their proposal to OMG, that proposal finally came out as Unified Modeling Language(UML). Now I think you got the answer for your question, it is because it is an open standard that accepted and supported by many companies.

In what way I can use UML?

Very practical question, good thinking, thanks for asking that question. UML meta-model(specification) defines elements and notations but it doesn’t tell you in what way you can use it, it is all up to you how you use it, it depends on your project type, requirements and development environment.

Generally people use UML in two ways, sketches and blue prints. (Some authors described other ways of using UML e.g. UML as programming language but I think they are very seldom in use) .

UML Sketches: Are the selective UML sketch diagrams that used to understand and communicate the software system.

UML Blue Prints: Are the perfect UML diagrams aften designed with the help of CASE(Computer Aided Software Engineering) tools that helps you to generate some level of source codes.

As I’m not a great fan of CASE tools, I always use UML sketches, most of the times I just draw them on white board and take digital pictures of it to distribute.

UML Diagrams

UML version 2 describes 13 official diagram types listed in the table, however people and tools tend to use specific elements with specific diagram types e.g. actor (stick diagram) with use cases, class (square box) with class diagrams but UML meta model does not restrict you, technically you can use any element on any diagram.

Diagram Usage Version
Use Case To describe interaction between a user and the system 1 and 2
Activity To describe workflow behavior of a system 1 and 2
Class To describe static structure of a system 1 and 2
Sequence To describe behavior of a single scenario 1 and 2
Package To describe a group of software elements 1 and 2
Deployment To describe system's physical layout 1 and 2
Object To describe a object in a system at a point in time 1 and 2
Communication To describe data links between participants 1 and 2
Composite structure To describe internal structure of an object 2
Component To describe software components 1 and 2
Interaction overview To describe combination of a activity diagram and sequence diagram 2
State machine To describe life time behavior of an object 1 and 2
Timing Diagram To describe timing constraints of an object 1 and 2
Collaborations To describe elements of a class (obsolete) 1 (removed from UML 2.0)
Next >>

You can view this article online at: