Professional Documents
Culture Documents
Language (UML)
A Standard Graphical Modeling
Notation
Eddie Roache
Outline
Why Use UML
History
UML Characteristics
Diagram Types
Use Case Diagrams
Class Diagrams
v1.2
v1.2
Polygon
Ellipse
Spline
. ..
Shape
Polygon
Spline
Ellipse
...
Source: OMG, Unified Modeling Language Specification, version 1.5. March 2003
Copyright 2003-2006 Eddie Roache. All rights reserved.
v1.2
+points
3..
Contains
{ordered}
Point
1
1
-bundle
GraphicsBundle
color
texture
density
Source: OMG, Unified Modeling Language Specification, version 1.5. March 2003
v1.2
include
Order
Product
include
Arrange
Payment
include
Place Order
1
Extension points
additional requests :
after creation of the order
extend
the salesperson asks for
the catalog
Request
Catalog
Source: OMG, Unified Modeling Language Specification, version 1.5. March 2003
v1.2
History
OO takes a foothold
New OO modeling notations spring up
Three amigos get together
Grady Booch
Ivar Jacobson
James Rumbaugh
v1.2
UML Characteristics
Is not a process
Process independent
Copyright 2003-2006 Eddie Roache. All rights reserved.
v1.2
Diagram Types
Structure diagrams
Class diagram
Object diagram
Component diagram
Deployment diagram
Package diagram
Composite Structure diagram
Behavior diagrams
Sequence diagram
Interaction Overview diagram
Communications diagram
Timing diagram
v1.2
Diagram Types
Source: OMG, Unified Modeling Language: Superstructure Specification, version 2.0. August 2005
v1.2
10
business modeling
component specification
v1.2
11
v1.2
12
Steps:
1.
2.
Post Conditions:
1.
v1.2
13
Close AddressBook
Actor
Use Case
Association
Dependency
<<extend>>
extend
include
<<include>>
This is a note.
Generalization
Note (Comment)
v1.2
14
v1.2
15
Create AddressBook
View AddressBook
AddressBook User
Delete AddressBook
v1.2
16
View AddressBook
<<extend>>
Save AddressBook
<<extend>>
Address Book User
<<extend>>
Delete Address
<<extend>>
Update Address
<<include>>
<<include>>
Add AddressEntry
Close AddressBook
Create AddressEntry
Create PersonAddressEntry
Copyright 2003-2006 Eddie Roache. All rights reserved.
v1.2
Create OrgAddressEntry
17
Save AddressBook
Delete AddressEntry
Update Address
<<include>>
<<include>>
Add AddressEntry
Close AddressBook
Create AddressEntry
Create PersonAddressEntry
Copyright 2003-2006 Eddie Roache. All rights reserved.
v1.2
Create OrgAddressEntry
18
Class Diagrams
Model system classes, interfaces, and
class relationships
Capture structural (vs. behavioral) info
Used for
v1.2
19
Class Diagrams
AddressBook
AddressBook
AddressBook
-id
+name
+phone
+getName()
+getPhone()
Class
Abstract Class
Class with
Attributes
and
Operations
v1.2
20
Class Diagrams
Dependency
Association
Navigability
Aggregation
Composition
Generalization
v1.2
21
Class Diagrams
1..2
*
*
{ordered}
+entry
has
displays
Multiplicity
Constraint
Role
Name
Directionality
Nesting
v1.2
22
Class Diagrams
<<Entity>>
<<Interface>>
/entry
This is a note.
Stereotype
Realization
Realization
Derived Assoc.
Association Class
Note (Comment)
v1.2
23
Window
size: Area
visibility: Boolean
display ()
hide ()
Window
{abstract,
author=Joe,
status=tested}
+size: Area = (100,100)
#visibility: Boolean = invisible
+default-size: Rectangle
#maximum-size: Rectangle
-xptr: XWindow*
+display ()
+hide ()
+create ()
-attachXWindow(xwin:Xwindow*)
Source: OMG Unified Modeling Language Specification, version 1.5. March 2003
v1.2
24
guarantee()
cancel ()
change (newDate: Date)
responsibilities
bill no-shows
match to available rooms
exceptions
Source: OMG Unified Modeling Language Specification, version 1.5. March 2003
v1.2
25
AddressEntry
Person
v1.2
Party
Organization
26
Logical Design
AddressBookView
AddressBookController
AddressBook
v1.2
27
Implementation Design
1
AddressBookView
AddressBookController
-addrBookFrame: JFrame
-addrList: JList
-entryNames: String[]
+getEntryNames(): String[]
+createNewEntry(): AddressBookEntry
~removeEntry()
+findEntry(name: String): AddressBookEntry
+show()
+update()
#createAddrBookFrame(): JFrame
AddressBookEntry
1
*
#name: String
#streetAddress: String
#city: String
#State: String
#Zip: String
#phoneNumber: String
#emailAddress: String
AddressBook
-name: String
+load()
+getEntryNames(): String[]
+addEntry()
+removeEntry()
+findEntry(name: String): AddressBookEntry
+toString(): String
v1.2
28
v1.2
29
Tools
v1.2
30
References
www.omg.org
www.uml.org
www.rational.com
www.martinfowler.com/books.html#uml
www.oreilly.com/catalog/umlnut/
www.oreilly.com/catalog/umlpr/
www.oreilly.com/catalog/learnuml/
http://www.ambysoft.com/elementsUMLStyle.html
The Unified Modeling Language User Guide
The Unified Modeling Language Reference Manual
http://alistair.cockburn.us/usecases/usecases.html
v1.2
31
Questions
Class Diagram
Fruit
Apple
Granny Smith
Orange
Red Delicious
v1.2
Seed
Pear
Rome
33
Class Diagram
Source: OMG, Unified Modeling Language: Superstructure Specification, version 2.0. August 2005
v1.2
34