Transcript UML

Simple UML
26-Jul-16
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
2
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 may discuss some Design Patterns later on in this
course
3
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
4
Class diagrams


A class diagram shows classes, interfaces, and their
relationships
We’ll cover most of classes and interfaces, and a few
of the most important relationships
5
Classes

A class is drawn as a rectangle with two or three
compartments:
Name of the class
Variables [optional]
Methods
6
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
7
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
C
Factory
1..4
B
Class B
extends
class A
D
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 Microsoft’s nose!)
I haven’t used it in about five 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://argouml.tigris.org
Visio

Hard to find info on Microsoft’s site!

http://msdn.microsoft.com/office/understanding/visio/
Dia


http://www.borland.com/together/
ArgoUML


http://www-3.ibm.com/software/awdtools/developer/rosexde/
hhttp://www.gnome.org/projects/dia/
OmniGraffle 3 (Mac OS X)

http://www.omnigroup.com/applications/omnigraffle/
14
The End
15