Wednesday, September 20, 2006

UML - Introduction

UML stands for Unified Modeling Language, which is a family of graphical notations, backed by single meta-model, the help in describing and designing software systems, particularly software systems build using the object oriented style.

A picture says a thousand words. That's why UML comes to the area of OOAD. Of these graphical notations, the UML's importance comes from its wide use and standardization within the OO development community. Graphical modeling languages have been around in the software industry for a long time. The fundamental driver behind them all is that programming languages are not at a high enough level of abstraction to facilitate discussions about design. Despite the fact that graphical modeling languages have been around for a long time, there is an enormous amount of dispute in the software industry about their role. The disputes play directly into how people perceive the role of the UML itself.

So the Object Management Group(OMG) was formed to build UML standards. OMG is also known for the CORBA(Common Object Request Broker Architecture) standards. The earlist UML was version 0.8 released in Oct. 1995. In 1996, version 0.9 and 0.91 and offically UML received its name. In Jan. 1997, version 1.0 submitted, Sep. 1997, version 1.1 submitted, but only adopted by OMG toward the end of 1997. UML 1.2 appeared in 1998, 1.3 in 1999, 1.4 in 2001, 1.5 in 2002.

As the UML 1 series continued, the developers of the UML set their sights on a major revision to the UML with UML 2. The first request for proposals were issued in 2000, but UML 2 didn't start to stabilize until 2003. In Oct. 2004, UML 2.0 was adopted. Now, version 2.1 is the most current.

There are total 13 types of diagrams in UML 2,
  • Activity - procedural and parallel behavior
  • Class - Class, features, and relationships
  • Communication - Interaction between objects, emphasis on links
  • Component - structure and connections of components
  • Composite structure - runtime decomposition of a class (since UML 2)
  • Deployment - deployment of artifacts to nodes
  • Interaction overview - mix of sequence and activity (since UML 2)
  • Object - example configurations of instances (unofficially in UML 1)
  • Package - compile-time hierarchic structure (unofficially in UML 1)
  • Sequence - Interaction between objects, emphasis on sequence
  • State machine - how events change an object over its life
  • Timing - interaction between objects, emphasis on timing (since UML 2)
  • Use case - how users interact with a system
Nobody knows all of these diagrams, even their creators. Among these 13 diagrams, use case, class, sequence, activity and deployment are the most used. If time is a limited resource for you, you can master these 5 diagrams first.

On the other side, although the UML provides quite a considerable body of various diagrams that help to define an application, it's by no means a complete list of all the useful diagrams that you might want to use. In many places, different diagrams can be useful, and you shouldn't hesitate to use a non-UML diagram if no UML diagram suits your purpose.

No comments: