ClassName
attributes
operations
ClassName
attributes
operations
Person
name : String
address : Address
birthdate : Date
ssn
: Id
attributeName : Type
A derived attribute is one that can be
computed from other attributes, but
doesnt actually exist. For example,
a Persons age can be computed from
his birth date. A derived attribute is
designated by a preceding / as in:
/ age : Date
Person
+ name : String
# address : Address
# birthdate : Date
/ age
: Date
- ssn
: Id
Person
name : String
address : Address
birthdate : Date
ssn
: Id
eat
sleep
work
play
PhoneBook
newEntry (n : Name, a : Address, p : PhoneNumber, d : Description)
getPhone ( n : Name, a : Address) : PhoneNumber
Person
Person
name : String
birthdate : Date
ssn
: Id
Person
name
address
birthdate
Person
eat
play
eat()
sleep()
work()
play()
CourseSchedule
Course
add(c : Course)
remove(c : Course)
Person
Student
Employee
TeachingAssistant
Student
Instructor
1..*
Instructor
Student
Instructor
1..*
Student
teaches
1..*
learns from
1..*
Instructor
Student
membership
1..*
1..*
Team
member of
Student
1..*
1..*
1
president of
1..*
Team
Router
DomainNameServer
Product
Warranty
next
LinkedListNode
previous
Transmission
Window
<<interface>>
ControlPanel
1 .. *
Scrollbar
Titlebar
Menu
<<interface>>
ControlPanel
getChoices : Choice[]
makeChoice (c : Choice)
getSelection : Selection
<<interface>>
ControlPanel
specifier
implementation
VendingMachine
A realization relationship
connects a class with an
interface that supplies its
behavioral specification. It is
rendered by a dashed line with
a hollow triangle towards the
specifier.
inputStream
{file must not be locked}
FileWriter
File
FileReader
outputStream
T
LinkedList
T
1 .. *
A parameterized class or
template defines a family of
potential elements.
To use it, the parameter must be
bound.
A template is rendered by a small
dashed rectangle superimposed on
the upper-right corner of the class
rectangle. The dashed rectangle
contains a list of formal parameters
for the class.
T
LinkedList
T
1..*
<<bind>>(Name)
DeansList
<<enumeration>>
Boolean
false
true
An enumeration is a user-defined
data type that consists of a name and
an ordered list of enumeration
literals.
<<exception>>
Exception
getMessage()
printStackTrace()
<<exception>>
KeyException
<<exception>>
SQLException
Compiler
FrontEnd
BackEnd
Compiler
FrontEnd
BackEnd
Compiler
JavaCompiler
Java
path.dll
collision.dll
driver.dll
version = 8.1.3.2
[Booch,99]
IDrive
ISelfTest
signal.h
version = 3.5
signal.h
version = 4.0
parent
signal.h
version = 4.1
parent
signal.cpp
version = 4.1
interp.cpp
device.cpp
A component is a physical unit of implementation with welldefined interfaces that is intended to be used as a replaceable
part of a system. Well designed components do not depend
directly on other components, but rather on interfaces that
components support.
- The UML Reference Manual, [Rumbaugh,99]
component
spell-check
Dictionary
synonyms
interfaces
stereotyped
component
<<database>>
Account
Transactions
Update
interface
usage dependency
component
ATM-GUI
realization dependency
[Rumbaugh,99]
server:HostMachine
<<database>>
meetingsDB
:Scheduler
reservations
Deployment diagram
of a client-server
system.
<<direct channel>>
[Rumbaugh,99]
clientMachine:PC
:Planner
Student
Student
Person
Student
Billing System
Student
Registrar
start state
final state
simple state
concurrent composite state
downloading
unscheduled
make a course selection
selecting
verify selection
verifying
check schedule
sign schedule
checking schedule
scheduled
an Order Line
an Order Line
a Stock Item
an Order Line
a Stock Item
check()
[check = true]
remove()
an Order
a Order Line
* prepare()
Iteration
marker
an Order Entry
window
an Order
an Order Line
prepare()
Condition
* prepare()
Object
[Fowler,97]
a Stock Item
check()
[check = true]
remove()
Message
needsToReorder()
Iteration
Self-Delegation
Return
[needsToReorder = true]
new
A Reorder
Item
[check = true]
new
A Delivery
Item
Creation
Object
: Order
2*: prepare()
Message
Self-Delegation
5: needToReorder()
3: check()
4: [check == true] remove()
: Order Line
7: [check == true] new
:Delivery Item
Sequence Number
: Stock Item
6: new
:Reorder Item
[Fowler,97]
[Fowler,97]
Receive
Order
Multiple Trigger
*
Cancel
Order
[failed]
Authorize
Payment
[succeeded]
Check
Line
Item
[in stock]
Assign to
Order
Synchronization Condition
[need to
reorder]
[stock assigned to
all line items and
payment authorized]
Dispatch
Order
Reorder
Item