2EMH.

W0RGHOLQJZLWK20*80/7XWRULDO6HULHV

,QWURGX.WLRQWR80/ 6WUX.WXUDODQG8VH&DVH0RGHOLQJ
&ULV.REU\Q
&R&KDLU80/5HYLVLRQ7DVN)RU.H

© 1999-2001 OMG and Contributors: Crossmeta, EDS, IBM, Enea Data, Hewlett-Packard, IntelliCorp, Kabira Technologies, Klasse Objecten, Rational Software, Telelogic, Unisys

2YHUYLHZ
T T T T

7XWRULDOVHULHV 4XL.NWRXU 6WUX.WXUDOPRGHOLQJ 8VH.DVHPRGHOLQJ

,QWURGX.WLRQWR80/ 

7XWRULDO6HULHV
T

T

T

/H.WXUH,QWURGX.WLRQWR80/ 6WUX.WXUDODQG8VH&DVH0RGHOLQJ /H.WXUH%HKDYLRUDO0RGHOLQJZLWK 80/ /H.WXUH$GYDQ.HG0RGHOLQJZLWK80/
>1RWH7KLVYHUVLRQRIWKHWXWRULDOVHULHVLVEDVHGRQ 20*80/ 6SH.LIL.DWLRQY80/5HYLVLRQ7DVN)RU.HUH.RPPHQGHGILQDOGUDIW 20*GR.DG@

,QWURGX.WLRQWR80/ 

7XWRULDO*RDOV
T

:KDW\RXZLOOOHDUQ
T T

T T

T

T

:KDW\RXZLOOQRWOHDUQ
T T T

ZKDWWKH80/LVDQGZKDWLVLWQRW 80/¶VEDVL..RQVWUX.WVUXOHVDQGGLDJUDP WH.KQLTXHV KRZWKH80/.DQPRGHOODUJH.RPSOH[V\VWHPV KRZWKH80/.DQVSH.LI\V\VWHPVLQDQ LPSOHPHQWDWLRQLQGHSHQGHQWPDQQHU KRZ80/;0,DQG02).DQID.LOLWDWHPHWDGDWD LQWHJUDWLRQ 2EMH.W0RGHOLQJ REMH.WPHWKRGVRUSUR.HVVHV 0HWDPRGHOLQJ

,QWURGX.WLRQWR80/ 

4XL.N7RXU
T T T T T T

:K\GRZHPRGHO" :KDWLVWKH80/" )RXQGDWLRQHOHPHQWV 8QLI\LQJ.RQ.HSWV /DQJXDJH DU.KLWH.WXUH 5HODWLRQWRRWKHU20* WH.KQRORJLHV

,QWURGX.WLRQWR80/ 

:K\GRZHPRGHO"
T T T T

T T

3URYLGHVWUX.WXUHIRUSUREOHPVROYLQJ ([SHULPHQWWRH[SORUHPXOWLSOHVROXWLRQV )XUQLVKDEVWUD.WLRQVWRPDQDJH.RPSOH[LW\ 5HGX.HWLPHWRPDUNHWIRUEXVLQHVV SUREOHPVROXWLRQV 'H.UHDVHGHYHORSPHQW.RVWV 0DQDJHWKHULVNRIPLVWDNHV

,QWURGX.WLRQWR80/ 

7KH&KDOOHQJH

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

,QWURGX.WLRQWR80/ 

7KH9LVLRQ

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

:K\GRZHPRGHOJUDSKL.DOO\"
T

*UDSKL.VUHYHDOGDWD
T

(GZDUG7XIWH 7KH9LVXDO'LVSOD\RI4XDQWLWDWLYH,QIRUPDWLRQ 

T 

ELWPDS PHJDZRUG
T

$QRQ\PRXVYLVXDOPRGHOHU

,QWURGX.WLRQWR80/ 

4XL.N7RXU
T

7KH80/LVDJUDSKL.DOODQJXDJHIRU
VSH.LI\LQJ T YLVXDOL]LQJ T .RQVWUX.WLQJ T GR.XPHQWLQJ
T

T

T

T

T

WKHDUWLID.WVRIVRIWZDUHV\VWHPV $GGHGWRWKHOLVWRI20*DGRSWHGWH.KQRORJLHVLQ 1RYHPEHUDV80/ 0RVWUH.HQWPLQRUUHYLVLRQLV80/DGRSWHGLQ 1RYHPEHU 1H[WPLQRUUHYLVLRQZLOOEH80/SODQQHGWREH DGRSWHGLQ4 1H[WPDMRUUHYLVLRQZLOOEH80/SODQQHGWREH .RPSOHWHGLQ
,QWURGX.WLRQWR80/ 

80/*RDOV
T T T T T

'HILQHDQHDV\WROHDUQEXWVHPDQWL.DOO\UL.K YLVXDOPRGHOLQJODQJXDJH 8QLI\WKH%RR.K207DQG2EMH.WRU\ PRGHOLQJ ODQJXDJHV ,Q.OXGHLGHDVIURPRWKHUPRGHOLQJODQJXDJHV ,Q.RUSRUDWHLQGXVWU\EHVWSUD.WL.HV $GGUHVV.RQWHPSRUDU\VRIWZDUHGHYHORSPHQW LVVXHV
T

T T

3URYLGHIOH[LELOLW\IRUDSSO\LQJGLIIHUHQW SUR.HVVHV (QDEOHPRGHOLQWHU.KDQJHDQGGHILQH UHSRVLWRU\LQWHUID.HV
,QWURGX.WLRQWR80/

V.DOHGLVWULEXWLRQ.RQ.XUUHQ.\H[H.XWDELOLW\HW. 

20*80/(YROXWLRQ
com position (whole-part) relationship <<docum ent>> UM L 2.0

2002 (planned)

<<docum ent>> UM L 2.0 Superstructure

2001 Q 4 (planned)

<<docum ent>> UM L 2.0 Infrastructure

<<docum ent>> UM L 2.0 O CL

Q 1 2001

<<docum ent>> UM L 1.4

dependency relationship

1999

<<docum ent>> UM L 1.3

1998

E ditorial revision without significant technical changes.

<<docum ent>> UM L 1.2

From [Kobryn 01a].
1997 (adopted by O M G )

,QWURGX.WLRQWR80/

<<docum ent>> UM L 1.1 

20*80/&RQWULEXWRUV
Aonix Colorado State University Computer Associates Concept Five Data Access EDS Enea Data Hewlett-Packard IBM I-Logix InLine Software Intellicorp Kabira Technologies Klasse Objecten Lockheed Martin Microsoft ObjecTime Oracle Ptech OAO Technology Solutions Rational Software Reich SAP Softeam Sterling Software Sun Taskon Telelogic Unisys …

,QWURGX.WLRQWR80/ 

20*80/6SH.LIL.DWLRQ
T T T T

T

80/6XPPDU\ 80/6HPDQWL.V 80/1RWDWLRQ*XLGH 80/([DPSOH3URILOHV T 6RIWZDUH'HYHORSPHQW3UR.HVVHV T %XVLQHVV0RGHOLQJ 0RGHO,QWHU.KDQJH
T T

0RGHO,QWHU.KDQJH8VLQJ;0, 0RGHO,QWHU.KDQJH8VLQJ&25%$,'/

T

2EMH.W&RQVWUDLQW/DQJXDJH
,QWURGX.WLRQWR80/ 

7XWRULDO)R.XVWKH/DQJXDJH
T

ODQJXDJH V\QWD[VHPDQWL.V
T

T

V\QWD[ UXOHVE\ZKL.KODQJXDJHHOHPHQWV HJZRUGV DUHDVVHPEOHGLQWR H[SUHVVLRQV HJSKUDVHV.ODXVHV VHPDQWL.V UXOHVE\ZKL.KV\QWD.WL. H[SUHVVLRQVDUHDVVLJQHGPHDQLQJV

T

T

80/1RWDWLRQ*XLGH ± GHILQHV80/¶V JUDSKL.V\QWD[ 80/6HPDQWL.V ± GHILQHV80/¶V VHPDQWL.V
,QWURGX.WLRQWR80/ 

)RXQGDWLRQ&RQ.HSWV
%XLOGLQJEOR.NV T :HOOIRUPHGQHVVUXOHV
T

,QWURGX.WLRQWR80/ 

%XLOGLQJ%OR.NV
T

7KHEDVL.EXLOGLQJEOR.NVRI80/DUH
T T

T

PRGHOHOHPHQWV .ODVVHVLQWHUID.HV.RPSRQHQWV XVH.DVHVHW. UHODWLRQVKLSV DVVR.LDWLRQVJHQHUDOL]DWLRQ GHSHQGHQ.LHVHW. GLDJUDPV .ODVVGLDJUDPVXVH.DVHGLDJUDPV LQWHUD.WLRQGLDJUDPVHW.

T

6LPSOHEXLOGLQJEOR.NVDUHXVHGWR.UHDWHODUJH .RPSOH[VWUX.WXUHV
T T

.IHOHPHQWVERQGVDQGPROH.XOHVLQ.KHPLVWU\ .I.RPSRQHQWV.RQQH.WRUVDQG.LU.XLWERDUGVLQ KDUGZDUH

,QWURGX.WLRQWR80/ 

'LDJUDP&ODVVLILHU9LHZ
Elem ent

C Carbon

<<covalent>> Hydrogen C H

<<covalent>>

C

,QWURGX.WLRQWR80/ 

'LDJUDP,QVWDQ.H9LHZ
:H ydrogen :H ydrogen

:H ydrogen

:C arbon

:C arbon

:H ydrogen

:H ydrogen

:H ydrogen

,QWURGX.WLRQWR80/ 

:HOO)RUPHGQHVV5XOHV
T

T

:HOOIRUPHGLQGL.DWHVWKDWDPRGHORUPRGHO IUDJPHQWDGKHUHVWRDOOVHPDQWL.DQG V\QWD.WL.UXOHVWKDWDSSO\WRLW 80/VSH.LILHVUXOHVIRU
T T T T T

QDPLQJ V.RSLQJ YLVLELOLW\ LQWHJULW\ H[H.XWLRQ OLPLWHG

T

+RZHYHUGXULQJLWHUDWLYHLQ.UHPHQWDO GHYHORSPHQWLWLVH[SH.WHGWKDWPRGHOVZLOO EHLQ.RPSOHWHDQGLQ.RQVLVWHQW
,QWURGX.WLRQWR80/ 

:HOO)RUPHGQHVV 5XOHV .RQW¶G
T

([DPSOHRIVHPDQWL.UXOH&ODVV>@
T

T

English: If a Class is concrete, all the Operations of the Class should have a realizing Method in the full descriptor. OCL: not self.isAbstract implies self.allOperations-> forAll (op | self.allMethods-> exists (m | m.specification-> includes(op)))

,QWURGX.WLRQWR80/ 

:HOO)RUPHGQHVV5XOHV .RQW¶G
T

([DPSOHRIV\QWD.WL.UXOHV&ODVV
T

Basic Notation: A class is drawn as a solid-outline rectangle with three compartments separated by horizontal lines. Presentation Option: Either or both of the attribute and operation compartments may be suppressed.

T

T

([DPSOHRIV\QWD.WL.JXLGHOLQH&ODVV
T

Style Guideline: Begin class names with an uppercase letter.

,QWURGX.WLRQWR80/ 

8QLI\LQJ&RQ.HSWV
T

.ODVVLILHULQVWDQ.HGL.KRWRP\
T

HJDQREMH.WLVDQLQVWDQ.HRID.ODVV25 D.ODVVLVWKH.ODVVLILHURIDQREMH.W

T

VSH.LIL.DWLRQUHDOL]DWLRQGL.KRWRP\
T

HJDQLQWHUID.HLVDVSH.LIL.DWLRQRID .ODVV25 D.ODVVLVDUHDOL]DWLRQRIDQLQWHUID.H

T

DQDO\VLVWLPHYVGHVLJQWLPHYVUXQ WLPH
T T

PRGHOLQJSKDVHV ³SUR.HVV.UHHS´ XVDJHJXLGHOLQHVVXJJHVWHGQRWHQIRU.HG
,QWURGX.WLRQWR80/ 

/DQJXDJH$U.KLWH.WXUH
0HWDPRGHODU.KLWH.WXUH T 3D.NDJHVWUX.WXUH
T

,QWURGX.WLRQWR80/ 

0HWDPRGHO$U.KLWH.WXUH
< < 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» Attribute «m etaclas s» Class «m etaclas s» Operation

«instanceO f» «instanceO f»

«instanceO f» <<use>>

< < m e ta m o d e l> > U M L M e ta m o d e l

«m etaclas s» Attribute

«m etaclas s» Class

«m etaclas s» Operation

«instanceO f»

<<use>>

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

T he operation issue of the P as sengerTick et class is an ins tance of the m etaclass O peration.

«instanceO f»

From [Kobryn 01b].

45723990550: PassengerTicket -issuedB y : A irline = A cm eA irlines -issuingA gent : T ravelA gent = T errificT ravel -fare : C urrenc y = 1050.00 -tax : C urrenc y = 57.56

R epresents the U ser O bject layer of the 4-layer m etam odel architecture pattern.

,QWURGX.WLRQWR80/ 

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].

,QWURGX.WLRQWR80/ 

5HODWLRQVKLSVWR2WKHU0RGHOLQJ7H.KQRORJLHV

M etadata layer

M eta O bject Facility

XM I Facility

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

C ustom ization layer

UM L Profile for CO RBA

UM L Profile for Telecom

P latform technology profiles

D om ain technology profiles

From [Kobryn 01b].

,QWURGX.WLRQWR80/ 

6WUX.WXUDO0RGHOLQJ
T T T T T T

:KDWLVVWUX.WXUDOPRGHOLQJ" &RUH.RQ.HSWV 'LDJUDPWRXU :KHQWRPRGHOVWUX.WXUH 0RGHOLQJWLSV ([DPSOH,QWHUID.HEDVHGGHVLJQ

,QWURGX.WLRQWR80/ 

:KDWLVVWUX.WXUDOPRGHOLQJ"
T

6WUX.WXUDOPRGHODYLHZRIDQV\VWHP WKDWHPSKDVL]HVWKHVWUX.WXUHRIWKH REMH.WVLQ.OXGLQJWKHLU.ODVVLILHUV UHODWLRQVKLSVDWWULEXWHVDQGRSHUDWLRQV

,QWURGX.WLRQWR80/ 

6WUX.WXUDO0RGHOLQJ &RUH(OHPHQWV
Construct Description
a description of a set of objects that share the same attributes, operations, methods, relationships and semantics. a named set of operations that interface 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. a run-time physical object that node represents a computational resource. class
,QWURGX.WLRQWR80/

Syntax

« in te rfa c e » 

6WUX.WXUDO0RGHOLQJ &RUH(OHPHQWV
Construct
constraint¹

.RQW¶G

Description
a semantic condition or restriction.

Syntax

{co n stra in t}

¹ An extension mechanism useful for specifying structural elements.

,QWURGX.WLRQWR80/ 

6WUX.WXUDO0RGHOLQJ &RUH5HODWLRQVKLSV
Construct
association

Description

Syntax

a relationship between two or more classifiers that involves connections among their instances. A special form of association that aggregation 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. a relationship between two modeling dependency elements, in which a change to one modeling element (the independent element) will affect the other modeling element (the dependent element).

,QWURGX.WLRQWR80/ 

6WUX.WXUDO0RGHOLQJ &RUH5HODWLRQVKLSV
Construct
realization

.RQW¶G

Description
a relationship between a specification and its implementation.

Syntax

,QWURGX.WLRQWR80/ 

6WUX.WXUDO'LDJUDP7RXU
T

6KRZWKHVWDWL.VWUX.WXUHRIWKHPRGHO
T T T

T T

'RQRWVKRZ .LQGV
T T

WKHHQWLWLHVWKDWH[LVW HJ.ODVVHVLQWHUID.HV .RPSRQHQWVQRGHV LQWHUQDOVWUX.WXUH UHODWLRQVKLSWRRWKHUHQWLWLHV WHPSRUDOLQIRUPDWLRQ VWDWL.VWUX.WXUDOGLDJUDPV LPSOHPHQWDWLRQGLDJUDPV
T T T T

.ODVVGLDJUDP REMH.WGLDJUDP

T

.RPSRQHQWGLDJUDP GHSOR\PHQWGLDJUDP

,QWURGX.WLRQWR80/ 

6WDWL.6WUX.WXUDO'LDJUDPV
6KRZVDJUDSKRI.ODVVLILHU HOHPHQWV.RQQH.WHGE\VWDWL. UHODWLRQVKLSV T NLQGV
T

.ODVVGLDJUDP.ODVVLILHUYLHZ T REMH.WGLDJUDPLQVWDQ.HYLHZ
T

,QWURGX.WLRQWR80/ 

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

Window

Window size: Area visibility: Boolean display () hide ()

Fig. 3-20, UML Notation Guide
,QWURGX.WLRQWR80/ 

&ODVVHV.RPSDUWPHQWVZLWKQDPHV
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
,QWURGX.WLRQWR80/ 

&ODVVHVPHWKRGERG\
PoliceStation alert (Alarm) 1 station * BurglarAlarm isTripped: Boolean = false report () { if isTripped then station.alert(self)}
Fig. 3-24, UML Notation Guide

,QWURGX.WLRQWR80/ 

7\SHVDQG,PSOHPHQWDWLRQ&ODVVHV
«type» Object * elements «implementationClass» HashTable 1 body

«type» Set addElement(Object) removeElement(Object) testElement(Object):Boolean

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

Fig. 3-27, UML Notation Guide
,QWURGX.WLRQWR80/ 

,QWHUID.HV6KRUWKDQG1RWDWLRQ

S to reH o m e P O S te rm in alH om e POSterm inal P O S te rm in al S to re < <u se > >

Store -store Id : In teg e r -P O S list: L ist + cre ate () + lo g in (U se rN a m e , P a ssw d ) + 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 ) + ge t(Ite m )

Fig. 3-29, UML Notation Guide
,QWURGX.WLRQWR80/ 

,QWHUID.HV/RQJKDQG1RWDWLRQ

S toreH om e P O S term inalH om e POSterm inal << use>> P O S term inal <<interface>> Store +getP O S totals(P O S id) +updateS toreT otals(Id,S ales) +get(Item )

Store -storeId: Integer -P O S list: List +create() +login(U serN am e, P assw d) +find(S toreId) +getP O S totals(P O S id) +updateS toreT otals(Id,S ales) +get(Item )

Fig. 3-29, UML Notation Guide
,QWURGX.WLRQWR80/ 

$VVR.LDWLRQV
Job 1..∗ ∗ Company employer employee Person

Job salary worker ∗

boss 0..1

Manages

Person Account {X or} Corporation

Fig. 3-40, UML Notation Guide
,QWURGX.WLRQWR80/ 

$VVR.LDWLRQ(QGV
1 Polygon 1 1 -bundle GraphicsBundle color texture density +vertex 3..∗ Contains {ordered} Point

Fig. 3-41, UML Notation Guide
,QWURGX.WLRQWR80/ 

7HUQDU\$VVR.LDWLRQV
Year season ∗ ∗ team ∗ goalkeeper

Team

Player

Record goals for goals against wins losses ties

Fig. 3-44, UML Notation Guide
,QWURGX.WLRQWR80/ 

&RPSRVLWLRQ
Window scrollbar [2]: Slider title: Header body: Panel

Window 1 scrollbar Slider 2 1 1 title

1 Header

body

1 Panel

Fig. 3-45, UML Notation Guide

,QWURGX.WLRQWR80/ 

&RPSRVLWLRQ .RQW¶G
Window

scrollbar:Slider

2

1 title:Header 1 body:Panel

Fig. 3-45, UML Notation Guide
,QWURGX.WLRQWR80/ 

*HQHUDOL]DWLRQ
Shape Separate Target Style

Polygon

Ellipse

Spline

. ..

Shape

Shared Target Style

Polygon

Ellipse

Spline

...

Fig. 3-47, UML Notation Guide
,QWURGX.WLRQWR80/ 

*HQHUDOL]DWLRQ
Vehicle power {overlapping} WindPowered Vehicle power venue Land Vehicle venue {overlapping} Water Vehicle

MotorPowered Vehicle

Truck

Sailboat

Fig. 3-48, UML Notation Guide
,QWURGX.WLRQWR80/ 

'HSHQGHQ.LHV
ClassA «friend» ClassB «friend» «instantiate» ClassD

operationZ()

«call»

ClassC «refine»

ClassC combines two logical classes

ClassD

ClassE

Fig. 3-50, UML Notation Guide
,QWURGX.WLRQWR80/ 

'HSHQGHQ.LHV
Controller «access» «access» «access» Diagram Elements «access» Domain Elements Graphics Core

«access»

Fig. 3-51, UML Notation Guide
,QWURGX.WLRQWR80/ 

'HULYHG$WWULEXWHVDQG$VVR.LDWLRQV
Person {age = currentDate - birthdate} birthdate /age

1 Company employer 1 employer

∗ Department 1 ∗ ∗ department WorksForDepartment

Person

/WorksForCompany { Person.employer=Person.department.employer }
Fig. 3-52, UML Notation Guide
,QWURGX.WLRQWR80/ 

2EMH.WV
tria n g le : P olyg on
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

tria ng le

: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
,QWURGX.WLRQWR80/ 

&RPSRVLWHREMH.WV
awindow : Window horizontalBar:ScrollBar verticalBar:ScrollBar moves surface:Pane moves

title:TitleBar

Fig. 3-39, UML Notation Guide
,QWURGX.WLRQWR80/ 

/LQNV
officer Jill:Person treasurer downhillSkiClub:Club president member member Joe:Person

member Chris:Person officer

Fig. 3-46, UML Notation Guide
,QWURGX.WLRQWR80/ 

&RQVWUDLQWVDQG&RPPHQWV

Me m b e r-of ∗ {s ub s e t}
Co m m itte e

P e rs o n

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 0 .. 1
Co m pa ny

0 .. 1 b os s

P e rs o n

{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
,QWURGX.WLRQWR80/ 

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

<<interface>> E ntityB ean

O rderB ean {abstract} + getO rderS tatus + setO rderS tatus + getLineItem s + setLineItem s + getC reditA pproved + setC reditA pproved *

P M O rder

order

...
1 order item P M LineItem * * 1 item com m odity

buyer C ustom er

1

*

LineItem {abstract}

P roduct

Adapted from Fig. 23 [EJB 2.0].

,QWURGX.WLRQWR80/ 

,PSOHPHQWDWLRQ'LDJUDPV
6KRZDVSH.WVRIPRGHO LPSOHPHQWDWLRQLQ.OXGLQJVRXU.H .RGHVWUX.WXUHDQGUXQWLPH LPSOHPHQWDWLRQVWUX.WXUH T .LQGV
T

.RPSRQHQWGLDJUDP T GHSOR\PHQWGLDJUDP
T

,QWURGX.WLRQWR80/ 

&RPSRQHQW'LDJUDP
T

6KRZVWKHRUJDQL]DWLRQVDQG GHSHQGHQ.LHVDPRQJVRIWZDUH .RPSRQHQWV
&RPSRQHQWVPD\EH
T

T

T

specified by classifiers (e.g., implementation classes) implemented by artifacts (e.g., binary, executable, or script files)

,QWURGX.WLRQWR80/ 

&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

O rd e rH o m e

O rd e rH o m e <<focus>> :Order O rd e r

<<auxiliary>> :OrderPK

O rd e rInfo <<auxiliary>> :OrderInfo

O rd e r

Fig. 3-99, UML Notation Guide
,QWURGX.WLRQWR80/ 

&RPSRQHQW'LDJUDP
S hoppingS essionH om e <<EJBSession>> ShoppingSession S hoppingS ession

<<EJBEntity>> Catalog C atalogP K <<auxiliary>> CatalogPK <<focus>> Catalog C atalog

C atalogH om e

C atalogH om e

C atalogInfo <<auxiliary>> CatalogInfo

C atalog <<file>> CatalogJAR

S hoppingC artH om e S hoppingC art <<EJBEntity>> ShoppingCart

Fig. 3-95, UML Notation Guide
,QWURGX.WLRQWR80/ 

&RPSRQHQW'LDJUDPZLWK5HODWLRQVKLSV
<<auxiliary>> C atalogInfo <<focus>> C atalog <<auxiliary>> C atalogPK

<<reside>>

<<reside>>

<<reside>>

<<ejbEntity>> C atalog

<<im plem ent>>

<<file>> C atalogJAR

Fig. 3-96, UML Notation Guide
,QWURGX.WLRQWR80/ 

'HSOR\PHQW'LDJUDP
T

T

6KRZVWKH.RQILJXUDWLRQRIUXQWLPH SUR.HVVLQJHOHPHQWVDQGWKHVRIWZDUH .RPSRQHQWVSUR.HVVHVDQGREMH.WV WKDWOLYHRQWKHP 'HSOR\PHQWGLDJUDPVPD\EHXVHGWR VKRZZKL.K.RPSRQHQWVPD\UXQRQ ZKL.KQRGHV

,QWURGX.WLRQWR80/ 

'HSOR\PHQW'LDJUDP 
:Client
<<brow ser>> :OpenSourceBrow ser

videoStoreServer:AppServer
<<Container>> VideoStoreApplication

<<Session>> ShoppingSession <<Focus>> ShoppingSession

<<Entity>> Catalog <<Focus>> Catalog

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

:DBServer
<<database>> :VideoStoreDB

Fig. 3-97, UML Notation Guide
,QWURGX.WLRQWR80/ 

'HSOR\PHQW'LDJUDP 
prim aryServer:AppServer <<database>> :AccountsDB :Q uoteService

prim aryBroker :BondBroker

<<becom e>>

backupServer:AppServer backupBroker :BondBroker

:Q uoteService

<<database>> :AccountsDB

Fig. 3-98, UML Notation Guide
,QWURGX.WLRQWR80/ 

:KHQWRPRGHOVWUX.WXUH
T

$GRSWDQRSSRUWXQLVWL.WRSGRZQERWWRPXSDSSURD.K WRPRGHOLQJVWUX.WXUH
T

6SH.LI\WKHWRSOHYHOVWUX.WXUHXVLQJ³DU.KLWH.WXUDOO\VLJQLIL.DQW´ .ODVVLILHUVDQGPRGHOPDQDJHPHQW.RQVWUX.WV SD.NDJHV PRGHOVVXEV\VWHPVVHH7XWRULDO T 6SH.LI\ORZHUOHYHOVWUX.WXUHDV\RXGLV.RYHUGHWDLOUH.ODVVLILHUV DQGUHODWLRQVKLSV

T

,I\RXXQGHUVWDQG\RXUGRPDLQZHOO\RX.DQIUHTXHQWO\ VWDUWZLWKVWUX.WXUDOPRGHOLQJRWKHUZLVH
,I\RXVWDUWZLWKXVH.DVHPRGHOLQJ DVZLWKDXVH.DVHGULYHQ PHWKRG PDNHVXUHWKDW\RXUVWUX.WXUDOPRGHOLV.RQVLVWHQW ZLWK\RXUXVH.DVHV T ,I\RXVWDUWZLWKUROHPRGHOLQJ DVZLWKD.ROODERUDWLRQGULYHQ PHWKRG PDNHVXUHWKDW\RXUVWUX.WXUDOPRGHOLV.RQVLVWHQW ZLWK\RXU.ROODERUDWLRQV
T

,QWURGX.WLRQWR80/ 

6WUX.WXUDO0RGHOLQJ7LSV
T

T

T

T

'HILQHD³VNHOHWRQ´ RU³ED.NERQH´ WKDW.DQEH H[WHQGHGDQGUHILQHGDV\RXOHDUQPRUHDERXW\RXU GRPDLQ )R.XVRQXVLQJEDVL..RQVWUX.WVZHOODGGDGYDQ.HG .RQVWUX.WVDQGRUQRWDWLRQRQO\DVUHTXLUHG 'HIHULPSOHPHQWDWLRQ.RQ.HUQVXQWLOODWHLQWKH PRGHOLQJSUR.HVV 6WUX.WXUDOGLDJUDPVVKRXOG
HPSKDVL]HDSDUWL.XODUDVSH.WRIWKHVWUX.WXUDOPRGHO T .RQWDLQ.ODVVLILHUVDWWKHVDPHOHYHORIDEVWUD.WLRQ
T

T

/DUJHQXPEHUVRI.ODVVLILHUVVKRXOGEHRUJDQL]HGLQWR SD.NDJHV VHH/H.WXUH

,QWURGX.WLRQWR80/ 

,QWHUID.H%DVHG'HVLJQ
T

,QWHUID.HEDVHGGHVLJQLVDGHVLJQDSSURD.K WKDW
T T

HPSKDVL]HVWKHVSH.LIL.DWLRQRIV\VWHPLQWHUID.HV VHSDUDWHVWKHVSH.LIL.DWLRQRIVHUYL.HRSHUDWLRQV LQWHUID.HV IURPWKHLUUHDOL]DWLRQ LPSOHPHQWDWLRQ 

T

&25%$,'/LVW\SL.DOO\XVHGIRULQWHUID.H  EDVHGGHVLJQRI&25%$DSSOL.DWLRQV
T T T

GHILQHVLQWHUID.HVIRUEXVLQHVVDQGV\VWHPREMH.WV ZLWKRXW.RQVWUDLQLQJWKHLULPSOHPHQWDWLRQV GHILQHVWKHVWUX.WXUHRIDQGLVWULEXWHGDSSOL.DWLRQ GRHVQ¶WDOORZ\RXWRVSH.LI\REMH.WEHKDYLRURU .ODVVUHODWLRQVKLSVRWKHUWKDQJHQHUDOL]DWLRQ

,QWURGX.WLRQWR80/ 

,QWHUID.H%DVHG'HVLJQ .RQW¶G
T

7KHIROORZLQJH[DPSOHVKRZVKRZ80/.DQ PRGHOWKHLQWHUID.HVIRUD3RLQWRI6DOH DSSOL.DWLRQRULJLQDOO\VSH.LILHGLQ&25%$,'/ )URP>.REU\Q@

,QWURGX.WLRQWR80/ 

([DPSOH,QWHUID.HEDVHGGHVLJQ
module POS { typedef long POSId; typedef string Barcode; interface InputMedia { typedef string OperatorCmd; void void }; interface OutputMedia { boolean output_text( string_to_print ); }; ….. barcode_input(in Barcode item); keypad_input( in OperatorCmd cmd);

in string

Generic IDL Point of Sale (POS) example. [Siegel 00]
,QWURGX.WLRQWR80/ 

([DPSOH,QWHUID.HEDVHGGHVLJQ
….. interface { void void void void void quantity); void }; }; #endif /* _POS_IDL_ */ POSTerminal login(); print_POS_sales_summary(); print_store_sales_summary(); send_barcode( in Barcode item_quantity( in long end_of_sale();

item);

,QWURGX.WLRQWR80/ 

From [Kobryn 00].

P oint-of-S ale
«ID Linterfac e» IP O S term inal +s toreR e f : S tore +s toreA c ces sR ef : S to reA cce ss +o utp utM ed iaR ef : O u tputM e dia +taxR ef : Ta x +P O S id : Intege r +item B arcod e : Inte ge r +item Q u antity : Inte ge r +item Info : Item Info +item P ric e : C u rren cy +item TaxP rice : C u rre ncy +item E xtens ion : C urre nc y +s ale S ub total : C urren cy +taxa ble S ub tota l : C urren cy +s ale Total : C u rren cy +s ale Tax : C urrenc y +P O S list : L ist +initia liza tion () +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() +e ndS ale () InputM edia «ID Linterfac e» IinputM edia +P O S ref : P O S term ina l +initia liza tion () +b arc ode Inp ut() +k eyp ad Inpu t() «ID Linterfac e» IO utputM edia O utputM edia +o utp utT ext() «ID Linterfac e» IS tore +tota ls : Totals +P O S list : L ist +initia liza tion () +login () +g etP O S tota ls() +u pda teS toreTo tals()

PO Sterm inal

Store

«ID Linterfac e» ITax Tax +rate : flo at +initia liza tion () +c alc ulateTa x() +findT ax able P rice() StoreAccess

«ID Linterfac e» IS toreAccess +d epo tR ef : D e pot +taxR ef : Ta x +s toreM a rku p : floa t +s toreId : In tege r +initia liza tion () +findP ric e()

,QWURGX.WLRQWR80/ 

8VH&DVH0RGHOLQJ
T T T T T T

:KDWLVXVH.DVHPRGHOLQJ" &RUH.RQ.HSWV 'LDJUDPWRXU :KHQWRPRGHOXVH.DVHV 0RGHOLQJWLSV ([DPSOH2QOLQH+56\VWHP

,QWURGX.WLRQWR80/ 

:KDWLVXVH.DVHPRGHOLQJ"
T

XVH.DVHPRGHODYLHZRID V\VWHPWKDWHPSKDVL]HVWKH EHKDYLRUDVLWDSSHDUVWRRXWVLGH XVHUV$XVH.DVHPRGHOSDUWLWLRQV V\VWHPIXQ.WLRQDOLW\LQWR WUDQVD.WLRQV µXVH.DVHV¶ WKDWDUH PHDQLQJIXOWRXVHUV µD.WRUV¶ 

,QWURGX.WLRQWR80/ 

8VH&DVH0RGHOLQJ &RUH(OHPHQWV
Construct Description
use case A sequence of actions, including variants, that a system (or other entity) can perform, interacting with actors of the system. A coherent set of roles that users of use cases play when interacting with these use cases. Represents the boundary between the physical system and the actors who interact with the physical system.

Syntax

U seC aseN am e

actor

A ctorN am e

system boundary

,QWURGX.WLRQWR80/ 

8VH&DVH0RGHOLQJ &RUH5HODWLRQVKLSV
Construct
association

Description

Syntax

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. A relationship from an extension use extend case to a base use case, specifying how the behavior for the extension use case can be inserted into the behavior defined for the base use case.

<<extend>>

,QWURGX.WLRQWR80/ 

8VH&DVH0RGHOLQJ &RUH5HODWLRQVKLSV .RQW¶G

Construct
include

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

Syntax
<<include>>

,QWURGX.WLRQWR80/ 

8VH&DVH'LDJUDP7RXU
T

T

T

6KRZVXVH.DVHVD.WRUDQGWKHLU UHODWLRQVKLSV 8VH.DVHLQWHUQDOV.DQEHVSH.LILHGE\ WH[WDQGRULQWHUD.WLRQGLDJUDPV VHH /H.WXUH .LQGV
T T

XVH.DVHGLDJUDP XVH.DVHGHV.ULSWLRQ

,QWURGX.WLRQWR80/ 

8VH&DVH'LDJUDP
Telep hon e Catalog Che c k s tatus

Place orde r

S ales pe rs o n

Fill o rde rs Cus tomer Es tablis h c re dit S hip pin g Cle rk

S upe rvis o r

Fig. 3-53, UML Notation Guide
,QWURGX.WLRQWR80/ 

8VH&DVH5HODWLRQVKLSV
Supply Customer Data Order Product Arrange Payment

«include»

«include»

«include»

Place Order
1 * Extension points additional requests :
after creation of the order

«extend»
the salesperson asks for the catalog

Request Catalog

Fig. 3-54, UML Notation Guide
,QWURGX.WLRQWR80/ 

$.WRU5HODWLRQVKLSV
1 *

Place Order

Salesperson

1

*

Establish Credit

Supervisor

Fig. 3-55, UML Notation Guide
,QWURGX.WLRQWR80/ 

8VH&DVH'HV.ULSWLRQ&KDQJH)OLJKW
sActors:

traveler, client account db, airline reservation system

sPreconditions:

Traveler has logged on to the system and selected ‘change flight itinerary’ option

sBasic

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.
sAlternative

courses

If no flights are available then …
,QWURGX.WLRQWR80/ 

:KHQWRPRGHOXVH.DVHV
T T T

0RGHOXVHUUHTXLUHPHQWVZLWKXVH.DVHV 0RGHOWHVWV.HQDULRVZLWKXVH.DVHV ,I\RXDUHXVLQJDXVH.DVHGULYHQ PHWKRG
T

VWDUWZLWKXVH.DVHVDQGGHULYH\RXU VWUX.WXUDODQGEHKDYLRUDOPRGHOVIURPLW

T

,I\RXDUHQRWXVLQJDXVH.DVHGULYHQ PHWKRG
T

PDNHVXUHWKDW\RXUXVH.DVHVDUH.RQVLVWHQW ZLWK\RXUVWUX.WXUDODQGEHKDYLRUDOPRGHOV

,QWURGX.WLRQWR80/ 

8VH&DVH0RGHOLQJ7LSV
T

T

T

0DNHVXUHWKDWHD.KXVH.DVHGHV.ULEHVDVLJQLIL.DQW.KXQNRI V\VWHPXVDJHWKDWLVXQGHUVWDQGDEOHE\ERWKGRPDLQH[SHUWV DQGSURJUDPPHUV :KHQGHILQLQJXVH.DVHVLQWH[WXVHQRXQVDQGYHUEV D..XUDWHO\DQG.RQVLVWHQWO\WRKHOSGHULYHREMH.WVDQGPHVVDJHV IRULQWHUD.WLRQGLDJUDPV VHH/H.WXUH )D.WRURXW.RPPRQXVDJHVWKDWDUHUHTXLUHGE\PXOWLSOHXVH .DVHV
,IWKHXVDJHLVUHTXLUHGXVHLQ.OXGH!! T ,IWKHEDVHXVH.DVHLV.RPSOHWHDQGWKHXVDJHPD\EHRSWLRQDO .RQVLGHUXVHH[WHQG!!
T

T

$XVH.DVHGLDJUDPVKRXOG
.RQWDLQRQO\XVH.DVHVDWWKHVDPHOHYHORIDEVWUD.WLRQ T LQ.OXGHRQO\D.WRUVZKRDUHUHTXLUHG
T

T

/DUJHQXPEHUVRIXVH.DVHVVKRXOGEHRUJDQL]HGLQWRSD.NDJHV VHH/H.WXUH
,QWURGX.WLRQWR80/ 

([DPSOH2QOLQH+56\VWHP
O nline HR System
Locate E m p loyees

U pdate E m p loyee P ro file

M anager

{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

{re a d O n ly }

Access Travel S ystem

Access Pay R ecords

Insurance P lan S ystem

,QWURGX.WLRQWR80/ 

2QOLQH+56\VWHP8VH&DVH5HODWLRQVKLSV
Update M edical Plan Update Dental Plan Update Insurance Plan

<<include>>

<<include>>

<<include>>

Update Benefits
______________ Extension points benefit options: after required enrollm ents <<extend>> em ployee requests reim bursem ent option Elect Reim bursem ent for Healthcare extension point nam e and location <<extend>> em ployee requests stock purchase option Elect S tock Purchase

Em ployee

extension condition

,QWURGX.WLRQWR80/ 

2QOLQH+56\VWHP8SGDWH%HQHILWV8VH&DVH
sActors

insurance plan system

: employee, employee account db, healthcare plan system,

sPreconditions:

Employee has logged on to the system and selected ‘update benefits’ option

sBasic
• • •

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. • …
sAlternative

courses

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

,QWURGX.WLRQWR80/ 

:UDS8S
T T T T

,GHDVWRWDNHDZD\ 3UHYLHZRIQH[WWXWRULDO 5HIHUHQ.HV )XUWKHULQIR

,QWURGX.WLRQWR80/ 

,GHDVWR7DNH$ZD\
T T

T T T

T

80/LVHIIH.WLYHIRUPRGHOLQJODUJH.RPSOH[VRIWZDUH V\VWHPV ,WLVVLPSOHWROHDUQIRUPRVWGHYHORSHUVEXWSURYLGHV DGYDQ.HGIHDWXUHVIRUH[SHUWDQDO\VWVGHVLJQHUVDQG DU.KLWH.WV ,W.DQVSH.LI\V\VWHPVLQDQLPSOHPHQWDWLRQ LQGHSHQGHQWPDQQHU RIWKH.RQVWUX.WVDUHXVHGRIWKH WLPH 6WUX.WXUDOPRGHOLQJVSH.LILHVDVNHOHWRQWKDW.DQEH UHILQHGDQGH[WHQGHGZLWKDGGLWLRQDOVWUX.WXUHDQG EHKDYLRU 8VH.DVHPRGHOLQJVSH.LILHVWKHIXQ.WLRQDO UHTXLUHPHQWVRIV\VWHPLQDQREMH.WRULHQWHGPDQQHU

,QWURGX.WLRQWR80/ 

3UHYLHZ 1H[W7XWRULDO
T

%HKDYLRUDO0RGHOLQJZLWK80/
T T T T T

%HKDYLRUDOPRGHOLQJRYHUYLHZ ,QWHUD.WLRQV &ROODERUDWLRQV 6WDWH.KDUWV $.WLYLW\*UDSKV

,QWURGX.WLRQWR80/ 

5HIHUHQ.HV
T T T T T

>80/@ 20*80/6SH.LIL.DWLRQY20*GR.DG >80/@ 20*80/6SH.LIL.DWLRQY80/5HYLVLRQ7DVN)RU.H UH.RPPHQGHGILQDOGUDIW20*GR.DG >.REU\QD@&.REU\Q³80/5RDGPDS)DVW7UD.NRU'HWRXUV" ´ 6RIWZDUH'HYHORSPHQW$SULO7RDSSHDU >.REU\QE@&.REU\Q³0RGHOLQJ'LVWULEXWHG$SSOL.DWLRQVZLWK 80/´ .KDSWHULQ>6LHJHO@4XL.N&25%$:LOH\7REHSXEOLVKHG >.REU\Q@³0RGHOLQJ&25%$$SSOL.DWLRQVZLWK80/´.KDSWHUL Q >6LHJHO@&25%$)XQGDPHQWDOVDQG3URJUDPPLQJ QG HG :LOH\  >.REU\Q@80/$6WDQGDUGL]DWLRQ2G\VVH\&RPPXQL.DWLRQVRI WKH$&02.W >(-%@ (QWHUSULVH -DYD%HDQV 6SH.LIL.DWLRQ Y6XQ0L.URV\VWHPV 0DU.K

T T

,QWURGX.WLRQWR80/ 

)XUWKHU,QIR
T

:HE
T

80/57)ZZZ.HOLJHQW.RPRPJXPOUWI T 20*80/7XWRULDOV ZZZ.HOLJHQW.RPRPJXPOUWIWXWRULDOVKWP T 80/:RUNLQJ*URXS ZZZ.HOLJHQW.RPRPJDGSWIZJVXPOZJKWP T 20*80/5HVRXU.HVZZZRPJRUJXPO XPOUWI#RPJRUJ T .NREU\Q#D.PRUJ
T

T

(PDLO

T

&RQIHUHQ.HV ZRUNVKRSV
T

80/:RUOG1HZ<RUN-XQH T 80/7RURQWR&DQDGD2.W T 20*80/:RUNVKRS6DQ)UDQ.LV.R'H.

,QWURGX.WLRQWR80/ 

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer: Get 4 months of Scribd and The New York Times for just $1.87 per week!

Master Your Semester with a Special Offer from Scribd & The New York Times