logo back up home forward   further reading more topics »

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 http://argouml.tigris.org/servlets/ProjectDocumentList,

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

project language comments
http://sourceforge.net/projects/nsuml/ 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)

http://sourceforge.net/projects/webumleditor/ java Designed for web applications so I did not try it as it does not seem appropriate for my purposes
http://sourceforge.net/projects/quj/ java downloads as jar only
http://sourceforge.net/projects/argouml/ java program has to be loaded from http://argouml.tigris.org/servlets/ProjectDocumentList
http://sourceforge.net/projects/jug/ 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

Book Shop - Further reading.

Where I can, I have put links to Amazon for books that are relevant to the subject, click on the appropriate country flag to get more details of the book or to buy it from them.

cover Executable UML - Covers compiler issues but no code
cover Executable UML - concentrates on patterns

cover Fast Track UML 2.0 - useful for people who know some UML but are upgrading to 2.0

Commercial Software Shop

Where I can, I have put links to Amazon for commercial software, not directly related to this site, but related to the subject being discussed, click on the appropriate country flag to get more details of the software or to buy it from them.

cover JBuilder - There is also a free version of Jbuilder at borland website . However its licence conditions are quite restrictive so you may prefer another java IDE.

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

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