Programming - UML Diagrams

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:

  1. Class Diagram
  2. Object Diagram
  3. Statechart Diagram
  4. Activity Diagram
  5. Sequence Diagram
  6. Collaboration Diagram
  7. Use Case Diagram
  8. Component Diagram
  9. Deployment Diagram


further information:


Class 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.


Object Diagram

Expresses possible object combination of a specific class diagram. It is typically used to exemplify a class diagram.

Statechart Diagram

Expresses possible states of a class (or a system).

Activity Diagram

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:

Activity diagram

Collaboration diagram

Sequence diagram

State chart

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.


Sequence Diagram

Shows one or several sequences of messages sent amongst a set of objects.


Collaboration Diagram

Describes a complete collaboration among a set of objects.

Use Case Diagram

Illustrates the relationship between use cases. Each use case, typically defined in plain text, describes a part of the total system functionality.


Component Diagram

A special case of class diagram used to describe components within a software system.


Deployment Diagram

A special case of class diagrams used to describe hardware within a software system.

Free software

I have found Argo UML to be very good, it is availible here,

I have not tried other UML editors but here is a list:

project language comments java

Novosoft metadata framework is based on JMI specification and generated classes that are required by JMI specification and also provides additional services like event notification, undo/redo support, XMI suport. NSMDF is local in-memory implementation.

Used by Argo (below) java Designed for web applications so I did not try it as it does not seem appropriate for my purposes java downloads as jar only java program has to be loaded from java and C alpha -Jug is a tool for converting Java .class files into UML class diagrams. It can read .class and .jar files, and output .emf or .eps files of the generated diagrams.

metadata block
see also:


Correspondence about this page

This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2023 Martin John Baker - All rights reserved - privacy policy.