Aug 18, 2016
Simple UML
2
What is UML?
 UML stands for Unified Modeling Language
 UML is a diagramming language designed for Object-
Oriented 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
3
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
4
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
5
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
6
Classes
 A class is drawn as a rectangle with two or three
compartments:
Name of the class
Variables [optional]
Methods
7
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
8
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
9
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
10
Example of a class
Card
cardId:int
-copy:boolean=false
«constructor» Card(int id)
+isKind(desiredKind:int)
+isSharable():boolean
+toString():String
11
Types of relationships
A
B
Class B
extends
class A
C
D
1..4
Class C
contains
1 to 4 objects
of class D
Factory
Product
creates
Other
kinds of
relations
12
Example: Secret Code program
13
UML tools
 Rational Rose is the “real world” standard; full round-
trip code generation
 Recently acquired by IBM (right under Microsoft’s nose!)
 Together (from Borland) is a lot like Rational Rose
 I haven’t 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
14
Tool links
 Rational Rose
 http://www-3.ibm.com/software/awdtools/developer/rosexde/
 Together
 http://www.borland.com/together/
 ArgoUML
 http://argouml.tigris.org
 Visio
 Hard to find info on Microsoft’s site!
 http://msdn.microsoft.com/office/understanding/visio/
 Dia
 http://www.lysator.liu.se/~alla/dia
15
The End

Uml in software engineering

  • 1.
  • 2.
    2 What is UML? UML stands for Unified Modeling Language  UML is a diagramming language designed for Object- Oriented 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
  • 3.
    3 Design Patterns  DesignPatterns 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
  • 4.
    4 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
  • 5.
    5 Class diagrams  Aclass diagram shows classes, interfaces, and their relationships  We’ll cover most of classes and interfaces, and a few of the most important relationships
  • 6.
    6 Classes  A classis drawn as a rectangle with two or three compartments: Name of the class Variables [optional] Methods
  • 7.
    7 Variables I  Avariable is written as: visibility name : type where:  + means public visibility  # means protected visibility  - means private visibility  <blank> means default (package) visibility  Example: +length:int
  • 8.
    8 Variables II  Staticvariables 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
  • 9.
    9 Methods  Methods arewritten 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
  • 10.
    10 Example of aclass Card cardId:int -copy:boolean=false «constructor» Card(int id) +isKind(desiredKind:int) +isSharable():boolean +toString():String
  • 11.
    11 Types of relationships A B ClassB extends class A C D 1..4 Class C contains 1 to 4 objects of class D Factory Product creates Other kinds of relations
  • 12.
  • 13.
    13 UML tools  RationalRose is the “real world” standard; full round- trip code generation  Recently acquired by IBM (right under Microsoft’s nose!)  Together (from Borland) is a lot like Rational Rose  I haven’t 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
  • 14.
    14 Tool links  RationalRose  http://www-3.ibm.com/software/awdtools/developer/rosexde/  Together  http://www.borland.com/together/  ArgoUML  http://argouml.tigris.org  Visio  Hard to find info on Microsoft’s site!  http://msdn.microsoft.com/office/understanding/visio/  Dia  http://www.lysator.liu.se/~alla/dia
  • 15.