You are on page 1of 91

2EMHFW0RGHOLQJZLWK20*80/7XWRULDO6HULHV

,QWURGXFWLRQWR80/
6WUXFWXUDODQG8VH&DVH0RGHOLQJ

&ULV.REU\Q
&R&KDLU80/5HYLVLRQ7DVN)RUFH

© 1999-2001 OMG and Contributors: Crossmeta, EDS, IBM, Enea Data, Hewlett-Packard, IntelliCorp, Kabira Technologies, Klasse Objecten,
Rational Software, Telelogic, Unisys
2YHUYLHZ
T 7XWRULDOVHULHV
T 4XLFNWRXU
T 6WUXFWXUDOPRGHOLQJ
T 8VHFDVHPRGHOLQJ

,QWURGXFWLRQWR80/ 
7XWRULDO6HULHV
T /HFWXUH,QWURGXFWLRQWR80/
6WUXFWXUDODQG8VH&DVH0RGHOLQJ
T /HFWXUH%HKDYLRUDO0RGHOLQJZLWK
80/
T /HFWXUH$GYDQFHG0RGHOLQJZLWK80/
>1RWH7KLVYHUVLRQRIWKHWXWRULDOVHULHVLVEDVHGRQ 20*80/
6SHFLILFDWLRQY80/5HYLVLRQ7DVN)RUFHUHFRPPHQGHGILQDOGUDIW
20*GRFDG@

,QWURGXFWLRQWR80/ 
7XWRULDO*RDOV
T :KDW\RXZLOOOHDUQ
T ZKDWWKH80/LVDQGZKDWLVLWQRW
T 80/¶VEDVLFFRQVWUXFWVUXOHVDQGGLDJUDP
WHFKQLTXHV
T KRZWKH80/FDQPRGHOODUJHFRPSOH[V\VWHPV
T KRZWKH80/FDQVSHFLI\V\VWHPVLQDQ
LPSOHPHQWDWLRQLQGHSHQGHQWPDQQHU
T KRZ80/;0,DQG02)FDQIDFLOLWDWHPHWDGDWD
LQWHJUDWLRQ
T :KDW\RXZLOOQRWOHDUQ
T 2EMHFW0RGHOLQJ
T REMHFWPHWKRGVRUSURFHVVHV
T 0HWDPRGHOLQJ

,QWURGXFWLRQWR80/ 
4XLFN7RXU
T :K\GRZHPRGHO"
T :KDWLVWKH80/"
T )RXQGDWLRQHOHPHQWV
T 8QLI\LQJFRQFHSWV
T /DQJXDJH DUFKLWHFWXUH
T 5HODWLRQWRRWKHU20*
WHFKQRORJLHV

,QWURGXFWLRQWR80/ 
:K\GRZHPRGHO"
T 3URYLGHVWUXFWXUHIRUSUREOHPVROYLQJ
T ([SHULPHQWWRH[SORUHPXOWLSOHVROXWLRQV
T )XUQLVKDEVWUDFWLRQVWRPDQDJHFRPSOH[LW\
T 5HGXFHWLPHWRPDUNHWIRUEXVLQHVV
SUREOHPVROXWLRQV
T 'HFUHDVHGHYHORSPHQWFRVWV
T 0DQDJHWKHULVNRIPLVWDNHV

,QWURGXFWLRQWR80/ 
7KH&KDOOHQJH

Tijuana “shantytown”:
http://www.macalester.edu/~jschatz/residential.html

,QWURGXFWLRQWR80/ 
7KH9LVLRQ

Fallingwater:
http://www.adelaide.net.au/~jpolias/FLW/Images/FallingWater.jpeg

,QWURGXFWLRQWR80/ 
:K\GRZHPRGHOJUDSKLFDOO\"
T *UDSKLFVUHYHDOGDWD
T (GZDUG7XIWH
7KH9LVXDO'LVSOD\RI4XDQWLWDWLYH,QIRUPDWLRQ


T ELWPDS PHJDZRUG
T $QRQ\PRXVYLVXDOPRGHOHU

,QWURGXFWLRQWR80/ 
4XLFN7RXU
T 7KH80/LVDJUDSKLFDOODQJXDJHIRU
„ VSHFLI\LQJ
„ YLVXDOL]LQJ
„ FRQVWUXFWLQJ
„ GRFXPHQWLQJ
WKHDUWLIDFWVRIVRIWZDUHV\VWHPV
T $GGHGWRWKHOLVWRI20*DGRSWHGWHFKQRORJLHVLQ
1RYHPEHUDV80/
T 0RVWUHFHQWPLQRUUHYLVLRQLV80/DGRSWHGLQ
1RYHPEHU
T 1H[WPLQRUUHYLVLRQZLOOEH80/SODQQHGWREH
DGRSWHGLQ4
T 1H[WPDMRUUHYLVLRQZLOOEH80/SODQQHGWREH
FRPSOHWHGLQ

,QWURGXFWLRQWR80/ 
80/*RDOV
T 'HILQHDQHDV\WROHDUQEXWVHPDQWLFDOO\ULFK
YLVXDOPRGHOLQJODQJXDJH
T 8QLI\WKH%RRFK207DQG2EMHFWRU\ PRGHOLQJ
ODQJXDJHV
T ,QFOXGHLGHDVIURPRWKHUPRGHOLQJODQJXDJHV
T ,QFRUSRUDWHLQGXVWU\EHVWSUDFWLFHV
T $GGUHVVFRQWHPSRUDU\VRIWZDUHGHYHORSPHQW
LVVXHV
T VFDOHGLVWULEXWLRQFRQFXUUHQF\H[HFXWDELOLW\HWF
T 3URYLGHIOH[LELOLW\IRUDSSO\LQJGLIIHUHQW
SURFHVVHV
T (QDEOHPRGHOLQWHUFKDQJHDQGGHILQH
UHSRVLWRU\LQWHUIDFHV
,QWURGXFWLRQWR80/ 
20*80/(YROXWLRQ
com position <<docum ent>>
(whole-part) UM L 2.0
relationship

<<docum ent>>
UM L 2.0
2002
Superstructure
(planned)

<<docum ent>>
<<docum ent>>
2001 Q 4 UM L 2.0
UM L 2.0 O CL
(planned) Infrastructure

<<docum ent>>
Q 1 2001 UM L 1.4 dependency
relationship

<<docum ent>>
1999 UM L 1.3

E ditorial revision <<docum ent>>


1998 without significant UM L 1.2
technical changes.

From [Kobryn 01a].


<<docum ent>>
1997 UM L 1.1
(adopted by O M G )
,QWURGXFWLRQWR80/ 
20*80/&RQWULEXWRUV
Aonix Microsoft
Colorado State University ObjecTime
Computer Associates Oracle
Concept Five Ptech
Data Access OAO Technology Solutions
EDS Rational Software
Enea Data Reich
Hewlett-Packard SAP
IBM Softeam
I-Logix Sterling Software
InLine Software Sun
Intellicorp Taskon
Kabira Technologies Telelogic
Klasse Objecten Unisys
Lockheed Martin …

,QWURGXFWLRQWR80/ 
20*80/6SHFLILFDWLRQ
T 80/6XPPDU\
T 80/6HPDQWLFV
T 80/1RWDWLRQ*XLGH
T 80/([DPSOH3URILOHV
T 6RIWZDUH'HYHORSPHQW3URFHVVHV

T %XVLQHVV0RGHOLQJ

T 0RGHO,QWHUFKDQJH
T 0RGHO,QWHUFKDQJH8VLQJ;0,
T 0RGHO,QWHUFKDQJH8VLQJ&25%$,'/
T 2EMHFW&RQVWUDLQW/DQJXDJH

,QWURGXFWLRQWR80/ 
7XWRULDO)RFXVWKH/DQJXDJH
T ODQJXDJH V\QWD[VHPDQWLFV
T V\QWD[ UXOHVE\ZKLFKODQJXDJHHOHPHQWV
HJZRUGV DUHDVVHPEOHGLQWR
H[SUHVVLRQV HJSKUDVHVFODXVHV
T VHPDQWLFV UXOHVE\ZKLFKV\QWDFWLF
H[SUHVVLRQVDUHDVVLJQHGPHDQLQJV
T 80/1RWDWLRQ*XLGH ± GHILQHV80/¶V
JUDSKLFV\QWD[
T 80/6HPDQWLFV ± GHILQHV80/¶V
VHPDQWLFV

,QWURGXFWLRQWR80/ 
)RXQGDWLRQ&RQFHSWV
T %XLOGLQJEORFNV
T :HOOIRUPHGQHVVUXOHV

,QWURGXFWLRQWR80/ 
%XLOGLQJ%ORFNV
T 7KHEDVLFEXLOGLQJEORFNVRI80/DUH
T PRGHOHOHPHQWV FODVVHVLQWHUIDFHVFRPSRQHQWV
XVHFDVHVHWF
T UHODWLRQVKLSV DVVRFLDWLRQVJHQHUDOL]DWLRQ
GHSHQGHQFLHVHWF
T GLDJUDPV FODVVGLDJUDPVXVHFDVHGLDJUDPV
LQWHUDFWLRQGLDJUDPVHWF
T 6LPSOHEXLOGLQJEORFNVDUHXVHGWRFUHDWHODUJH
FRPSOH[VWUXFWXUHV
T FIHOHPHQWVERQGVDQGPROHFXOHVLQFKHPLVWU\
T FIFRPSRQHQWVFRQQHFWRUVDQGFLUFXLWERDUGVLQ
KDUGZDUH

,QWURGXFWLRQWR80/ 
'LDJUDP&ODVVLILHU9LHZ

Elem ent

C <<covalent>>
Carbon Hydrogen
C H

<<covalent>> C

,QWURGXFWLRQWR80/ 
'LDJUDP,QVWDQFH9LHZ

:H ydrogen :H ydrogen

:H ydrogen :C arbon :C arbon :H ydrogen

:H ydrogen :H ydrogen

,QWURGXFWLRQWR80/ 
:HOO)RUPHGQHVV5XOHV
T :HOOIRUPHGLQGLFDWHVWKDWDPRGHORUPRGHO
IUDJPHQWDGKHUHVWRDOOVHPDQWLFDQG
V\QWDFWLFUXOHVWKDWDSSO\WRLW
T 80/VSHFLILHVUXOHVIRU
T QDPLQJ
T VFRSLQJ
T YLVLELOLW\
T LQWHJULW\
T H[HFXWLRQ OLPLWHG
T +RZHYHUGXULQJLWHUDWLYHLQFUHPHQWDO
GHYHORSPHQWLWLVH[SHFWHGWKDWPRGHOVZLOO
EHLQFRPSOHWHDQGLQFRQVLVWHQW

,QWURGXFWLRQWR80/ 
:HOO)RUPHGQHVV 5XOHV FRQW¶G
T ([DPSOHRIVHPDQWLFUXOH&ODVV>@
T English: If a Class is concrete, all the Operations of
the Class should have a realizing Method in the full
descriptor.
T OCL: not self.isAbstract implies
self.allOperations->
forAll (op | self.allMethods->
exists (m | m.specification->
includes(op)))

,QWURGXFWLRQWR80/ 
:HOO)RUPHGQHVV5XOHV FRQW¶G
T ([DPSOHRIV\QWDFWLFUXOHV&ODVV
T Basic Notation: A class is drawn as a solid-outline
rectangle with three compartments separated by
horizontal lines.
T Presentation Option: Either or both of the attribute
and operation compartments may be suppressed.
T ([DPSOHRIV\QWDFWLFJXLGHOLQH&ODVV
T Style Guideline: Begin class names with an
uppercase letter.

,QWURGXFWLRQWR80/ 
8QLI\LQJ&RQFHSWV
T FODVVLILHULQVWDQFHGLFKRWRP\
T HJDQREMHFWLVDQLQVWDQFHRIDFODVV25
DFODVVLVWKHFODVVLILHURIDQREMHFW
T VSHFLILFDWLRQUHDOL]DWLRQGLFKRWRP\
T HJDQLQWHUIDFHLVDVSHFLILFDWLRQRID
FODVV25
DFODVVLVDUHDOL]DWLRQRIDQLQWHUIDFH
T DQDO\VLVWLPHYVGHVLJQWLPHYVUXQ
WLPH
T PRGHOLQJSKDVHV ³SURFHVVFUHHS´
T XVDJHJXLGHOLQHVVXJJHVWHGQRWHQIRUFHG

,QWURGXFWLRQWR80/ 
/DQJXDJH$UFKLWHFWXUH
T 0HWDPRGHODUFKLWHFWXUH
T 3DFNDJHVWUXFWXUH

,QWURGXFWLRQWR80/ 
0HWDPRGHO$UFKLWHFWXUH
< < m e ta m o d e l> >
M O F M e ta -M e ta m o d e l
«m etaclas s» «m etaclas s» «m etaclas s»
Attribute Class Operation

«instanceO f» «instanceO f»
<<use>>
«instanceO f»

< < m e ta m o d e l> >


U M L M e ta m o d e l

«m etaclas s» «m etaclas s» «m etaclas s»


Attribute Class Operation

«instanceO f»
<<use>>

A n a lysis M o d e l T he operation
issue of the
T he attribute fare of
P as sengerTick et
the P as sengerTick et
PassengerTicket class is an
class is an instance of
ins tance of the
the m etaclas s
-issuedB y : A irline m etaclass
A ttribute.
-issuingA gent : T ravelA gent O peration.
-fare : C urrenc y
-tax : C urrenc y
+total()
+issue()
+surrender()
+refund()

From [Kobryn 01b].


«instanceO f»

45723990550: PassengerTicket R epresents the


U ser O bject layer
of the 4-layer
-issuedB y : A irline = A cm eA irlines m etam odel
-issuingA gent : T ravelA gent = T errificT ravel architecture
-fare : C urrenc y = 1050.00 pattern.
-tax : C urrenc y = 57.56

,QWURGXFWLRQWR80/ 
80/0HWDPRGHO/D\HU
Behavioral Elem ents

Activity G raphs
pa cka ge

Collaborations Use Cases State M achines M odel M anagem ent

Com m on Behav ior

de pe nd en cy

Foundation

Core Extension M echanism s

Data Types
From [Kobryn 01b].

,QWURGXFWLRQWR80/ 
5HODWLRQVKLSVWR2WKHU0RGHOLQJ7HFKQRORJLHV

M etadata layer M eta O bject XM I


Facility Facility

<<docum ent>>
UM L XM I DTD
Unified
S pecification
M odeling
layer
Language
<<docum ent>>
UM L CORBA IDL

C ustom ization UM L Profile UM L Profile


layer for CO RBA for Telecom

P latform D om ain
technology technology
profiles profiles
From [Kobryn 01b].

,QWURGXFWLRQWR80/ 
6WUXFWXUDO0RGHOLQJ
T :KDWLVVWUXFWXUDOPRGHOLQJ"
T &RUHFRQFHSWV
T 'LDJUDPWRXU
T :KHQWRPRGHOVWUXFWXUH
T 0RGHOLQJWLSV
T ([DPSOH,QWHUIDFHEDVHGGHVLJQ

,QWURGXFWLRQWR80/ 
:KDWLVVWUXFWXUDOPRGHOLQJ"
T 6WUXFWXUDOPRGHODYLHZRIDQV\VWHP
WKDWHPSKDVL]HVWKHVWUXFWXUHRIWKH
REMHFWVLQFOXGLQJWKHLUFODVVLILHUV
UHODWLRQVKLSVDWWULEXWHVDQGRSHUDWLRQV

,QWURGXFWLRQWR80/ 
6WUXFWXUDO0RGHOLQJ &RUH(OHPHQWV

Construct Description Syntax


class a description of a set of objects
that share the same attributes,
operations, methods, relationships
and semantics.
interface a named set of operations that
« in te rfa c e »
characterize the behavior of an
element.
component a modular, replaceable and
significant part of a system that
packages implementation and
exposes a set of interfaces.
node a run-time physical object that
represents a computational
resource.

,QWURGXFWLRQWR80/ 
6WUXFWXUDO0RGHOLQJ &RUH(OHPHQWV FRQW¶G

Construct Description Syntax


constraint¹ a semantic condition or restriction.
{co n stra in t}

¹ An extension mechanism useful for specifying structural elements.

,QWURGXFWLRQWR80/ 
6WUXFWXUDO0RGHOLQJ &RUH5HODWLRQVKLSV
Construct Description Syntax
association a relationship between two or more
classifiers that involves connections
among their instances.
aggregation A special form of association that
specifies a whole-part relationship
between the aggregate (whole) and
the component part.
generalization a taxonomic relationship between a
more general and a more specific
element.
dependency a relationship between two modeling
elements, in which a change to one
modeling element (the independent
element) will affect the other modeling
element (the dependent element).

,QWURGXFWLRQWR80/ 
6WUXFWXUDO0RGHOLQJ &RUH5HODWLRQVKLSV FRQW¶G

Construct Description Syntax


realization a relationship between a specification
and its implementation.

,QWURGXFWLRQWR80/ 
6WUXFWXUDO'LDJUDP7RXU
T 6KRZWKHVWDWLFVWUXFWXUHRIWKHPRGHO
T WKHHQWLWLHVWKDWH[LVW HJFODVVHVLQWHUIDFHV
FRPSRQHQWVQRGHV
T LQWHUQDOVWUXFWXUH
T UHODWLRQVKLSWRRWKHUHQWLWLHV
T 'RQRWVKRZ
T WHPSRUDOLQIRUPDWLRQ
T .LQGV
T VWDWLFVWUXFWXUDOGLDJUDPV
„ FODVVGLDJUDP
„ REMHFWGLDJUDP
T LPSOHPHQWDWLRQGLDJUDPV
„ FRPSRQHQWGLDJUDP
„ GHSOR\PHQWGLDJUDP

,QWURGXFWLRQWR80/ 
6WDWLF6WUXFWXUDO'LDJUDPV
T 6KRZVDJUDSKRIFODVVLILHU
HOHPHQWVFRQQHFWHGE\VWDWLF
UHODWLRQVKLSV
T NLQGV

T FODVVGLDJUDPFODVVLILHUYLHZ
T REMHFWGLDJUDPLQVWDQFHYLHZ

,QWURGXFWLRQWR80/ 
&ODVVHV

Window
{abstract,
Window author=Joe,
status=tested}
+size: Area = (100,100)
#visibility: Boolean = true
Window +default-size: Rectangle
#maximum-size: Rectangle
-xptr: XWindow*
size: Area
visibility: Boolean
+display ()
+hide ()
display ()
hide () +create ()
-attachXWindow(xwin:Xwindow*)

Fig. 3-20, UML Notation Guide

,QWURGXFWLRQWR80/ 
&ODVVHVFRPSDUWPHQWVZLWKQDPHV

Reservation
operations
guarantee()
cancel ()
change (newDate: Date)
responsibilities
bill no-shows
match to available rooms

exceptions
invalid credit card

Fig. 3-23, UML Notation Guide

,QWURGXFWLRQWR80/ 
&ODVVHVPHWKRGERG\

PoliceStation

alert (Alarm)
1 station

BurglarAlarm

isTripped: Boolean = false

report () { if isTripped
then station.alert(self)}

Fig. 3-24, UML Notation Guide

,QWURGXFWLRQWR80/ 
7\SHVDQG,PSOHPHQWDWLRQ&ODVVHV

«type» «implementationClass»
Object HashTable

* elements 1 body

«type» «implementationClass»
Set HashTableSet
addElement(Object)
removeElement(Object) addElement(Object)
testElement(Object):Boolean removeElement(Object)
testElement(Object):Boolean
setTableSize(Integer)

Fig. 3-27, UML Notation Guide

,QWURGXFWLRQWR80/ 
,QWHUIDFHV6KRUWKDQG1RWDWLRQ

S to reH o m e Store

P O S te rm in alH om e -store Id : In teg e r


-P O S list: L ist
POSterm inal < <u se > > + cre ate ()
+ lo g in (U se rN a m e , P a ssw d )
P O S te rm in al + fin d (S to re Id )
+ ge tP O S tota ls(P O S id )
+ up d a te S to reTo ta ls(Id ,S ale s )
S to re
+ ge t(Ite m )

Fig. 3-29, UML Notation Guide

,QWURGXFWLRQWR80/ 
,QWHUIDFHV/RQJKDQG1RWDWLRQ

S toreH om e Store

P O S term inalH om e -storeId: Integer


-P O S list: List

POSterm inal +create()


<< use>> <<interface>> +login(U serN am e, P assw d)
P O S term inal Store +find(S toreId)
+getP O S totals(P O S id)
+getP O S totals(P O S id) +updateS toreT otals(Id,S ales)
+updateS toreT otals(Id,S ales) +get(Item )
+get(Item )

Fig. 3-29, UML Notation Guide

,QWURGXFWLRQWR80/ 
$VVRFLDWLRQV
Job 1..∗
Company ∗
employer employee Person

Job boss
salary
0..1
worker ∗

Manages

Person

{X or}
Account
Corporation

Fig. 3-40, UML Notation Guide

,QWURGXFWLRQWR80/ 
$VVRFLDWLRQ(QGV

+vertex
1 3..∗
Contains
Polygon Point
{ordered}
1
GraphicsBundle
1
-bundle color
texture
density

Fig. 3-41, UML Notation Guide

,QWURGXFWLRQWR80/ 
7HUQDU\$VVRFLDWLRQV
Year

season ∗

∗ ∗
Team Player
team goalkeeper

Record
goals for
goals against
wins
losses
ties

Fig. 3-44, UML Notation Guide

,QWURGXFWLRQWR80/ 
&RPSRVLWLRQ

Window

scrollbar [2]: Slider


title: Header
body: Panel

Window
1
1 1

scrollbar 2 title 1 body 1

Slider Header Panel

Fig. 3-45, UML Notation Guide

,QWURGXFWLRQWR80/ 
&RPSRVLWLRQ FRQW¶G

Window

2
scrollbar:Slider

1
title:Header

1
body:Panel

Fig. 3-45, UML Notation Guide

,QWURGXFWLRQWR80/ 
*HQHUDOL]DWLRQ
Shape

Separate Target Style

Polygon Ellipse Spline . ..

Shape
Shared Target Style

...
Polygon Ellipse Spline

Fig. 3-47, UML Notation Guide


,QWURGXFWLRQWR80/ 
*HQHUDOL]DWLRQ
Vehicle

power venue
power venue
{overlapping} {overlapping}

WindPowered MotorPowered Land Water


Vehicle Vehicle Vehicle Vehicle

Truck Sailboat

Fig. 3-48, UML Notation Guide

,QWURGXFWLRQWR80/ 
'HSHQGHQFLHV

ClassA ClassB ClassD


«friend»
«friend»
operationZ()
«instantiate»

«call» ClassC

«refine»
ClassC combines
two logical classes

ClassD ClassE

Fig. 3-50, UML Notation Guide

,QWURGXFWLRQWR80/ 
'HSHQGHQFLHV

Controller
«access»
«access»
«access» Diagram
Elements
«access»
«access»

Domain Graphics
Elements Core

Fig. 3-51, UML Notation Guide

,QWURGXFWLRQWR80/ 
'HULYHG$WWULEXWHVDQG$VVRFLDWLRQV

Person
birthdate
{age = currentDate - birthdate} /age

1
Company ∗ Department
employer
1 1 department
employer
WorksForDepartment

∗ Person
/WorksForCompany
{ Person.employer=Person.department.employer }

Fig. 3-52, UML Notation Guide

,QWURGXFWLRQWR80/ 
2EMHFWV

tria n g le : P olyg on tria ng le


c e n te r = (0 ,0 )
ve rtic e s = ( (0 ,0 ),(4 ,0) ,( 4,3 ))
bo rd e rC olo r = bla c k
fillC o lo r = wh ite
:P olyg on

tria ng le : P o lyg o n

s c h e d u le r

Fig. 3-38, UML Notation Guide

,QWURGXFWLRQWR80/ 
&RPSRVLWHREMHFWV
awindow : Window

horizontalBar:ScrollBar

verticalBar:ScrollBar

moves

surface:Pane
moves

title:TitleBar

Fig. 3-39, UML Notation Guide

,QWURGXFWLRQWR80/ 
/LQNV

officer
Jill:Person

member
treasurer
member Joe:Person
downhillSkiClub:Club

president
member
Chris:Person
officer

Fig. 3-46, UML Notation Guide

,QWURGXFWLRQWR80/ 
&RQVWUDLQWVDQG&RPPHQWV

∗ Me m b e r-of ∗
P e rs o n {s ub s e t} Co m m itte e R e p re s e n ts
a n in c o rpo ra te d e n tity.
1 C h a ir-o f ∗

e m p lo ye e e m p loye r
∗ ∗
P e rs o n 0 .. 1 Co m pa ny
0 .. 1
b os s

{P e rs o n. e m p loye r =
P e rs o n. bo s s .e m p lo ye r}

Fig. 3-17, UML Notation Guide

,QWURGXFWLRQWR80/ 
&ODVV'LDJUDP([DPSOH
C reditC ard
P M C reditC ard
{abstract}

O rderB ean
<<interface>> {abstract}
E ntityB ean
+ getO rderS tatus
+ setO rderS tatus
P M O rder
+ getLineItem s
+ setLineItem s
order + getC reditA pproved
+ setC reditA pproved
* ...

1 order

buyer 1 * item

C ustom er LineItem
P M LineItem
{abstract}
*
* item

1 com m odity

P roduct

Adapted from Fig. 23 [EJB 2.0].

,QWURGXFWLRQWR80/ 
,PSOHPHQWDWLRQ'LDJUDPV
T 6KRZDVSHFWVRIPRGHO
LPSOHPHQWDWLRQLQFOXGLQJVRXUFH
FRGHVWUXFWXUHDQGUXQWLPH
LPSOHPHQWDWLRQVWUXFWXUH
T .LQGV

T FRPSRQHQWGLDJUDP
T GHSOR\PHQWGLDJUDP

,QWURGXFWLRQWR80/ 
&RPSRQHQW'LDJUDP
T 6KRZVWKHRUJDQL]DWLRQVDQG
GHSHQGHQFLHVDPRQJVRIWZDUH
FRPSRQHQWV
T &RPSRQHQWVPD\EH
T specified by classifiers (e.g.,
implementation classes)
T implemented by artifacts (e.g., binary,
executable, or script files)

,QWURGXFWLRQWR80/ 
&RPSRQHQWV
S h o p p ing S e ss io n H o m e

<<Session>>
ShoppingSession
S h o p p ing S e s s io n

<<Entity>>
030303zak:Order

O rd e rP K
<<auxiliary>>
O rd e rH o m e :OrderPK
O rd e rH o m e
<<focus>>
:Order
O rd e rInfo
O rd e r <<auxiliary>>
:OrderInfo
O rd e r

Fig. 3-99, UML Notation Guide


,QWURGXFWLRQWR80/ 
&RPSRQHQW'LDJUDP
S hoppingS essionH om e

<<EJBSession>>
S hoppingS ession ShoppingSession

<<EJBEntity>>
Catalog

C atalogP K
<<auxiliary>>
CatalogPK
C atalogH om e C atalogH om e

<<focus>>
Catalog
C atalogInfo
C atalog <<auxiliary>>
CatalogInfo

C atalog

<<file>>
CatalogJAR

S hoppingC artH om e

S hoppingC art
<<EJBEntity>>
ShoppingCart

Fig. 3-95, UML Notation Guide


,QWURGXFWLRQWR80/ 
&RPSRQHQW'LDJUDPZLWK5HODWLRQVKLSV

<<auxiliary>> <<focus>> <<auxiliary>>


C atalogInfo C atalog C atalogPK

<<reside>> <<reside>> <<reside>>

<<ejbEntity>>
C atalog

<<im plem ent>>

<<file>>
C atalogJAR

Fig. 3-96, UML Notation Guide


,QWURGXFWLRQWR80/ 
'HSOR\PHQW'LDJUDP
T 6KRZVWKHFRQILJXUDWLRQRIUXQWLPH
SURFHVVLQJHOHPHQWVDQGWKHVRIWZDUH
FRPSRQHQWVSURFHVVHVDQGREMHFWV
WKDWOLYHRQWKHP
T 'HSOR\PHQWGLDJUDPVPD\EHXVHGWR
VKRZZKLFKFRPSRQHQWVPD\UXQRQ
ZKLFKQRGHV

,QWURGXFWLRQWR80/ 
'HSOR\PHQW'LDJUDP 
:Client

<<brow ser>>
:OpenSourceBrow ser

videoStoreServer:AppServer
<<Container>>
VideoStoreApplication

<<Session>> <<Entity>>
ShoppingSession Catalog
<<Focus>> <<Focus>>
ShoppingSession Catalog

<<Entity>>
ShoppingCart
<<Focus>>
ShoppingCart

:DBServer
<<database>>
:VideoStoreDB

Fig. 3-97, UML Notation Guide


,QWURGXFWLRQWR80/ 
'HSOR\PHQW'LDJUDP 
prim aryServer:AppServer

<<database>>
:AccountsDB
:Q uoteService

prim aryBroker
:BondBroker

<<becom e>>

backupServer:AppServer

backupBroker
:BondBroker

<<database>>
:Q uoteService
:AccountsDB

Fig. 3-98, UML Notation Guide


,QWURGXFWLRQWR80/ 
:KHQWRPRGHOVWUXFWXUH
T $GRSWDQRSSRUWXQLVWLFWRSGRZQERWWRPXSDSSURDFK
WRPRGHOLQJVWUXFWXUH
„ 6SHFLI\WKHWRSOHYHOVWUXFWXUHXVLQJ³DUFKLWHFWXUDOO\VLJQLILFDQW´
FODVVLILHUVDQGPRGHOPDQDJHPHQWFRQVWUXFWV SDFNDJHV
PRGHOVVXEV\VWHPVVHH7XWRULDO
„ 6SHFLI\ORZHUOHYHOVWUXFWXUHDV\RXGLVFRYHUGHWDLOUHFODVVLILHUV
DQGUHODWLRQVKLSV
T ,I\RXXQGHUVWDQG\RXUGRPDLQZHOO\RXFDQIUHTXHQWO\
VWDUWZLWKVWUXFWXUDOPRGHOLQJRWKHUZLVH
„ ,I\RXVWDUWZLWKXVHFDVHPRGHOLQJ DVZLWKDXVHFDVHGULYHQ
PHWKRG PDNHVXUHWKDW\RXUVWUXFWXUDOPRGHOLVFRQVLVWHQW
ZLWK\RXUXVHFDVHV
„ ,I\RXVWDUWZLWKUROHPRGHOLQJ DVZLWKDFROODERUDWLRQGULYHQ
PHWKRG PDNHVXUHWKDW\RXUVWUXFWXUDOPRGHOLVFRQVLVWHQW
ZLWK\RXUFROODERUDWLRQV

,QWURGXFWLRQWR80/ 
6WUXFWXUDO0RGHOLQJ7LSV
T 'HILQHD³VNHOHWRQ´ RU³EDFNERQH´ WKDWFDQEH
H[WHQGHGDQGUHILQHGDV\RXOHDUQPRUHDERXW\RXU
GRPDLQ
T )RFXVRQXVLQJEDVLFFRQVWUXFWVZHOODGGDGYDQFHG
FRQVWUXFWVDQGRUQRWDWLRQRQO\DVUHTXLUHG
T 'HIHULPSOHPHQWDWLRQFRQFHUQVXQWLOODWHLQWKH
PRGHOLQJSURFHVV
T 6WUXFWXUDOGLDJUDPVVKRXOG
„ HPSKDVL]HDSDUWLFXODUDVSHFWRIWKHVWUXFWXUDOPRGHO
„ FRQWDLQFODVVLILHUVDWWKHVDPHOHYHORIDEVWUDFWLRQ
T /DUJHQXPEHUVRIFODVVLILHUVVKRXOGEHRUJDQL]HGLQWR
SDFNDJHV VHH/HFWXUH

,QWURGXFWLRQWR80/ 
,QWHUIDFH%DVHG'HVLJQ
T ,QWHUIDFHEDVHGGHVLJQLVDGHVLJQDSSURDFK
WKDW
T HPSKDVL]HVWKHVSHFLILFDWLRQRIV\VWHPLQWHUIDFHV
T VHSDUDWHVWKHVSHFLILFDWLRQRIVHUYLFHRSHUDWLRQV
LQWHUIDFHV IURPWKHLUUHDOL]DWLRQ LPSOHPHQWDWLRQ 
T &25%$,'/LVW\SLFDOO\XVHGIRULQWHUIDFH 
EDVHGGHVLJQRI&25%$DSSOLFDWLRQV
T GHILQHVLQWHUIDFHVIRUEXVLQHVVDQGV\VWHPREMHFWV
ZLWKRXWFRQVWUDLQLQJWKHLULPSOHPHQWDWLRQV
T GHILQHVWKHVWUXFWXUHRIDQGLVWULEXWHGDSSOLFDWLRQ
T GRHVQ¶WDOORZ\RXWRVSHFLI\REMHFWEHKDYLRURU
FODVVUHODWLRQVKLSVRWKHUWKDQJHQHUDOL]DWLRQ

,QWURGXFWLRQWR80/ 
,QWHUIDFH%DVHG'HVLJQ FRQW¶G
T 7KHIROORZLQJH[DPSOHVKRZVKRZ80/FDQ
PRGHOWKHLQWHUIDFHVIRUD3RLQWRI6DOH
DSSOLFDWLRQRULJLQDOO\VSHFLILHGLQ&25%$,'/
)URP>.REU\Q@

,QWURGXFWLRQWR80/ 
([DPSOH,QWHUIDFHEDVHGGHVLJQ
module POS
{
typedef long POSId;
typedef string Barcode;

interface InputMedia
{
typedef string OperatorCmd;

void barcode_input(in Barcode item);


void keypad_input( in OperatorCmd cmd);
};

interface OutputMedia
{
boolean output_text( in string
string_to_print );
};
…..
Generic IDL Point of Sale (POS) example. [Siegel 00]

,QWURGXFWLRQWR80/ 
([DPSOH,QWHUIDFHEDVHGGHVLJQ
…..
interface POSTerminal
{
void login();
void print_POS_sales_summary();
void print_store_sales_summary();
void send_barcode( in Barcode item);
void item_quantity( in long
quantity);
void end_of_sale();
};

};

#endif /* _POS_IDL_ */

,QWURGXFWLRQWR80/ 
From [Kobryn 00].

P oint-of-S ale
«ID Linterfac e» «ID Linterfac e»
IP O S term inal IinputM edia

+s toreR e f : S tore +P O S ref : P O S term ina l


InputM edia +initia liza tion ()
+s toreA c ces sR ef : S to reA cce ss
+o utp utM ed iaR ef : O u tputM e dia +b arc ode Inp ut()
+taxR ef : Ta x +k eyp ad Inpu t()
+P O S id : Intege r
+item B arcod e : Inte ge r «ID Linterfac e»
+item Q u antity : Inte ge r IO utputM edia
O utputM edia
+item Info : Item Info
+item P ric e : C u rren cy «ID Linterfac e»
+o utp utT ext()
+item TaxP rice : C u rre ncy IS tore
+item E xtens ion : C urre nc y
+s ale S ub total : C urren cy +tota ls : Totals
+taxa ble S ub tota l : C urren cy +P O S list : L ist
+s ale Total : C u rren cy +initia liza tion ()
+s ale Tax : C urrenc y +login ()
PO Sterm inal
+P O S list : L ist +g etP O S tota ls()
+initia liza tion () +u pda teS toreTo tals()
+login ()
+p rintP O S sa les S um m ary ()
+p rintS to reS ale sS u m m ary ()
+s etItem Q ua ntity()
+s end B a rco de() Store
+e ndS ale ()

«ID Linterfac e»
«ID Linterfac e» IS toreAccess
ITax
+d epo tR ef : D e pot
Tax +rate : flo at +taxR ef : Ta x
+initia liza tion () +s toreM a rku p : floa t
+c alc ulateTa x() StoreAccess +s toreId : In tege r
+findT ax able P rice() +initia liza tion ()
+findP ric e()

,QWURGXFWLRQWR80/ 
8VH&DVH0RGHOLQJ
T :KDWLVXVHFDVHPRGHOLQJ"
T &RUHFRQFHSWV
T 'LDJUDPWRXU
T :KHQWRPRGHOXVHFDVHV
T 0RGHOLQJWLSV
T ([DPSOH2QOLQH+56\VWHP

,QWURGXFWLRQWR80/ 
:KDWLVXVHFDVHPRGHOLQJ"
T XVHFDVHPRGHODYLHZRID
V\VWHPWKDWHPSKDVL]HVWKH
EHKDYLRUDVLWDSSHDUVWRRXWVLGH
XVHUV$XVHFDVHPRGHOSDUWLWLRQV
V\VWHPIXQFWLRQDOLW\LQWR
WUDQVDFWLRQV µXVHFDVHV¶ WKDWDUH
PHDQLQJIXOWRXVHUV µDFWRUV¶ 

,QWURGXFWLRQWR80/ 
8VH&DVH0RGHOLQJ &RUH(OHPHQWV

Construct Description Syntax


use case A sequence of actions, including
variants, that a system (or other
U seC aseN am e
entity) can perform, interacting with
actors of the system.
actor A coherent set of roles that users
of use cases play when interacting
with these use cases.
A ctorN am e

system Represents the boundary between


boundary the physical system and the actors
who interact with the physical
system.

,QWURGXFWLRQWR80/ 
8VH&DVH0RGHOLQJ &RUH5HODWLRQVKLSV

Construct Description Syntax


association The participation of an actor in a use
case. i.e., instance of an actor and
instances of a use case communicate
with each other.
generalization A taxonomic relationship between a
more general use case and a more
specific use case.
extend A relationship from an extension use
case to a base use case, specifying
how the behavior for the extension <<extend>>
use case can be inserted into the
behavior defined for the base use
case.

,QWURGXFWLRQWR80/ 
8VH&DVH0RGHOLQJ &RUH5HODWLRQVKLSV FRQW¶G

Construct Description Syntax


include An relationship from a base use case
to an inclusion use case, specifying <<include>>
how the behavior for the inclusion use
case is inserted into the behavior
defined for the base use case.

,QWURGXFWLRQWR80/ 
8VH&DVH'LDJUDP7RXU

T 6KRZVXVHFDVHVDFWRUDQGWKHLU
UHODWLRQVKLSV
T 8VHFDVHLQWHUQDOVFDQEHVSHFLILHGE\
WH[WDQGRULQWHUDFWLRQGLDJUDPV VHH
/HFWXUH
T .LQGV
T XVHFDVHGLDJUDP
T XVHFDVHGHVFULSWLRQ

,QWURGXFWLRQWR80/ 
8VH&DVH'LDJUDP
Telep hon e Catalog

Che c k
s tatus

Place S ales pe rs o n
orde r

Fill o rde rs

Cus tomer S hip pin g Cle rk

Es tablis h
c re dit

S upe rvis o r

Fig. 3-53, UML Notation Guide


,QWURGXFWLRQWR80/ 
8VH&DVH5HODWLRQVKLSV

Supply Order
Customer Data Product Arrange
Payment

«include» «include» «include»

Place Order

Extension points «extend»


1 * additional requests : the salesperson asks for
after creation of the order the catalog

Request
Catalog

Fig. 3-54, UML Notation Guide


,QWURGXFWLRQWR80/ 
$FWRU5HODWLRQVKLSV

1 * Place
Order
Salesperson

Establish
1 *
Credit
Supervisor

Fig. 3-55, UML Notation Guide


,QWURGXFWLRQWR80/ 
8VH&DVH'HVFULSWLRQ&KDQJH)OLJKW

■Actors: traveler, client account db, airline reservation system


■Preconditions:
• Traveler has logged on to the system and selected ‘change flight
itinerary’ option
■Basic course
• System retrieves traveler’s account and flight itinerary from client
account database
• System asks traveler to select itinerary segment she wants to
change; traveler selects itinerary segment.
• System asks traveler for new departure and destination
information; traveler provides information.
• If flights are available then

• …
• System displays transaction summary.

■Alternative courses
• If no flights are available then …

,QWURGXFWLRQWR80/ 
:KHQWRPRGHOXVHFDVHV
T 0RGHOXVHUUHTXLUHPHQWVZLWKXVHFDVHV
T 0RGHOWHVWVFHQDULRVZLWKXVHFDVHV
T ,I\RXDUHXVLQJDXVHFDVHGULYHQ
PHWKRG
T VWDUWZLWKXVHFDVHVDQGGHULYH\RXU
VWUXFWXUDODQGEHKDYLRUDOPRGHOVIURPLW
T ,I\RXDUHQRWXVLQJDXVHFDVHGULYHQ
PHWKRG
T PDNHVXUHWKDW\RXUXVHFDVHVDUHFRQVLVWHQW
ZLWK\RXUVWUXFWXUDODQGEHKDYLRUDOPRGHOV

,QWURGXFWLRQWR80/ 
8VH&DVH0RGHOLQJ7LSV
T 0DNHVXUHWKDWHDFKXVHFDVHGHVFULEHVDVLJQLILFDQWFKXQNRI
V\VWHPXVDJHWKDWLVXQGHUVWDQGDEOHE\ERWKGRPDLQH[SHUWV
DQGSURJUDPPHUV
T :KHQGHILQLQJXVHFDVHVLQWH[WXVHQRXQVDQGYHUEV
DFFXUDWHO\DQGFRQVLVWHQWO\WRKHOSGHULYHREMHFWVDQGPHVVDJHV
IRULQWHUDFWLRQGLDJUDPV VHH/HFWXUH
T )DFWRURXWFRPPRQXVDJHVWKDWDUHUHTXLUHGE\PXOWLSOHXVH
FDVHV
„ ,IWKHXVDJHLVUHTXLUHGXVHLQFOXGH!!
„ ,IWKHEDVHXVHFDVHLVFRPSOHWHDQGWKHXVDJHPD\EHRSWLRQDO
FRQVLGHUXVHH[WHQG!!
T $XVHFDVHGLDJUDPVKRXOG
„ FRQWDLQRQO\XVHFDVHVDWWKHVDPHOHYHORIDEVWUDFWLRQ
„ LQFOXGHRQO\DFWRUVZKRDUHUHTXLUHG
T /DUJHQXPEHUVRIXVHFDVHVVKRXOGEHRUJDQL]HGLQWRSDFNDJHV
VHH/HFWXUH

,QWURGXFWLRQWR80/ 
([DPSOH2QOLQH+56\VWHP
O nline HR System

Locate
E m p loyees

U pdate
E m p loyee M anager
P ro file

{if c u rre n tM o n th = O c t.}


U pdate B enefits

E m p loyee H ealthcare P lan S ystem

Access Travel
{re a d O n ly }
S ystem

Access Pay Insurance P lan S ystem


R ecords

,QWURGXFWLRQWR80/ 
2QOLQH+56\VWHP8VH&DVH5HODWLRQVKLSV

Update M edical Update Dental


Update
Plan Plan
Insurance Plan

<<include>> <<include>> <<include>>

Update Benefits
______________
Extension points extension point
benefit options: nam e and
after required enrollm ents location
Em ployee

<<extend>> <<extend>>
em ployee requests em ployee requests
reim bursem ent option stock purchase option

Elect
Elect S tock
Reim bursem ent extension
Purchase
for Healthcare condition

,QWURGXFWLRQWR80/ 
2QOLQH+56\VWHP8SGDWH%HQHILWV8VH&DVH

■Actors : employee, employee account db, healthcare plan system,


insurance plan system
■Preconditions:
•Employee has logged on to the system and selected ‘update benefits’
option
■Basic course
• System retrieves employee account from employee account db
•System asks employee to select medical plan type; include Update
Medical Plan.
• System asks employee to select dental plan type; include Update
Dental Plan.
• …

■Alternative courses
• If health plan is not available in the employee’s area the employee is
informed and asked to select another plan...

,QWURGXFWLRQWR80/ 
:UDS8S
T ,GHDVWRWDNHDZD\
T 3UHYLHZRIQH[WWXWRULDO
T 5HIHUHQFHV
T )XUWKHULQIR

,QWURGXFWLRQWR80/ 
,GHDVWR7DNH$ZD\
T 80/LVHIIHFWLYHIRUPRGHOLQJODUJHFRPSOH[VRIWZDUH
V\VWHPV
T ,WLVVLPSOHWROHDUQIRUPRVWGHYHORSHUVEXWSURYLGHV
DGYDQFHGIHDWXUHVIRUH[SHUWDQDO\VWVGHVLJQHUVDQG
DUFKLWHFWV
T ,WFDQVSHFLI\V\VWHPVLQDQLPSOHPHQWDWLRQ
LQGHSHQGHQWPDQQHU
T RIWKHFRQVWUXFWVDUHXVHGRIWKH
WLPH
T 6WUXFWXUDOPRGHOLQJVSHFLILHVDVNHOHWRQWKDWFDQEH
UHILQHGDQGH[WHQGHGZLWKDGGLWLRQDOVWUXFWXUHDQG
EHKDYLRU
T 8VHFDVHPRGHOLQJVSHFLILHVWKHIXQFWLRQDO
UHTXLUHPHQWVRIV\VWHPLQDQREMHFWRULHQWHGPDQQHU

,QWURGXFWLRQWR80/ 
3UHYLHZ 1H[W7XWRULDO
T %HKDYLRUDO0RGHOLQJZLWK80/
T %HKDYLRUDOPRGHOLQJRYHUYLHZ
T ,QWHUDFWLRQV
T &ROODERUDWLRQV
T 6WDWHFKDUWV
T $FWLYLW\*UDSKV

,QWURGXFWLRQWR80/ 
5HIHUHQFHV
„ >80/@ 20*80/6SHFLILFDWLRQY20*GRFDG
„ >80/@ 20*80/6SHFLILFDWLRQY80/5HYLVLRQ7DVN)RUFH
UHFRPPHQGHGILQDOGUDIW20*GRFDG
„ >.REU\QD@&.REU\Q³80/5RDGPDS)DVW7UDFNRU'HWRXUV" ´
6RIWZDUH'HYHORSPHQW$SULO7RDSSHDU
„ >.REU\QE@&.REU\Q³0RGHOLQJ'LVWULEXWHG$SSOLFDWLRQVZLWK 80/´
FKDSWHULQ>6LHJHO@4XLFN&25%$:LOH\7REHSXEOLVKHG
„ >.REU\Q@³0RGHOLQJ&25%$$SSOLFDWLRQVZLWK80/´FKDSWHUL Q
>6LHJHO@&25%$)XQGDPHQWDOVDQG3URJUDPPLQJ QG HG :LOH\

„ >.REU\Q@80/$6WDQGDUGL]DWLRQ2G\VVH\&RPPXQLFDWLRQVRI
WKH$&02FW
„ >(-%@ (QWHUSULVH -DYD%HDQV 6SHFLILFDWLRQ Y6XQ0LFURV\VWHPV
0DUFK

,QWURGXFWLRQWR80/ 
)XUWKHU,QIR
T :HE
„ 80/57)ZZZFHOLJHQWFRPRPJXPOUWI
„ 20*80/7XWRULDOV
ZZZFHOLJHQWFRPRPJXPOUWIWXWRULDOVKWP
„ 80/:RUNLQJ*URXS
ZZZFHOLJHQWFRPRPJDGSWIZJVXPOZJKWP
„ 20*80/5HVRXUFHVZZZRPJRUJXPO
T (PDLO
„ XPOUWI#RPJRUJ
„ FNREU\Q#DFPRUJ
T &RQIHUHQFHV ZRUNVKRSV
„ 80/:RUOG1HZ<RUN-XQH
„ 80/7RURQWR&DQDGD2FW
„ 20*80/:RUNVKRS6DQ)UDQFLVFR'HF

,QWURGXFWLRQWR80/ 

You might also like