You are on page 1of 15

Simple UML

Jan 9, 2017

What is UML?

UML stands for Unified Modeling Language


UML is a diagramming language designed for ObjectOriented programming
UML can be used to describe:

the organization of a program


how a program executes
how a program is used
how a program is deployed over a network
and more

Design Patterns

Design Patterns describe the higher-level organization


of solutions to common problems
Design Patterns are a current hot topic in O-O design
UML is always used for Design Patterns
Design Patterns are used to describe refactorings
We will discuss some Design Patterns later on in this
course

UML is complex

UML is a big, complicated diagramming language


UML comprises at least seven or eight different kinds
of diagrams
This talk will cover just a tiny bit of one kind of
diagram, the class diagram
A class diagram is often all that is needed to describe a
particular Design Pattern

Class diagrams

A class diagram shows classes, interfaces, and their


relationships
Well cover most of classes and interfaces, and a few
of the most important relationships

Classes

A class is drawn as a rectangle with two or three


compartments:
Name of the class
Variables [optional]
Methods

Variables I

A variable is written as:


visibility name : type
where:

+ means public visibility


# means protected visibility
- means private visibility
<blank> means default (package) visibility

Example: +length:int

Variables II

Static variables are underlined


An initial value can be shown with =value
Example:
-numberOfEmployees:int=10
means numberOfEmployees is:

private
static
integer
and has 10 as its initial value
8

Methods

Methods are written as:


visibility name (parameters) : returnType
where

visibility uses the same syntax variables (+, -, #, blank)


parameters are given as name:type
if the returnType is void, it is omitted
constructors are preceded by constructor
interfaces are preceded by interface

an ellipsis () indicates omitted methods


9

Example of a class

Card
cardId:int
-copy:boolean=false
constructor Card(int id)
+isKind(desiredKind:int)
+isSharable():boolean
+toString():String
10

Types of relationships
A

Factory
1..4

Class B
extends
class A

Class C
contains
1 to 4 objects
of class D

creates

Product

Other
kinds of
relations
11

Example: Secret Code program

12

UML tools

Rational Rose is the real world standard; full roundtrip code generation

Together (from Borland) is a lot like Rational Rose

Recently acquired by IBM (right under Microsofts nose!)


I havent used it in about three years (since before Borland
bought it from TogetherSoft)

ArgoUML looks interesting (and is open source)


BlueJ, of course, displays simple UML diagrams
Drawing programs with UML support

Visio is a Microsoft tool


Dia is a freeware clone of Visio

13

Tool links

Rational Rose

Together

http://www.borland.com/together/

ArgoUML

http://www-3.ibm.com/software/awdtools/developer/rosexde/

http://argouml.tigris.org

Visio

Hard to find info on Microsofts site!

http://msdn.microsoft.com/office/understanding/visio/

Dia

http://www.lysator.liu.se/~alla/dia

14

The End

15

You might also like