You are on page 1of 91

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

/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

: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 

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

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

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%$,'/

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

7XWRULDO)R.XVWKH/DQJXDJH
T

ODQJXDJH V\QWD[VHPDQWL.V
T

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

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

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

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

,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

: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

+RZHYHUGXULQJLWHUDWLYHLQ.UHPHQWDO GHYHORSPHQWLWLVH[SH.WHGWKDWPRGHOVZLOO EHLQ.RPSOHWHDQGLQ.RQVLVWHQW


,QWURGX.WLRQWR80/ 

:HOO)RUPHGQHVV 5XOHV .RQWG


T

([DPSOHRIVHPDQWL.UXOH&ODVV>@
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 .RQWG
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.

([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

VSH.LIL.DWLRQUHDOL]DWLRQGL.KRWRP\
T

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

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

.RQWG

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

.RQWG

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

.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 .RQWG
Window

scrollbar:Slider

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.

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

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

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

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.WXUHXVLQJDU.KLWH.WXUDOO\VLJQLIL.DQW .ODVVLILHUVDQGPRGHOPDQDJHPHQW.RQVWUX.WV SD.NDJHV PRGHOVVXEV\VWHPVVHH7XWRULDO T 6SH.LI\ORZHUOHYHOVWUX.WXUHDV\RXGLV.RYHUGHWDLOUH.ODVVLILHUV DQGUHODWLRQVKLSV

,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

'HILQHDVNHOHWRQ RUED.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

/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 

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

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

,QWURGX.WLRQWR80/



,QWHUID.H%DVHG'HVLJQ .RQWG
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 .RQWG

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

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

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 travelers 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

,I\RXDUHQRWXVLQJDXVH.DVHGULYHQ PHWKRG
T

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

,QWURGX.WLRQWR80/



8VH&DVH0RGHOLQJ7LSV
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

$XVH.DVHGLDJUDPVKRXOG
.RQWDLQRQO\XVH.DVHVDWWKHVDPHOHYHORIDEVWUD.WLRQ T LQ.OXGHRQO\D.WRUVZKRDUHUHTXLUHG
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 employees 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

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\Q80/5RDGPDS)DVW7UD.NRU'HWRXUV"  6RIWZDUH'HYHORSPHQW$SULO7RDSSHDU >.REU\QE@&.REU\Q0RGHOLQJ'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

(PDLO

&RQIHUHQ.HV ZRUNVKRSV
T

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

,QWURGX.WLRQWR80/



You might also like