UML stands for 'Unified Modeling Language' it is an OMG standard for visual object-oriented modeling.
UML Defines a set of diagrams for Object Oriented Analysis and Design (OOAD). Note that UML only defines what the diagrams look like, it does not define a storage format for the diagram or for the programs metadata.
Using standard diagram types for the analysis, design and documentation of a program means that programmers can move between projects and concentrate on the issues specific to the programs and not have to learn a new set of diagram standards for each program.
Since its introduction in November 1997, the Unified Modeling Language has quickly become the standard modeling language for software development. Many users of other methods (Booch, OMT, Fusion, etc.) have adopted UML; a number of books have been written about UML; and most modeling tools have implemented support for the language.
UML has 9 predefined diagrams:
- Class Diagram
- Object Diagram
- Statechart Diagram
- Activity Diagram
- Sequence Diagram
- Collaboration Diagram
- Use Case Diagram
- Component Diagram
- Deployment Diagram
Describes the structure of a system. The structures are built from classes and relationships. The classes can represent and structure information, products, documents, or organizations.
Expresses possible object combination of a specific class diagram. It is typically used to exemplify a class diagram.
Expresses possible states of a class (or a system).
Describes activities and actions taking place in a system.
When to us Activity Diagram, State Chart, Collaboration diagram or Sequence diagram. The following table compares them:
Events happen in boxes (opposite of state chart)
Events happen in transition (opposite of activity diagram)
Shows order of events (flow)
Used in business modelling to define interfaces (no assumptions about implementations)
Alternate flow, inserts itself at numbered event.
Shows one or several sequences of messages sent amongst a set of objects.
Describes a complete collaboration among a set of objects.
Illustrates the relationship between use cases. Each use case, typically defined in plain text, describes a part of the total system functionality.
A special case of class diagram used to describe components within a software system.
A special case of class diagrams used to describe hardware within a software system.