You are on page 1of 321

&$7,$7UDLQLQJ

Foils

&$$9)RU&$7,$
)RXQGDWLRQV

9HUVLRQ5HOHDVH

-XO\

FOR-CAT-E-CAA-F-V5R7

&RS\ULJKW'$66$8/76<67(0(6 
&$$9)RU&$7,$
)RXQGDWLRQV
2EMHFWLYHVRIWKH&RXUVH
,QWKLVFRXUVH\RXZLOOOHDUQWKH&$$9GHYHORSPHQWSODWIRUPNQRZWKHIRXQGDWLRQ
FRPSRQHQWVDQGXQGHUVWDQGWKHDUFKLWHFWXUHRID&$7,$9DSSOLFDWLRQIROORZLQJWKH
0RGHO9LHZ&RQWUROOHUGHVLJQSDWWHUQ

7DUJHWHGDXGLHQFH
&3URJUDPPHUVZKRLQWHQGWRGHYHORS&$$$SSOLFDWLRQV LQWHUDFWLYHRUEDWFK

3UHUHTXLVLWHV
&$7,$9XVHULQWHUIDFHSULQFLSOHV 0DQGDWRU\
GD\V &LQGXVWULDOSURJUDPPLQJSUDFWLFH 0DQGDWRU\
&20 0LFURVRIW2EMHFW0RGHO QRWLRQV 1LFHWRKDYH
0LFURVRIW'HYHORSHU6WXGLRSUDFWLFH 1LFHWRKDYH

&RS\ULJKW'$66$8/76<67(0(6 
7DEOHRI&RQWHQWV

 1DWLYH&$7,$92SHQQHVV3RVLWLRQLQJ
,QWURGXFWLRQ
2SHQQHVVWRROV
6RPH&DVHVWXGLHV
5HFRPPHQGDWLRQV

 &$$9'HYHORSPHQW(QYLURQPHQW
$&RPSRQHQW$UFKLWHFWXUH
:RUNVSDFHVDQG)UDPHZRUNV
&RPSLODWLRQ7RROV
06'HY,QWHJUDWLRQ
2WKHU7RROV
&$$9(QF\FORSHGLD
3URJUDPPLQJ5XOHV

 &$$92EMHFW0RGHOHU
:K\D1HZ2EMHFW0RGHOHU"
7KH,QWHUIDFH,PSOHPHQWDWLRQ3DWWHUQ
%HWZHHQ,QWHUIDFHVDQGLPSOHPHQWDWLRQV
2EMHFW/LIH&\FOH0DQDJHPHQW
([WHQVLRQ0HFKDQLVP
/DWH7\SLQJ

&RS\ULJKW'$66$8/76<67(0(6 
7DEOHRI&RQWHQWV± &RQWLQXHG

 &$$92EMHFW6SHFV0RGHOHU
,QWURGXFWLRQWR6SHFLILFDWLRQ0RGHOLQJ
2EMHFW6SHFV0RGHOHU2EMHFWLYHV
$ERXW)HDWXUHV
3URJUDPPLQJ7DVNV
$ERXW)HDWXUHV([WHQVLRQV
3URJUDPPLQJ7DVNV

 &$$99LVXDOL]DWLRQ
)UDPHZRUN2EMHFWLYHV
0DQDJHWKH3UHVHQWDWLRQ
0RGHO9LHZ&RQWUROOHU$UFKLWHFWXUH
9LVXDOL]DWLRQ,QWHUIDFHV

 &$$9$SSOLFDWLRQ)UDPH

 &$$9'LDORJ(QJLQH
2EMHFWLYHVRI&$7,$9'LDORJ(QJLQH
0DLQQRWLRQV
+RZWRGHILQHDQHZLQWHUDFWLYHFRPPDQG

&RS\ULJKW'$66$8/76<67(0(6 
7DEOHRI&RQWHQWV± &RQWLQXHG

 &$$9'LDORJ
)UDPHZRUNREMHFWLYHV
%XLOGLQJJUDSKLFXVHULQWHUIDFHV
5HWULHYLQJXVHULQSXWV
7KH'LDORJEXLOGHU

 &$$9$GPLQLVWUDWLRQ
3DFNDJLQJ
/LFHQVLQJ
6RIWZDUH3UHUHTXLVLWHV
'HOLYHULQJD&$$EXLOG$SSOLFDWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
1DWLYH&$7,$92SHQQHVV3RVLWLRQLQJ

<RXZLOOOHDUQZKDWDUHWKHGLIIHUHQWWHFKQLTXHVDQGWRROV
DYDLODEOHLQ&$7,$9WRFXVWRPL]HLWDQGZKHQWRXVHZKLFK
RQH

,QWURGXFWLRQ
2SHQQHVVWRROV
6RPH&DVHVWXGLHV
5HFRPPHQGDWLRQV

&RS\ULJKW'$66$8/76<67(0(6 
,QWURGXFWLRQ

0DQ\RSHQQHVVFDSDELOLWLHVDYDLODEOHLQ&$7,$9
6WDQGDUGIRUPDWLPSRUWH[SRUW 95
0DFURVXVLQJWKH$XWRPDWLRQ$3, 95
.QRZOHGJHZDUH 95
,QWHUDFWLYH8VHU'HILQHG)HDWXUH 95
&$$9& -DYD$3, 95

:KDWDUHWKHVHWRROVSURYLGHGIRU"
:KHQWRXVHZKDW"

&RS\ULJKW'$66$8/76<67(0(6 
'LIIHUHQW/HYHOV
0XOWL&$[0XOWL3'06WDQGDUG)RUPDW
,PSRUW([SRUW
©E\FRQYHUVLRQªFXVWRPL]DWLRQ

$XWRPDWLRQ&RPSRQHQWV-RXUQDOLQJ
9LVXDO%DVLF-DYD6FULSW+70/
©LQWHUDFWLYHªFXVWRPL]DWLRQ

.QRZOHGJHZDUH
)RUPXODV 5XOHV 'HVLJQ7DEOH
©UHDFWLYHUXOHEDVHGE\JRDOªFXVWRPL]DWLRQ

,QWHUDFWLYH8VHU'HILQHG)HDWXUH
©E\FRPSRVLWLRQªFXVWRPL]DWLRQ

-DYDDQG&&RPSRQHQWV
©FRPSRQHQWEDVHGSURJUDPPDWLRQªFXVWRPL]DWLRQ
&RS\ULJKW'$66$8/76<67(0(6 
2SHQQHVV7RROV+LJKOLJKWV

)RUPXODV 5XOHV 'HVLJQ7DEOH

&RS\ULJKW'$66$8/76<67(0(6 
&$7,$9$XWRPDWLRQ$3,
$XWRPDWLRQ$3,WREHXVHGLQPDFURVZULWWHQLQDQLQWHUSUHWHGODQJXDJH
9LVXDO%DVLF6FULSWRU-DYD6FULSW

&$7,$$XWRPDWLRQHQGXVHUYLHZ
RQWKH&$7,$GDWDPRGHO

5HO\RQVWDQGDUGODQJXDJHV

-RXUQDOLQJLQWHUDFWLYHSURJUDPPDWLRQ

9%DSSOLFDWLRQ

81,; :,1'2:617 /DXQFK&$7,$

*HQHUDWHGDWD
%DVLF6FULSW 6XPPLW

&RPPXQLFDWLRQZLWKDQ\2/( 9%DSSOLFDWLRQ

FRPSOLDQWDSSOLFDWLRQ 17
&RS\ULJKW'$66$8/76<67(0(6
5HWULHYHLQIRUPDWLRQ

IURP&$7,$ 
&$7,$9.QRZOHGJHZDUH
$SURGXFWLYLW\HQYLURQPHQWIRUVSHFLILFDWLRQUHXVH .QRZOHGJH
DVVLPSOHDVIRUPXODWRFRUSRUDWHNQRZOHGJHEDVHUXOHV $GYLVRU

,PEHGGHG.QRZOHGJH 5XOHV
WKDWSDUWLFLSDWHVWR &KHFNV
)XOO\LQWHJUDWHGSODWIRUPLQ9 WKHGHVLJQGHILQLWLRQ ,QVSHFWRU
LQRUGHUWROHYHUDJHSURFHVVHV %HKDYLRU

,QWHUDFWLYHNQRZOHGJHFDSWXUH .QRZOHGJH

WKURXJKDVVRFLDWLYHDQGSHUVLVWHQW ([SHUW

5XOHV
VSHFLILFDWLRQGHILQLWLRQDQG 5XOHEDVHG
&KHFNV
SURFHVVHV
SUHGHILQHGHDV\WRXVHVHUYLFHV 5XOH%DVHG
5HSRUWV
'ULYHQPDQDJHPHQWDQGUHXVH
IURPIXQFWLRQVVSHFLILFDWLRQVWR 3URGXFW

FRPSRQHQWVDQGV\VWHPV (QJLQHHULQJ

2SWLPL]HU

$OORZFXVWRPL]DWLRQDQGH[WHUQDO 2SWLPL]DWLRQJRDO
'HVLJQE\JRDO &ULWHULD
VRXUFHVLQWHJUDWLRQ 6ROXWLRQV

&RS\ULJKW'$66$8/76<67(0(6 
,QWHUDFWLYH8VHU'HILQHG)HDWXUH
'HILQHLQWHUDFWLYHO\QHZGDWDW\SHV
E\DJJUHJDWLQJH[LVWLQJIHDWXUHV 5HIHUHQFH
JHRPHWU\

,QWHUDFWLYHGDWDGHILQLWLRQ
'HILQLWLRQ

&ROOHFWH[LVWLQJVSHFLILFDWLRQV
VSHFLI\LQSXWVDQGFUHDWHD©,8')ª

6WRUHG
LQFDWDORJ
©,8')ªWREHVDYHGLQD&$73DUW
GRFXPHQWDQGUHIHUHQFHGLQDFDWDORJ

,QWHUDFWLYHHDV\UHXVH
,QVWDQWLDWHG
LQFRQWH[W
&RS\ULJKW'$66$8/76<67(0(6 
&$$9&DQG-DYD$3,
%DVHGRQH[WHQVLRQV 7HDPZRUN )XOOVRIWZDUHGHYHORSPHQW
OLIHF\FOHFRYHUDJH
RIVWDQGDUGVWRROV GHYHORSPHQW

,QWHUDFWLYH
'HYHORSPHQW

0HWKRGRORJ\DQG
SURJUDPPLQJJXLGHV

&RS\ULJKW'$66$8/76<67(0(6 
7RROV&ROODERUDWLRQ
&DOO8VHUIXQFWLRQV

'HILQHQHZ$XWRPDWLRQ$3,
/DXQFKPDFURV

&$7,$9 &$$9
.QRZOHGJH $XWRPDWLRQ$3, & -DYD$3,

*HQHUDWH.QRZOHGJH)HDWXUHV

2YHUORDGGHIDXOW
XVHULQWHUIDFH
8VHU'HILQHG
)HDWXUH

&RS\ULJKW'$66$8/76<67(0(6 
6RPH&DVH6WXGLHV

8VHDVLV
&DSWXUHDQLQWHUDFWLYHSURFHVV
'HILQHVRPHQHZXVHULQWHUIDFH
&KHFNFRUSRUDWHUXOHV

([WHQG
(QULFK&$7,$9GDWDPRGHO
&UHDWHRUPRGLI\GDWDEHKDYLRU

*OXH
*OXHZLWKH[WHUQDOV\VWHPV

&RS\ULJKW'$66$8/76<67(0(6 
8VHDVLV&DSWXUHLQWHUDFWLYHSURFHVV
H[SHUIRUPLQRQHVKRWDVHTXHQFHRIRSHUDWLRQVRQ'6REMHFWV

&$7,$9
$XWRPDWLRQ$3,

&$$9
& -DYD$3,

&RS\ULJKW'$66$8/76<67(0(6 
8VHDVLV'HILQHVRPHQHZXVHULQWHUIDFH
H[DVNIRUXVHUSDUDPHWHULQSXWVLQDSDQHO

➘ 9HU\VLPSOHSDQHOVZLWK³,QSXW%R[´DQG
³0VJ%R[´
&$7,$9 ➘ 0RUHVRSKLVWLFDWHGSDQHOVE\GHILQLQJDQ
$XWRPDWLRQ$3, $FWLYH;LQ9LVXDO%DVLF 17RQO\
➘ $VVRFLDWHDQLFRQWRDPDFURDQGSOXJLW
LQWKH&$7,$IUDPH

➘ 6HOHFWLRQFDSDELOLWLHV 95

➘ 6RSKLVWLFDWHGLQWHUDFWLYHFRPPDQGV

&$$9 ➘ &RPPDQGJURXSLQJLQZRUNEHQFK

& -DYD$3, ➘ 6WDWHRIWKHDUWSDQHOV


➘ 8QGR5HGR

&RS\ULJKW'$66$8/76<67(0(6 
8VHDVLV&KHFNFRUSRUDWHUXOHV

.QRZOHGJH

&$$9
& -DYD$3,

&RS\ULJKW'$66$8/76<67(0(6 
([WHQG(QULFK&$7,$9GDWDPRGHO
H[GHILQHDQHZIHDWXUHWREHVHHQDIWHUZDUGVOLNHDQ\RWKHU'6 IHDWXUH

➘ $WRPLF'6IHDWXUHVH[LVW
8VHU'HILQHG ➘ 1RFRGHWREHZULWWHQ
)HDWXUH

&$$9
& -DYD$3,

&RS\ULJKW'$66$8/76<67(0(6 
([WHQVLRQ&UHDWHRUPRGLI\GDWDEHKDYLRU
H[H[WHQGWKHEHKDYLRURIDQH[LVWLQJREMHFW

&$$9
& -DYD$3,

&RS\ULJKW'$66$8/76<67(0(6 
*OXH&RPPXQLFDWLRQZLWKH[WHUQDOV\VWHPV
H[JHQHUDWHQHZGDWDLQ9GRFXPHQWVRUUHWULHYHLQIRUPDWLRQ

,PSRUW([SRUW
IRUPDW

&$7,$9 ➘ &$7,$LVDQ2/($XWRPDWLRQVHUYHU
$XWRPDWLRQ$3, ➘ :,1'2:617RQO\

&$$9 ➘ 7KH%DFNERQHSURSRVHVDQDV\QFKURQRXV
FRPPXQLFDWLRQ
& -DYD$3, ➘ (QFDSVXODWHWKHXQGHUO\LQJWHFKQRORJLHV

&RS\ULJKW'$66$8/76<67(0(6 
5HFRPPHQGDWLRQV

3RVLWLRQLQJDFFRUGLQJWRFDSDELOLWLHV

3RVLWLRQLQJDFFRUGLQJWRUHTXLUHGVNLOOV WUDLQLQJ

&RS\ULJKW'$66$8/76<67(0(6 
3RVLWLRQLQJDFFRUGLQJWRFDSDELOLWLHV
86($6,6

$GYDQFHG8,

$XWRPDWLRQ$3, 6LPSOH8,

6LPSOH
.QRZOHGJHZDUH &$$9
%HKDYLRU
& -DYD$3,
$GYDQFHG 'HYHORSHU
(QG8VHU $GYDQFHG
%HKDYLRU
1HZGDWD
8')
W\SH

&RS\ULJKW'$66$8/76<67(0(6
(;7(1' 
3RVLWLRQLQJDFFRUGLQJWR5HTXLUHG6NLOOV 
7UDLQLQJV
6NLOOV 7UDLQLQJV
&$$9
&$$9

&$7,$9
&$7,$9
$XWRPDWLRQ
$XWRPDWLRQ 2EMHFW
2EMHFW
$3,
$3, 2ULHQWHG
2ULHQWHG
/DQJXDJH
/DQJXDJH
&$7,$9
&$7,$9 9LVXDO%DVLF
9LVXDO%DVLF
.QRZOHGJHZDUH
.QRZOHGJHZDUH
,8')
,8')
&$7,$9 &$7,$9 &$7,$9
&$7,$9 &$7,$9
&$7,$9 &$7,$9 &$7,$9
%DVLFV %DVLFV %DVLFV
%DVLFV %DVLFV
%DVLFV %DVLFV %DVLFV

,8') .QRZOHGJHZDUH Automation &$$


&RS\ULJKW'$66$8/76<67(0(6

API 
7R6XP8S

,QWKLVOHVVRQ\RXKDYHVHHQ«

$UDQJHRIRSHQQHVVWRROV
$GDSWHGWRGLIIHUHQWWDUJHWV
)URPVLPSOHWRDGYDQFHGGHYHORSPHQWV
)URPHQGXVHUWRSURIHVVLRQDOSURJUDPPHU

:KDWHYHU\RXUQHHGV\RXEHQHILWIURPDQ
DSSURSULDWHWRRO

&RS\ULJKW'$66$8/76<67(0(6 
&$$9'HYHORSPHQW(QYLURQPHQW

<RXZLOOOHDUQDERXWWKHGLUHFWRU\WUHHVWUXFWXUHWKHVSHFLILFWRROV
GHYHORSHGDQGSOXJJHGLQ0LFURVRIW'HYHORSHU6WXGLRDQGKRZWR
ILQGLQIRUPDWLRQLQWKH&$$9(QF\FORSHGLD

$&RPSRQHQW$UFKLWHFWXUH
- :RUNVSDFHVDQG)UDPHZRUNV
&RPSLODWLRQ7RROV
 PNPN
0LFURVRIW'HYHORSHU6WXGLR,QWHJUDWLRQ
2WKHU7RROV
&$$9(QF\FORSHGLD
3URJUDPPLQJ5XOHV

&RS\ULJKW'$66$8/76<67(0(6 
&$$9'HYHORSPHQW(QYLURQPHQW
2EMHFWLYHV

7RROVDQG0HWKRGVIRUDQ22SURJUDPPLQJHQYLURQPHQW

6XSSRUWWKH9$UFKLWHFWXUH

6XSSRUWODUJHWHDPVRIGHYHORSHUVZRUNLQJFRQFXUUHQWO\LQ
GLIIHUHQWVLWHV

+HOSPDNLQJEHWWHUTXDOLW\VRIWZDUHLQDIDVWHUZD\

&DSWXUHDQGHQIRUFHFRPSDQ\SURFHVVHV
&RS\ULJKW'$66$8/76<67(0(6 
&$$9&KDUDFWHULVWLFV

&RPPRQGHYHORSPHQWSODWIRUPIRUDOOWKH'DVVDXOW6\VWHPHV
SURGXFWOLQHV
&$7,$(129,$'(/0,$

&RGHZULWWHQRQWRSRI&$$9LVWKHVDPHRQ17DQG81,;

&RS\ULJKW'$66$8/76<67(0(6 
&RPSRQHQW$SSOLFDWLRQ$UFKLWHFWXUH

&$$9FDQEHXVHGWRLPSOHPHQWQHZSURGXFWV

'DVVDXOW6\VWqPHV 3DUWQHUV &XVWRPHUV

([WHQGHG&$7,$9
&$7,$9WKHV\VWHP

3URGXFWUHXVLQJ
&$$9FRPSRQHQWV &$$9FRPSRQHQWV

&RS\ULJKW'$66$8/76<67(0(6 
&$$9)UDPHZRUN

*URXSRILQWHURSHUDWLQJREMHFWVZLWKEXLOWLQFDSDELOLWLHV
GHOLYHUHGDVDFRPSOHWHUHVRXUFHWRFOLHQWDSSOLFDWLRQV

3XEOLF,QWHUIDFHV 3URWHFWHG ,QWHUIDFHV


$YDLODEOHIRU
$YDLODEOHIRUHYHU\IUDPHZRUN HYHU\PRGXOH
RIWKH
IUDPHZRUN
3ULYDWHLQWHUIDFHV K K K K

0RGXOH 0RGXOHQ
/RFDO,QWHUIDFHV K K K /RFDO,QWHUIDFHV K K

VUF .FSS FSS .FSS


... VUF
FSS FSS
$YDLODEOHIRU
WKHPRGXOH
RQO\

&RS\ULJKW'$66$8/76<67(0(6 
&$$93UH5HTXLVLWH:RUNVSDFHV
&$7,$ &$$
:RUNVSDFH

8VHU

9LVXDOL]DWLRQ ,QWHJUDWLRQ
:RUNVSDFH
6\VWHP

8VHU 8VHU

'HYHORSPHQW 'HYHORSPHQW
9LVXDOL]DWLRQ
:RUNVSDFH :RUNVSDFH
6\VWHP

3UHUHTXLVLWH)UDPHZRUNV IRUEXLOG

&RS\ULJKW'$66$8/76<67(0(6 $WWDFKHG)UDPHZRUNV IRUHGLWEXLOGGHOLYHU\



&$$9)LOH7UHH

Run
RunTime
TimeView
View 5RRW:RUNVSDFH
Build Time View

)UDPHZRUN )UDPHZRUNHGX
RV )UDPHZRUNWVW

3XEOLF,QWHUIDFHV
VWDUWXS UHIILOHV GRF GRFGRF

)XQFWLRQ7HVWV
3URWHFWHG,QWHUIDFHV
FRGH UHVRXUFHV

VUF
3ULYDWH,QWHUIDFHV ,GHQWLW\&DUG
7HVW&DVHV

JUDSKLF ,PDNHILOHPN

,GHQWLW\&DUGK  ,QSXW'DWD
0RGXOHP
PVJFDWDORJ
6ZLWFK7HVW&DVHV
&1H[W
IRQW
 2XWSXW5HI
FRPPDQG VUF ,PDNHILOHPN /RFDOWRPRGXOH

ELQ GLFWLRQDU\ /RFDOWRIUDPHZRUN


/RFDO,QWHUIDFHV

([SRUWDEOHWRQRQH[WHUQDOFOLHQWIUDPHZRUNV

([SRUWDEOHWRH[WHUQDOFOLHQWIUDPHZRUNV

&RS\ULJKW'$66$8/76<67(0(6 
)UDPHZRUN,GHQWLW\&DUG

7KH,GHQWLW\&DUGGHILQHVWKHSUHUHTXLVLWHIUDPHZRUNVWR
EXLOGDQGXVHDIUDPHZRUN
2QHLGHQWLW\FDUGSHUIUDPHZRUN
,IQRSUHUHTXLVLWHIUDPHZRUNGHILQHDQHPSW\,GHQWLW\&DUG
7KLVILOHLVXVHGE\RXUEXLOGLQJWRROWROLPLWWKHKHDGHUILOHVHDUFKWRWKHFRUUHVSRQGLQJ
,QWHUIDFHVGLUHFWRULHVRIWKHSUHUHTXLVLWHIUDPHZRUNV

7KLVIUDPHZRUNXVHVRQO\KHDGHUVGHILQHGLQ
WKH3XEOLF,QWHUIDFHVRU3URWHFWHG,QWHUIDFHV
,GHQWLW\&DUGK
,GHQWLW\&DUGK GLUHFWRU\RIWKH6\VWHPDQG
2EMHFW0RGHOHU%DVHIUDPHZRUNV

AddPrereqComponent("System",Protected);
AddPrereqComponent("System",Protected);
AddPrereqComponent("ObjectModelerBase",
AddPrereqComponent("ObjectModelerBase",Protected);
Protected);

&RS\ULJKW'$66$8/76<67(0(6 
0DQDJHWKH&$$97RRO/HYHO7&.

7KH7RRO&RQILJXUDWLRQ.H\PDQDJHVVHYHUDOOHYHOV
RIWKH&$$95$'(WRROV

7RVHWXSWKHWFNHQYLURQPHQW
WFNBLQLW

7ROLVWWKHGLIIHUHQWOHYHOVDYDLODEOH
WFNBOLVW

7RVHWXSDVSHFLILFWRROOHYHO
WFNBSURILOH/HYHO1DPH<RX:DQW7R8VH

&RS\ULJKW'$66$8/76<67(0(6 
'HILQH\RXUSUHUHTXLVLWHZRUNVSDFHV
PN*HW3UHT

PN*HW3UHTS3UHUHTXLVLWH:RUNVSDFH
7KLVHQDEOHV\RXWRGHILQHZKHUHWKHSUHUHTXLVLWH
UHVRXUFHVDUHORFDWHG
EXLOGWLPHKHDGHUILOHV
UXQWLPHVKDUHGOLEUDULHVUHVRXUFHILOHV«
7KLVFRPPDQGPXVWEHODXQFKHGLQDZLQGRZZKHUH
WKH&$$9HQYLURQPHQWKDVEHHQVHWDQGWKHFXUUHQW
GLUHFWRU\LV\RXUZRUNVSDFH

&RS\ULJKW'$66$8/76<67(0(6 
%XLOG\RXUH[HFXWDEOHVPNPN

$XQLTXH'6WRROEXLOWRQWRSRIWKHVWDQGDUG
FRPSLOHUVWKDWZRUNVLQWKHVDPHZD\RQ81,;DQG
:LQGRZV17
&RPSLOH)RUWUDQ&&,'/([SUHVV&,5&(
/LQNHGLW

,WXVHVWKH,PDNHILOHPNILOHWKDWPXVWEHGHILQHGIRU
HYHU\PRGXOH

&RS\ULJKW'$66$8/76<67(0(6 
PNPN7KH,PDNHILOHPN

,PDNHILOHPN
,PDNHILOHPN
BUILT_OBJECT_TYPE=SHARED
BUILT_OBJECT_TYPE=SHAREDLIBRARY
LIBRARY 'HILQHWKHPRGXOHW\SH

'HILQHWKHEXLOGRSWLRQVFRPPRQWRDOOWKH26
OS
OS==COMMON
COMMON 6SHFLILFNH\ZRUGXVHGE\WKHZL]DUGV
WIZARD_LINK_MODULES =
WIZARD_LINK_MODULES = \\
JS0GROUP
JS0GROUPJS0FM
JS0FM CATApplicationFrame
CATApplicationFrame 7KHFRQWLQXDWLRQFKDUDFWHULV³?´

LINK_WITH 'HILQHVWKHVKDUHGOLEUDULHVWKDW
LINK_WITH==$(WIZARD_LINK_MODULES)
$(WIZARD_LINK_MODULES)\ \
CATDialogEngine UHVROYHWKHV\PEROV\RXXVH
CATDialogEngine
OS
OS==AIX
AIX 'HILQHWKHEXLOGRSWLRQVVSHFLILFWRDJLYHQ26LIQHFHVVDU\
SYS_INCPATH
SYS_INCPATH = =
SYS_LIBS
SYS_LIBS==-lXm
-lXm-lXt
-lXt-lXmu
-lXmu-lX11
-lX11-lm
-lm
SYS_LIBPATH
SYS_LIBPATH==-L/usr/lpp/X11/lib/R5/Motif1.2
-L/usr/lpp/X11/lib/R5/Motif1.2-L/usr/lpp/X11/Motif1.2/lib
-L/usr/lpp/X11/Motif1.2/lib
......

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGZLWKH[WHUQDOOLEUDULHV

,PDNHILOHPN
,PDNHILOHPN
##Link
Linkwith
withexternal
externallibraries
libraries 2Q17
LOCAL_LDFLAGS
LOCAL_LDFLAGS==/LIBPATH:”E:\DirectoryWhereTheLibrariesAreStored”
/LIBPATH:”E:\DirectoryWhereTheLibrariesAreStored”
##Name
Nameofofthe
thelibraries
libraries
SYS_LIBS = LibraryName.lib
SYS_LIBS = LibraryName.lib
##Link
Linkwith
withinclude
includefiles
files
LOCAL_CCFLAGS
LOCAL_CCFLAGS =/I”E:\DirectoryWhereTheIncludeFilesAreStored”
= /I”E:\DirectoryWhereTheIncludeFilesAreStored”
2Q81,;
##Link
Linkwith
withexternal
externallibraries
libraries
LOCAL_LDFLAGS
LOCAL_LDFLAGS==-L/MachineName/DirectoryWhereTheLibrariesAreStored
-L/MachineName/DirectoryWhereTheLibrariesAreStored
##Name
Nameofofthe
thelibraries
libraries
SYS_LIBS
SYS_LIBS==LibraryName
LibraryName
##Link
Link with includefiles
with include files
LOCAL_CCFLAGS
LOCAL_CCFLAGS =-I/MachineName/DirectoryWhereTheIncludeFilesAreStored
= -I/MachineName/DirectoryWhereTheIncludeFilesAreStored

&RS\ULJKW'$66$8/76<67(0(6 
5XQZLWKH[WHUQDOOLEUDULHV

0RGLI\HQYLURQPHQW¶VYDULDEOHV
½2Q17XVH 6WDUW3URJUDPV&$7,$7RROV&$7,$(QYLURQPHQW(GLWRU 
(?&$7,$9B5[?LQWHOBD?FRGH?ELQ?&$7,$(19H[H
½2Q81,;PRGLI\WKHFVKILOH
&$7(19&$7,$95[%[FVK

&RS\ULJKW'$66$8/76<67(0(6 
$ERXWPNPN
,WVEHKDYLRUGHSHQGVRQWKHFXUUHQWGLUHFWRU\
\RXUZRUNVSDFHGLUHFWRU\LVWKHFXUUHQWGLUHFWRU\
PNPN±DXJÅ WRIRUFHDOOWKHPRGXOHVWREHUHEXLOW
ZLWKWKHGHEXJRSWLRQ
PNPN±DÅWRUHEXLOGRQO\ZKDWQHHGVWREHUHEXLOW
$PRGXOHGLUHFWRU\LVWKHFXUUHQWGLUHFWRU\
PNPN±XJÅ WRIRUFHWKHFRUUHVSRQGLQJPRGXOHWR
EHUHEXLOWZLWKWKHGHEXJRSWLRQ
PNPNÅ WRUHEXLOGRQO\LIQHFHVVDU\

7RDFFHVVWKHPNPNKHOSRQOLQHXVHPNPNK

&RS\ULJKW'$66$8/76<67(0(6 
0NPN7LSV

8VHWKHXSGDWH X RSWLRQZKHQ
PRGLI\LQJWKHGHSHQGHQFLHV DQLQFOXGHILOHDGGHGRU
VXSSUHVVHG 
DGGLQJRUUHPRYLQJDILOH KDQGFSS 
PRGLI\LQJWKH,GHQWLW\&DUGKDQGRUWKH,PDNHILOHPN

,QRWKHUFDVHVGRQRWXVHWKHXSGDWHRSWLRQPNPNZLOO
UHXVHVRPHLQWHUPHGLDWHILOHVJHQHUDWHGEHIRUH
2EMHFWV
,PSRUWHG,QWHUIDFHV
YDULRXV

&RS\ULJKW'$66$8/76<67(0(6 
([SRUWHG%\0RGXOH1DPH3UHSURFHVVRU
9DULDEOHV
$:LQGRZV17PHFKDQLVPLPSRVHVWKDWVKDUHGOLEUDULHV
GHFODUHH[SOLFLWO\ZKDWWKH\LPSRUWDQGH[SRUW

7RPDQDJHWKLVZHGHILQHVRPHSUHSURFHVVRUYDULDEOHV

9DULDEOHGHILQHGE\
PNPNRQ:LQGRZV17
0\&ODVVK
0\&ODVVK 0\0RGXOHK
0\0RGXOHK
#ifdef 9DULDEOHGHILQHGE\PNPN
#include
#include“MyModule.h”
“MyModule.h” #ifdef _WINDOWS_SOURCE
_WINDOWS_SOURCE
#ifdef ZKHQEXLOGLQJ0\0RGXOH
Class
ClassExportedByMyModule
ExportedByMyModuleMyClass
MyClass #ifdef __MyModule
__MyModule
{{ #define
#defineExportedByMyModule
ExportedByMyModule__declspec(dllexport)
__declspec(dllexport)
… #else
#else

#define
#defineExportedByMyModule
ExportedByMyModule__declspec(dllimport)
__declspec(dllimport)
#endif
#endif
#else
#else
#define
#defineExportedByMyModule
ExportedByMyModule
&RS\ULJKW'$66$8/76<67(0(6 #endif
#endif 
5XQWLPHWRROV

PNUWY
FRS\WKHDSSOLFDWLRQUHVRXUFHV LFRQVPHVVDJH
ILOHVGLFWLRQDULHV« IURPWKH%XLOGWLPH
GLUHFWRULHVLQWRWKH5XQWLPHGLUHFWRULHV

PNUXQ
UXQ&$7,$9RUDQ\PDLQH[HFXWDEOHGHYHORSHG
RQWRSRI&$$9
PNUXQF0\3URJUDP

&RS\ULJKW'$66$8/76<67(0(6 
7HVW7RROPNRGW

PNRGW
(YHU\IUDPHZRUN):VKRXOGSURYLGHLWVWHVWIUDPHZRUN
):WVW
8VHVVRPHSUHGHILQHGHQYLURQPHQWYDULDEOHV
$'/B2'7B287
$'/B2'7B703
)UDPHZRUNWVW

&RQWDLQVVKHOOVWKDWODXQFKHVWKHWHVWSURJUDPV
7HVW0RGXOHP )XQFWLRQ7HVWV

&RQWDLQVDQ\GDWDUHTXLUHGE\WKHVKHOOVPRGHOV
&RQWDLQVDQ\UHIHUHQFHGDWDWKDWFDQEHXVHGE\WKH 7HVW&DVHV

VKHOOVWRFKHFNZKDWLVSURGXFHGE\DWHVWSURJUDP
 ,QSXW'DWD

6ZLWFK7HVW&DVHV

 2XWSXW5HI

&RS\ULJKW'$66$8/76<67(0(6 
&6RXUFH&KHFNHUPN&KHFN6RXUFH

PN&KHFN6RXUFHFDQGHWHFWFRUUXSWLQJHUURUVEHIRUH
G\QDPLFWHVWV7KLVLQVXUHVDEHWWHUZD\RISURJUDPPLQJ
UHGXFLQJGHYHORSPHQWDQGGHEXJWLPH

&KHFNHG5XOHV
$GG5HI5HOHDVH
&DOOEDFNV
3RLQWHUOLIHF\FOH
([FHSWLRQV
&
/LIHF\FOHRIVRPHSDUWLFXODUREMHFWV 'LDORJ«

&RS\ULJKW'$66$8/76<67(0(6 
6RXUFH&RGH0DQDJHU 

6&0LVD6RIWZDUH&RQILJXUDWLRQ0DQDJHPHQW6\VWHP
GHVLJQHGIRUVXSSRUWLQJ&$$9GHYHORSPHQWV

7KURXJKRXWZRUNVSDFHV
IHDWXUHV6&0SURYLGHVDZD\IRU
DFRPSDQ\WRRUJDQL]HDQGWRFRQWUROVRIWZDUH
GHYHORSPHQWVEHWZHHQGHYHORSPHQWGHSDUWPHQWV

8VHUVZRUNRQILOHVRQWKHLUSHUVRQDOILOHV\VWHPVDQG
LQWHUDFWZLWKHDFKRWKHUVE\FRPPDQGVLQYROYLQJWKH
ZKROHZRUNVSDFH

&RS\ULJKW'$66$8/76<67(0(6 
6RXUFH&RGH0DQDJHU 

7KHSURFHVVLVEDVHGXSRQIRXUPDLQ
RSHUDWLRQV
WKHSURPRWLRQLWLVWKHGHOLYHU\RI
GHYHORSPHQWVIURPDZRUNVSDFHWRLWV
SDUHQWZRUNVSDFH
WKHFROOHFWLWLVWKHDFWLRQRIJHWWLQJLQ
DZRUNVSDFHZKDWKDVEHHQGHOLYHUHGE\
FKLOGZRUNVSDFHV

&RS\ULJKW'$66$8/76<67(0(6 
6RXUFH&RGH0DQDJHU 

WKHSXEOLFDWLRQLWFRQVLVWVLQPDNLQJ
DYDLODEOHWRRWKHUZRUNVSDFHVZKDWZDV
LQWKHSULYDWHSDUWRIDSURMHFW
ZRUNVSDFH$YDLODEOHFKDQJHVDUHLQWKH
SXEOLFSDUWDQGFKLOGZRUNVSDFHVFDQJHW
WKHPZLWKWKHV\QFKURQL]DWLRQ
WKHV\QFKURQL]DWLRQLWLVWKHDFWLRQRI
JHWWLQJLQDZRUNVSDFHWKHODVWVWDWHRI
WKHFRPSRQHQWPDQDJHGLQWKLV
ZRUNVSDFHIURPWKHSXEOLFSDUWRIWKH
SDUHQWZRUNVSDFH

&RS\ULJKW'$66$8/76<67(0(6 
0LFURVRIW'HYHORSHU6WXGLR&$$9$GG,QV

$OORXUVSHFLILFWRROVKDYHEHHQLQWHJUDWHGLQ0LFURVRIW
'HYHORSHU6WXGLR9
0XVWEHLQVWDOOHGXVLQJWKH8QLFRGH6WULQJRSWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
&$$9ZL]DUGVLQ0V'HYHORSHU6WXGLR

:L]DUGVWRJHQHUDWHFRGH
FRUUHVSRQGLQJWRJHQHULF
WDVNV
1HZ&$$9:RUNVSDFH
1HZ)UDPHZRUN
1HZ0RGXOH
1HZ&RPPDQG
1HZ3DQHO
1HZ,QWHUIDFH
1HZLPSOHPHQWDWLRQ
«

&RS\ULJKW'$66$8/76<67(0(6 
&$$92EMHFW%URZVHU

7RNQRZZKLFKFRPSRQHQW
LPSOHPHQWVZKLFKLQWHUIDFH

&RS\ULJKW'$66$8/76<67(0(6 
0DSSLQJEHWZHHQFRPPDQGVDQG
0V'HY$GG,QV
PN*HW3UHTPN&RS\3UHT

PNUWY

PN&KHFN6RXUFH

PNPN

PNRGW

PNUXQ

&RS\ULJKW'$66$8/76<67(0(6 
0DSSLQJEHWZHHQFRPPDQGVDQG
0V'HY$GG,QV 6RIWZDUH&RQILJXUDWLRQ
0DQDJHPHQW

6\QFKURQL]H

3URPRWH

&ROOHFW

3XEOLVK

&RS\ULJKW'$66$8/76<67(0(6 
06'HY$GG,QV+LQWVDQG7LSV 

7REHDEOHWRVHHDQ\PRGLILFDWLRQGRQHGLUHFWO\LQ17
([SORUHU FRSLHGPRYHGRUGHOHWHGILOHV LQ06'HY
8VHFRPPDQG3URMHFW&KRRVH5HIUHVK&$$93URMHFW«

&RS\ULJKW'$66$8/76<67(0(6 
06'HY$GG,QV+LQWVDQG7LSV 

7REHDEOHWRVHH\RXU
WUDFHVWDWHPHQWVWKH
HQYLURQPHQWYDULDEOH
&1(;7287387KDVWREH
VHWWRFRQVROHLQ
7RROV5XQWLPH
(QYLURQPHQW9DULDEOHV

&RS\ULJKW'$66$8/76<67(0(6 
06'HY$GG,QV+LQWVDQG7LSV 

7RUHEXLOGDPRGXOHDQGLI\RXGRQ¶WQHHGWKHXSGDWH
RSWLRQXVHWKHNH\ERDUGVKRUWFXW)

7RH[SRUWDZRUNVSDFH MXVWWKHVRXUFHFRGH JHWULG


RIDOOWKHLQWHUPHGLDWHILOHVJHQHUDWHGE\PNPN
JRWR7RROV2SHQ&RPPDQG:LQGRZDQGNH\
PN5HPRYH'RD

>&WUO4@WRVZDSEHWZHHQKDQGFSSILOHV
>&WUO7@WRRSHQWKHKILOHFRUUHVSRQGLQJWRWKH
NH\ZRUGXQGHUWKHFXUVRU
>&WUO)@IRU$3,GRFXPHQWDWLRQ
&RS\ULJKW'$66$8/76<67(0(6 
(QDEOHSRUWLQJRQ81,;IURP9LVXDO&

,I\RXQHHGWRSRUW\RXUDSSOLFDWLRQVRQ81,;\RX
VKRXOGUXQDJDLQWKH&$79%76HWXSH[HFXWDEOH
&?3URJUDP)LOHV?'DVVDXOW6\VWHPHV?7?LQWHOBD?FRGH?ELQ

,QWKH7RRODFFHVV
WDESDJHDFWLYDWH
WKHUHPRWHDFFHVV
DQGLQIRUPZKHUH
WKH&$$97RROV
DUHLQVWDOOHGRQ
81,;

&RS\ULJKW'$66$8/76<67(0(6 
$FWLYDWHWKH3RUWLQJRQ81,;

:KHQRSHQLQJDZRUNVSDFH\RXFDQDVNIRUEXLOGLQJ
RQ81,;E\LQIRUPLQJ9LVXDO&RQZKLFK81,;
PDFKLQHZLWKZKLFKXVHUDQGLQZKLFKGLUHFWRU\WKH
RSHUDWLRQVZLOOEHSHUIRUPHG

/DWHURQZKHQHYHU
DILOHLVJHQHUDWHG
RQ17LWLVFRSLHG
PHDQZKLOHRQ81,;

&RS\ULJKW'$66$8/76<67(0(6 
3RUWLQJRQ81,;

)URP9LVXDO&WKHQ
\RXFDQGHILQHWKHSUHUHTXLVLWHZRUNVSDFHV
\RXFDQEXLOG
\RXFDQXSGDWHWKHUXQWLPHYLHZ

&RS\ULJKW'$66$8/76<67(0(6 
2WKHU7RROVXVHGLQWKH&$$9FRQWH[W

5DWLRQDO3XULI\
$WRROWRGHWHFWDQ\PHPRU\OHDNDQGWREH
XVHGZLWKPNRGW
5DWLRQDO3XUH&RYHUDJH
$WRROWRFKHFNWKHSHUFHQWDJHRIWKHFRGH
UHDOO\WHVWHGDQGWREHXVHGZLWKPNRGW

&RS\ULJKW'$66$8/76<67(0(6 
&$$9(QF\FORSHGLD+RPH3DJH

&RS\ULJKW'$66$8/76<67(0(6 
&$$9&2EMHFWV'RFXPHQWDWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
&$$93URJUDPPHU
V*XLGH

$OOGRFXPHQWDWLRQVDERXWDGRPDLQ
7HFKQLFDO$UWLFOHV
8VH&DVHV
4XLFNUHIHUHQFHV

&RS\ULJKW'$66$8/76<67(0(6 
&$$93URJUDPPHU
V*XLGH

7HFKQLFDODUWLFOHV
,QGHSWKSDSHU
/HVVWKDQSDJHV
+\SHUOLQNHG

&RS\ULJKW'$66$8/76<67(0(6 
&$$93URJUDPPHU
V*XLGH

8VH&DVHV
&$$9&RGHLQ$FWLRQ
6WHSE\6WHS
(DFKVWHSGHWDLOHGDQGFRPPHQWHG
'HOLYHUHGZLWKIXOO\RSHUDWLRQDOVRXUFHFRGH
0DGHWREHFRSLHGSDVWHGLQWRFXVWRPHUFRGH

&RS\ULJKW'$66$8/76<67(0(6 
&$$93URJUDPPLQJ5XOHV

3URJUDPPLQJ5XOHV
1DPLQJFRQYHQWLRQ
&FRGLQJUXOHV
-DYDFRGLQJUXOHV
$UFKLWHFWXUHUXOHV
8VHU,QWHUIDFHORRNDQGIHHO

$YDLODEOHLQWKHHQF\FORSHGLD

&RS\ULJKW'$66$8/76<67(0(6 
&$$91DPLQJ&RQYHQWLRQ

1DPLQJFRQYHQWLRQV
7RDYRLGQDPHFROOLVLRQV
7RPDNHWKLQJVFOHDUHUIRULWVGHYHORSHUV

1DPHVDUHFRQVWLWXWHGE\(QJOLVKQDPHVHDFKRQH
VWDUWLQJZLWKDQXSSHUFDVH

7KUHHOHWWHUVDOLDVIRUSURGXFWQDPH
&$7930(129'1%UHVHUYHGIRU'6SURGXFWOLQHV

7KUHHOHWWHUVDOLDVIRUHDFKIUDPHZRUN
&$70ROG'HVLJQ)HDWXUH IUDPHZRUN
&$70OG&RPSRQHQWP PRGXOH
&$70OG(MHFWRU,PSOFSSK FODVV
&RS\ULJKW'$66$8/76<67(0(6 
&$$9&3URJUDPPLQJ5XOHV

3UHIHUFODVVIRUZDUGGHFODUDWLRQWRLQFOXGH

$YRLGPXOWLSOHLQKHULWDQFH

8VHYDULDEOHQDPLQJFRQYHQWLRQ
$UJXPHQWSUHIL[ LIRULQSXWRIRURXWSXW
9DULDEOHSUHIL[
S SRLQWHU
SS SRLQWHURQSRLQWHU
VS VPDUWSRLQWHU
SL SRLQWHURQLQWHUIDFH
D DUUD\

'RQRWXVHIULHQGFODVV

&RS\ULJKW'$66$8/76<67(0(6 
7R6XP8S

,QWKLVOHVVRQ\RXKDYHVHHQ«

7KH&$$9GLUHFWRU\WUHHVWUXFWXUH

7KHVSHFLILFWRROVGHYHORSHGRQWRSRIWKH
VWDQGDUGFRPSLOHUVWRVSHHGXSWKHGHYHORSPHQW

7KHLQWHJUDWLRQRIWKHVHVSHFLILFWRROVLQ0LFURVRIW
'HYHORSHU6WXGLRDV$GGLQV

+RZZHGHYHORSRQ:LQGRZV17DQGKRZZHSRUW
RQ81,;

&RS\ULJKW'$66$8/76<67(0(6 
&$$92EMHFW0RGHOHU

,QWKLVOHVVRQ\RXZLOOOHDUQWKH&$$922LQIUDVWUXFWXUH

:K\D1HZ2EMHFW0RGHOHU"
7KH,QWHUIDFH,PSOHPHQWDWLRQ3DWWHUQ
%HWZHHQ,QWHUIDFHVDQGLPSOHPHQWDWLRQV
2EMHFW/LIH&\FOH0DQDJHPHQW
([WHQVLRQ0HFKDQLVP
/DWH7\SLQJ

&RS\ULJKW'$66$8/76<67(0(6 
:K\DQHZ2EMHFW0RGHOHU"

<RXZLOOOHDUQZK\WKH&REMHFWPRGHODORQHGRHVQRWVXLWRXUQHHGV

&DVD6WDUWLQJ3RLQW
:KDW¶VZURQJZLWK&"

&RS\ULJKW'$66$8/76<67(0(6 
&DVD6WDUWLQJ3RLQW

(QFDSVXODWLRQ
&RQWRXU
+LGLQJLPSOHPHQWDWLRQGHWDLOV
9LUWXDO6XUIDFH  
&KDQJLQJSULYDWHSDUWZLWKRXWFOLHQWLPSDFW
&RORU

,QKHULWDQFH
5HXVLQJLPSOHPHQWDWLRQ
6TXDUH &LUFOH ([WHQGLQJW\SHV
6XUIDFH 6XUIDFH
^6 ` ^SL 5 `
6 5 3RO\PRUSKLVP
*HQHULFLW\RQFOLHQWVLGH
6SHFLDOL]DWLRQRISURYLGHUVLGH

&RS\ULJKW'$66$8/76<67(0(6 
:KDW¶VZURQJZLWK&"

(QFDSVXODWLRQFRXOGEHEHWWHU
&RPSLODWLRQOLQNEHWZHHQREMHFWDQGLWVFOLHQW
HYHQLIRQO\DSULYDWHPHPEHUFKDQJHV

&RQWRXU
9LUWXDO6XUIDFH  
&RORU

&RQWRXU
9LUWXDO6XUIDFH  
5HG*UHHQ%OXH

&RS\ULJKW'$66$8/76<67(0(6 
:KDW¶VZURQJZLWK&"

1RWHQRXJKUXQWLPHIOH[LELOLW\
&DQQRWLQVWDQFLDWHFODVVHVE\QDPH

YRLG P\2EM QHZ LDUJY>@

1HHGHGIRU
$GGLQJQHZW\SHVWRWKHV\VWHP«
«DQGOHWWLQJ© ROG ªV\VWHPLQVWDQFLDWHWKHP

&RS\ULJKW'$66$8/76<67(0(6 
:KDW¶VZURQJZLWK&"

1RVXSSRUWIRU©VFKL]RSKUHQLFªREMHFWV
,QODUJHV\VWHPVREMHFWVKDYHPRUHWKDQRQHW\SH7KHVH
W\SHVDUHQHHGHGRUXVHOHVVDFFRUGLQJWRWKHFRQWH[W
0XOWLSOHLQKHULWDQFHLVQRWDVROXWLRQ

Persistent
Displayable
Surfacic

&RS\ULJKW'$66$8/76<67(0(6 
:KDW¶VZURQJZLWK&"

([WHQVLRQRQO\WKRXJKLQKHULWDQFH
+RZWRRUJDQL]HLQKHULWDQFHWUHHV"
:KDWLIH[WHQVLRQVDGGHGODWHU"
:KDWDERXWFRGHPRGXODULW\"

3RLQW 3RLQW 3RLQW


;< ;< ;<

3HUVLVWHQW3RLQW 'LVSOD\3RLQW
6DYH 'LVSOD\
'LVSOD\3RLQW 3HUVLVWHQW3RLQW
'LVSOD\ 6DYH
'LVSOD\3RLQW 3HUVLVWHQW3RLQW
'LVSOD\ 6DYH

&RS\ULJKW'$66$8/76<67(0(6 
7KH,QWHUIDFH,PSOHPHQWDWLRQ3DWWHUQ
<RXZLOOOHDUQWKH,QWHUIDFHKDQGOLQJVKLHOGLQJDQ\FOLHQWDSSOLFDWLRQIURP
LPSOHPHQWDWLRQGHWDLOV
,QWHUIDFH,PSOHPHQWDWLRQ3DWWHUQ
,QWHUIDFH
'HILQLWLRQ
8VLQJDQGUHWULHYLQJ,QWHUIDFHV
&RGLQJDQ,QWHUIDFH
,PSOHPHQWDWLRQ
'HILQLWLRQ
&RGLQJDQ,PSOHPHQWDWLRQ
,PSOHPHQWDWLRQ,QKHULWDQFH
)DFWRU\
'HILQLWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
7KH,QWHUIDFH,PSOHPHQWDWLRQ3DWWHUQ

&OLHQWDQG,PSOHPHQWDWLRQVHSDUDWLRQLVDFKLHYHGE\WKH
PHDQRILQWHUIDFHV

,QWHUIDFHVKLHOGVWKHFOLHQWREMHFWIURPWKH
LPSOHPHQWDWLRQGHWDLOV

XVHV!! LPSOHPHQWV!!
&OLHQW2EMHFW ,QWHUIDFH ,PSOHPHQWDWLRQ

Alternative notation :

&OLHQW2EMHFW ,PSOHPHQWDWLRQ
,QWHUIDFH

&RS\ULJKW'$66$8/76<67(0(6 
,QWHUIDFH

$QLQWHUIDFH
$QLQWHUIDFHLVDQDEVWUDFWREMHFWZLWKDVHWRISXUHYLUWXDO
LVDQDEVWUDFWREMHFWZLWKDVHWRISXUHYLUWXDO
PHWKRGV
PHWKRGVWKDWGHILQHVDEHKDYLRUWKDWREMHFWVDUHVXEMHFWWR
WKDWGHILQHVDEHKDYLRUWKDWREMHFWVDUHVXEMHFWWR
VXSSRUW
VXSSRUW

$QLQWHUIDFHGRHVQRWNQRZZKLFKREMHFWVLPSOHPHQWLW
$QLQWHUIDFHGRHVQRWNQRZZKLFKREMHFWVLPSOHPHQWLW

$QLQWHUIDFHVHWVDFRQWUDFWEHWZHHQDFOLHQWDQGSURYLGHU¶V
$QLQWHUIDFHVHWVDFRQWUDFWEHWZHHQDFOLHQWDQGSURYLGHU¶V
FRGH
FRGH
)XQFWLRQSURWRW\SHV
)XQFWLRQSURWRW\SHV
'HVLJQLQWHQW
'HVLJQLQWHQW
$OOLQWHUIDFHVLQKHULWIURP,8QNQRZQ&$7%DVH8QNQRZQ
$OOLQWHUIDFHVLQKHULWIURP,8QNQRZQ&$7%DVH8QNQRZQ

&RS\ULJKW'$66$8/76<67(0(6 
%HKDYLRURU$EVWUDFW'DWD7\SH

6ROLG

$FRPPRQEHKDYLRU
$FRPPRQEHKDYLRU ,QWHUIHUHQFH

VKDUHGE\PDQ\REMHFWV
VKDUHGE\PDQ\REMHFWV
FKHFNLQJ

LQWHUIDFH

6XUIDFH

,QWHUIDFHV

,PSOHPHQWDWLRQV

$QDEVWUDFWGDWDW\SH
$QDEVWUDFWGDWDW\SH &$7,$9

LPSOHPHQWHGE\PDQ\
LPSOHPHQWHGE\PDQ\
/LQH

REMHFWV
REMHFWV
/LQH

,QWHUIDFH
&$7,$9

3LSH

&$7,$9

/LQH

&RS\ULJKW'$66$8/76<67(0(6 
,QWHUIDFH,QKHULWDQFH

,QWHUIDFHVFDQLQKHULWIURPHDFKRWKHU

6XUIDFH ,3HUVLVWHQW

,'LVSOD\

,*UDSKLF3URSHUW\$FFHVV

6XUIDFH © 20 ª

,*UDSKLF3URSHUW\(GLW

&RS\ULJKW'$66$8/76<67(0(6 
8VLQJ,QWHUIDFHV

+RZDQDSSOLFDWLRQXVHVLW

$QLQWHUIDFH #include "CATITransform.h"


[...]
&$7,7UDQVIRUP CATITransform * transformInterface;
// [...Here we get the instance of the interface...]
YLUWXDO7UDQVODWH  if (transformInterface)
YLUWXDO5RWDWH 
{
YLUWXDO0RYH 
CATVector3f translVector(10., 10., 10.);
transformInterface->7UDQVODWH(translVector);
cout << "Element translated" << endl;
}

7UDQVODWH service is DVNHGWRWKHLQWHUIDFH, not to the implementation.

m $SSOLFDWLRQXVHVLQWHUIDFHVLQVWHDGRI LPSOHPHQWDWLRQREMHFWV
m 7KHDSSOLFDWLRQUHPDLQVLVRODWHG IURPLPSOHPHQWDWLRQ

EXWKRZWRJHWDQLQWHUIDFH"
EXWKRZWRJHWDQLQWHUIDFH"

&RS\ULJKW'$66$8/76<67(0(6 
*HWWLQJDQ,QWHUIDFHIURPDQ
,PSOHPHQWDWLRQ
[...]
[...]
////Query
Queryififpoint
pointimplementation
implementationcancanprovide
provideaaCATITransform
CATITransforminterface
interface
CATITransform * transformInterface =
CATITransform * transformInterface = NULL; NULL;
+5(68/7UF
+5(68/7UF SRLQW,PSO!4XHU\,QWHUIDFH ,,'B&$7,7UDQVIRUP
SRLQW,PSO!4XHU\,QWHUIDFH ,,'B&$7,7UDQVIRUP
YRLG WUDQVIRUP,QWHUIDFH 
YRLG WUDQVIRUP,QWHUIDFH 
////Use
Use returned interface to manipulatepoint
returned interface to manipulate point
ififSUCCEEDED
SUCCEEDED (rc) (rc)
{{
transformInterface
transformInterface->7UDQVODWH(...);
->7UDQVODWH(...);
cout
cout<<<<"Point
"Pointtranslated"
translated"<<
<<endl;
endl;
}}
[...]
[...] 4XHU\,QWHUIDFH returns as its second argument an instance of &$7,7UDQVIRUP if
SRLQW,PSO implementation instance adheres to it, 18// otherwise.

+RZHYHUFOLHQWVVKRXOGQRWGHDOZLWKLPSOHPHQWDWLRQVWRDYRLGFRXSOLQJ
+RZHYHUFOLHQWVVKRXOGQRWGHDOZLWKLPSOHPHQWDWLRQVWRDYRLGFRXSOLQJ
7KLVFDSDELOLW\LVRIIHUHGIRUVSHFLDOSXUSRVHVOLNHIDFWRU\SURJUDPPLQJ
7KLVFDSDELOLW\LVRIIHUHGIRUVSHFLDOSXUSRVHVOLNHIDFWRU\SURJUDPPLQJ

&RS\ULJKW'$66$8/76<67(0(6 
*HWWLQJDQ,QWHUIDFHIURPDQRWKHU,QWHUIDFH

[...]
[...]
////Query
QueryififCATIVisu
CATIVisuinterface
interfaceisissupported
supportedininaddition
additiontotoCATITransform
CATITransform
+5(68/7UF WUDQVIRUP,QWHUIDFH!4XHU\,QWHUIDFH ,,'B&$7,9LVX
+5(68/7UF WUDQVIRUP,QWHUIDFH!4XHU\,QWHUIDFH ,,'B&$7,9LVX
YRLG YLVX,QWHUIDFH 
YRLG YLVX,QWHUIDFH 
////Use returned interface to manipulate
Use returned interface to manipulate point point
ififSUCCEEDED
SUCCEEDED(rc) (rc)
{{
visuInterface->'UDZ(...);
visuInterface->'UDZ(...);
cout
cout<<<<"Point
"Pointdisplayed"
displayed"<< <<endl;
endl;
}}
[...]
[...]
4XHU\,QWHUIDFH DOVRZRUNVZLWKDQH[LVWLQJLQWHUIDFHLQVWDQFH as
input, i.e. an interface instance can be queried against adherence to
another interface just as the implementation object it stands for.

&RS\ULJKW'$66$8/76<67(0(6 
,QWHUIDFHDWZRUN

0DFURVWRGHILQH
DQHZLQWHUIDFHFODVV
CATISample.h
CATISample.h CATISample.cpp
CATISample.cpp
[...]
[...] [...]
[...]
#include
#include“CATBaseUnknown.h”
“CATBaseUnknown.h” #include
#include“CATISample.h”
“CATISample.h”
extern
extern IIDIID_CATISample;
IID IID_CATISample;
class
class CATISample:public
CATISample: public &$7,PSOHPHQW,QWHUIDFH &$7,6DPSOH
&$7,PSOHPHQW,QWHUIDFH &$7,6DPSOH
&$7%DVH8QNQRZQ &$7%DVH8QNQRZQ 
&$7%DVH8QNQRZQ &$7%DVH8QNQRZQ 
{{ [...]
[...]
&$7'HFODUH,QWHUIDFH
&$7'HFODUH,QWHUIDFH
;;
public:
public:
virtual
virtual...... Method1(...)
Method1(...)==00; ;
virtual
virtual...... Method2(...)
Method2(...)==00; ;
};};
[...]
[...]

,QWHUIDFHLQKHULWDQFH

&RS\ULJKW'$66$8/76<67(0(6 
,QWHUIDFHDWZRUNWKH*8,'

7KH*OREDO8QLTXH,GHQWLILHU *8,' RIDQ,QWHUIDFHLVVWRUHG


IURP95LQDVSHFLILFPRGXOH
0RGXOH¶VGHIDXOWQDPHJHQHUDWHGE\&$$ZL]DUG
0\)UDPHZRUN,QWHUIDFHV88,'P
1DPHRIWKHILOH
&$7,6DPSOHFSS
CATISample.cpp
CATISample.cpp
#include
#include“IUnknown.h”
“IUnknown.h”
extern
extern "C"const
"C" const,,',,'B&$7,6DPSOH ^[EEFDD[[G^[[ [[
,,',,'B&$7,6DPSOH ^[EEFDD[[G^[[ [[
[E[[[``
[E[[[``
7RFRPSXWHD*8,'

RQ81,; XXLGBJHQF

RQ17XXLGJHQV

7KH0\)UDPHZRUN,QWHUIDFHV88,'PRGXOHKDVWREHLQFOXGHG
LQWKH,PDNHILOHPNILOHVLQRWKHU)UDPHZRUNVIRU
DFFHVVLQJ&$7,6DPSOHLQWHUIDFH
&RS\ULJKW'$66$8/76<67(0(6 
,PSOHPHQWDWLRQ
$Q LPSOHPHQWDWLRQ LVDQREMHFWWKDWGHILQHVD
$QLPSOHPHQWDWLRQ VSHFLILF
LVDQREMHFWWKDWGHILQHVDVSHFLILF
ZD\WRIXOILOOWKHFRQWUDFWVHWE\DQLQWHUIDFH
ZD\WRIXOILOOWKHFRQWUDFW
ZD\WRIXOILOOWKHFRQWUDFWVHWE\DQLQWHUIDFH

– $QLPSOHPHQWDWLRQKDVWRH[SOLFLWO\ VWDWHZKLFK
LQWHUIDFH V LWDGKHUHV WR
– $QLPSOHPHQWDWLRQSURYLGHVFRGHIRUDOOWKH
DEVWUDFWPHWKRGV GHILQHGLQWKHLQWHUIDFHVLW
DGKHUHVWR
– $QLPSOHPHQWDWLRQPD\DGKHUHWRPDQ\ LQWHUIDFHV

– 7KHFOLHQWDSSOLFDWLRQGHDOVZLWKWKH
LPSOHPHQWDWLRQRQO\WKURXJKWKHLQWHUIDFH

&OLHQWFRGH ,QWHUIDFH ,PSOHPHQWDWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
,PSOHPHQWDWLRQDWZRUN
0DFURVIRUDQLPSOHPHQWDWLRQFODVV
ImplSample.h ImplSample.cpp
ImplSample.cpp
ImplSample.h
[...]
[...] [...]
[...]
#include
#include“CATBaseUnknown.h”
“CATBaseUnknown.h” #include
#include“ImplSample.h”
“ImplSample.h”
class
classImplSample:
ImplSample:public
public &$7,PSOHPHQW&ODVV ,PSO6DPSOH
&$7,PSOHPHQW&ODVV ,PSO6DPSOH
&$7%DVH8QNQRZQ ,PSOHPHQWDWLRQ
&$7%DVH8QNQRZQ ,PSOHPHQWDWLRQ
{{ &$7%DVH8QNQRZQ
&$7%DVH8QNQRZQ
&$7'HFODUH&ODVV
&$7'HFODUH&ODVV
;; &$71XOO
&$71XOO
[...]
[...]
public:
public: ////CATISample
CATISampleadhesion
adhesion
ImplSample()
ImplSample(); ; [...]
[...]
~ImplSample()
~ImplSample(); ; ...... ImplSample::Method1()
ImplSample::Method1(){ {…
…} }
...... ImplSample::Method2()
ImplSample::Method2(){ {…
…} }
////CATISample
CATISampleadhesion
adhesion
...... Method1(…)
Method1(…); ; ////Other
Othermethods
methods
...... Method2(…)
Method2(…); ; [...]
[...]
////Other
Othermethods
methods
[...]
[...]
} }; ;

,PSO6DPSOH
&$7,6DPSOH

&RS\ULJKW'$66$8/76<67(0(6 
,PSOHPHQWDWLRQDWZRUN
0DFURVIRUDQLPSOHPHQWDWLRQFODVVZLWKLQKHULWDQFH

ImplSampleB.h
ImplSampleB.h ImplSampleB.cpp
ImplSampleB.cpp
[...]
[...] [...]
[...]
#include
#include“CATBaseUnknown.h”
“CATBaseUnknown.h” #include
#include“ImplSampleB.h”
“ImplSampleB.h”
class
classImplSampleB:
ImplSampleB:public
public,PSO6DPSOH
,PSO6DPSOH
&$7,PSOHPHQW&ODVV ,PSO6DPSOH%
&$7,PSOHPHQW&ODVV ,PSO6DPSOH%
{{ ,PSOHPHQWDWLRQ
,PSOHPHQWDWLRQ
&$7'HFODUH&ODVV; ,PSO6DPSOH
&$7'HFODUH&ODVV; ,PSO6DPSOH
&$71XOO
&$71XOO
public:
public: [...]
[...]
ImplSampleB()
ImplSampleB(); ; ////CATISample
CATISampleadhesion
adhesion
~ImplSampleB()
~ImplSampleB(); ; [...]
[...]
...... ImplSample::Method1()
ImplSample::Method1(){ {…
…} }
////CATISample
CATISampleadhesion
adhesion ...... ImplSample::Method2()
ImplSample::Method2(){ {…
…} }
...... Method1(…)
Method1(…); ;
...... Method2(…)
Method2(…); ; ////Other
Othermethods
methods
[...]
[...]
////Other
Othermethods
methods
[...]
[...]
} }; ;

&RS\ULJKW'$66$8/76<67(0(6 
7KH&$7,PSOHPHQW&ODVV0DFUR

&$7,PSOHPHQW&ODVV WKLV&ODVV1DPH!
&$7,PSOHPHQW&ODVV WKLV&ODVV1DPH!
LWV20W\SH!
LWV20W\SH!
LWV20LQKHULWDQFH_&$7%DVH8QNQRZQ!
LWV20LQKHULWDQFH_&$7%DVH8QNQRZQ!
ZKDWLWH[WHQGV_&$71XOO
ZKDWLWH[WHQGV_&$71XOO

PDLQW\SHV
• ,PSOHPHQWDWLRQ
• &RGH([WHQVLRQ
• 'DWD([WHQVLRQ

&RS\ULJKW'$66$8/76<67(0(6 
,PSOHPHQWDWLRQ,QKHULWDQFH

&$7,6DPSOH ,PSO6DPSOH

&$7,6DPSOH ,PSO6DPSOH ,PSO6DPSOH

– ,PSO6DPSOHDGKHUHVWR&$7,6DPSOHDQG
WR&$7,6DPSOHE\LQKHULWDQFHIURP
,PSO6DPSOHZKHUHDV,PSO6DPSOHDGKHUHV
RQO\WR&$7,6DPSOH

&RS\ULJKW'$66$8/76<67(0(6 
)DFWRU\
$ IDFWRU\ LVDVSHFLDOREMHFWWKDWFRQWDLQV
$IDFWRU\ LVDVSHFLDOREMHFWWKDWFRQWDLQV
PHWKRGV GHGLFDWHGWRREMHFWFUHDWLRQ
PHWKRGVGHGLFDWHGWRREMHFWFUHDWLRQ

7KHIDFWRU\FUHDWHV DQLPSOHPHQWDWLRQ REMHFWDQG


UHWXUQV DQLQWHUIDFH REMHFWRQLW

7KHIDFWRU\PLQLPL]HVWKHFRXSOLQJ VLQFHWKHFOLHQW
DSSOLFDWLRQGRHVQ¶WPDQLSXODWHDQ\LPSOHPHQWDWLRQ
LQVWDQFH

7KHREMHFWFUHDWLRQLVFHQWUDOL]HG ZKLFKHQDEOHVD
EHWWHUREMHFWPDQDJHPHQW

&RS\ULJKW'$66$8/76<67(0(6 
)DFWRU\DWZRUNZLWKLQDFOLHQWDSSOLFDWLRQ

,QWHUIDFHVRQIDFWRU\DUHXVXDOO\UHWULHYHGWKURXJKD4XHU\,QWHUIDFH
RQDKLJKOHYHOREMHFW GRFXPHQWVFRQWDLQHUV 

[...]
[...]
////Retrieve
Retrievethe
theFactory
Factory
CATICatalogFactory
CATICatalogFactory*myFactory
*myFactory==...;
...;
CATICatalog *myCatalog = myFactory->
CATICatalog *myCatalog = myFactory->&UHDWH&DWDORJ (“CatalogA”);
&UHDWH&DWDORJ(“CatalogA”);

[...]
[...]

7KH&UHDWH&DWDORJ PHWKRGFUHDWHVDQLPSOHPHQWDWLRQ
REMHFWDQGUHWXUQDQLQWHUIDFHRQLWWRWKHFOLHQWDSSOLFDWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
%HWZHHQ,QWHUIDFH DQGLPSOHPHQWDWLRQ
<RXZLOOOHDUQKRZWKHOLQNEHWZHHQLQWHUIDFHDQGLPSOHPHQWDWLRQ LVGRQH
WKURXJK7,(REMHFWV

7,('HILQLWLRQ
7ZRW\SHVRI7,(
6WDQGDUG7,(
&KDLQHG7,(
7,(*HQHUDWLRQ
7,(DWZRUN

&RS\ULJKW'$66$8/76<67(0(6 
7,('HILQLWLRQ
$ 7,( LVWKHREMHFWWKDW
$7,( OLQNV
LVWKHREMHFWWKDWOLQNV
WKHLQWHUIDFHDQGWKHLPSOHPHQWDWLRQ
WKHLQWHUIDFHDQGWKHLPSOHPHQWDWLRQ

(YHU\UHTXHVWWRDQLQWHUIDFHPHWKRGLVUHGLUHFWHGWR
WKHFRUUHVSRQGLQJLPSOHPHQWDWLRQPHWKRGWKURXJK
WKH7,(

&$$,3RLQW 3RLQW,PSO

$SRLQWHURQDQLQWHUIDFHLVLQ
IDFWDSRLQWHURQD7,(REMHFW

SL3RLQW

7,(B&$$,3RLQW

&RS\ULJKW'$66$8/76<67(0(6 
6WDQGDUGDQG&KDLQHG7,(

6WDQGDUG7,( &KDLQHG7,(
:KHQDSRLQWHUWRDQLQWHUIDFHLV :KHQDSRLQWHUWRDQLQWHUIDFHLV
UHTXLUHGDQHZ7,(LVUHWULHYHGHYHQLI UHTXLUHGDQH[LVWLQJRQHLVUHWULHYHG
WKHUHLVDOUHDG\RQHIRUWKHXQGHUO\LQJ LISRVVLEOH
LPSOHPHQWDWLRQREMHFW • %HWWHUPHPRU\XVDJH
• 6ORZHUTXHU\LQWHUIDFH

3RLQW,PSO 3RLQW,PSO
SL3RLQW SL3RLQW

7,(B&$$,3RLQW 7,(B&$$,3RLQW

SL3RLQW

SL3RLQW
7,(B&$$,3RLQW

&RS\ULJKW'$66$8/76<67(0(6 
7,(*HQHUDWLRQ

,IWKHLQWHUIDFHLVGHILQHGLQ&WKH7,(KHDGHUILOH
ZLOOEHJHQHUDWHGLI\RXFUHDWHDILOH
7,(B&$7,[[[WVUFWKDWMXVWLQFOXGHVWKHLQWHUIDFH
KHDGHUILOH&$7,[[[K
• 7,(B&$7,[[[WVUFLVJHQHUDWHGE\DZL]DUGXQGHU9LVXDO6WXGLR

):,QWHUIDFHV!):,WI&33P&$7,3RLQWWVUF

//Code Generated by the CAA Wizard


//This source file insures the regeneration of the tie TIE_CAAIPoint.h
#include "CAAIPoint.h"

PNPN

):,QWHUIDFHV!3URWHFWHG*HQHUDWHGLQWHOBD7,(B&$7,3RLQWK

&RS\ULJKW'$66$8/76<67(0(6 
7,(DWZRUN
7,(DWZRUN

ImplSample.cpp
ImplSample.cpp
– 7KH7,(B[[[PDFURLV [...]
[...]
#include
#include“ImplSample.h”
XVHGIRUDVWDQGDUG7,( “ImplSample.h”
CATImplementClass
CATImplementClass( (ImplSample,
ImplSample,
Implementation,
Implementation,
CATBaseUnknown,
CATBaseUnknown,
CATNull
CATNull) )
[...]
– 7KH7,(FKDLQB[[[ [...]
////CATISample
CATISampleadhesion
adhesion
PDFURLVXVHGIRUD LQFOXGH³7,(B&$7,6DPSOHK´
LQFOXGH³7,(B&$7,6DPSOHK´
7,(B&$7,6DPSOH ,PSO6DPSOH 

FKDLQHG7,( 7,(B&$7,6DPSOH ,PSO6DPSOH 

...... ImplSample::Method1(...)
ImplSample::Method1(...){ {…
…} }
...... ImplSample::Method2(...)
ImplSample::Method2(...){ {…
…} }
////Other
Othermethods
methods
[...]
[...]

6WDWHPHQWGHILQLQJ,PSO6DPSOH
DGKHVLRQWR&$7,6DPSOH LQWHUIDFH
XVLQJDVWDQGDUG7,(
&RS\ULJKW'$66$8/76<67(0(6 
2EMHFW/LIH&\FOH0DQDJHPHQW
<RXZLOOOHDUQKRZWR PDQDJHWKHOLIHF\FOHRILQWHUIDFHVDQGLPSOHPHQWDWLRQV
WKURXJKWKH5HIHUHQFHFRXQWLQJDQGVPDUWSRLQWHUWHFKQLTXHV

0DQDJLQJWKH2EMHFW/LIH&\FOH
5HIHUHQFH&RXQWLQJ
7KHRU\
([DPSOHV
*ROGHQ5XOHV
6PDUW3RLQWHUV
7KHRU\
5HFRPPHQGDWLRQ
'RDQGGRQRW

&RS\ULJKW'$66$8/76<67(0(6 
0DQDJLQJWKH2EMHFW/LIH&\FOH

&1H[W 2EMHFW0RGHOHUUXOHV

,PSOHPHQWDWLRQVKRXOGEHPDQLSXODWHGE\
DSSOLFDWLRQVRQO\WKURXJKLQWHUIDFHV
$QLPSOHPHQWDWLRQFDQRQO\EHGHOHWHGZKHQ
LWVODVWSRLQWLQJLQWHUIDFHLVGHOHWHG
7KH&1H[W2EMHFW0RGHOHUGHOHWHVDXWRPDWLFDOO\
LPSOHPHQWDWLRQ

:KRVKRXOGGHOHWHREMHFWVDQGKRZ"
:KRVKRXOGGHOHWHREMHFWVDQGKRZ"

&RS\ULJKW'$66$8/76<67(0(6 
0DQDJLQJWKH,QWHUIDFH/LIH&\FOH

– 0DQ\FOLHQWREMHFWVFDQ
KROGDUHIHUHQFHRQWKH
$&ODVV

CATITransform* T;
VDPHLQWHUIDFHDWWKH ...

VDPHWLPH delete T;
$QRWKHU&ODVV

– 2QHFOLHQWREMHFWXVXDOO\ CATITransform* T;
KROGVPRUHWKDQRQH ...
T->Translate();
UHIHUHQFHWRDQ
LPSOHPHQWDWLRQDWDWLPH
%RRP

– ,IRQHRIWKHVHFOLHQWV
&$7,7UDQVIRUP

GHFLGHVWRGHOHWHWKH 7UDQVODWH

LQWHUIDFHWKURXJKLWV
UHIHUHQFHZKDWKDSSHQV
WRRWKHUV"
2EMHFW0RGHOHU
2EMHFW0RGHOHURIIHUVWZRPHFKDQLVPVWKDW
RIIHUVWZRPHFKDQLVPVWKDW
VHFXUHWKHH[LVWHQFHRIDQLQWHUIDFH
VHFXUHWKHH[LVWHQFHRIDQLQWHUIDFHXVHGE\REMHFWV
XVHGE\REMHFWV
&RS\ULJKW'$66$8/76<67(0(6 
5HIHUHQFH&RXQWLQJ

– ,QWHUIDFHRIIHUVVSHFLDOPHWKRGVIRUORFNLQJ
LWVHOIIURPGHOHWLRQE\RWKHUV

– $FOLHQWRIDQLQWHUIDFHLQFUHPHQWVWKHUHIHUHQFH
FRXQWRQWKHLQWHUIDFHZKLOHLWQHHGVLW

– $FOLHQWGHFUHPHQWVWKHUHIHUHQFHFRXQWZKHQ
WKHLQWHUIDFHLVQRPRUHQHHGHG

– 7KHUHPRYDORIWKHODVWUHIHUHQFHFDXVHVWKH
GHOHWLRQRIWKHLQWHUIDFHE\2EMHFW0RGHOHU

&RS\ULJKW'$66$8/76<67(0(6 
5HIHUHQFH&RXQWLQJDWZRUN

QueryInterface
QueryInterfacedoes
doesanan$GG5HI to
$GG5HI tosecure
secure
the
the interface pointer before returning it tocaller.
interface pointer before returning it to caller.

[...]
[...]
CATIVisu*
CATIVisu*visuItf
visuItf==NULL;
NULL;
hrhr==persistentItf-> 4XHU\,QWHUIDFH(IID_CATIVisu, (void**)&visuItf) ;
persistentItf->4XHU\,QWHUIDFH(IID_CATIVisu, (void**)&visuItf) ;
persistentItf->
persistentItf->5HOHDVH (); // Done with old interface
5HOHDVH(); // Done with old interface

visuItf->Draw(
visuItf->Draw(......) ); ;
visuItf->
visuItf->5HOHDVH () ;
5HOHDVH() ;
////Done
Donewith
withlast
lastinterface
interface
[...]
[...]

5HPDUNa pointer copy does not increase the reference count, we must call AddRef()

&RS\ULJKW'$66$8/76<67(0(6 
)DFWRU\DQG5HIHUHQFH&RXQWLQJ

CAAIPoint *piPoint = factory->CreatePoint( );

PointImpl *pPointImpl = new PointImpl( );


pPointImpl->QueryInterface( IID_CAAIPoint, (void**)&piPoint);
pPointImpl->Release( );
return piPoint;

piPoint-> QueryInterface(IID_CATIMove, (void**)&piMove);


piPoint->Release( );
piPoint TIE_CAAIPoint
piMove->Release( ); PointImpl
10 1 2 1210

piMove TIE_CATIMove
10

&RS\ULJKW'$66$8/76<67(0(6 
5HIHUHQFH&RXQWLQJ*ROGHQ5XOHV

– 0HWKRGVUHWXUQLQJDSRLQWHURQLQWHUIDFH H[4,
IDFWRU\ VKRXOGDOZD\V$GG5HI LWSULRUWR
UHWXUQLQJ

– &OLHQWVUHFHLYLQJVXFKDSRLQWHUVKRXOGDOZD\V
5HOHDVH LWDIWHUXVDJH
• 7LSZULWHWKH5HOHDVH FRGHMXVWDIWHUWKHIXQFWLRQFDOOWKDWFUHDWHGWKH
LQWHUIDFHSRLQWHUDQG© SXVK ªLWZLWKXVDJHFRGH
• 7LSZKHQXVLQJ4, \RXXVXDOO\FDQ5HOHDVH WKHROGLQWHUIDFHDIWHU
JHWWLQJWKHQHZRQH

– $YRLGSDVVLQJLQWHUIDFHSRLQWHUVDURXQG
• ,IIRUFHGWRGRVRFDUHIXOO\$GG5HI WKHP

&RS\ULJKW'$66$8/76<67(0(6 
5HIHUHQFH&RXQWLQJ*ROGHQ5XOHV

– $GRSWDFRQVLVWHQWQDPLQJVFKHPH
• 0DQLSXODWLQJWKHVDPHREMHFWWKURXJKPDQ\GLIIHUHQWLQWHUIDFHSRLQWHU
TXLFNO\JHWVFRQIXVLQJ

&$7,QLW
&$7,QLW  SL,QLW2Q'RF

&$7,3HUVLVWHQW  SL3HUVLWHQW2Q'RF
&$7,3HUVLVWHQW 'RFXPHQW
&$7,'RF$OLDV  SL'RF$OLDV2Q'RF
&$7,'RF$OLDV

&RS\ULJKW'$66$8/76<67(0(6 
6PDUW3RLQWHUV DOVRFDOOHG+DQGOHUV

$VPDUWSRLQWHULVDFODVVDVVRFLDWHGWRDQLQWHUIDFHWKDW
$VPDUWSRLQWHULVDFODVVDVVRFLDWHGWRDQLQWHUIDFHWKDW
EHKDYHVOLNHDQLQWHUIDFHSRLQWHUZLWKDGGLWLRQDODXWRPDWLF
EHKDYHVOLNHDQLQWHUIDFHSRLQWHUZLWKDGGLWLRQDODXWRPDWLF
UHIHUHQFHFRXQWLQJ
UHIHUHQFHFRXQWLQJ

– 6PDUWSRLQWHUVIRULQWHUIDFH&$7,[[[DUHRIW\SH
&$7,[[[BYDU

– %HLQJREMHFWVWKH\PDQDJHUHIHUHQFHFRXQWLQJ
WKURXJKFRGHLQGHVWUXFWRUFRQVWUXFWRU
DVVLJQPHQWRSHUDWRUHWF

&RS\ULJKW'$66$8/76<67(0(6 
6PDUW3RLQWHUV$ULWKPHWLF
&$7,9LVXBYDU D&$7,9LVX

&$7,7UDQVIRUPBYDU D&$7,7UDQVIRU

2SHUDWRU ([DPSOH 0HDQLQJ

!
aCATIVisu->Draw() 'HUHIHUHQFH Access a public member of the interface. It makes
the usage of interface very similar to a regular C++ pointer on
implementation. Remark: do not use the "." operator with
handlers.
aCATIVisu = aCATITransfor $VVLJQPHQW Make aCATIVisu refer to the same implementation
as aCATITransfor.
Since those handlers are not of the same type, it manages a
downcast if left value is a subtype of right value. If not, it runs a
QueryInterface on left value. Therefore the result can be a NULL
handler.
aCATIVisu(CATITransfor) &RS\&RQVWUXFWLRQ Handlers preferred way of performing a
QueryInterface(). Result can therefore be a null_var handler.
,V(TXDO Test if two interface instances are dealing with the same
if (aCATIVisu==aCATITransfor) implementation. Thanks to NULL_var which defines NULL handler
value.

if (aCATIVisu!=aCATITransfor) ,V'LIIHUHQW Test if two interface instances are dealing with
different implementations.

if (!aCATIVisu) Test if an interface instance is actually bound to an
,V1XOO

implementation.

&RS\ULJKW'$66$8/76<67(0(6 
6PDUW3RLQWHUVRU$GG5HI5HOHDVH"

– 8VLQJRQO\6PDUW3RLQWHUVLVQRWSRVVLEOH
• )RUH[DPSOH4XHU\,QWHUIDFH DXWRPDWLFDOO\LQFUHPHQWVWKHUHIHUHQFHFRXQW

– 0L[LQJWKHWZRFDQEHH[SORVLYH
• 0HPRU\OHDNV
• &RUHGXPSV

– :HUHFRPPHQGWRHLWKHU
• 6WLFNWR5HIHUHQFH&RXQWLQJ
– +HDYLHUWRFRGHEXWFRQVLVWHQW
• 8VHUHIHUHQFHFRXQWLQJDWIXQFWLRQERXQGDULHV SDVVLQJLQWHUIDFHVDV
DUJXPHQWV DQGVPDUWSRLQWHUVZLWKLQIXQFWLRQ¶VVFRSH
– &RGHDELWVLPSOHU
– %XW\RXQHHGWRPDQDJHWKHPL[

&RS\ULJKW'$66$8/76<67(0(6 
'RDQG'R1RW

&RQVLGHULQJWKHPHWKRG
&$7,9LVX *HW,YLVX 

'RQ¶WGR ,QVWHDG'R

{ {
CATIPersistent_var spPersiOnX; CATIPersistent_var spPersiOnX;
spPersiOnX = GetIVisu(); CATIVisu *pVisuOnX = GetIVisu();
spPersiOnX ->Release(); spPersiOnX = pVisuOnX;
} pVisuOnX ->Release();
}

,QWKDWFDVHWKH5HOHDVHDSSOLHV
WRWKH&$7,3HUVLVWHQWLQWHUIDFH
QRWWRWKH&$7,9LVXLQWHUIDFH

&RS\ULJKW'$66$8/76<67(0(6 
'RDQG'R1RW

&RQVLGHULQJWKHPHWKRG
&$7,9LVXBYDU*HW3DUHQW,YLVX 

'RQ¶WGR ,QVWHDG'R

{ {
CATIVisu_var spVisuOnX; CATIVisu_var spVisuOnX;
spVisuOnX = GetParentIVisu(); spVisuOnX = GetParentIVisu();
spVisuOnX ->Release(); }
}

,QWKDWFDVHWKHUHWXUQYDOXHLVD
VPDUWSRLQWHUWKDWLQFUHPHQWVWKH
UHIHUHQFHFRXQWXSRQFUHDWLRQ
DQGGHFUHPHQWVLWXSRQGHOHWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
([WHQVLRQ0HFKDQLVP
<RXZLOOOHDUQKRZWRSURYLGHH[LVWLQJREMHFWVZLWKQHZEHKDYLRUV

([WHQVLRQ
([WHQVLRQ([DPSOH
'LFWLRQDU\
([WHQVLRQDWZRUN
([WHQVLRQ7\SHV

&RS\ULJKW'$66$8/76<67(0(6 
([WHQVLRQ
$Q H[WHQVLRQLVDQREMHFW
H[WHQVLRQ
$QH[WHQVLRQLVDQREMHFW WKDWDGGV QHZFDSDELOLWLHVWRDQ
QHZFDSDELOLWLHV
WKDWDGGVQHZFDSDELOLWLHVWRDQ
H[LVWLQJLPSOHPHQWDWLRQREMHFW
H[LVWLQJLPSOHPHQWDWLRQREMHFW

– $QH[WHQVLRQLPSOHPHQWV LQWHUIDFHVWRFUHDWHD
FRPSRQHQW

– &RPSRQHQW %DVH([WHQVLRQ,QWHUIDFHV

– $QH[WHQVLRQFDQUHO\RQFDSDELOLWLHVH[SRVHGE\LWV
EDVHLPSOHPHQWDWLRQRURWKHUH[WHQVLRQV
&RS\ULJKW'$66$8/76<67(0(6 
([WHQVLRQ([DPSOH

$VGHOLYHUHGE\'6 $VPRGLILHGE\FXVWRPHU

,PSO$ &$7,6DPSOH
,PSO$ &$7,6DPSOH

,PSO% &$7,6DPSOH
,PSO% &$7,6DPSOH

([W% &$7,6DPSOH

&RS\ULJKW'$66$8/76<67(0(6 
'LFWLRQDU\

$ GLFWLRQDU\ LVUHTXLUHGWR
$GLFWLRQDU\ ORFDWH DOORWKHULQWHUIDFHVERXQG
LVUHTXLUHGWRORFDWH DOORWKHULQWHUIDFHVERXQG
WRDJLYHQLPSOHPHQWDWLRQRULWVH[WHQVLRQV
WRDJLYHQLPSOHPHQWDWLRQRULWVH[WHQVLRQV

,PSO6DPSOH &$7,6DPSOH

Usually one dictionary per framework


stored under ([W6DPSOH &$7,6DPSOH
…\CNext\code\dictionary
0\$SSOLGLFR

ImplSample CATISample libImplSample


ImplSample CATISample2 libExtSample

Component
Interface it adheres to
directly, through its
extensions or by inheritance Library that contains the actual
code for this given interface
adhesion.
&RS\ULJKW'$66$8/76<67(0(6 
([WHQVLRQ$W:RUN
ExtSample.h
ExtSample.h 0DFURVIRUDQH[WHQVLRQFODVV
ExtSample.cpp
ExtSample.cpp
[...]
[...]
#include
#include“CATBaseUnknown.h”
“CATBaseUnknown.h” [...]
[...]
#include
#include“ExtSample.h”
“ExtSample.h”
class
classExtSample:
ExtSample:public
publicCATBaseUnknown
CATBaseUnknown
{{ CATImplementClass
CATDeclareClass; CATImplementClass( (ExtSample,
ExtSample,
CATDeclareClass; 'DWD([WHQVLRQ,
'DWD([WHQVLRQ,
UGDUJXPHQWXVHOHVV CATBaseUnknown,
CATBaseUnknown,
public:
public:
ExtSample()
IRUDQH[WHQVLRQ ,PSO6DPSOH )
,PSO6DPSOH )
ExtSample(); ; [...]
[...]
~ExtSample()
~ExtSample(); ; ////CATISample2
CATISample2adhesion
adhesion
[...]
[...]
////CATISample2
CATISample2adhesion ......ExtSample::Method3()
......Method3(…) ;
adhesion ExtSample::Method3(){ {…
…} }
Method3(…) ;
////Other
Othermethods
methods
////Other
Othermethods
methods [...]
[...] [...]
[...]
} }; ;

,PSO6DPSOH &$7,6DPSOH

([W6DPSOH &$7,6DPSOH
&RS\ULJKW'$66$8/76<67(0(6 
([WHQVLRQ7\SHV

– 'DWDH[WHQVLRQ
• ,WFRQWDLQVPHWKRGV DQGGDWD
• 2QHH[WHQVLRQLQVWDQFHSHULPSOHPHQWDWLRQREMHFWLQVWDQFH

– &RGHH[WHQVLRQ
• ,WFRQWDLQVRQO\ PHWKRGV
• $VLQJOHH[WHQVLRQLQVWDQFHIRUDOOWKHLPSOHPHQWDWLRQREMHFW
LQVWDQFHV

&RS\ULJKW'$66$8/76<67(0(6 
/DWH7\SLQJ
,QWKLVOHVVRQ\RXZLOOOHDUQKRZWRLQVWDQWLDWHW\SHVXQNQRZQDWEXLOGWLPH

/DWH7\SH
/DWH7\SHDWZRUN
/DWH7\SH,QVWDQWLDWLRQ
/DWH7\SH,QKHULWDQFH

&RS\ULJKW'$66$8/76<67(0(6 
/DWH7\SH
7KH ODWHW\SLQJ LVDPHFKDQLVPZKLFKHQDEOHVWKH
7KHODWHW\SLQJ LVDPHFKDQLVPZKLFKHQDEOHVWKH
LQVWDQWLDWLRQRIFRPSRQHQWVE\QDPHDWUXQWLPH
LQVWDQWLDWLRQRIFRPSRQHQWVE\QDPHDWUXQWLPH

$QREMHFWLVGHILQHGE\DFKDUDFWHUVWULQJLWVODWH
W\SHDQGQRWDQ\PRUHE\WKHQDPHRIWKH
LPSOHPHQWDWLRQFODVV

$ODWHW\SHREMHFWDGKHUHVWRLQWHUIDFHVXVLQJWKH
H[WHQVLRQPHFKDQLVP

7KHJHQHULFREMHFWWKDWSURYLGHVWKLVFDSDELOLW\LV
&$72EMHFW

/DWHW\SLQJLVXVHGIRUGRFXPHQWVFRQWDLQHUV
IHDWXUHV
• LHREMHFWW\SHVWKDWWKHV\VWHPPXVWEHDEOHWRLQVWDQFLDWHLQVRPHJHQHULF
FRGHZULWWHQSULRUWRWKHVHQHZW\SHGHILQLWLRQ KHQFHODWH
&RS\ULJKW'$66$8/76<67(0(6 
/DWH7\SH$W:RUN

([WHQVLRQGHFODUHVWKHW\SHRILPSOHPHQWDWLRQREMHFWWKH\H[WHQG
7KHH[WHQGHGW\SHLVVSHFLILHGZLWKDVWULQJ
,QFDVHRIODWHW\SHLWUHIHUVWRDQLQVWDQFHRIDYLUWXDOFODVV
7KHLQVWDQFHLVD&$72EMHFWRQHEXWWKHFRUUHVSRQGLQJW\SHLV
WKHRQHGHILQHGE\WKHYLUWXDOW\SH

UHDOW\SH  QDPHRIWKHFODVV
CATObject
CATObject YLUWXDOW\SH  DWWULEXWHRIWKHFODVV

Boooh!
Object
ObjectExtA
ExtA &$7,&RQWDLQHU
Extension
Extensionfor
forAAtype
type

A
Object
ObjectExtA2
ExtA2 &$7,3HUVLVWHQW

Extension
Extensionfor
forAAtype
type

&RS\ULJKW'$66$8/76<67(0(6 
/DWH7\SH$W:RUN

– 7KHILUVWFROXPQRIWKH
Boooh!
GLFWLRQDU\UHIHUVWRDODWH
W\SHQDPHLQVWHDGRIDQ
A DFWXDOFODVVQDPH

Object
ObjectExtA
ExtA &$7,&RQWDLQHU
Extension
Extensionfor
forAAtype
type $SSOLGLF

...
Object
ObjectExtA2
ExtA2
&$7,3HUVLVWHQW
Build

A CATIContainer libA
Extension
Extensionfor
forAA A CATIPersistent libA2
Build

...

OLE$ OLE$

&RS\ULJKW'$66$8/76<67(0(6 
/DWH7\SH,QVWDQWLDWLRQ
/DWHW\SHVDUHLQVWDQWLDWHG
E\VSHFLDOHQWLWLHV JOREDO
IXQFWLRQVRUIDFWRULHV  ©&$7,&RQWDLQHUª ©$ª

7KHIDFWRU\XVHVWKH Late
Latetype
typefactory
factory
GLFWLRQDU\WRILQGRXWLIWKH
UHTXLUHGLQWHUIDFHLV $SSOLGLF

VXSSRUWHGE\WKHODWHW\SH ...
A CATIContainer libA
A CATIPersistent libA2
...

7KDQNVWROLE$DQHZ
H[WHQVLRQLVFUHDWHG$Q Object
ObjectExtA
Extension
ExtA &$7,&RQWDLQHU

Extensionfor
for«A»
«A»type
LQVWDQFHRIWKHUHTXLUHG
type

LQWHUIDFHLVUHWULHYHGDQG
SDVVHGEDFNWRWKH
UHTXHVWHU
&RS\ULJKW'$66$8/76<67(0(6 
/DWH7\SH,QKHULWDQFH

– ,QWKHVDPHZD\WKDQUHDOW\SH
YLUWXDOW\SHVVXSSRUWLQKHULWDQFH
CATObject
CATObject

Object
ObjectExtA
ExtA /LIH&\FOH2EMHFW

A Extension
Extensionfor
forAAtype
type

Object
ObjectExtAB
ExtAB &$7,3HUVLVWHQW
AB Extension
Extensionfor
forAB
ABtype
type

&RS\ULJKW'$66$8/76<67(0(6 
$GGLWLRQDO,QIRUPDWLRQ(SLORJ
20&RPSRQHQWLQKHULWDQFH

20,QWHUIDFHLQKHULWDQFH

&RPSRQHQW

« Base Imp » || « late type »


Base
0RGXOHP '6

« Code|Data Extension »
([WHQVLRQ
'LFWLRQDU\

« Code|Data Extension »
«([WHQVLRQ
Code|Data Extension »
([WHQVLRQ
0RGXOHP QRQ'6

&OLHQW
Factories
QueryInterface()
AddRef()
Release()

&RS\ULJKW'$66$8/76<67(0(6 
7R6XP8S

,QWKLV&RXUVH\RXKDYHVHHQ«

2EMHFWVKDQGOLQJZLWK,QWHUIDFHV

7KH,PSOHPHQWDWLRQDQG([WHQVLRQPHFKDQLVP

7KH/DWH7\SLQJ

&RS\ULJKW'$66$8/76<67(0(6 
&$$92EMHFW6SHFV0RGHOHU

,QWKLVFRXUVH\RXZLOOOHDUQKRZWRFUHDWH\RXUREMHFWVLQ&$7,$
9LQIUDVWUXFWXUHDQGKRZWRGHILQHWKHLUEHKDYLRUV

,QWURGXFWLRQWR6SHFLILFDWLRQ0RGHOLQJ
2EMHFW6SHFV0RGHOHU2EMHFWLYHV
$ERXW)HDWXUHV
3URJUDPPLQJ7DVNV
$ERXW)HDWXUHV([WHQVLRQV
3URJUDPPLQJ7DVNV
$ERXW3URYLGHUV

&RS\ULJKW'$66$8/76<67(0(6 
,QWURGXFWLRQWR6SHFLILFDWLRQ0RGHOLQJ

,QWKLVOHVVRQ\RXZLOOOHDUQWKHQHHGLQ6SHFLILFDWLRQ5HVXOW

$FFHOHUDWLQJWKH$UW7R3DUW3URFHVV
&$7,$$SSOLFDWLRQ(YROXWLRQV
1HHGV)RU1H[W*HQHUDWLRQ3URGXFWV
&$7,$6SHFLILFDWLRQ0RGHOHU2EMHFWLYHV

&RS\ULJKW'$66$8/76<67(0(6 
$FFHOHUDWLQJWKH$UW7R3DUWSURFHVV

• Capturing VSHFLILFDWLRQV and Generating


UHVXOWV 'UDIWLQJVSHFLILFDWLRQV

%HQHILWV
• 5HVXOWVDUHJHQHUDWHGIDVWHU
• &RPSDQ\UXOHVDQGNQRZKRZDUHFDSWXUHG
• 5HVXOWLVH[SODLQDEOH
• 'HVLJQHUVGRGHVLJQQRWFOHULFDOWDVNV

&RS\ULJKW'$66$8/76<67(0(6 
&$7,$$SSOLFDWLRQ(YROXWLRQV

)LUVW*HQHUDWLRQ
&$7,$99 • 8VHUSURGXFHGUHVXOWVUDWKHU
WKDQVSHFLILFDWLRQV
• 'UDIWLQJ
• 6XUIDFH0RGHOLQJ • &KDQJHVXSZDUGVLQWKH
•  VSHFUHVXOWWUHHFDXVHELJ
UHZRUNVGRZQVWUHDP

6HFRQG*HQHUDWLRQ
&$7,$99 • )LUVW6SHFLILFDWLRQHGLWRUV
• )LUVWJHQHUDWLRQDSSOLFDWLRQV
• &6*6ROLG IODZVDUHUHPRYHG%87«
%87
• *HQHUDWLYH'UDIWLQJ
• *60 • (YHU\DSSOLFDWLRQGHILQHVLWV
• 6KHHW0HWDO$HURVSDFH RZQVSHFUHVXOWSDUDGLJP
• 
• $SSOLFDWLRQVDUHQRWDOO
VSHFUHVXOWRULHQWHG
&RS\ULJKW'$66$8/76<67(0(6 
1HHGV)RU1H[W*HQHUDWLRQ3URGXFWV

0HFK*HQ$SS

0HFK*HQ$SS

2WKHU*HQ$SS
– 3URYLGHDJHQHUDOVSHFLILFDWLRQUHVXOW
PDQDJHPHQWSODWIRUPZLWKLQWKH&$7,$
LQIUDVWUXFWXUH
• 2IIHULQJFRPPRQVHUYLFHVWRDOODSSOLFDWLRQVZLOOLQJWRJR
WKH© JHQHUDWLYHZD\ ª 0HFK6SHF
0DQDJHPHQW
• 2SHQIRUFXVWRPL]DWLRQE\WKRVHDSSOLFDWLRQV
,QIUDVWUXFWXUH
• ,QRUGHUWR
– 6SHHGXSWKHGHYHORSPHQWRIVXFKDSSOLFDWLRQV &$7,$&1H[W
&$7,$&1H[W
– 'HSOR\DFRQVLVWHQWDQGSHUYDVLYHDSSURDFKIRU 6SHF0DQDJHPHQW
6SHF0DQDJHPHQW
VSHFUHVXOWWKURXJKRXW&$7,$ ,QIUDVWUXFWXUH
,QIUDVWUXFWXUH

&$7,$&1H[W&RUH
&$7,$&1H[W&RUH

&RS\ULJKW'$66$8/76<67(0(6 
2EMHFW6SHFV0RGHOHU2EMHFWLYHV

– 3URYLGHDQLQIUDVWUXFWXUHIRU6SHFLILFDWLRQ5HVXOW
PDQDJHPHQWDQGWKHUHIRUH$VVRFLDWLYLW\
• &DSDELOLW\WROLQNVSHFLILFDWLRQVE\DJJUHJDWLRQRUUHIHUHQFH
• *HQHULFPHFKDQLVPIRUFKDQJHSURSDJDWLRQ
• 3HUVLVWHQF\

– 0RGHOVKRXOGEHH[WHQGDEOHDWUXQWLPH
• ZLWKXVHUGHILQHGVSHFLILFDWLRQV
• ZLWKQHZ'DVVDXOW6\VWqPHVVSHFLILFDWLRQV

&RS\ULJKW'$66$8/76<67(0(6 
6SHFLILFDWLRQDQG5HVXOW0DQDJHPHQW

❍6SHFV
✔ H, Sketch: 3DGVSHF
✔ /LQHVWRFRQQHFWUDGLXVFRUQHUVSHF
FRUQHUVSHF

❍5HVXOW
✔ %5HSIRU3DG

✔ '*HRPHWU\IRUFRUQHU

3DG

+HLJKW

6NHWFK

/LQH

/LQH

5DGLXV

&RS\ULJKW'$66$8/76<67(0(6 
1HHGIRUD9HUVDWLOH8SGDWH0HFKDQLVP

– 7KHUHLVDQHHGIRUDJHQHULFXSGDWHPHFKDQLVP

– 7KLVPHFKDQLVPVKRXOGEHWUDQVSDUHQWHQRXJKWR
PLQLPL]HFRGLQJHIIRUW

– %XW\HWFXVWRPL]DEOHWROHWDSSOLFDWLRQGHYHORSHUV
GHILQHWKHLURZQXSGDWHSROLF\
• 0DQXDORUDXWRPDWLF
• /RFDORUJOREDO

&RS\ULJKW'$66$8/76<67(0(6 
1HHGIRU8VHU'HILQHG6SHFLILFDWLRQV

– 7KDWFDQEHGHILQHGDWUXQWLPH

– 7KDWFDQEHPDGHSHUVLVWHQWIRUIXWXUHXVDJH
• 6SHFLILFDWLRQFDWDORJV

– 7KDWDUHWUHDWHGDVSHHUVE\&$7,$GHILQHGVSHFV

&RS\ULJKW'$66$8/76<67(0(6 
1HHGIRU8VHU'HILQHG6SHFLILFDWLRQV

. User assembles

)HDWXUHV&DWDORJ9
)HDWXUHV&DW DORJ9

features to create new


features

. By saving user defined


feature in catalog, company
. User instantiates standard features basis is
features from catalog enriched

. User freely
assembles native and
user defined features

. User saves final result 0\'RFXPHQW&$73DUW


into a document

&RS\ULJKW'$66$8/76<67(0(6 
2EMHFW6SHFV0RGHOHU3ULQFLSOHV
,QWKLVOHVVRQ\RXZLOOOHDUQWKH'DWDPRGHOHUDQGPRGHORI&$7,$9

6ROXWLRQ3URYLGHGE\WKH6SHF0RGHOHU
$'DWD0RGHOHUZLWK(PEHGGHG6HUYLFHV
$*HQHULF8SGDWH0HFKDQLVPLV3URYLGHG
$&DWDORJ%DVHG'DWD0RGHO
3URWRW\SH,QVWDQFH

&RS\ULJKW'$66$8/76<67(0(6 
6ROXWLRQ3URYLGHGE\WKH6SHF0RGHOHU

– $'DWD0RGHOHUZLWKHPEHGGHGVHUYLFHV
• )RUD)HDWXUHEDVHGDSSOLFDWLRQ
• $ORQJZLWKDPHFKDQLVPWRPDQDJHXSGDWHV

– $'DWDPRGHOWKDWLVVWRUHGLQDFDWDORJ
• 1RKDUGFRGHGVSHFLILFDWLRQ
• ([WHQVLELOLW\SRVVLELOLW\IRUXVHUGHILQHGVSHFLILFDWLRQ
• 'DWDPRGHOFDQEHPRGLILHGHYHQDWUXQWLPH
• ,QWURVSHFWLRQ

– $3URWRW\SH,QVWDQFHREMHFWPRGHO
• 7RDOORZG\QDPLFLQVWDQWLDWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
$'DWD0RGHOHUZLWK(PEHGGHG6HUYLFHV

&RQILJXUDWLRQ 5HYLVLRQ
Effectivity and specification filtering Versioning control

6HFXULW\ 3HUVLVWHQFH
Any feature can defines R/W access on Any feature can stream/unstream itself
its attributes (model / Data base)

7UDQVDFWLRQV /LQN0DQDJHPHQW
Any feature can undo modifications
applied to it Feature Facilities for referencing inside parts of
features in a stable way

(YHQWV ,QWURVSHFWLRQ
Any feature is an event sender on its Any feature can list or add attributes
attributes modification (referenced and aggregated objects), ...

&XWDQG3DVWH 6WDWXV
Cutting and pasting features onto each /RFN Maturity and release process
other is semi automatic For concurrent use

&RS\ULJKW'$66$8/76<67(0(6 
$*HQHULF8SGDWH0HFKDQLVPLV3URYLGHG

Propagating change requests across the spec


tree is under the responsibility of the spec
6SHF
C modeler infrastructure...

6SHF
C
6SHF
C &KDQJH
6SHF
D
6SHF
C 6SHF
D
6SHF
C
D &KDQJHG

C
6SHF
6SHF

6SHF
C
6SHF
C
…while deciding when and how
responding to change request
6SHF
C
is under the responsibility of the
application

&RS\ULJKW'$66$8/76<67(0(6 
$&DWDORJ%DVHG'DWD0RGHO

– 7KH'DWDPRGHOLVGHILQHGLQDVHSDUDWHGRFXPHQW
• $IHDWXUHFDWDORJ

– 7KLVDSSURDFKKDVWKHIROORZLQJDGYDQWDJHV
• ([WHQVLELOLW\DIHDWXUHFDQEHH[WHQGHGE\LQKHULWDQFHZLWKQHZ DWWULEXWHVODWHU
RQZLWKDFRPSOHWHFRPSDWLELOLW\ZLWKH[LVWLQJLQVWDQFH
• 0DLQWDLQDELOLW\WKHGDWDPRGHOLVQRWKDUGFRGHGWKHUHIRUHLPSOHPHQWDWLRQFDQ
EHPRGLILHG
• ,QWURVSHFWLRQDIHDWXUHNQRZVLWVDWWULEXWHVDQGLWVVXSHUW\SH QRWWKHFDVHLQ
& 

&RS\ULJKW'$66$8/76<67(0(6 
3URWRW\SH,QVWDQFH

5HIHUHQFH,QVWDQFH 3URWRW\SH,QVWDQFH
& 6SHFV0RGHOHU

• $OOLQVWDQFHVIRUDJLYHQUHIHUHQFH • ,QVWDQFHVFDQEHPDGHGLIIHUHQWIURPWKH
DUHDOLNH UHIHUHQFH
• 1HZLQVWDQFHVFDQEHREWDLQHGRQO\ • ,QVWDQFHVFDQLQWXUQEHXVHGDVQHZ
IURPWKHUHIHUHQFH UHIHUHQFHV
• (YHU\REMHFWLVLQVWDQFH UHIHUHQFHDWWKH
VDPHWLPH KHQFH© SURWRW\SH ª
• ,QVWDQFHVDQGSURWRW\SHVFDQEH
V\QFKURQL]HG DWWULEXWHVVWUXFWXUH ZKHQ
QHHGHG

&RS\ULJKW'$66$8/76<67(0(6 
$ERXW)HDWXUHV
,QWKLVOHVVRQ\RXZLOOOHDUQWKH&$7,$9)HDWXUHVFUHDWLRQDQG PDQDJHPHQW

:KDWLVD&$$9)HDWXUH
)HDWXUH8SGDWH0HFKDQLVP
)HDWXUH$WWULEXWHV
)HDWXUH&DWDORJDQG,QVWDQWLDWLRQ
)HDWXUHDQG/DWH7\SLQJ
)HDWXUHDQG3HUVLVWHQF\
)HDWXUH,QWHUIDFHV
6XPPDU\

&RS\ULJKW'$66$8/76<67(0(6 
&$$9)HDWXUHV

• $IHDWXUHLVWKHEDVLFREMHFWIRUVSHFLILFDWLRQ
PRGHOLQJ
– $IHDWXUHVWRUHVVSHFLILFDWLRQVDQGSURGXFHVRQH
RUVHYHUDOUHVXOWVWKURXJKDQXSGDWHPHFKDQLVP
– ,WRZQVVRPH$WWULEXWHV
– ,WIROORZVWKHSURWRW\SHLQVWDQFHSDWWHUQ
– 7KHSURWRW\SHLVWKHVNHOHWRQRIWKH)HDWXUHLWVGDWDGHVFULSWLRQ

– ,WLVDODWHW\SHREMHFW
– ,WLVSHUVLVWHQW

&RS\ULJKW'$66$8/76<67(0(6 
6SHFLILFDWLRQDQG5HVXOW0DQDJHPHQW

• $IHDWXUHRZQVVRPHVSHFLILFDWLRQVDQGJHQHUDWHVUHVXOWV
WKURXJKDQXSGDWHPHFKDQLVP
– )HDWXUH
VXSGDWHLVWULJJHUHGE\DPRGLILFDWLRQLQWKH
VSHFLILFDWLRQV
– $VSHFLILFDWLRQFDQEHDVWULQJDUHDODQLQWHJHURU
DQRWKHUIHDWXUH
– $UHVXOWFDQEHDQ\WKLQJIURPIHDWXUHVWRJHRPHWU\

6SHFLILFDWLRQ ,QSXWGDWD5HVXOW 2XWSXWGDWD


Update
Specifications Results

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH8SGDWH0HFKDQLVP

7KH6SHFV0RGHOHUSURYLGHVWKHLQIUDVWUXFWXUHWR
PDQDJHXSGDWHV
– ,WDXWRPDWLFDOO\SURSDJDWHVQRWLILFDWLRQRIFKDQJH
DFURVVWKHVSHFLILFDWLRQWUHHEXWLWGRHVQRW
WULJJHUWKHXSGDWHLWVHOI
– 'HFLGLQJLIDQREMHFWPXVWEHXSGDWHGRUQRWLV
WKHUHVSRQVLELOLW\RIWKHDSSOLFDWLRQ

Pad 2: Notification 3: Update decided


propagated by the Pad
by the application
Sketch specs modeler
Sketch

Line Line
1: Feature modified

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH$WWULEXWHV

6SHFLILFDWLRQVDQGUHVXOWVDUHVWRUHGLQWKHIHDWXUH
V
DWWULEXWHV
– $QDWWULEXWHLVVLPLODUWRDFODVVPHPEHULQ&
– $QDWWULEXWHFDQEHDGRXEOHDQLQWHJHURUDQRWKHU
IHDWXUH
– $QDWWULEXWHKDVDTXDOLW\ LQSXWRXWSXWRUQHXWUDO
• ,QSXWDWWULEXWHVVWRUH6SHFLILFDWLRQV
• 2XWSXW DWWULEXWHVVWRUH5HVXOWV JHQHUDWHGIURPWKH6SHFLILFDWLRQV
• 2WKHUSURSHUWLHVDUHVWRUHGLQ1HXWUDODWWULEXWHV

&RS\ULJKW'$66$8/76<67(0(6 
$WWULEXWHVDQG8SGDWH

– :KHQDIHDWXUHLVPRGLILHG 
• )HDWXUHVWKDWWDNHWKLVIHDWXUHDVDQLQSXWDUH
1: Solid is
PDUNHGQRWXSWRGDWH  Solid modified
• )HDWXUHVWKDWDUHRXWSXWRIWKLVIHDWXUHDUH
Solid to
PDUNHGQRWXSWRGDWH  offset

2.1: Owner In
– :KHQDIHDWXUHPXVWEHXSGDWHG feature, is
updated Offset 1.1: Offset is
 instead of the Out not up to date
result
• ,IWKLVIHDWXUHLVDQRXWSXWRIDQRWKHUIHDWXUH
WKHQLWVRZQHULVXSGDWHGLQVWHDG 
• ,QSXWIHDWXUHVDUHXSGDWHGILUVW
Result

2: Update Solid
required on 1.2: Solid is
– ,QERWKFDVHQHXWUDODWWULEXWHVDUH solid not up to date

LJQRUHG

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH&DWDORJ

• )HDWXUHGHILQLWLRQVDUHVWRUHGLQDFDWDORJILOH
– $IHDWXUHGHILQLWLRQ VNHOHWRQ LVFDOOHGD6WDUWXS
– 7KHUHFDQEHDVPDQ\FDWDORJILOHDVQHHGHG
• 8VHUFDWDORJILOHVHQGZLWK&$7IFW
• '6FDWDORJILOHVHQGZLWKIHDW

Steps to create a new Startup:

1: Create or 2: Create startup in


upgrade catalog 01011 catalog
101010 Feature
0101… Startup
3: Save catalog

Catalog

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH,QVWDQWLDWLRQ

• ,QVWDQWLDWLRQIROORZVWKH3URWRW\SH,QVWDQFH3DWWHUQ
– $IHDWXUHLVLQVWDQWLDWHGIURPLWVVWDUWXS
– 7KHVWDUWXSPXVWEHUHWULHYHGIURPWKHFDWDORJ
– 7KHLQVWDQFHZLOOEHDQH[DFWFRS\RIWKHVWDUWXSDQG
ZLOOUHWDLQDQ\DWWULEXWHVZLWKWKHLULQLWLDOGHIDXOWYDOXH
3: Instantiate
1: Open Catalog Feature with a
Feature
factory
Startup
0101110
10100101 2: Read startup
… from catalog Feature
Feature
Feature
Instance
Instance
Instance
Catalog

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUHDQG/DWH7\SLQJ

• $IHDWXUHLVDODWHW\SH
– %HKDYLRUVDUHSURYLGHGWKURXJKWKHH[WHQVLRQ
PHFKDQLVP DQ2EMHFW0RGHOHUVHUYLFH 
– ,QKHULWDQFHEHWZHHQIHDWXUHLVDOORZHG
• 1HZIHDWXUHZLOOLQKHULWERWKEHKDYLRUVDQGDWWULEXWHVRILWVVXSHUW\SH

Father Feature

Feature

H[WHQGV!!
OM Extension Interface

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUHDQG3HUVLVWHQF\

• 7REHSHUVLVWHQWDIHDWXUHPXVWEHFUHDWHGLQDFRQWDLQHU
7KLVFRQWDLQHUEHORQJVWRDGRFXPHQW
– 6DYLQJWKHGRFXPHQWZLOOLQWXUQVDYHWKHIHDWXUH

Instances
Startup
1: Instantiation

2: Save

Container
Catalog Document on
Disk
Document in memory

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH,QVWDQFHV

• (YHU\IHDWXUHLVDQLQVWDQFHRID&$76SHF2EMHFW
– ,WLPSOHPHQWVVHYHUDO'6LQWHUIDFHV

Interface to instantiate a
startup, and manage attributes
CATISpecObject
Interface to remove a feature
LifeCycleObject
Interface to extend a feature
Any Feature CATIExtendable
Interface to valuates feature’s
CATISpecAttrAccess attributes
CATISpecUpdate Interface to manage feature
update

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH,QWHUIDFHV0LJUDWLRQ

• )URP5IHDWXUHLQWHUIDFHVZLOOXQGHUJRVRPHPDMRU
FKDQJHV

– &$7,6SHF2EMHFWLQWHUIDFHLVGHSUHFDWHGDQGZLOOEH
UHSODFHGE\WKHIROORZLQJLQWHUIDFHV
• &$7,6SHF%DVHIRUIHDWXUHLQVWDQWLDWLRQ
• &$7,6SHF$WWU0DQDJHUIRUDWWULEXWHPDQDJHPHQW

– 2WKHUGHSUHFDWHGLQWHUIDFHVDUH
• &$7,6SHF$WWU$FFHVV DWWULEXWHYDOXDWLRQ ZLOOEHUHSODFHGE\&$7,6SHF$WWU9DOXH
• &$7,6SHF$WWU.H\ DWWULEXWHLQGH[IRUIDVWDFFHVV ZLOOEHUHSODFHGE\
&$7,6SHF.H\

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH,QWHUIDFHV 95

• $WWKHHQGRIWKHPLJUDWLRQIHDWXUHLQWHUIDFHVZLOOEH

Interface to instantiate a startup


CATISpecBase Interface to remove a feature
LifeCycleObject Interface to extend a feature
CAT Extendable Interface to manage feature’s
Any Feature attributes
CATISpecAttrManager
Interface to valuates feature’s
CATISpecAttrValue attributes
CATISpecUpdate Interface to manage feature
update

&RS\ULJKW'$66$8/76<67(0(6 
$ERXW)HDWXUHV
6XPPDU\

CATObject
CATObject

&$76SHF2EMHFW
&$76SHF2EMHFW

6XSHU7\SH

&$7,6SHF2EMHFW
0\7\SH

&$$(0\7\SH
&$$(0\7\SH

&$$,0\7\SH

&$$(0\7\SH%XLOG
&$$(0\7\SH%XLOG

+5(68/7%XLOG ^«`
+5(68/7%XLOG ^«`
&$7,%XLOG

&RS\ULJKW'$66$8/76<67(0(6 
3URJUDPPLQJ7DVNV

,QWKLVOHVVRQ\RXZLOOOHDUQKRZWRLPSOHPHQW)HDWXUHV

&UHDWLRQRID1HZ)HDWXUH
)HDWXUH&DWDORJPDQDJHPHQW

&RS\ULJKW'$66$8/76<67(0(6 
3URFHVVWRGHILQHDQHZIHDWXUH

– 'HVLJQP\6WDUWXS

– 'HILQHWKHUHIHUHQFHGDWDVWUXFWXUH
• &UHDWHRUXSJUDGHD&DWDORJ
• &UHDWHWKH6WDUWXS
• 'HILQHWKH6WDUWXSDWWULEXWHV
• 6DYHWKH&DWDORJ

– ,PSOHPHQWWKHGLIIHUHQWEHKDYLRUV
• 3URYLGHWKHLPSOHPHQWDWLRQVIRUWKHLQWHUIDFHVWREHVXSSRUWHGE\WKHIHDWXUH
WKURXJK2EMHFW0RGHOHUH[WHQVLRQ V
• ,IQHHGHGSURYLGHWKH%XLOGPHFKDQLVP

– &UHDWHLQVWDQFHV
• &ORQHWKHVWDUWXS
• 6HWWKHLQVWDQFHDWWULEXWHV

&RS\ULJKW'$66$8/76<67(0(6 
3DUDOOHOEHWZHHQUHJXODU&DQG
2EMHFW6SHFV0RGHOHU

& 2EMHFW6SHFV0RGHOHU
Data Structure defined in a header file Data Structure defined by program and
stored in a feature catalog

0\6SHF2EMHFWK 0\&DWDORJ&$7IFW

&ODVV0\6SHF2EMHFWSXEOLF5RRW2EMHFW
&ODVV0\6SHF2EMHFWSXEOLF5RRW2EMHFW
^^
SXEOLF
SXEOLF
5RRW2EMHFW
5RRW2EMHFW

0\6SHF2EMHFW 
0\6SHF2EMHFW 
&LQKHULWDQFHWREH
UHSODFHGE\IHDWXUH
0\6SHF2EMHFW GRXEOHYDOXH 
0\6SHF2EMHFW GRXEOHYDOXH  LQKHULWDQFH

a0\6SHF2EMHFW 
a0\6SHF2EMHFW 

0\6SHF2EMHFW
0\6SHF2EMHFW


SULYDWH
SULYDWH 'DWDPHPEHUVUHSODFHG

GRXEOHBP\9DOXH
GRXEOHBP\9DOXH
E\DWWULEXWHV P\$WWULEXWH

``

&RS\ULJKW'$66$8/76<67(0(6 
3DUDOOHOEHWZHHQUHJXODU&DQG
2EMHFW6SHFV0RGHOHU

& 2EMHFW6SHFV0RGHOHU
Methods are defined in a header file and Supported interfaces are defined in a
implemented in a cpp file dictionary and implemented by an
extension
0\6SHF2EMHFWK

&ODVV0\6SHF2EMHFWSXEOLF5RRW2EMHFW
&ODVV0\6SHF2EMHFWSXEOLF5RRW2EMHFW
^^ 0\6SHF2EMHFW
0\6SHF2EMHFW

SXEOLF
SXEOLF
0\6SHF2EMHFW 
0\6SHF2EMHFW 
0\6SHF2EMHFW GRXEOHYDOXH 
0\6SHF2EMHFW GRXEOHYDOXH 
a0\6SHF2EMHFW 
a0\6SHF2EMHFW  &$$(0\7\SH
 &$$(0\7\SH
YRLGP\0HWKRG
YRLGP\0HWKRG  YRLGP\0HWKRG &$$,0\7\SH

YRLGP\0HWKRG  %HKDYLRULPSOHPHQWHG ^«`


^«`
 WKURXJKH[WHQVLRQ

SULYDWH
SULYDWH
GRXEOHBP\9DOXH
GRXEOHBP\9DOXH
``

&RS\ULJKW'$66$8/76<67(0(6 
3DUDOOHOEHWZHHQUHJXODU&DQG
2EMHFW6SHFV0RGHOHU
& 2EMHFW6SHFV0RGHOHU
Instantiation through the class Instantiation from the startup retrieved in
constructor and the new operator the feature catalog, and then attribute
valuation

0\2EMHFW P\,QVWDQFH Instances


0\2EMHFW P\,QVWDQFH 18//
18//
P\,QVWDQFH QHZ0\2EMHFW   Startup
P\,QVWDQFH QHZ0\2EMHFW  

MyCatalog.CATfct Container

Document in memory

&RS\ULJKW'$66$8/76<67(0(6 
&DWDORJ'HILQLWLRQ

– &UHDWHDQHZFDWDORJ
• 6XIIL[&$7IFW
• 0XVWEHORFDWHGLQWKH&1H[W?UHVRXUFHV?JUDSKLF
GLUHFWRU\RI\RXUIUDPHZRUN
• 8VHWKH&UHDWH&DWDORJPHWKRGGHILQHGLQKHDGHUILOH
&$7&DWDORJ)DFWRU\6HUYLFHVK
&$78QLFRGH6WULQJFDWDORJ1DPH 0\&DWDORJ&$7IFW

&$7,&DWDORJ SL0\&DWDORJ 18//

+5(68/7UF &UHDWH&DWDORJ  FDWDORJ1DPH SL0\&DWDORJ 

6HWDFOLHQWLGHQWLILFDWLRQIRUWKHFDWDORJ

&$78QLFRGH6WULQJFOLHQW,G ³«
$VSHFLILFLGHQWLILHUWKDWDOORZ
UF P\&DWDORJ!6HW&OLHQW,G FOLHQW,G 
DFFHVVWR\RXUFDWDORJ

&RS\ULJKW'$66$8/76<67(0(6 
&DWDORJ'HILQLWLRQ

– 2UXSJUDGHDQH[LVWLQJFDWDORJ
• 0XVWEHDXVHUFDWDORJ
• 8VHWKH8SJUDGH&DWDORJPHWKRGGHILQHGLQKHDGHU
ILOH&$7&DWDORJ)DFWRU\6HUYLFHVK
– 7KHFOLHQW,'LVQHHGHGWRRSHQWKHFDWDORJ

&$78QLFRGH6WULQJFDWDORJ1DPH 0\&DWDORJ&$7IFW

&$7,&DWDORJ SL0\&DWDORJ 18//

&$78QLFRGH6WULQJFOLHQW,G ³«

+5(68/7UF 8SJUDGH&DWDORJ  FDWDORJ1DPH SL0\&DWDORJ FOLHQW,G 

&RS\ULJKW'$66$8/76<67(0(6 
&DWDORJ'HILQLWLRQ

– &UHDWHWKHVWDUWXSV
• 6HHQH[WVOLGH

– $GG$WWULEXWHVWR\RXUVWDUWXSV 1H[W6OLGH

– 6DYHWKHFDWDORJ
• 8VHWKH6DYH&DWDORJPHWKRGGHILQHGLQKHDGHUILOH
&$7&DWDORJ)DFWRU\6HUYLFHVK

&$78QLFRGH6WULQJVWRUDJH1DPH «

+5(68/7UF 6DYH&DWDORJ  SL&DWDORJ VWRUDJH3DWK1DPH 

&RS\ULJKW'$66$8/76<67(0(6 
6WDUWXS'HILQLWLRQ

– $VWDUWXSLVGHILQHGE\
• LWVQDPH LQVWDQFHQDPH
– &$78QLFRGH6WULQJ

• LWVODWHW\SH
– &$78QLFRGH6WULQJ

• LWVVXSHUW\SH RSWLRQDOWKHODWHW\SHRIWKHVWDUWXSLW
20GHULYHVIURP
– &$78QLFRGH6WULQJ
– 7KHQHZVWDUWXSZLOOLQKHULWDOOWKHDWWULEXWHVDQGEHKDYLRUVGHILQHGDWWKH
OHYHORIWKHVXSHUW\SHVWDUWXS

&$7%DVH8QNQRZQ P\6WDUW8S 18//

+5(68/7UF P\&DWDORJ!&UHDWH68,Q&DWDORJ P\6WDUW8S

P\6WDUW8S1DPH P\6WDUW8S7\SH

³&$7,6SHF2EMHFW´

P\6WDUW8S6XSHU7\SH 

&RS\ULJKW'$66$8/76<67(0(6 
6WDUWXS'HILQLWLRQ

• 7KHUHDUHWKUHHGLIIHUHQWFDVHV

– &UHDWLRQRIDVWDUWXSIURPVFUDWFK
• 8VH&$7,&DWDORJ&UHDWH68,Q&DWDORJZLWKRXWVXSHUW\SH

– &UHDWLRQRIDVWDUWXSWKDWGHULYHIURPDXVHUVWDUWXS
• ,IWKHRULJLQDOFDWDORJLVQRWDOUHDG\RSHQXVH$FFHVV&DWDORJWR RSHQLWLQUHDG
RQO\PRGH
• 7KHQXVH&$7,&DWDORJ&UHDWH68,Q&DWDORJ

– &UHDWLRQRIDVWDUWXSWKDWGHULYHIURPD'6VWDUWXS
• ,QWKHFXUUHQWYHUVLRQRSHQWKH'6FDWDORJZLWK2SHQ&DWDORJWKHQFDOO
&$7,&DWDORJ&UHDWH68,Q&DWDORJ
• /DWHU\RXZLOOXVHDVSHFLILFIDFWRU\WRFUHDWHDGHULYHGVWDUWXS

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH$WWULEXWH'HILQLWLRQ
– 1DPH &$78QLFRGH6WULQJ 

– 7\SH &HQXPHUDWLRQYDOXH 
• $VLPSOHW\SH
– WNBVWULQJWNBGRXEOHWNBERROHDQWNBRFWHWWNBLQWHJHU
• $IHDWXUHW\SH
– WNBVSHFREMHFWDUHIHUHQFHWRDQRWKHUIHDWXUH
– WNBFRPSRQHQWWKHIHDWXUHLVDJJUHJDWHG
• DOLVWRIDQ\RWKHUW\SHV
– WNBOLVW
• $PRUHJHQHUDOREMHFWW\SH
– WNBH[WHUQDODUHIHUHQFHWRDQREMHFWWKDWLPSOHPHQWVWKH&$7,/LQNDEOH2EMHFW
LQWHUIDFH

– 4XDOLW\GHILQHVWKHDWWULEXWHUROHLQWKHEXLOGSURFHVVDQGXSGDWH
PHFKDQLVP
• VSB287RXWSXWGDWD
• VSB,1LQSXWGDWDIRUWKH%XLOGSURFHVV
• VSB1(875$/DWWULEXWHLJQRUHGE\WKHXSGDWHPHFKDQLVP
&RS\ULJKW'$66$8/76<67(0(6 
$GGLQJ$WWULEXWHVWRWKH6WDUWXS

– *HWDSRLQWHUWR&$7,6SHF2EMHFWRQWKHVWDUWXS

&$7,6SHF2EMHFW P\6WDUW8S6SHF 18//

UF P\6WDUW8S!4XHU\,QWHUIDFH ,,'B&$7,6SHF2EMHFW YRLG P\6WDUW8S6SHF 

– 8VHWKH$GG$WWULEXWHPHWKRGIURPWKH&$7,6SHF2EMHFW
LQWHUIDFHWRGHILQHDQHZDWWULEXWH

– $QDWWULEXWHDFFHVVPRGHLVSXEOLFE\GHIDXOWEXWFDQ
EHVHWWRSULYDWH
• XVHWKH6HW$FFHVVPHWKRG
&RS\ULJKW'$66$8/76<67(0(6 
$WWULEXWH'HILQLWLRQ([DPSOH

&$78QLFRGH6WULQJ0\$WWULEXWH1DPH ³6NHWFK

&$7,6SHF$WWULEXWH 0\6NHWFK$WWULEXWH 18//

0\6NHWFK$WWULEXWH P\6WDUW8S6SHF!$GG$WWULEXWH 0\$WWULEXWH1DPH

WNBVSHFREMHFW
'HILQLWLRQRIDQLQSXWDWWULEXWH
UHIHUULQJWRDQRWKHUVSHFREMHFW VSB,1 

&$78QLFRGH6WULQJ0\/LVW$WWULEXWH1DPH ³/LVW

&$7,6SHF$WWULEXWH 0\/LVW$WWULEXWH 18//

0\/LVW$WWULEXWH P\6WDUW8S6SHF!$GG$WWULEXWH 0\/LVW$WWULEXWH1DPH

WNBOLVWWNBVSHFREMHFW
7ZRZD\VWRGHILQHDQDWWULEXWH
FRUUHVSRQGLQJWRDOLVWRIYDOXHV VSB,1 

2U

0\/LVW$WWULEXWH P\6WDUW8S6SHF!$GG$WWULEXWH 0\/LVW$WWULEXWH1DPH

WNBOLVW WNBVSHFREMHFW 

VSB,1 

&RS\ULJKW'$66$8/76<67(0(6 
6HWWLQJ$WWULEXWHV'HIDXOW9DOXHV

– 7RVHWDWWULEXWHGHIDXOWYDOXHXVHWKHDSSURSULDWH
PHWKRG
• &$7,6SHF$WWULEXWH6HW[[[
– 6HW6WULQJWRDVVLJQDYDOXHWRDWNBVWULQJW\SHDWWULEXWH
– 6HW6SHF2EMHFW6HW/LVW6WULQJ6HW'RXEOH

&$7,6SHF$WWULEXWH 0\'RXEOH$WWULEXWH 

0\'RXEOH$WWULEXWH!6HW'RXEOH  

– 7RVHWDQDWWULEXWHYDOXHE\XVLQJDQRWKHUDWWULEXWHXVH
• &$7,6SHF$WWULEXWH6HW6SHF$WWULEXWH

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH,QVWDQWLDWLRQ

– 7RFUHDWHDQLQVWDQFH
• 2SHQWKH&DWDORJLQUHDGRQO\
– 8VHPHWKRG$FFHVV&DWDORJGHILQHGLQILOH&$7&DWDORJ)DFWRU\6HUYLFHVK

• 5HWULHYHWKH6WDUWXS
• ,QVWDQWLDWHWKHVWDUWXS
– 8VHWKH&$7,6SHF2EMHFW,QVWDQWLDWHPHWKRG

• 6HWDWWULEXWHVYDOXHV

– 2SHQWKHFDWDORJ
&$7,&RQWDLQHU SL6SHF&RQW «

&$78QLFRGH6WULQJFDWDORJ1DPH 0\&DWDORJ&$7IFW

&$78QLFRGH6WULQJFOLHQW,' ,'

&$7,&DWDORJ SL&DWDORJ 18//

UF $FFHVV&DWDORJ  FDWDORJ1DPH FOLHQW,'SL6SHF&RQW SL&DWDORJ 

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH,QVWDQWLDWLRQ

– 5HWULHYHWKH6WDUWXSLIQRWDOUHDG\GRQH
&$7%DVH8QNQRZQ P\6WDUW8S 18//

&$78QLFRGH6WULQJP\6WDUW8S1DPH ³0\6WDUW8S

UF SL&DWDORJ!5HWULHYH68  P\6WDUW8S

P\6WDUW8S1DPH

³&$7,6SHF2EMHFW 

– ,QVWDQWLDWHWKH6WDUWXSLQWKHIHDWXUHFRQWDLQHU
&$7,6SHF2EMHFW SL6SHF2Q6WDUWXS 18//

UF P\6WDUW8S!4XHU\,QWHUIDFH ,,'B&$7,6SHF2EMHFW

YRLG  SL6SHF2Q6WDUWXS 

&$7,6SHF2EMHFW SL6SHF2Q,QVWDQFH SL6SHF2Q6WDUWXS!,QVWDQFLDWH P\6WDUW8S1DPHSL6SHF&RQW 

&RS\ULJKW'$66$8/76<67(0(6 
$VVLJQLQJYDOXHVWRIHDWXUHDWWULEXWHV

– $WWULEXWHVVKRXOGEHDFFHVVHGWKURXJKWKH
&$7,6SHF$WWU$FFHVVLQWHUIDFH
• 6WRUHDQDWWULEXWHNH\WRVSHHGXSDFFHVV
VWDWLF&$7,6SHF$WWU.H\ BDWW.H\ 18//

• 8VH*HW;;;DQG6HW;;;PHWKRGVWRDFFHVVWRWKH
5HWULHYHWKHDFFHVVLQWHUIDFH
YDOXH
&$7,6SHF$WWU$FFHVV SL$FFHVV 18//

+5(68/7UF P\)HDWXUH!4XHU\,QWHUIDFH ,,'B&$7,6SHF$WWU$FFHVV

YRLG  SL$FFHVV 

LI BDWW.H\ ^

BDWW.H\ SL$FFHVV!*HW$WWU.H\ ´0\$WWULEXWH  ,IQHFHVVDU\LQLWLDOL]HWKHDWWULEXWHNH\


`

GRXEOHP\9DOXH SL$FFHVV!*HW'RXEOH BDWW.H\ 


5HWULHYHWKHDWWULEXWYDOXHXVLQJLWVNH\

&RS\ULJKW'$66$8/76<67(0(6 
,PSOHPHQWWKH)HDWXUH%HKDYLRUV

– ,QWHUIDFHVDUHLPSOHPHQWHGWKURXJKWKH2EMHFW0RGHOHU
H[WHQVLRQPHFKDQLVP

– $WOHDVW\RXZLOOZDQWWR
• 3URYLGHDEXLOGPHFKDQLVPIRU\RXUIHDWXUH
• (QFDSVXODWHLQ\RXURZQLQWHUIDFH V WKHDFFHVVWRWKHIHDWXUH
V DWWULEXWHV

– <RXPD\DOVRZDQWWRLPSOHPHQWVRPH'6LQWHUIDFHVWR
EHWWHULQWHJUDWH\RXUIHDWXUHLQ&$7,$9

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH%XLOG

– 7RDOORZUHFRPSXWDWLRQDIHDWXUHPXVWLPSOHPHQWWKH
&$7,%XLOGLQWHUIDFH
)HDWXUH!!

CAAFeature

20([WHQVLRQ!!
H[WHQGV!! CATIBuild
CAAEBuildOnFeature

– &$7,%XLOG,QWHUIDFHKDVRQO\RQHPHWKRG
YLUWXDO+5(68/7%XLOG 

• ,WUHWULHYHVWKHLQSXWDWWULEXWHVYDOXHV
• FDOFXODWHVWKHPRGLILHGRXWSXWDQGQHXWUDODWWULEXWHV
YDOXHV
• VWRUHVWKHPRGLILHGDWWULEXWHVYDOXHV
&RS\ULJKW'$66$8/76<67(0(6 
8VHU&DWDORJ0DQDJHPHQW

– &DWDORJILOHVDUHGHGLFDWHGWRVWRUHIHDWXUHGHILQLWLRQ
VWDUWXS 

– $&DWDORJPD\VWRUHDQ\QXPEHURIVWDUWXS

– 2QFHFUHDWHGDFDWDORJVKRXOGQHYHUEHGHOHWHG
• ,QIDFWDFDWDORJKDVDXQLTXH,'ZKLFKLVXVHGWRLGHQWLI\WKHVWDUWXSVLWFRQWDLQV
:KHQDFDWDORJLVGHOHWHGDQGUHFUHDWHGH[LVWLQJLQVWDQFHVRIIHDWXUHZLOOVWLOO
UHIHUHQFHWKHROGFDWDORJ,'
• ,QVWHDGXSJUDGHLW

– &DWDORJVLPSOHPHQWWKHLQWHUIDFH&$7,&DWDORJ
• 8VHWKLVLQWHUIDFHWRDGGVWDUWXSVWRDFDWDORJ
&RS\ULJKW'$66$8/76<67(0(6 
8VHU&DWDORJ6HUYLFHV

– '6SURYLGHVVHYHUDOPHWKRGVWRPDQDJHXVHUFDWDORJV
WKH\DUHGHILQHGLQILOH&$7&DWDORJ)DFWRU\6HUYLFHVK
• &UHDWH&DWDORJ
– 7KLVPHWKRGFUHDWHVDQHZFDWDORJ

• 8SJUDGH&DWDORJ
– 7KLVPHWKRGRSHQDFDWDORJIRUPRGLILFDWLRQ
– 8VHWKLVPHWKRGZKHQ\RXZDQWWRPRGLI\DQH[LVWLQJFDWDORJ

• $FFHVV&DWDORJ
– 7KLVPHWKRGRSHQDFDWDORJLQUHDGRQO\IRUIHDWXUHLQVWDQWLDWLRQ

• 6DYH&DWDORJ
– 6DYHDQHZRUDQXSJUDGHGFDWDORJ

– 7RSURWHFWWKHXVHRI\RXUFDWDORJWKRVHPHWKRGVWDNHVD
FOLHQW,'

&RS\ULJKW'$66$8/76<67(0(6 
'DWD&RPSDWLELOLW\5XOHV

– 7RHQVXUHDDVFHQGDQWGDWDFRPSDWLELOLW\EHWZHHQ
VXEVHTXHQWUHOHDVHRI\RXUDSSOLFDWLRQ\RXPXVWIROORZ
VRPHUXOHV
• 2QD6WDUWXS
– <RXFDQDGGRUGHOHWHDWWULEXWHV
– <RXFDQFKDQJHDQDWWULEXWHLQLWLDOYDOXH
– <RXFDQQRWPRGLI\DQDWWULEXWHW\SHRUTXDOLW\ LQRXWQHXWUDO 
– <RXFDQFKDQJHLW
VQDPH

• 2QD&DWDORJ
– <RXFDQDGGQHZVWDUWXSVDVORQJDVWKHLUQDPHDUHXQLTXHLQDOOFDWDORJV
– <RXFDQQRWGHOHWHDVWDUWXSRUPRYHLWWRDQRWKHUFDWDORJ
– <RXFDQQRWFKDQJHWKHQDPHRIFDWDORJRUWU\WRFUHDWHLWWZLFH
– <RXFDQQRWPRGLI\DQDWWULEXWHW\SHRUTXDOLW\ LQRXWRUQHXWUDO 

&RS\ULJKW'$66$8/76<67(0(6 
$FFHVVLQJWR'6&DWDORJV
– 7KH&$7&DWDORJ)DFWRU\6HUYLFHVPHWKRGVGRQRWZRUNRQ
'6FDWDORJV

– ,QWKHFXUUHQWYHUVLRQRI&$$\RXUDUHDEOHWRRSHQD'6
FDWDORJIRUVWDUWXSGHULYDWLRQ
• 8VHWKHPHWKRG&$7,&DWDORJ0DQDJHU2SHQ&DWDORJIROORZHGE\
&UHDWH68,Q&DWDORJRQ\RXUFDWDORJWRFUHDWHDVWDUWXSWKDWGHULYHIURPD'6
VWDUWXS

– ,QWKHVXEVHTXHQWYHUVLRQ\RXZLOOQRWEHDEOHWRRSHQD
'6FDWDORJGLUHFWO\
• ,QVWHDG\RXZLOOXVHDIDFWRU\PHWKRGWKDWGRERWKWKH2SHQ&DWDORJDQGWKH
&UHDWH68,Q&DWDORJ
• 7KHUHZLOOEHRQHIDFWRU\PHWKRGIRUHYHU\IHDWXUHRSHQWRGHULYDWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
$ERXW)HDWXUHV([WHQVLRQV

,QWKLVOHVVRQ\RXZLOOOHDUQWKHFRQFHSWRI)HDWXUHVH[WHQVLRQV

)HDWXUH([WHQVLRQ

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH([WHQVLRQ

• 7KH6SHFLILFDWLRQ0RGHOHUSURYLGHVDPHFKDQLVPWRH[WHQG
DQH[LVWLQJIHDWXUHE\DGGLQJQHZDWWULEXWHVRQLWZLWKRXW
LQKHULWDQFH

– $IHDWXUHH[WHQVLRQKDVLWVRZQDWWULEXWHV QHXWUDO 
– ,WVGHILQLWLRQLVVWRUHGLQDFDWDORJ &$7IFW 
– $IHDWXUHH[WHQVLRQLVOLQNHGZLWKDQDSSOLFDWLRQ
– $QIHDWXUHH[WHQVLRQLVFUHDWHGRQDIHDWXUHDWUXQWLPH
– ,WLVVWRUHGLQDQDSSOLFDWLYHFRQWDLQHUDQGFDQEH
DFWLYDWHGDQGGHDFWLYDWHGRQGHPDQG

&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH([WHQVLRQ

7KHIHDWXUHH[WHQVLRQPHFKDQLVPDOORZVGDWDVKDULQJZLWKRXW
DQ\GRFXPHQWVFRUUXSWLRQ

$IHDWXUHH[WHQVLRQZLOOEHDFWLYHLQDQH[LVWLQJGRFXPHQW
RQO\LIWKHDSSOLFDWLRQDQGWKHH[WHQVLRQVFDWDORJDUH
SUHVHQWV
LIQRWWKHIHDWXUHEHKDYLRUVDUHQRWLPSDFWHG

$IHDWXUHH[WHQVLRQKDVLWVRZQ,QWHUIDFHWRDFFHVVWKHVH
DWWULEXWHV
6HYHUDOIHDWXUHH[WHQVLRQVFRXOGH[WHQGDIHDWXUHIRURQHRU
GLIIHUHQWDSSOLFDWLRQV
$Q\IHDWXUHH[WHQVLRQFRXOGH[WHQGVDQ\IHDWXUH
&RS\ULJKW'$66$8/76<67(0(6 
)HDWXUH([WHQVLRQ

([DPSOH
H[WHQGV!! © 6HHV ª
<<feature extension>>
Electrical Application
3XPS(OHFWULFDO'DWD
V([WHQVLRQ
Electrical Datas

<<feature>>
3XPS © 6HHV ª

Hydraulic Application
<<feature extension>>
3XPS+\GUDXOLF'DWDV
([WHQVLRQ
H[WHQGV!!
Hydraulic Datas

© 6HH ª

Other Applications

&RS\ULJKW'$66$8/76<67(0(6 
3URJUDPPLQJ7DVNV

,QWKLVOHVVRQ\RXZLOOOHDUQKRZWRLPSOHPHQWD)HDWXUH([WHQVLRQ

3URFHVVWRGHILQHD)HDWXUH([WHQVLRQ
'HILQHWKHIHDWXUHH[WHQVLRQGDWDVWUXFWXUH
&UHDWHLQVWDQFHLQGRFXPHQW

&RS\ULJKW'$66$8/76<67(0(6 
3URFHVVWRGHILQHD)HDWXUH([WHQVLRQ

– 'HILQHWKHIHDWXUHH[WHQVLRQGDWDVWUXFWXUH
• &UHDWHWKHH[WHQVLRQFDWDORJ
• &UHDWHWKHIHDWXUHH[WHQVLRQLQWKHFDWDORJ
• 'HILQHWKHIHDWXUHH[WHQVLRQDWWULEXWHV
• 6DYHWKH&DWDORJ

– ,PSOHPHQWRQWKHIHDWXUHH[WHQVLRQWKHDWWULEXWHVDFFHVV
LQWHUIDFH

– &UHDWHLQVWDQFHLQGRFXPHQW
• &UHDWHDQDSSOLFDWLYHFRQWDLQHUIRUDQDSSOLFDWLYHGRPDLQ
• 2SHQWKHH[WHQVLRQFDWDORJLQWKHDSSOLFDWLYHFRQWDLQHU
• $FWLYDWHWKHIHDWXUHH[WHQVLRQRQWKHIHDWXUH

&RS\ULJKW'$66$8/76<67(0(6 
3URFHVVWRGHILQHD)HDWXUH([WHQVLRQ

– 0DQDJHPHQW
• 9HULI\WKDWDIHDWXUHH[WHQVLRQLVDFWLYH
• $FFHVVWKHIHDWXUHH[WHQVLRQ¶VDWWULEXWHV
• 4XHU\DOOWKHDFWLYHIHDWXUHH[WHQVLRQVRIWKHIHDWXUH

&RS\ULJKW'$66$8/76<67(0(6 
'HILQHWKHIHDWXUHH[WHQVLRQGDWD
VWUXFWXUH
– &UHDWHWKHH[WHQVLRQFDWDORJ
&$78QLFRGH6WULQJ&DWDORJ1DPH 0\([W&DWDORJ&$7IFW

&$7,&DWDORJ SL0\([W&DWDORJ 18//

+5(68/7UF &UHDWH&DWDORJ  &DWDORJ1DPH SL0\([W&DWDORJ 

6HWDFOLHQWLGHQWLILFDWLRQIRUWKHFDWDORJ

&$78QLFRGH6WULQJ&OLHQW,G 0\&OLHQW,G

UF SL0\([W&DWDORJ!6HW&OLHQW,G  &OLHQW,G 

– &UHDWHWKHIHDWXUHH[WHQVLRQLQWKHFDWDORJ
&$7,([WHQVLRQ)DFWRU\ SL)DFWRU\2Q0\([W&DWDORJ 18//

UF SL0\([W&DWDORJ!4XHU\,QWHUIDFH ,,'B&$7,([WHQVLRQ)DFWRU\ YRLG  SL)DFWRU\2Q0\([W&DWDORJ 

FRQVWFKDU ([WHQVLRQ/DWH7\SH 0\([WHQVLRQ

&$7,([WHQVLRQ SL0\([W 18//

UF SL)DFWRU\2Q0\([W&DWDORJ!&UHDWH([WHQVLRQ ([WHQVLRQ/DWH7\SH

([WHQVLRQ6XSHU7\SH May be NULL if no inheritance


SL0\([W 

&RS\ULJKW'$66$8/76<67(0(6 
'HILQHWKHIHDWXUHH[WHQVLRQGDWD
VWUXFWXUH
– 'HILQHWKHIHDWXUHH[WHQVLRQDWWULEXWHV
&$7,6SHF2EMHFW SL6SHF2Q0\([W 18//

UF SL0\([W!4XHU\,QWHUIDFH ,,'B&$7,6SHF2EMHFW YRLG  SL6SHF2Q0\([W 

SL0\([W±!5HOHDVH  SL0\([W 18//

H[DPSOH

&$78QLFRGH6WULQJ$WWULEXW1DPH «

E\GHIDXOWWKHDWWULEXWH¶VTXDOLW\RIDIHDWXUHH[WHQVLRQLV 1(875$/

&$7,6SHF$WWULEXWH SL$WWULEXWH SL6SHF2Q0\([W!$GG$WWULEXWH $WWULEXW1DPHWNBVWULQJ 

SL$WWULEXWH!5HOHDVH  SL$WWULEXWH 18//

– 6DYHWKHFDWDORJ
UF 6DYH&DWDORJ  SL0\([W&DWDORJ&DWDORJ1DPH 

SL0\([W&DWDORJ!5HOHDVH SL0\([W&DWDORJ 18//

&RS\ULJKW'$66$8/76<67(0(6 
&UHDWHDQLQVWDQFHLQDGRFXPHQW

– &UHDWHDQDSSOLFDWLYHFRQWDLQHUIRUDQDSSOLFDWLYH
GRPDLQ
&$78QLFRGH6WULQJ$SSOL&RQW,G &RQWDLQHU1DPH

&$78QLFRGH6WULQJ&RQWDLQHU/DWH7\SH 0\&RQWDLQHU7\SH
The container must be of type CATFeatCont
&$78QLFRGH6WULQJ&RQWDLQHU6XSHU7\SH &$7)HDW&RQW or must derive from a CATFeatCont
&$7%DVH8QNQRZQ S$SSOL&RQW 18//

UF &$7&UHDWH$SSOLFDWLYH&RQWDLQHU S$SSOL&RQW

S'RFXPHQW Pointer on the document (CATDocument *)


&RQWDLQHU/DWH7\SH

,,'B&$7,&RQWDLQHU

&RQWDLQHU6XSHU7\SH

$SSOL&RQW,G 

&$7,&RQWDLQHU SL$SSOL&RQW  &$7,&RQWDLQHU S$SSOL&RQW

&RS\ULJKW'$66$8/76<67(0(6 
&UHDWHDQLQVWDQFHLQDGRFXPHQW

– 2SHQWKHH[WHQVLRQFDWDORJLQWKHDSSOLFDWLYH
FRQWDLQHU
&$7,&DWDORJ SL0\([W&DWDORJ 18//

UF $FFHVV&DWDORJ &DWDORJ1DPH &OLHQW,GSL$SSOL&RQWSL0\([W&DWDORJ 

SL$SSOL&RQW!5HOHDVH 
Open the catalog inside the applicative container. From that point,
SL$SSOL&RQW 18// extensions will be automatically instantiated in this applicative container.
SL0\([W&DWDORJ!5HOHDVH 

SL0\([W&DWDORJ 18//

*HWD&$7([WHQGDEOHSRLQWHURQWKHIHDWXUHWREHH[WHQGHG

&$7([WHQGDEOH SL([WHQGDEOH)HDWXUH,QVWDQFH 18//

UF )HDWXUH,QVWDQFH!4XHU\,QWHUIDFH ,,'B&$7([WHQGDEOH

YRLG  SL([WHQGDEOH)HDWXUH,QVWDQFH 

&RS\ULJKW'$66$8/76<67(0(6 
&UHDWHDQLQVWDQFHLQDGRFXPHQW

– $FWLYDWHWKHIHDWXUHH[WHQVLRQRQWKHIHDWXUH

&$7%RROHDQ&UHDWH,I1HFHVVDU\ 758(

UF SL([WHQGDEOH)HDWXUH,QVWDQFH!$FWLYDWH([WHQVLRQ ([WHQVLRQ/DWH7\SH

$SSOL&RQW,G

&UHDWH,I1HFHVVDU\ 

The link between the feature (thru the CAT Extendable interface) and the feature extension is created
at this step

&RS\ULJKW'$66$8/76<67(0(6 
$ERXW3URYLGHUV

,QWKLVOHVVRQ\RXZLOOOHDUQWKHFRQFHSWRI3URYLGHUV

3URYLGHUV
3URJUDPPLQJZLWKSURYLGHUV

&RS\ULJKW'$66$8/76<67(0(6 
3URYLGHUV

• 7KH3URYLGHUVPHFKDQLVPDOORZVDQH[WHUQDODSSOLFDWLRQ
XVLQJ)HDWXUHH[WHQVLRQWREHLQWHJUDWHGLQWKHQDWLYH
EHKDYLRUVRID'6DSSOLFDWLRQ

• ,QRWKHUZRUGV'6DSSOLFDWLRQVGRQRWQHHGWREHDZDUHRI
WKHVSHFLILFFRQWHQWVRIHDFKDSSOLFDWLYHFRQWDLQHURU
IHDWXUHH[WHQVLRQIRXQGLQWKHGRFXPHQWDQG\HWVWLOOEH
FDSDEOHRIWDNLQJWKHVHLQWRDFFRXQWZKHQSHUIRUPLQJ
QDWLYHWDVNVVXFKDVQDYLJDWLRQRUYLVXDOL]DWLRQ

• 3URYLGHUVDUHQRWSHUVLVWHQW

&RS\ULJKW'$66$8/76<67(0(6 
3URYLGHUV

)LYHSURYLGHULQWHUIDFHVKDYHEHHQGHILQHG

&$7,1DYLJDWH3URYLGHU FRUUHVSRQGLQJWR
&$7,1DYLJDWH2EMHFW

&$7,'9LVX3URYLGHU FRUUHVSRQGLQJWR&$7,'*HR9LVX

&$7,,FRQ3URYLGHU FRUUHVSRQGLQJWR&$7,1DYLJ0RGLI\

&$7,&W[0HQX3URYLGHU FRUUHVSRQGLQJWR&$7,8,$FWLYDWH

&$7,3DUP3URYLGHU FRUUHVSRQGLQJWR&$7,3DUP3XEOLVKHU

&RS\ULJKW'$66$8/76<67(0(6 
3URYLGHUV
([DPSOH

<<featureDS>>
CATINavigateObject 3XPS
20,PSOHPHQWDWLRQ!!
CATINavigateProvider
CAANavigProviderImpl

Spec Container

<<feature>>
$JJUHJDWHG)HDWXUH
CATINavigateObject

H[WHQGV!! <<feature extension>>


3XPS([WHQVLRQ

Applicative Container

Using CATINavigateProvider allows to link


the aggregated feature to the DS feature
&RS\ULJKW'$66$8/76<67(0(6 
3URJUDPPLQJZLWK3URYLGHUV

– ,PSOHPHQWWKHSURYLGHULQWHUIDFH

20,PSOHPHQWDWLRQ!!
CATIxxxProvider
CAAProviderImpl

– 'HFODUH3URYLGHURQWKHGRFXPHQWDIWHU\RXFUHDWH\RXU
DSSOLFDWLYHFRQWDLQHU
5HWULHYHD &$7,3URYLGHUV SRLQWHURQWKHFXUUHQWGRFXPHQW

&$7,3URYLGHUV SL3URYLGHUV2Q'RFXPHQW 18//

+5(68/7UF S'RF!4XHU\,QWHUIDFH ,,'B&$7,3URYLGHUV YRLG  SL3URYLGHUV2Q'RFXPHQW 

'HFODUHSURYLGHUWROLVWWKHFKLOGUHQRIWKHDSSOLFDWLYHFRQWDLQHU

&$$3URYLGHU,PSO S0\3URYLGHU QHZ&$$3URYLGHU,PSO 

UF SL3URYLGHUV2Q'RFXPHQW ! $GG3URYLGHU &$7,[[[3URYLGHU&ODVV,G  S0\3URYLGHU 

&RS\ULJKW'$66$8/76<67(0(6 
3URJUDPPLQJZLWK3URYLGHUV
([DPSOH ,PSOHPHQW&$7,1DYLJDWH3URYLGHU*HW&KLOGUHQ
+5(68/7&$$1DYLJ3URYLGHU,PSO*HW&KLOGUHQ &$7%DVH8QNQRZQ L2EM 

&$7/,673 &$7%DVH8QNQRZQ  R/LVW&KLOGUHQ

&$7,/LQNDEOH2EMHFW SL/LQNDEOH2Q([W)HDWXUH 18//

+5(68/7UF L2EM !4XHU\,QWHUIDFH ,,'B&$7,/LQNDEOH2EMHFW YRLG  SL/LQNDEOH2Q([W)HDWXUH 

&$7'RFXPHQW S'RF 18//


retrieve document
LI68&&(('(' UF S'RF SL/LQNDEOH2Q([W)HDWXUH !*HW'RFXPHQW 

HOVHUHWXUQ(B)$,/

&$7%DVH8QNQRZQ 0\$SSOLFDWLYH&RQWDLQHU 18//

&$7,GHQWLG$SSOL&RQW &$7)HDW&RQW

&$78QLFRGH6WULQJ DSSOL&RQW1DPH 0\$SSOLFDWLYH&RQWDLQHU 


Retrieve the applicative container
UF &$7*HW$SSOLFDWLYH&RQWDLQHU 0\$SSOLFDWLYH&RQWDLQHU

S'RF

,,'B&$7,&RQWDLQHU

DSSOL&RQW1DPH 

&RS\ULJKW'$66$8/76<67(0(6 
3URJUDPPLQJZLWK3URYLGHUV
([DPSOH ,PSOHPHQWV&$7,1DYLJDWH3URYLGHU*HW&KLOGUHQ
&$$,)HDWXUH([W SL)HDWXUH([W 18//

UF L2EM !4XHU\,QWHUIDFH ,,'B&$$,)HDWXUH([W YRLG  SL)HDWXUH([W 

LI68&&(('(' UF
check if extension is actived
^ &$7,([WHQGDEOH S,([W3URG 18//

UF SL)HDWXUH([W !4XHU\,QWHUIDFH ,,'B&$7,([WHQGDEOH YRLG  S,([HQGDEOHW3XPS 

FRQVWFKDU ([WHQVLRQ1DPH 3XPS([WHQVLRQ

UF S,([HQGDEOHW3XPS!,V([WHQVLRQ$FWLYH ([WHQVLRQ1DPHDSSOL&RQW1DPH 

LI68&&(('(' UF retrieve aggregated feature


^ &$7,3XPS([WHQVLRQ S,3XPS([W 18//

UF SL)HDWXUH([W !4XHU\,QWHUIDFH ,,'B&$7, 3XPS([WHQVLRQ YRLG  S,([HQGDEOHW3XPS 

&$7,6SHF2EMHFW SL6SHF S,([HQGDEOHW3XPS!*HW$JJUHJDWHG)HDWXUH 

R/LVW&KLOGUHQ !$SSHQG &$7%DVH8QNQRZQ SL6SHF  Add aggregated feature to the list


`

UHWUXQ6B2.

&RS\ULJKW'$66$8/76<67(0(6 
7R6XP8S

,QWKLV&RXUVH\RXKDYHVHHQ«

7KH9)HDWXUHFRQFHSW

7KH)HDWXUHFUHDWLRQDQGPDQDJHPHQW

+RZWRLPSOHPHQWD)HDWXUH

+RZWRH[WHQGD)HDWXUH

+RZWRLQWHJUDWHSURYLGHUV

&RS\ULJKW'$66$8/76<67(0(6 
&$$99LVXDOL]DWLRQ

<RXZLOOOHDUQKRZWRPDQDJHREMHFWUHSUHVHQWDWLRQ

)UDPHZRUN2EMHFWLYHV

0RGHO9LHZ&RQWUROOHU$UFKLWHFWXUH

9LVXDOL]DWLRQ,QWHUIDFHV
 &$7,9LVX
 &$7,0RGHO(YHQWV

&RS\ULJKW'$66$8/76<67(0(6 
)UDPHZRUN2EMHFWLYHV

• 9LVXDOL]HDPRGHO
– $PRGHOLVYLVXDOL]HGWKDQNVWRDJUDSKLF
UHSUHVHQWDWLRQ
• 0XOWLZLQGRZPDQDJHPHQW
– &RPSRQHQWVFDQEHVHHQLQVHYHUDOYLHZHUVRIWKH
VDPHRURIVHYHUDOZLQGRZVDWWKHVDPHWLPH
• 'LUHFWPDQLSXODWLRQ
– 9LHZHUVSURYLGH'DQG'PDQLSXODWRUVWRLQWHUDFW
ZLWKWKHUHSUHVHQWDWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
$UFKLWHFWXUH3ULQFLSOHV

• 0RGHO9LHZ&RQWUROOHU
– $VVXPHWKHLQGHSHQGHQFHEHWZHHQWKHGDWDPRGHO
DQGWKHSUHVHQWDWLRQ YLHZ
– $OORZWRFKDQJHWKHYLHZHUZLWKRXWLPSDFWRQWKH
GDWD
• 9LVXDOL]DWLRQLVUXOHGE\WKHFRQWUROOHU
– 0DQDJHRQHRUVHYHUDOYLHZVRIWKHGDWD
– 1RWLI\WKHYLHZVZKHQWKHGDWDFKDQJH
– 5HFHLYHWKHXVHULQWHUDFWLRQVWRXSGDWHWKHPRGHO
ZKHQQHFHVVDU\ REMHFWFUHDWLRQPRGLILFDWLRQRU
GHOHWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
$UFKLWHFWXUH2YHUYLHZ
 Send
notification
 Update the model (user
(if necessary) &RQWUROOHU interaction)
&$7&RPPDQG
 Sets the graphic
&$79LV0DQDJHU representation to the
 viewpoint
Attaches  Sends Notification

 Asks for the graphic


representation
5RRW2EMHFW %DJ' %DJ'
&$7,0RGHO(YHQWV

&$76HOHFWRU
&$7,9LVX 9LHZSRLQW'

'DWD 9LHZSRLQW'

&RPSRQHQW &$$,*UDSK'9LVX

&$7,'*HR9LVX 9LHZHU

0RGHO 9LHZ
&RS\ULJKW'$66$8/76<67(0(6 
&RQWUROOHU0LVVLRQV

• 7KHFRQWUROOHUGLVSOD\VDURRWREMHFW IHGHUDWLYHPRGHOHQWLW\ 
– ,WJHWVUHSUHVHQWDWLRQVIURPWKHURRWREMHFW
• ,WGLVSOD\VWKHURRWREMHFWLQHYHU\YLHZHUDQGHYHU\
YLHZSRLQWGHILQHGLQWKHGRFXPHQWZLQGRZ
– 7KHURRWREMHFWDVNVUHSUHVHQWDWLRQVIRU
LWVFKLOGUHQWRWKHFRQWUROOHU
• ,WJURXSVWKHPLQDEDJ
RIUHSUHVHQWDWLRQV
• &KLOGUHQPD\DOVREH
IHGHUDWLYHHQWLWLHV
UHFXUVLYHSURFHVV Controller Root
object

Displayed objects

&RS\ULJKW'$66$8/76<67(0(6 
&RQWUROOHU0LVVLRQV

• 7KHFRQWUROOHUUHIUHVKHVYLHZHUVDFFRUGLQJWRPRGHO
FKDQJHV
– /LVWHQVWRHYHQWVVHQWE\WKHPRGHO
• &UHDWLRQ$VNIRUQHZUHSUHVHQWDWLRQV LIDQ\
• 0RGLILFDWLRQ0RGLI\RUUHFRPSXWHVWKH
UHSUHVHQWDWLRQ
• 'HOHWLRQ5HPRYHVREVROHWHUHSUHVHQWDWLRQV LI
UHTXLUHG

PDQDJHV
YLHZHUFRQWHQWV
&RS\ULJKW'$66$8/76<67(0(6 
&RQWUROOHU&UHDWLRQ

• 7KHFRQWUROOHU&$79LV0DQDJHULVXQLTXH
– <RXDUHQRWUHVSRQVLEOHWRFUHDWHRUGHOHWHLW
– <RXFDQUHWULHYHLWE\DJOREDODFFHVVPHWKRG

&$79LV0DQDJHU*HW9LV0DQDJHU 

&RS\ULJKW'$66$8/76<67(0(6 
5RRW2EMHFW$WWDFKPHQW

• $WWDFKPHQWIURPWKH5RRW2EMHFWWRWKH&RQWUROOHU
– ,WFUHDWHVRQHRUVHYHUDO LH'' FHOOVRI
YLVXDOL]DWLRQ
• $FHOORIYLVXDOL]DWLRQLV
– $URRWREMHFW
– $YLHZSRLQW
– $OLVWRIYLVXDOL]DWLRQLQWHUIDFHVXVHGE\WKH
FRQWUROOHU
– $&$76HOHFWRUWKDWDOORZVWKHXVHUWRLQWHUDFWZLWK
WKHUHSUHVHQWDWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
&RQWUROOHU3URWRFRO 

• 7KHFRQWUROOHUKDVWRNQRZWKH9LVXDOL]DWLRQLQWHUIDFHV
– 7KHREMHFWEHKDYLRULVGHVFULEHGWKURXJKDGHGLFDWHG
LQWHUIDFHWKDWGHULYHVIURP&$7,9LVX
– 7KHURRWREMHFWDQGDOOLWVGHVFHQGDQWVDGKHUHWRLW

&$7,9LVX
5RRW
2EMHFW

&$7,'*HR9LVX &$7,'*HR9LVX 0\'*HR9LVX


'LVSOD\HG
2EMHFW

&RS\ULJKW'$66$8/76<67(0(6 
&RQWUROOHU3URWRFRO 

• &RQWUROOHUXVHVWKH9LVXDOL]DWLRQLQWHUIDFHVWR
– &UHDWHWKHLQLWLDOJUDSKLFUHSUHVHQWDWLRQ
• %XLOG5HSPHWKRG
– 8SGDWHWKHUHSUHVHQWDWLRQ
• 0RGLI\5HSPHWKRG
– %XLOGWKHUHSUHVHQWDWLRQIRU SUH KLJKOLJKWSXUSRVHV
• %XLOG+LJKOLJKW/RRNPHWKRG
– %XLOGWKHOLVWRIVHOHFWHGHOHPHQWVZKHQWKH
UHSUHVHQWDWLRQLVVHOHFWHG
• 'HFRGH*UDSKLFPHWKRG

&RS\ULJKW'$66$8/76<67(0(6 
&RQWUROOHU3URWRFRO 

• &RQQHFWLRQIURP0RGHOWR9LVXDOL]DWLRQZRUOG
– &$7,0RGHO(YHQWVVHQGVHYHQWVZKHQWKHPRGHOLV
XSGDWHG
– 7KHVHHYHQWVLQIRUPWKHFRQWUROOHUZKHQUH
FRPSXWDWLRQLVQHHGHG
– 7KHURRWREMHFWDQGLWVGHVFHQGDQWVDGKHUHWRLW
CATIModelEvents Root Object

Displayed
CATIModelEvents
Object

&RS\ULJKW'$66$8/76<67(0(6 
&RQWUROOHU3URWRFRO 

• 8VHU,QWHUDFWLRQ
– $&$76HOHFWRULVFUHDWHGZLWKDFHOORIYLVXDOL]DWLRQWR
DQVZHUWRXVHUDFWLRQV 6HOHFW3LFN'UDJ«
– $&$7&RPPDQGFDQEHXVHGWRFDWFKDQGSURFHVVWKH
QRWLILFDWLRQVVHQGE\WKH&$76HOHFWRU
– 7KH&$7&RPPDQGLVDVVRFLDWHGWRWKH&$76HOHFWRU
GXULQJWKH5RRW2EMHFWDWWDFKPHQW

&RS\ULJKW'$66$8/76<67(0(6 
(YHQWV7UHH
:KHQ\RXDJJUHJDWHWKHGLVSOD\HGREMHFWWRWKHURRW
&$7,0RGHO(YHQWVBYDU VS0RGHO(YHQWV2Q5RRW SL5RRW 
SL0RGHO(YHQWV2Q5RRW!&RQQHFW7R &$7%DVH8QNQRZQ 'LVSOD\HG2EMHFW 

:KHQ\RXZDQWWRXSGDWHWKH YLVXDOLVDWLRQ
&$7&UHDWH&UHDWHQRWLI 'LVSOD\HG2EMHFW 

&$7,0RGHO(YHQWVBYDU VS0RGHO(YHQWV2Q2EMHFW 'LVSOD\HG2EMHFW 


VS0RGHO(YHQWV2Q2EMHFW!*HW'LVSDFKHU &UHDWHQRWLI 

Root Object &RQQHFW7R


• $QRWLILFDWLRQFDQEH
&$7&UHDWH
6HQG1RWLILFDWLRQ
&$70RGLI\
&$7'HOHWH Displayed
&$70RGLI\9LV3URSHUWLHV
Object

&RS\ULJKW'$66$8/76<67(0(6 
9LVXDOL]DWLRQ ,QWHUIDFHV

CATIVisu

&$7,'*HR9LVX
&$7,'*HR9LVX 'LVSOD\HG
«
2EMHFW
&$7,0RGHO(YHQWV

&RS\ULJKW'$66$8/76<67(0(6 
&$7,9LVX,PSOHPHQWDWLRQ

• $GDSWHUFODVV&$7([W,9LVX
– ,WSURYLGHVDOPRVWDOOUHTXHVWHGIXQFWLRQVH[FHSW
%XLOG5HS
• GHIDXOWLQWHUIDFHV7KHVDPHREMHFWFDQEHUHSUHVHQWHG
LQ'DQGRU'
– &$7,'*HR9LVXDQGRU&$7,'*HR9LVX
– WKH%XLOG5HSPHWKRGUHWXUQVDSRLQWHUWRD&$75HS

CATExtIVisu

CATI3DGeoVisu TSTEVisuOnMyObject

CATRep* BuildRep();
&RS\ULJKW'$66$8/76<67(0(6 
5HSUHVHQWDWLRQV

&$75HS &$7*UDSKLF$WWULEXWH6HW

&$7'5HS &$7'%RXQGLQJ6SKHUH

&$7'%DJ5HS &$7'&XVWRP5HS 2WKHU5HS7\SHV

&$7*UDSKLF3ULPLWLYH

&$7'/LQH*3 &$7')DFH*3 2WKHU*37\SHV

&RS\ULJKW'$66$8/76<67(0(6 
&$7,0RGHO(YHQWV,PSOHPHQWDWLRQ

• $GDSWHUFODVV&$7([W,0RGHO(YHQWV
– 1RQHHGWRUHLPSOHPHQWDQ\PHWKRG

CATExtIModelEvents

CATIModelEvents TSTEEventsOnMyObject

&RS\ULJKW'$66$8/76<67(0(6 
7R6XP8S

,QWKLVOHVVRQ\RXKDYHVHHQ«

0RGHO9LHZ&RQWUROOHUSULQFLSOH

7KHLQWHUIDFHVZKLFKPDQDJHWKH9LVXDOL]DWLRQRI
)HDWXUHV

&RS\ULJKW'$66$8/76<67(0(6 
$SSOLFDWLRQ)UDPH

,QWKLVOHVVRQ\RXZLOOOHDUQWKH&$7,$9IUDPHDQG'RFXPHQWVHGLWLRQ
LQIUDVWUXFWXUH

$SSOLFDWLRQ)UDPH

&RS\ULJKW'$66$8/76<67(0(6 
/RRNDQG)HHORIWKH&$7,$9IUDPH

0HQX%DU

&RPSDVV

&XUUHQW

:RUNEHQFK
6WDQGDUG7RROEDU
6HOHFW
1HZ2SHQ6DYH3ULQW
&RPPDQG
&XW&RS\3DVWH

8QGR5HGR

+HOS

7RROEDUV

WRPDQDJH
6SHFLILFDWLRQ
'9LHZHU 2EMHFWV
*UDSK9LHZ3RLQW

3DQHO

'9LHZ3RLQW *UDSK

9LHZHU

&RS\ULJKW'$66$8/76<67(0(6 
:RUNVKRSDQG:RUNEHQFK

• $ZRUNVKRS RUDZRUNEHQFK GHILQHVDOLVWRIFRPPDQGV


DFFHVVLEOHWKURXJKPHQXVRUWRROEDUV
• $ZRUNVKRSGHILQHVWKHFRPPRQPHQXVDQGWRROEDUV
DVVRFLDWHGWRDJLYHQGRFXPHQWW\SH
• $ZRUNEHQFKSURYLGHVVSHFLDOL]HGFRPPDQGV
– 3DUW'HVLJQIRUVROLGPRGHOLQJ
• 6HYHUDOZRUNEHQFKHVPD\EHDVVRFLDWHGWRDJLYHQ
ZRUNVKRS
– )RUWKH&$73DUWGRFXPHQWVHYHUDOZRUNEHQFKHVDUH
DYDLODEOH
• 3DUW'HVLJQ:LUHIUDPHDQG6XUIDFH'HVLJQ)UHH6W\OH*HQHUDWLYH6KDSH'HVLJQ

&RS\ULJKW'$66$8/76<67(0(6 
$0RGHOIRU&RPPDQG$FFHVV

– $FRPPDQGHQFDSVXODWHVDEDVLF
XVHUDFWLRQ
• &UHDWLRQ(GLWLRQ$QDO\VLV'HOHWLRQ
Command
1,N
– $ZRUNEHQFKJURXSVFRPPDQGV 0,N
GHGLFDWHGWRDJLYHQGRPDLQ Frame Toolbar
• 3DUW'HVLJQ*HQHUDWLYH'UDIWLQJ 0,N 1,N
$VVHPEO\'HVLJQ«
Document 1,1 0,N
Workshop Workbench
– $ZRUNVKRSJURXSVFRPPRQ Type
FRPPDQGVWRDVHWRI
ZRUNEHQFKHVIRUDJLYHQ
GRFXPHQWW\SH

– 7KHIUDPHSURYLGHVWKHJHQHULF
FRPPDQGVIRUDOOWKHZRUNVKRSV
&RS\ULJKW'$66$8/76<67(0(6 
&RPPDQG+HDGHU

&RPPDQGKHDGHUKROGQHFHVVDU\LQIRUPDWLRQWRORDGWKH
FRPPDQG
OLFHQVLQJPDQDJHPHQW
DYDLODELOLW\FRQGLWLRQV
SLFNDELOLW\
JUDSKLFDSSHDUDQFH
QRUPDOIRFXVHGSUHVVHG
WH[WDSSHDUDQFH
1DWLRQDO/DQJXDJH6XSSRUW
OD]\ORDGLQJ
ORDGFRPPDQGFRGHMXVWLQWLPH

0XOWLUHSUHVHQWHG
,FRQ0HQXDQG6KRUWFXW

&RS\ULJKW'$66$8/76<67(0(6 
&RPPDQG+HDGHU&UHDWLRQ

0\:RUNVKRSFSS

LQFOXGH&$7&RPPDQG+HDGHUK³
LQFOXGH&$7&RPPDQG+HDGHUK³
0DF'HFODUH+HDGHU &$70\&PG+HDGHU 
0DF'HFODUH+HDGHU &$70\&PG+HDGHU 

YRLG0\:RUNVKRS&UHDWH&RPPDQGV
YRLG0\:RUNVKRS&UHDWH&RPPDQGV
^
^
QHZ&$70\&PG+HDGHU ³&RPPDQG1DPH³
QHZ&$70\&PG+HDGHU ³&RPPDQG1DPH³
³6KDUHG/LEUDU\'HILQLQJ7KH&RPPDQG³
³6KDUHG/LEUDU\'HILQLQJ7KH&RPPDQG³
³&RPPDQG&ODVV1DPH
³&RPPDQG&ODVV1DPH
YRLG 'DWD7R%H3DVVHG7R7KH&RPPDQG 
YRLG 'DWD7R%H3DVVHG7R7KH&RPPDQG 
«
«

&RS\ULJKW'$66$8/76<67(0(6 
3UHVHQWDWLRQV

7KHGRFXPHQW
LQIUDVWUXFWXUH
GHILQHVWKHZD\LW
LVGLVSOD\HG
– D'YLHZ
SRLQW
– D'YLHZ
SRLQW
– DJUDSKYLHZ
SRLQW
– DFRPELQDWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
3UHVHQWDWLRQV

•6HYHUDO
GRFXPHQWVFDQ
EHGLVSOD\HGDW
WKHVDPHWLPH

•0',0XOWLSOH
'RFXPHQW
,QIUDVWUXFWXUH

&RS\ULJKW'$66$8/76<67(0(6 
3DWK7R2EMHFWV

$FFHVVDQREMHFWLV
GRQHWKUXLWVDQFHVWRUV

(;ZKHQVHOHFWLQJD
OLQHGHILQHGLQDVNHWFK
WKHFRPSOHWHSDWKWR
DFFHVVWKHOLQHLV
UHWULHYHGWKURXJKD
&$73DWK(OHPHQW 
?3DUW?3DUW%RG\?6NHWFK
?/LQH

&RS\ULJKW'$66$8/76<67(0(6 
7KH6HOHFW&RPPDQG

6(/(&7LVWKHGHIDXOW
FRPPDQG
– &RS\&XW3DVWH
WKHP
– 'HOHWHWKHP
– 3URYLGHWKHPDV
LQSXWIRU
FRPPDQGWREH
ODXQFKHG
REMHFWDFWLRQ
SDUDGLJP

6HOHFWLRQRIIHUVDOVRDPHDQ WRSURYLGH
PDQLSXODWRUVRQREMHFWV
&RS\ULJKW'$66$8/76<67(0(6 
6HOHFWLRQPDQDJHPHQW

(DFKGRFXPHQWLV
FRQWUROOHGE\DQ
HGLWRUPDQDJLQJWKH
VHOHFWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
6HOHFWLRQPDQDJHPHQW

*URXSRIREMHFWV

– &62&XUUHQW6HWRI2EMHFW
• FDQEHXVHGE\DQ\FRPPDQGWRUHWULHYHWKHVHOHFWHGREMHFWV
• 2EMHFWVFRQWDLQHGLQWKH&62KDYHXVXDOO\WKHLUJUDSKLFDO
UHSUHVHQWDWLRQKLJKOLJKWHG

– &$7;62VSHFLDOL]HGE\WKHIROORZLQJREMHFWVNQRZQE\WKHYLHZHU
• +62+LJKOLJKWHG6HWRI2EMHFWVWKHREMHFWVWKDWWKHFRPPDQG
KLJKOLJKWV(DFKREMHFWLQWKH&62LVDOVRLQWKH+62
• 3623UHVHOHFWHG6HWRI2EMHFWVWKHREMHFWVWKDWDUHKDQGOHGE\D
PDQLSXODWRUVHWE\WKHFXUUHQWFRPPDQGDQGWKDWDUHSUHDFWLYDWHG
DQGPRYHG

– ,62,QWHUDFWLYH6HWRI2EMHFWV
• XVHGWRFRQWDLQLQWHUDFWLYHREMHFWVWKDWLVREMHFWVWKDWDUHQRWSDUWRI
WKHGRFXPHQWEXWZKLFKDUHGLVSOD\HGWRHQDEOHWKHLUGRFXPHQWREMHFW
KDQGOLQJVXFKDVPDQLSXODWRUKDQGOHV
&RS\ULJKW'$66$8/76<67(0(6 
2EMHFW(GLWLRQ

2EMHFW(GLWLRQ LVHQDEOHGLQDZD\VSHFLILHGE\WKHREMHFW

– LISRVVLEOHDQDSSURSULDWHZRUNVKRSLVORDGHG
• GHSHQGLQJRQWKHIDFWWKDWWKH&$7,8,$FWLYDWH LQWHUIDFHLVLPSOHPHQWHGE\WKH
DFWLYHREMHFW ZKRVHHGLWLRQLVUHTXHVWHG RUE\RQHRILWVDQFHVWRUV

• ZRUNVKRSVDUHQRWUHVHUYHGWRGRFXPHQWW\SHV H[DPSOH6NHWFK

– DGGLWLRQDOO\DQHGLWLRQFRPPDQGPD\EHVWDUWHG
• GHSHQGLQJRQWKHIDFWWKDWWKH&$7,(GLW LQWHUIDFHLVLPSOHPHQWHGE\WKHDFWLYH
REMHFW UHWXUQWKH&$7&RPPDQGFODVVLQVWDQFHWKDWHQDEOHVWKHREMHFWHGLWLRQ 

• $FWLYDWHPHWKRGLVFDOOHGZKHQHYHUWKHHQGXVHULQWHQGVWRHGLWWKHREMHFWE\
GRXEOHFOLFNLQJRUWKURXJKWKHREMHFW
VFRQWH[WXDOPHQX

&RS\ULJKW'$66$8/76<67(0(6 
2EMHFW(GLWLRQ

,PSOHPHQWLQJ&$7,(GLW,QWHUIDFHRQDQREMHFW

❑ FUHDWHDQH[WHQVLRQFODVVWKDWGHULYHVIURP&$7([W,(GLW
FODVVDQGH[WHQGV\RXUREMHFWFODVV RUODWHW\SH DVD
GDWDH[WHQVLRQ7KHQLPSOHPHQWWKH$FWLYDWH PHWKRG

0\2EMHFW &$7([W,(GLW

767((GLW2Q0\2EMHFW &$7,(GLW
$FWLYDWH 

$FWLYDWHPDNHVQHZ&RPPDQGZKLFKLVXVHGIRUFUHDWLRQDQGPRGLILFDWLRQ
&RS\ULJKW'$66$8/76<67(0(6 
2EMHFW3URSHUWLHV
7RDGG3URSHUWLHVIRUDQREMHFWW\SH
– ,ILW¶VD'6REMHFWXVH
&$7,3URSHUW\
– ,IQRWFUHDWHVDQGLPSOHPHQWV
\RXULQWHUIDFHWRGHILQH
SURSHUWLHV
– LPSOHPHQWWKH
&$7,(GLW3URSHUWLHV LQWHUIDFHWR
DGG\RXURZQWDESDJHLQERWK
FDVHV
2EMHFW3URSHUWLHVHGLWLRQ
FDQEHWULJJHUHGWKUX
– 6HOHFWLQJLWWKHQµ(GLW¶PHQXEDU
– 6HOHFWLQJLWWKHQSUHVVLQJ
$OW(QWHU
– FRQWH[WXDOPHQXLWHP
&RS\ULJKW'$66$8/76<67(0(6 
$SSOLFDWLRQ3URSHUWLHV

$SSOLFDWLRQ3URSHUWLHVDUHHGLWHGWKUX
WKH7RROV2SWLRQVFRPPDQG

– DOOJOREDOSDUDPHWHUVDUHVSHFLILHG
KHUHVRPHDUHVSHFLILFWRDQ
DSSOLFDWLRQPRVWDUHVKDUHG
DPRQJDOORIWKHP

– WKHLUYDOXHVDUHNHSWLQ©VHWWLQJVª
UHSRVLWRULHVVRPHWLPHVERWKLQ
DGPLQLVWUDWRUUHIHUHQFHDQGLQXVHU
SUHIHUHQFHV
• &?:LQQW?3URILOHV?8VHU?$SSOLFDWLRQ
'DWD?'DVVDXOW6\VWHPHV?&$76HWWLQJV

– WKHLQWHUIDFHWRLPSOHPHQWZKHQ
DGGLQJDQHZWDESDJHLV
&$7,8VHU6HWWLQJV

&RS\ULJKW'$66$8/76<67(0(6 
$SSOLFDWLRQ,QWHJUDWLRQ

• 7ZRZD\VWRLQWHJUDWH\RXUFRPPDQGVLQWKH&$7,$
9IUDPH

– 'HILQHD$GGLQLQDVSHFLILFFRQWH[W
• DGGVRPHWRROEDUVLQDQH[LVWLQJZRUNEHQFK

– 'HILQHDQHZZRUNEHQFKOLQNHGWRDVSHFLILF
ZRUNVKRS

&RS\ULJKW'$66$8/76<67(0(6 
$GGLQ

'HILQHDQREMHFWWKDWLPSOHPHQWVWKH$GGLQLQWHUIDFHRIDQ
H[LVWLQJZRUNEHQFK 7RROEDUEXWQRWPHQX
7ZRPHWKRGVWRLPSOHPHQW
YRLG$GGLQ2EMHFW&UHDWH&RPPDQGV
&$7&PG&RQWDLQHU $GGLQ2EMHFW&UHDWH7RROEDUV

$GGLQ2EMHFW &$7,«$GGLQ

&RS\ULJKW'$66$8/76<67(0(6 
:RUNEHQFK

'HILQHDQREMHFWWKDWLPSOHPHQWVWKH:RUNEHQFKLQWHUIDFH
RIDQH[LVWLQJZRUNVKRS 7RROEDUDQGPHQX

'HILQHDQ$GGLQLQWHUIDFHIRU\RXUQHZZRUNEHQFK

7ZRPHWKRGVWRLPSOHPHQW
YRLG:RUNEHQFK2EMHFW&UHDWH&RPPDQGV
&$7&PG:RUNEHQFK :RUNEHQFK2EMHFW&UHDWH:RUNEHQFK

&RS\ULJKW'$66$8/76<67(0(6 
:RUNVKRS:RUNEHQFKGHILQLWLRQ

:RUNVKRSFSS

&$7&PG:RUNEHQFK 0\:RUNEHQFK&UHDWH:RUNEHQFK
'HILQHWKHZRUNEHQFK
^

1HZ$FFHVV &$7&PG:RUNEHQFKS0\:RUNEHQFK1HZ:RUNEHQFK 

1HZ$FFHVV &$7&PG&RQWDLQHUS0\&RQWDLQHU1HZ7RRO%DU 

6HW$FFHVV&XVWRPHU1DPH S0\&RQWDLQHU³0\7RROEDU 
'HILQHWKHFRQWDLQHULQ

1HZ$FFHVV &$7&PG6WDUWHUS6WDUWHU1HZ%XWWRQ  ZKLFKWKHFRPPDQGVZLOOEH

6HW$FFHVV&RPPDQG S6WDUWHU³0\&RPPDQG  LQVWDQWLDWHG,WFDQEHD

6HW$FFHVV&KLOG S0\&RQWDLQHUS6WDUWHU  WRROEDURUDPHQX

1HZ$FFHVV &$7&PG6WDUWHUS6WDUWHU1HZ%XWWRQ 

6HW$FFHVV&RPPDQG S6WDUWHU³0\&RPPDQG  'HILQHDVWDUWHUWKDWZLOOEH


6HW$FFHVV1H[W S6WDUWHUS6WDUWHU  DVVRFLDWHGWRDFRPPDQG

KHDGHUDQGWKHQDUUDQJHWKH
$GG7RROEDU9LHZ S0\&RQWDLQHU5LJKW  FRPPDQGRUGHU
6HW$FFHVV&KLOG S0\:RUNEHQFKS0\&RQWDLQHU 
'HILQHWKHFRQWDLQHUDVD
«
WRROEDUSRVLWLRQLWE\GHIDXOW

RQWKHULJKWDQGLQFOXGHLWLQ

WKHZRUNEHQFK

&RS\ULJKW'$66$8/76<67(0(6 
:RUNVKRS:RUNEHQFKGHILQLWLRQ

:RUNVKRSFSS

&$7&PG:RUNEHQFK 0\:RUNEHQFK&UHDWH:RUNEHQFK

« 5HWULHYHWKH,QVHUW0HQX

1HZ$FFHVV &$7&PG&RQWDLQHUS,16(57,16(57 

1HZ$FFHVV &$7&PG&RQWDLQHUS0\0HQX0\0HQX  'HILQHDQRWKHUFRQWDLQHUWR


6HW$FFHVV&KLOG S0\0HQXS,16(57  EHDJJUHJDWHGLQWKH,QVHUW

PHQX
1HZ$FFHVV &$7&PG6WDUWHUS0\&RPPDQG0\&RPPDQG 

6HW$FFHVV&KLOG S,16(57S0\&RPPDQG 

6HW$FFHVV&RPPDQG S0\&RPPDQG³0\&RPPDQG 

6HW:RUNEHQFK0HQX &$7&PG:RUNEHQFKS0\0HQX  'HILQHWKHFRQWDLQHUDVD

PHQXLQWKHZRUNEHQFK

UHWXUQ&$7&PG:RUNEHQFK

&RS\ULJKW'$66$8/76<67(0(6 
0DLQ,QWHUIDFHVWREHLPSOHPHQWHGE\DQ
2EMHFW
&$7,&XW$QG3DVWDEOH &$7,(GLW3URSHUWLHV
&XW&RS\3DVWH 'HILQHVSHFLILFSURSHUWLHV

&$7,(GLW &$7,'*HR9LVX
(GLW &$7,'*HR9LVX
'LVSOD\LQ''

/LIH&\FOH2EMHFW
'HOHWH &$7,1DYLJDWH2EMHFW
'LVSOD\LQWKHJUDSKYLHZHU

&RS\ULJKW'$66$8/76<67(0(6 
$GGLWLRQDO,QIRUPDWLRQ09&PRGHO
LQWHJUDWLRQ

(GLW,Q3ODFH6LWH8,$FWLYDWH
6HOHFW
6HOHFW
+62
,QLW3HUVLVWHQW +62
362
$SSOLFDWLRQ 362
$SSOLFDWLRQ &62
&62

'RFXPHQW
'RFXPHQW

&RQWDLQHU :LQGRZ
&RQWDLQHU Root container :LQGRZ
9LHZHU
9LHZHU

'*HR9LVX '9LHZHU
'9LHZHU
'9LHZHU
'9LHZHU

6SHF2EMHFW
6SHF2EMHFW
1DYLJDWH2EMHFW *UDSK
*UDSK

'RF7\S
'RF7\S

2EMHFW7\S
2EMHFW7\S 'RF7\S
'RF7\S

2EMHFW7\S
2EMHFW7\S

&RS\ULJKW'$66$8/76<67(0(6 
7R6XP8S

,QWKLV&RXUVH\RXKDYHVHHQ«

+RZWRFUHDWH:RUNEHQFKDQG7RROEDU

+RZWRLQWHJUDWH\RXUFRPPDQGV DSSOLFDWLRQ

7KHVHOHFWLRQRIDQREMHFWLQWKH&$7,$9IUDPH

&RS\ULJKW'$66$8/76<67(0(6 
&$$9'LDORJ(QJLQH

,QWKLVFRXUVH\RXZLOOOHDUQWKHPHFKDQLVPVQHFHVVDU\WR
GHVFULEHDQGWRPDQDJHWKHGLDORJRIDQLQWHUDFWLYHFRPPDQG
KRZWRPRQLWRUWKHLQWHUDFWLRQVDWUXQWLPHDQGPDQDJH
8QGR5HGRFDSDELOLWLHV

2EMHFWLYHVRI&$$9'LDORJ(QJLQH
0DLQQRWLRQV
+RZWRGHILQHDQHZLQWHUDFWLYHFRPPDQG

&RS\ULJKW'$66$8/76<67(0(6 
&$$9'LDORJ(QJLQH2EMHFWLYHV

3URYLGHVDOOWKHREMHFWVDQGPHFKDQLVPV
QHFHVVDU\WRGHVFULEHDQGWRPDQDJHWKH
GLDORJRIDQLQWHUDFWLYHFRPPDQG

0RQLWRUVWKHLQWHUDFWLRQVDWUXQWLPH

0DQDJHV8QGR5HGRFDSDELOLWLHV

&RS\ULJKW'$66$8/76<67(0(6 
0DLQQRWLRQV

,QWKLVOHVVRQ\RXZLOOOHDUQWKH&RPPDQGVPDQDJHPHQWLQ&$7,$9

1RWLRQVWRGHVFULEHDGLDORJ
)LQLWH6WDWH0DFKLQH
'LDORJ$JHQW
'LDORJ&RPPDQG/LIH&\FOH
,QWHUUXSWLRQE\DQRWKHUFRPPDQG
0DQDJLQJ8QGR5HGR

&RS\ULJKW'$66$8/76<67(0(6 
1RWLRQVWRGHVFULEHDGLDORJ

– $6WDWH LVDVWHSLQDGLDORJZKHUHWKHSURJUDPLVZDLWLQJ
IRUDQLQSXW

– 7KHW\SHRIWKHLQSXWLVGHILQHGDWHDFKVWDWH

– $7UDQVLWLRQ LVGHILQHGEHWZHHQDVRXUFHVWDWHDQGD
WDUJHWVWDWH

– ,WLVWULJJHUHGE\D&RQGLWLRQ
• DWOHDVWHYHQWGULYHQDQHQGXVHULQWHUDFWLRQ
• FRQGLWLRQDOLWYDOLGDWHVWKHXVHULQSXW

– :KHQD7UDQVLWLRQ LVWULJJHUHGWKHWDUJHWVWDWHEHFRPHV
WKHDFWLYHVWDWH

– $Q$FWLRQ FDQEHH[HFXWHGGXULQJDWUDQVLWLRQ
&RS\ULJKW'$66$8/76<67(0(6 
)LQLWH6WDWH0DFKLQH

,QLWLDO6WDWH

,QWHUPHGLDWH6WDWHV
,QGLFDWH3RVLWLRQ 3URSRVHG
,QWHUDFWLRQ
0RXVH%XWWRQ&OLFN
>,QGLFDWLRQLQWKHULJKWORFDWLRQ"@ &RQGLWLRQ
7UDQVLWLRQ
3RLQW &UHDWH3RLQW 3RVLWLRQ $FWLRQ

,QGLFDWH3RVLWLRQ

0RXVH%XWWRQ&OLFN
>,QGLFDWLRQLQWKHULJKWORFDWLRQ"@
3RLQW &UHDWH3RLQW 3RVLWLRQ
/LQH &UHDWH/LQH 3RLQW3RLQW
)LQDO6WDWH

&RS\ULJKW'$66$8/76<67(0(6 
'LDORJ$JHQW

$'LDORJ$JHQWWUDQVODWHVDXVHULQWHUDFWLRQLQWRDXVHU
LQSXW
([D&$7,QGLFDWLRQ$JHQWFRQYHUWVDOHIWEXWWRQPRXVHFOLFNLQD 'YLHZHUDVD'
FRRUGLQDWHLQSXW

,WKLGHVWKHGHWDLOVRIKRZDXVHULQWHUDFWLRQLVFRQYHUWHGDV
DXVHULQSXW

,WKHOSVXVGHILQHDQLQSXWGULYHQ GLDORJ
,QGLFDWH
LQVWHDGRIDQHYHQWGULYHQ RQH 3RVLWLRQ

3RVLWLRQ "

&RS\ULJKW'$66$8/76<67(0(6 
'LDORJ$JHQW

– ,WVLPSOLILHVWKH6WDWH&KDUWV
ZKHQFRPSRVLWHLQSXWVDUH
QHFHVVDU\DWRQHVWDWH
6SKHUH&HQWHU
6SKHUH5DGLXV
– $VVRRQDVDGLDORJDJHQWLV
YDOXDWHGLW¶VQRWSURSRVHG
>&HQWHU 5DGLXV"@
DQ\PRUH
• ,IWKLVEHKDYLRULVQRWVXLWDEOHWKHGLDORJ &UHDWH6SKHUH
DJHQWQHHGVWREHGHILQHGDVDUHSHDWHU
• 6HW%HKDYLRU &$7'OJ(QJ5HSHDW

– $GLDORJDJHQWFDQEHUHXVHGE\
UHF\FOLQJLWDIWHUUHWULHYLQJWKH
LQSXW
• ,QLWLDOL]H$FTXLVLWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
'LDORJ&RPPDQG/LIH&\FOH

$XWRPDWLF
WUDQVLWLRQ
6WDUW %HJLQ (QG 'HIDXOW
%XLOG*UDSK $FWLYDWH &DQFHO &RPPDQG

5HVWDUW

&RS\ULJKW'$66$8/76<67(0(6 
,QWHUUXSWLRQE\DQRWKHUFRPPDQG

7KHLQWHUUXSWLQJFRPPDQGLVH[FOXVLYH
,QWHUUXSWLQJ
FRPPDQG

&XUUHQW
FRPPDQG &DQFHO

7KHLQWHUUXSWLQJFRPPDQGLVVKDUHG
,QWHUUXSWLQJ
FRPPDQG

&XUUHQW
FRPPDQG 'HVDFWLYDWH $FWLYDWH

&RS\ULJKW'$66$8/76<67(0(6 
0DQDJLQJ8QGR5HGR

7ZROHYHOVRI8QGR5HGR
,QSXW8QGR5HGRZLWKLQDFRPPDQG
&RPPDQG8QGR5HGR

:KHQDQDFWLRQLVDVVRFLDWHGWRDWUDQVLWLRQDQ8QGR
PHWKRGVKRXOGEHGHILQHG

:LWKLQDFRPPDQGLIWKH8QGRFRPPDQGLVDFWLYDWHGWKH
SUHYLRXVWUDQVLWLRQLVLQYHUWHGDQGLIWKHUHZDVDQ
DFWLRQWKHFRUUHVSRQGLQJ8QGRPHWKRGLVUXQ

7KHQZKHQRXWRIDFRPPDQGJOREDO8QGRPHWKRGVDUH
H[HFXWHGWRFDQFHOWKHUHVXOWVRIWKHSUHYLRXV
FRPPDQGV
&RS\ULJKW'$66$8/76<67(0(6 
0DQDJLQJ8QGR5HGR

8QGR 8QGR R
G
Q
8

W
X
S
Q
,

&DQFHOWKH
QG &DQFHOWKH
VW
8QGR
SRLQWVHOHFWLRQ SRLQWVHOHFWLRQ

R
G
8QGR 8QGR Q
8

G
Q
D
P
P
R
&

&DQFHODSRLQWFUHDWLRQ &DQFHOWKHWULDQJOH

&RS\ULJKW'$66$8/76<67(0(6 
+RZWRSURJUDPDQLQWHUDFWLYHFRPPDQG
,QWKLVOHVVRQ\RXZLOOOHDUQKRZWRSURJUDPDQHZLQWHUDFWLYHFRPPDQG

&$76WDWH&RPPDQG
5HVRXUFHILOH
&RPPDQGZLWKZLWKRXWDQDUJXPHQW
'HILQHWKH6WDWH&KDUWV
'HILQHWKH6WDWHV
'LDORJ$JHQW0DLQ7\SHV
'LDORJ$JHQW%HKDYLRUV
3URSRVH0XOWL$FTXLVLWLRQ
5HWULHYH0XOWL$FTXLVLWLRQ
3OXJWKH'LDORJ$JHQWVWRWKHVWDWHV
'HILQHVLPSOHFRQGLWLRQWRWULJJHUWUDQVLWLRQV
'HILQHFRQGLWLRQFRQVWUDLQLQJWKHXVHULQSXW
'HILQHDFWLRQGRQHLQDWUDQVLWLRQ
5XEEHU%DQGLQJ
&RS\ULJKW'$66$8/76<67(0(6 
7KH&$76WDWH&RPPDQG&ODVV

– &UHDWHDQHZFODVVGHULYLQJIURP&$76WDWH&RPPDQG
– 2YHUORDGDWOHDVW
• 7RGHVFULEH\RXURZQVWDWHFKDUW
– %XLOG*UDSK

• 7RPDQDJHSURSHUO\\RXUFRPPDQGOLIHF\FOH
– $FWLYDWH 
– 'HVDFWLYDWH
– &DQFHO

– 'HILQHVRPHVSHFLILFPHWKRGVWKDWZLOOEHXVHGDV
FRQGLWLRQVRUDFWLRQV
– 6WRUHDVGDWDPHPEHUVWKHGLDORJDJHQWVXVHGLQWKH
FRPPDQG

&RS\ULJKW'$66$8/76<67(0(6 
5HVRXUFHILOH

– $OOWKHWH[WPHVVDJHVWKDWDSSHDURQWKHVFUHHQVKRXOG
EHGHILQHGWKURXJKDUHVRXUFHGHILQHGLQD5HVRXUFHILOH
OLQNHGWRWKHFRPPDQG
&ODVV0\&RPPDQGSXEOLF&$76WDWH&RPPDQG

7KLVGHILQHVDUHVRXUFHILOH0\&RPPDQG&$71OV
^
ZKHUHDOOWKHFRPPDQGUHVRXUFHVZLOOEHGHILQHG

'HFODUH5HVRXUFH 0\&RPPDQG&$76WDWH&RPPDQG


0\&RPPDQGP\5HVRXUFH0HVVDJH ³6HOHFWWKHILUVW3RLQW

– 5HVRXUFHILOHVDUHVWRUHGLQ
• &DWLD?&RGH?LQWHOBD?&1H[W?UHVRXUFHV?PVJFDWDORJ
• 7KH(QJOLVKDQGGHIDXOWYHUVLRQLVVWRUHGLQWKLV
GLUHFWRU\7KHWUDQVODWHGYHUVLRQLVVWRUHGLQDVXE
GLUHFWRU\OLQNHGWRWKHODQJXDJHQDPH
–)UHQFK*HUPDQ-DSDQHVH

&RS\ULJKW'$66$8/76<67(0(6 
&RPPDQGZLWKZLWKRXWDQDUJXPHQW

&$7&UHDWH&ODVV 0\&RPPDQG
« 7KLVPDFURLVPDQGDWRU\WREHDEOHWRLQVWDQWLDWHD
FRUUHVSRQGLQJFRPPDQGKHDGHULQDWRROEDURUDPHQX

– 6RPHWLPHVLW¶VLQWHUHVWLQJWRSDVVDQDUJXPHQWWRD
FRPPDQGVRWKHFRPPDQGFDQEHUHXVHGIRUFUHDWLRQ
DQGDOVRIRUHGLWLRQ
&$7&UHDWH&ODVV$UJ 0\&RPPDQG&$7,6DPSOH

0\&RPPDQG0\&RPPDQG &$7,6DPSOH L$UJ


«

&RS\ULJKW'$66$8/76<67(0(6 
'HILQHWKH6WDWH&KDUWV

– 2YHUORDGWKH%XLOG*UDSKPHWKRG
• &UHDWHDOOWKHVWDWHV
• 'HILQHWKHGLDORJDJHQWV\RXQHHG
• 3OXJWKHGLDORJDJHQWVLQWKHFRUUHVSRQGLQJVWDWHV
• 'HILQHWKHWUDQVLWLRQVEHWZHHQVWDWHV
– 6RXUFHDQGWDUJHWVWDWHV
– &RQGLWLRQ
– $FWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
'HILQHWKH6WDWHV

YRLG0\&RPPDQG%XLOG*UDSK

^ 7KHLQLWLDOVWDWHLVDOUHDG\FUHDWHG

&$7'LDORJ6WDWH 6WDWH *HW,QLWLDO6WDWH ³6WDUW´ 

&$7'LDORJ6WDWH 6WDWH $GG'LDORJ6WDWH ³6HFRQG´ 



&RS\ULJKW'$66$8/76<67(0(6 
'LDORJ$JHQW0DLQ7\SHV

– &$7'LDORJ$JHQWLVWKHPDLQFODVV
• 7KLVFODVVFDQEHXVHGWRGHILQHDQDJHQWOLQNHGWRD
SDQHOREMHFW
B$JHQW3DQHO2. QHZ&$7'LDORJ$JHQW $JHQW3DQHO2. 

B$JHQW3DQHO2.!$FFHSW2Q1RWLI\ B0\3DQHO

B0\3DQHO!*HW'LD2.1RWLILFDWLRQ 

– &$7,QGLFDWLRQ$JHQWUHWULHYHVWKHFRRUGLQDWHVRID'
3RLQWZKHQFOLFNLQJLQDYLHZHU
– &$73DWK(OHPHQW$JHQWUHWULHYHVWKHSDWKHOHPHQWRIWKH
REMHFWXQGHUWKHPRXVHZKHQFOLFNLQJ

&RS\ULJKW'$66$8/76<67(0(6 
'LDORJ$JHQW%HKDYLRUV

«
/LPLWWKHVHOHFWLRQ
WRREMHFWVWKDWLPSOHPHQW
BP\$JHQW QHZ&$73DWK(OHPHQW$JHQW ³P\$JHQW 
DJLYHQLQWHUIDFH

BP\$JHQW!$GG(OHPHQW7\SH &$7,6DPSOH&ODVV1DPH 

BP\$JHQW!6HW%HKDYLRU &$7'OJ(QJ:LWK362+62_&$7'OJ(QJ:LWK3UHYDOXDWLRQ 

$GG&62&OLHQW BP\$JHQW  $YDOLGREMHFWLVKLJKOLJKWHGZKHQ


WKHPRXVHLVORFDWHGRQLW
«
(QDEOHWKH2EMHFW$FWLRQGLDORJVW\OH
/RRNLQWKH&62 &XUUHQW6HWRI2EMHFWV

&RS\ULJKW'$66$8/76<67(0(6 
3OXJ WKH'LDORJ$JHQWVWRWKHVWDWHV

BP\$JHQW QHZ&$73DWK(OHPHQW$JHQW ³P\$JHQW 

3RVLWLRQ BP\$JHQW QHZ&$73DWK(OHPHQW$JHQW ³P\$JHQW´ 

6WDWH!$GG'LDORJ$JHQW BP\$JHQW 

6WDWH!$GG'LDORJ$JHQW BP\$JHQW 
3RVLWLRQ
6HYHUDODJHQWFDQEHSOXJJHGWRWKHVDPHVWDWH

&RS\ULJKW'$66$8/76<67(0(6 
'HILQHVLPSOHFRQGLWLRQWRWULJJHU
WUDQVLWLRQV

$WUDQVLWLRQLVDWOHDVWWULJJHUHGE\DQHQGXVHU
« LQWHUDFWLRQWKDWYDOXDWHVWKHGLDORJDJHQW
3RVLWLRQ

$GG7UDQVLWLRQ 6WDWH6WDWH

0RXVH%XWWRQ ,V2XWSXW6HW&RQGLWLRQ BP\$JHQW  « 


&OLFN
$GG7UDQVLWLRQ 6WDWH18//

3RVLWLRQ ,V2XWSXW6HW&RQGLWLRQ BP\$JHQW  « 

&RS\ULJKW'$66$8/76<67(0(6 
'HILQHFRQGLWLRQFRQVWUDLQLQJWKHXVHU
LQSXW
– 7KHFRQGLWLRQPHWKRGVLJQDWXUHLV
• ERROHDQ&RQGLWLRQ0HWKRG YRLG L8VHIXO'DWD

3RVLWLRQ

>,QGLFDWLRQLQWKHULJKWORFDWLRQ"@

3RVLWLRQ

7KHWUDQVLWLRQLVWULJJHUHGE\DQHQGXVHU
LQWHUDFWLRQDQGDQDGGLWLRQDOFRQGLWLRQ

$GG7UDQVLWLRQ 6WDWH6WDWH

$QG&RQGLWLRQ ,V2XWSXW6HW&RQGLWLRQ BP\$JHQW 

&RQGLWLRQ &RQGLWLRQ0HWKRG 0\&RPPDQG&KHFN3RVLWLRQ

&$7,3RLQW 3RLQW7R%H&KHFNHG ));

&RS\ULJKW'$66$8/76<67(0(6 
'HILQHDFWLRQGRQHLQDWUDQVLWLRQ

– 7KHDFWLRQPHWKRGVLJQDWXUHLV
• ERROHDQ$FWLRQ0HWKRG YRLG L8VHIXO'DWD

3RVLWLRQ

3RLQW &UHDWH3RLQW 3RVLWLRQ

3RVLWLRQ

$GG7UDQVLWLRQ 6WDWH6WDWH$QG&RQGLWLRQ ,V2XWSXW6HW&RQGLWLRQ BP\$JHQW 

&RQGLWLRQ &RQGLWLRQ0HWKRG 0\&RPPDQG&KHFN3RVLWLRQ

&$7,3RLQW 3RLQW7R%H&KHFNHG 

$FWLRQ $FWLRQ0HWKRG  0\&RPPDQG&UHDWH3RLQW

$FWLRQ0HWKRG  0\&RPPDQG8QGR&UHDWH3RLQW

$FWLRQ0HWKRG  0\&RPPDQG5HGR&UHDWH3RLQW« 

&RS\ULJKW'$66$8/76<67(0(6 
$GGLWLRQDO,QIRUPDWLRQ3URSRVH0XOWL
$FTXLVLWLRQ
7RHQDEOHPXOWLVHOHFWLRQIRUDSDWKHOHPHQWGLDORJDJHQWVHW
LWVEHKDYLRUWR&$7'OJ(QJ0XOWL$FTXLVLWLRQ

BP\0XOWL6HO$JHQW QHZ&$73DWK(OHPHQW$JHQW ³P\0XOWL6HO$JHQW 

BP\0XOWL6HO$JHQW!$GG(OHPHQW7\SH &$7,6DPSOH&ODVV1DPH 

BP\0XOWL6HO$JHQW!6HW%HKDYLRU &$7'OJ(QJ0XOWL$FTXLVLWLRQ 

« (QDEOHWKHPXOWLLQGLFDWLRQRUWKHPXOWLVHOHFWLRQ
0XOWLVHOHFWLRQLVSRVVLEOHXVLQJ
DWUDS
WKH6HDUFKFRPPDQGHLWKHUUXQIURPWKH(GLWPHQX
RUIURPWKH3RZHU,QSXWILHOG
WKH6HOHFWLRQ6HWFRPPDQGWRUHXVHVWRUHGSUH
VHOHFWHGHOHPHQWV

&RS\ULJKW'$66$8/76<67(0(6 
$GGLWLRQDO,QIRUPDWLRQ5HWULHYH0XOWL
$FTXLVLWLRQ
7RUHWULHYHWKHVHOHFWHGREMHFWVXVHWKH*HW/LVW2I9DOXHV
PHWKRG

&$762 S2EM62 BP\0XOWL6HO$JHQW!*HW/LVW2I9DOXHV 

&$73DWK(OHPHQW S(OHP3DWK 18//

LI S2EM62 

^

S2EM62!,QLW(OHPHQW/LVW 

ZKLOH 18//  S(OHP3DWK &$73DWK(OHPHQW S2EM62!1H[W(OHPHQW 

^

&$$,0\2EM S,0\2EM  &$$,0\2EM S(OHP3DWK!)LQG(OHPHQW

,,'B&$$,0\2EM 

«
(QDEOHWKHVRUWRIVHOHFWHGHOHPHQWV

&RS\ULJKW'$66$8/76<67(0(6 
$GGLWLRQDO,QIRUPDWLRQ5XEEHU%DQGLQJ

– 'HILQHDVHOIWUDQVLWLRQ

– 8VHD'LDORJDJHQWZLWKVSHFLILFEHKDYLRUV
• &$7'OJ(QJ:LWK3UHYDOXDWLRQ
– 7KHDJHQWFDQEHYDOXDWHGE\WKHREMHFWWKDWLVXQGHUWKHPRXVHZLWKRXW
VHOHFWLQJLW
• &$7'OJ(QJ$FFHSW2Q3UHYDOXDWH
– 7KHWUDQVLWLRQLVWULJJHUVZKHQWKHDJHQWLVYDOXHGZLWKRXWVHOHFWLQJ

– 7KHFRQGLWLRQWRWULJJHUWKHWUDQVLWLRQLV
• ,V/DVW0RGLILHG$JHQW&RQGLWLRQ BP\$JHQW

– $IWHUSHUIRUPLQJWKHFRUUHVSRQGLQJDFWLRQWKHGLDORJ
DJHQWQHHGVWREHUHF\FOHGE\
• ,QLWLDOL]H$FTXLVLWLRQ
&RS\ULJKW'$66$8/76<67(0(6 
7R6XP8S

,QWKLV&RXUVH\RXKDYHVHHQ«

+RZWRGHILQHDQHZLQWHUDFWLYHFRPPDQG

7KHPDQDJHPHQWRIWKHFRPPDQG

&RS\ULJKW'$66$8/76<67(0(6 
'LDORJ

,QWKLVFRXUVH\RXZLOOOHDUQWKH&$7,$9LQIUDVWUXFWXUHWREXLOG
'LDORJ%R[HV

)UDPHZRUNREMHFWLYHV
%XLOGLQJJUDSKLFXVHULQWHUIDFHV
5HWULHYLQJXVHULQSXWV
7KH'LDORJEXLOGHU

&RS\ULJKW'$66$8/76<67(0(6 
)UDPHZRUNREMHFWLYHV

,QWKLVOHVVRQ\RXZLOOOHDUQWKH'LDORJ)UDPHZRUNREMHFWLYHV

'LDORJ2EMHFWLYHV

&RS\ULJKW'$66$8/76<67(0(6 
)UDPHZRUNREMHFWLYHV

'LDORJ2EMHFWLYHV
• +LJKOHYHOREMHFWVDQGZLGJHWV
3URJUDPPHU • 3URPRWLRQRIUHXVDEOH
SURGXFWLYLW\ FRPSRQHQWV

3RUWDELOLW\ • $EVWUDFWREMHFWVIRU
– 81,;
– 06:,1'2:6

6WDQGDUG • %XLOWRQWRSRIKLJKOHYHOQDWLYH
FRPSOLDQFH VRIWZDUH
– 26)027,)
– 0)&

9HUVDWLOLW\ • 'LDORJDSSOLFDWLRQVFDQEHUXQLQ
– &$7,$9 &$7,$9
– 6WDQGDORQH

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV
,QWKLVOHVVRQ\RXZLOOOHDUQZKDWDUHWKH'LDORJREMHFWV

3URYLGHG2EMHFWV
:LQGRZ
%DU
0HQX
'LDORJ2EMHFWV
'LDORJ'HVLJQ6WHSV
/D\RXW0DQDJHPHQW
5HVRXUFHV

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

3URYLGHG2EMHFWV

&RQWDLQHUV &RPSRQHQWV
❍ 8VHGWRJURXSVWUXFWXUHDQG ❍ WKHEXLOGLQJEORFNVRI
SUHVHQWFRPSRQHQWREMHFWV *UDSKLF8VHU,QWHUIDFH
LQWRGLDORJZLQGRZV
❍ 0D\EHOLQNHGWR
❍ 'LIIHUHQWW\SHV DSSOLFDWLRQIXQFWLRQV
✔ :LQGRZ ❍ 'LIIHUHQWW\SHV
✔ 0HQX ✔ ,QGLFDWRU
✔ %DU ✔ &RQWURO
✔ %R[ ✔ 0HQX,WHP

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

:LQGRZ

$ZLQGRZLVDQ
ZLQGRZ LQGHSHQGHQWUHVL]DEOHFRQWDLQHU
LQZKLFKRWKHU'LDORJREMHFWVDUHFUHDWHG

&ODVV 8VDJH

&$7'OJ'RFXPHQW 7KHPDLQZLQGRZIRUDQ\DSSOLFDWLRQ
&$7'OJ'LDORJ 7UDQVLHQWZLQGRZIRUDSDUWLFXODUWDVN
&$7'OJ1RWLI\ 7UDQVLHQWZLQGRZIRUVKRUWPHVVDJHV
&$7'OJ)LOH )LOHVHOHFWLRQZLQGRZ

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

:LQGRZ7\SHV

&$7'OJ'RFXPHQW &$7'OJ'LDORJ

&$7'OJ)LOH
&$7'OJ1RWLI\

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

%DU

$EDULVD
EDU VWDQGDUGSHUPDQHQW]RQH
IRUWDVNVWDUWHURULQIRUPDWLRQILHOGV

&ODVV 8VDJH

&$7'OJ7RRO%DU =RQHZLWKGLUHFWDFFHVVWRDSSOLFDWLRQWDVNV
&$7'OJ6WDWXV%DU =RQHIRUWUDQVLHQWRUSHUPDQHQWLQIRUPDWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

0HQX

$PHQXLVD
PHQX SRSXSFRQWDLQHU IRUSHUPDQHQWWDVNVWDUWHU

&ODVV 8VDJH

&$7'OJ%DU0HQX %DUIRUPDLQDSSOLFDWLRQPHQXV
&$7'OJ6XE0HQX 3RSXSPHQX
&$7'OJ&RQWH[WXDO0HQX &RQWH[WXDOPHQX

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

0HQX,WHPV

$PHQXLWHPLVD
PHQXLWHP SRSXSFRQWURO IRUSHUPDQHQWWDVNVWDUWHU

&ODVV 8VDJH

&$7'OJ3XVK,WHP &RPPDQGEXWWRQLQDPHQX
&$7'OJ5DGLR,WHP 5DGLREXWWRQLQDPHQX
&$7'OJ&KHFN,WHP 2Q2IIEXWWRQLQDPHQX
&$7'OJ6HSDUDWRU,WHP 6HSDUDWLRQOLQHLQDPHQX

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

'LDORJ2EMHFWV

&KHFN
%XWWRQ /DEHO &RPER

6HOHFWRU
6HOHFWRU
5DGLR /LVW
/LVW
%XWWRQ

6OLGHU
6SLQQHU

)UDPH 6HSDUDWRU 3XVK


%XWWRQ
&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

'LDORJ2EMHFWV%R[

$ER[LVD
ER[ FRQWDLQHU IRUGLIIHUHQWNLQGVRISUHVHQWDWLRQ

&ODVV 8VDJH

&$7'OJ)UDPH %DVLFFRQWDLQHUWRJURXSGLDORJREMHFWV
&$7'OJ&RQWDLQHU )L[HGVL]HVFUROODEOHFRQWDLQHU
&$7'OJ7DE&RQWDLQHU 7DEEHGLQGH[FRQWDLQHU
&$7'OJ7DE3DJH 7DEEHGLQGH[SDJH
&$7'OJ6SOLWWHU 7ZR]RQHVVHSDUDWHGE\DVDVK
&$7'OJ,FRQ%R[ 3RSXSFRQWDLQHUIRULFRQV
&$7'OJ:LQGRZV 0)&ZLGJHWFRQWDLQHU
&$7'OJ027,) 027,)ZLGJHWFRQWDLQHU

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

'LDORJ2EMHFWV,QGLFDWRU

$QLQGLFDWRULVD
LQGLFDWRU SDVVLYHFRPSRQHQW WRHQKDQFHWKHSUHVHQWDWLRQ

&ODVV 8VDJH

&$7'OJ/DEHO 7H[WRULFRQ
&$7'OJ6HSDUDWRU 9HUWLFDORUKRUL]RQWDOVHSDUDWLRQOLQH
&$7'OJ3URJUHVV 3URJUHVVLQGLFDWRUIRUORQJRSHUDWLRQV

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

'LDORJ2EMHFWV%XWWRQ

$EXWWRQLVD VLQJOHDFWLRQFRQWUROWRVWDUWWDVNVRUVHWRSWLRQV

&ODVV 8VDJH

&$7'OJ3XVK%XWWRQ &RPPDQGEXWWRQ
&$7'OJ5DGLR,WHP 5DGLREXWWRQ
&$7'OJ&KHFN,WHP 2Q2IIEXWWRQ

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

'LDORJ2EMHFWV&RQWURO

$FRQWUROLVDQREMHFWZLWKZKLFKWKHHQGXVHULQWHUDFWV
FRQWURO 

&ODVV 8VDJH

&$7'OJ(GLWRU (QWU\ILHOG
&$7'OJ&RPER (QWU\ILHOGZLWKOLVW
&$7'OJ6SLQQHU 1XPHULFDOYDOXHVHOHFWRU
&$7'OJ6OLGHU 1XPHULFDOYDOXHVHOHFWRU
&$7'OJ6FUROO%DU 6FUROOKDQGOHU
&$7'OJ6HOHFWRU/LVW /LVWVHOHFWRU
&$7'OJ0XOWL/LVW 0XOWLFROXPQOLVWVHOHFWRU

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

'LDORJ)UDPHZRUN2EMHFWV

&$7'LDORJ

&$7'OJ:LQGRZ
&$7'OJ:LQGRZ &$7'OJ%DU
&$7'OJ%DU &$7'OJ&RQWURO
&$7'OJ&RQWURO
&$7'OJ'RFXPHQW
&$7'OJ'RFXPHQW &$7'OJ7RRO%DU &$7'OJ3XVK%XWWRQ
&$7'OJ3XVK%XWWRQ &$7'OJ6HSDUDWRU
&$7'OJ6HSDUDWRU
&$7'OJ7RRO%DU

&$7'OJ'LDORJ
&$7'OJ'LDORJ &$7'OJ6WDWXV%DU
&$7'OJ6WDWXV%DU &$7'OJ5DGLR%XWWRQ
&$7'OJ5DGLR%XWWRQ &$7'OJ/DEHO
&$7'OJ/DEHO

&$7'OJ1RWLI\
&$7'OJ1RWLI\ &$7'OJ0HQX
&$7'OJ0HQX &$7'OJ&KHFN%XWWRQ
&$7'OJ&KHFN%XWWRQ &$7'OJ3URJUHVV
&$7'OJ3URJUHVV

&$7'OJ)LOH
&$7'OJ)LOH &$7'OJ%DU0HQX
&$7'OJ%DU0HQX &$7'OJ6HOHFWRU/LVW
&$7'OJ6HOHFWRU/LVW

&$7'OJ%R[
&$7'OJ%R[ &$7'OJ6XE0HQX
&$7'OJ6XE0HQX &$7'OJ,0XOWL/LVW
&$7'OJ,0XOWL/LVW

&$7'OJ&RQWDLQHU
&$7'OJ&RQWDLQHU &$7'OJ&RQWH[WXDO0HQX
&$7'OJ&RQWH[WXDO0HQX &$7'OJ&RPER
&$7'OJ&RPER .H\
&$7'OJ6SOLWWHU
&$7'OJ6SOLWWHU &$7'OJ0HQX,WHP
&$7'OJ0HQX,WHP &$7'OJ(GLWRU
&$7'OJ(GLWRU &RQWDLQHUV
&RQWDLQHUV

&$7'OJ7DE&RQWDLQHU
&$7'OJ7DE&RQWDLQHU &$7'OJ3XVK,WHP
&$7'OJ3XVK,WHP &$7'OJ6SLQQHU
&$7'OJ6SLQQHU
&RPSRQHQWV
&RPSRQHQWV
&$7'OJ7DE3DJH
&$7'OJ7DE3DJH &$7'OJ5DGLR,WHP
&$7'OJ5DGLR,WHP &$7'OJ6OLGHU
&$7'OJ6OLGHU

&$7'OJ)UDPH
&$7'OJ)UDPH
&$7'OJ&KHFN,WHP
&$7'OJ&KHFN,WHP &$7'OJ6FUROO%DU
&$7'OJ6FUROO%DU
$EVWUDFWFODVV
&RQFUHWHFODVV
&$7'OJ6HSDUDWRU,WHP
&$7'OJ6HSDUDWRU,WHP
&$7'OJ,FRQ%R[
&$7'OJ,FRQ%R[

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

'LDORJ'HVLJQ6WHSV

– )LUVWGHWHUPLQHWKHW\SHRI\RXUGLDORJ
• ,WLVDGLDORJER[RUDZLQGRZWKDWFRQWDLQV
VHYHUDOUHSUHVHQWDWLRQVRIDGRFXPHQW
– &UHDWHDFODVVWKDWGHULYHVIURP&$7'OJ'LDORJ

• ,WLVDPHVVDJHSRSXS
– ,QVWDQWLDWHWKH&$7'OJ1RWLI\ FODVV

• ,WLVDILOHVHOHFWLRQER[
– ,QVWDQWLDWHWKH&$7'OJ)LOH FODVV

• ,WLVDQDSSOLFDWLRQPDLQZLQGRZ
– &UHDWHDFODVVWKDWGHULYHVIURP&$7'OJ'RFXPHQW
– $GGDPHQXEDUDVWDWXVEDUHWF WKHVHREMHFWDUHSURYLGHGE\WKH
'LDORJIUDPHZRUNRUE\WKH$SSOLFDWLRQ)UDPHIUDPHZRUN 

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

'LDORJ'HVLJQ6WHSV

– 6HFRQGGHVLJQWKHGLDORJDSSHDUDQFH
• &RQWUROVIUDPHVODEHOV«
• 8VHULQWHUDFWLRQVDQGDFWLRQV
• 6SHFLILHVWKHOD\RXWRIWKHGLDORJ
– 7KLUGLPSOHPHQWFDOOEDFNPHWKRGV
• $FDOOEDFNLVFDOOHGLQUHVSRQVHWRDXVHU
LQWHUDFWLRQZLWKDFRQWURO
• <RXVKRXOGSURYLGHRQHFDOOEDFNSHUXVHU
LQWHUDFWLRQ
– )RXUWKSURYLGHGLDORJUHVRXUFHV
• 5HVRXUFHVDUHWH[WDQGJUDSKLFVGLVSOD\HGLQ
WKHGLDORJ
• 8VLQJUHVRXUFHVIDFLOLWDWHWUDQVODWLRQ
&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

/D\RXW0DQDJHPHQW

– 7KHOD\RXWGHILQHVWKHZD\WKHREMHFWVDUH
RUJDQL]HGLQVLGHDFRQWDLQHU

• ZKHQWKHFRQWDLQHU
"
LVLQLWLDOO\
GLVSOD\HG

"
• ZKHQWKH
FRQWDLQHU
VZLQGRZ
LVUHVL]HG

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

/D\RXW0DQDJHPHQW

– 7KHUHDUHWZRNLQGVRIOD\RXWPDQDJHPHQW
• %DVLFOD\RXWPDQDJHPHQW
– 'LDORJREMHFWVDUHGLVSDWFKHGLQFRQWDLQHUV
– JHQHUDOO\VXIILFLHQWWREXLOGPRVWRIQRQ
UHVL]DEOHZLQGRZV
• *ULGOD\RXWPDQDJHPHQW
– &RQWDLQHULVGLYLGHGLQWRFHOOVGLDORJ
REMHFWVDUHSODFHGLQVLGHDFHOO
– IRUPRUHFRPSOH[DQGRUUHVL]DEOHZLQGRZV
– 'LDORJVJHQHUDWHGE\WKH'LDORJ%XLOGHUXVH
WKHJULGOD\RXW

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

%DVLF/D\RXW0DQDJHPHQW

– $QREMHFWKDVDQDWXUDOVL]HGHSHQGLQJRQLWV
GHILQLWLRQSDUDPHWHUV

– 2QFHLWVFKLOGUHQDUHSODFHGWKHVL]HRID
FRQWDLQHULVNQRZQ
• 6HW5HFW'LPHQVLRQV

– &KLOGUHQDUHGLVSOD\HGLQWKHLUFRQWDLQHULQWKH
RUGHULQZKLFKWKH\DUHFUHDWHG

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

%DVLF/D\RXW0DQDJHPHQW

• %\GHIDXOWDOOWKHREMHFWVRID
FRQWDLQHUDUHDUUDQJHGVLGHE\VLGH
KRUL]RQWDOO\MXVWLILHGRQWRSLQWKH
RUGHULQZKLFKWKH\DUHFUHDWHG

• 7KLVGHIDXOWFDQEHFKDQJHGWR
9HUWLFDOE\XVLQJWKH
6HW'HIDXOW2ULHQWDWLRQPHWKRG
BFRQWDLQHU!6HW'HIDXOW2ULHQWDWLRQ 9HUWLFDO 

• 7KHREMHFWVFDQEHUHVL]HGLQRUGHU
WRILOODOOWKHURRPLQWKHFRQWDLQHU
E\XVLQJWKH$WWDFK6LGHVPHWKRG
BFRQWDLQHU!$WWDFK6LGHV FKLOG 
BFRQWDLQHU!$WWDFK6LGHV FKLOG 
BFRQWDLQHU!$WWDFK6LGHV FKLOG 
&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

*ULG/D\RXW0DQDJHPHQW

– )RUPRUHFRPSOH[FDVHVDQGRUIRUUHVL]DEOH
ZLQGRZVWKH*ULG/D\RXWVKRXOGEHXVHG
• 2EMHFWVDUHSODFHGZLWKLQDJULG

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

*ULG/D\RXW0DQDJHPHQW

– 7RXVHWKHJULGOD\RXW\RXQHHGWR
• &UHDWHDFRQWDLQHUXVLQJWKH&$7'OJ*ULG/D\RXW
VW\OH
BFRQWDLQHU QHZ&$7'OJ)UDPH WKLV0\&RQWDLQHU&$7'OJ*ULG/D\RXW 

• 6WDWHZKHUHWRSODFHHDFKGLDORJREMHFWLQVLGH
WKHFRQWDLQHU
• 6WDWHKRZWRDWWDFKHDFKGLDORJREMHFWZLWK
UHVSHFWWRWKHFHOOVLGHV
• (QDEOHURZVDQGFROXPQVIRUUHVL]H

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

*ULG/D\RXW0DQDJHPHQW

• 7RSODFHDGLDORJREMHFW\RXFDQHLWKHU
– FUHDWHD&$7'OJ*ULG&RQVWUDLQWVREMHFWDQGDVVLJQLWWRWKHGLDORJ
REMHFW
&$7'OJ*ULG&RQVWUDLQWVJULG&VW

JULG&VW5RZ 

JULG&VWFROXPQ 

JULG&VW+B6SDQ 

JULG&VW9B6SDQ 

JULG&VW-XVWLILFDWLRQ &$7*5,'B6,'(6

S&LUFOH/LPLWDWLRQV)UDPH!6HW*ULG&RQVWUDLQWV JULG&VW 

– RUVHWWKHJULGFRQVWUDLQWRQWKHGLDORJREMHFW
S&LUFOH/LPLWDWLRQV)UDPH!6HW*ULG&RQVWUDLQWV &$7*5,'B6,'(6 

Columns 0 1
CircleLimitationsFrame:
Rows
- placed at row 1 and column 1,
0 - 1 row span and 1 column span,
- attached to four sides.
1

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

*ULG/D\RXW0DQDJHPHQW

• 8VHWKH6HW*ULG&ROXPQ5HVL]DEOHDQG
6HW*ULG5RZ5HVL]DEOHPHWKRGVWRVSHFLI\ZKLFK
FROXPQVDQGRUURZVZLOOEHVHQVLWLYHWRWKH
FRQWDLQHUUHVL]H
– %\GHIDXOWURZVDQGFROXPQDUHQRQ
UHVL]DEOH
– ([DPSOHILUVWURZDQGVHFRQGFROXPQDUH
VHWWREHUHVL]DEOH
FRQWDLQHU!6HW*ULG5RZ5HVL]DEOH  

FRQWDLQHU!6HW*ULG&ROXPQ5HVL]DEOH  

0 for non resizable


Column index
1 for resizable

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

5HVRXUFHV

– :KDWDUHUHVRXUFHV
• 5HVRXUFHVFRXOGEHWH[WRULFRQVGLVSOD\HGE\
WKHDSSOLFDWLRQ
• 7H[WUHVRXUFHVDUHFRPSDWLEOHZLWK1DWLRQDO
/DQJXDJH6XSSRUW
• 5HVRXUFHVFDQEHFKDQJHGZLWKRXW
UHFRPSLODWLRQ

Text resources are


stored in a CATNls file

Path to Icon resource is stored in a CATRsc file

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

$VVLJQLQJ5HVRXUFHV

– 'HFODUHUHVRXUFHVLQ\RXUREMHFW
0\'LDORJ%R[K

FODVV0\'LDORJ%R[SXEOLF&$7'OJ'RFXPHQW^

'HFODUH5HVRXUFH 0\'LDORJ%R[&$7'OJ'RFXPHQW 



` Father class for


resource inheritance

– &UHDWHUHVRXUFHILOHV Class
name
• 2QHPHVVDJHILOH &$71OV IRUHDFKVXSSRUWHG
ODQJXDJH
• 2QH&$75VFILOHIRUQRQPHVVDJHUHVRXUFHV

Icon files (*.bmp)


MyDialogBox.CATNls
English files
MyDialogBox.CATRsc
French language support files

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

$VVLJQLQJ5HVRXUFHV

– 8VLQJXVHUGHILQHGUHVRXUFHV
• 7KHVHDUHPHVVDJHVWKDW\RXGHILQHDQGXVHE\
\RXUVHOI 0\'LDORJ%R[FSS

&$78QLFRGH6WULQJWH[W &$70VJ&DWDORJ%XLOG0HVVDJH ³0\'LDORJ%R[´³3LFN´ 

0\'LDORJ%R[&$71OV
Message Key

3LFN ³,QGLFDWHFRRUGLQDWHV´ Message File

– 8VLQJSUHGHILQHGUHVRXUFHV
• (YHU\GLDORJREMHFWKDYHVRPHSUHGHILQHG
UHVRXUFHVOLNHWLWOHKHOSDQGLFRQ
• 7RXVHWKHPGHFODUHWKHPLQ\RXU&$71OVRU
&$75VFILOH
0\'LDORJ%R[&$71OV

7LWOH ³$VLPSOHSDQHO´

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

&$7'LDORJ3UHGHILQHG5HVRXUFHV

• 7H[W5HVRXUFHV
– 7LWOHREMHFWWLWOHVWULQJ
– 0QHPRQLF$OWNH\VKRUWFXWWRVHOHFWDGLVSOD\HGPHQXRUPHQX
LWHP
– $FFHOHUDWRU&WUONH\VKRUWFXWWRVHOHFWDPHQXLWHP
– +HOSKHOSPHVVDJHDVVRFLDWHGZLWKWKHREMHFW
– 6KRUW+HOSVKRUWPHVVDJHGLVSOD\HGZKHQWKHPRXVHVWD\VRYHU
WKLVREMHFW
– /RQJ+HOSPHVVDJHGLVSOD\HGZKHQWKHXVHUFOLFNVRQ+HOSEXWWRQ
RURQWKH"ER[WKHFXUVRUEHFRPLQJD"DQGFOLFNVRQWKHREMHFWWR
JHWKHOSDERXWLW

• ,FRQ5HVRXUFHV
– ,FRQGLDORJREMHFWGHIDXOWLFRQ
– ,FRQ6HOLFRQGLVSOD\HGZKHQWKLVREMHFWLVVHOHFWHG
– ,FRQ)RFXVLFRQGLVSOD\HGZKHQWKHPRXVHPRYHVRYHUWKLVREMHFW
– ,FRQ'LVDEOHGLFRQGLVSOD\HGZKHQWKLVREMHFWFDQQRWEHVHOHFWHG
– ,FRQ7\SHW\SHRIWKHLFRQ 'HIDXOW*HQHUDO&UHDWLRQ0RGLILFDWLRQ
RU$QDO\VLV XVHGWRVHWDEDFNJURXQGFRORULIWKHLFRQLV
WUDQVSDUHQW

&RS\ULJKW'$66$8/76<67(0(6 
%XLOGLQJJUDSKLFXVHULQWHUIDFHV

&RQFDWHQDWLRQDQG,QKHULWDQFH

– &RQFDWHQDWLRQ
• 5HVRXUFHVRIFRQWDLQHGREMHFWVFDQEHGHILQHG
LQWKHFRQWDLQHUREMHFWUHVRXUFHILOH
3RLQW(GLW%R[&$71OV

7LWOH ³3RLQW(GLWLRQ´

&RRUGLQDWHV)UDPH7LWOH ³&RRUGLQDWHV´

&RRUGLQDWHV)UDPH;ODEHO7LWOH ³;´

&RRUGLQDWHV)UDPH<ODEHO7LWOH ³<´

– ,QKHULWDQFH
• 'HULYHGREMHFWLQKHULWIURPDQ\UHVRXUFHV
GHILQHGLQWKHIDWKHUREMHFW

&RS\ULJKW'$66$8/76<67(0(6 
5HWULHYLQJXVHULQSXWV

,QWKLVOHVVRQ\RXZLOOOHDUQKRZWRDVVRFLDWH&RPPDQGVWR\RXU'LDORJ

'HILQLQJDFDOOEDFN
'LDORJ(QJLQH,QWHJUDWLRQ
$SSOLFDWLRQ$UFKLWHFWXUH

&RS\ULJKW'$66$8/76<67(0(6 
5HWULHYLQJXVHULQSXWV

'HILQLQJDFDOOEDFN

&DOOEDFNVDUHVHWZLWKWKH
$GG$QDO\VH1RWLILFDWLRQ&%PHWKRG
&$7'OJ'LDORJ 0\'LDORJ 3XVK%XWWRQ
$GG$QDO\VH1RWLILFDWLRQ&% Build ( )
myFirstCB ( ) &KHFN%XWWRQ
mySecondCB ( )
callback mechanism

Control object that will callback &$7'OJ3XVK%XWWRQ S2.%XWWRQ


the current object S0\%XWWRQ QHZ&$7'OJ3XVK%XWWRQ WKLV³$SSO\´ 

$GG$QDO\VH1RWLILFDWLRQ&%
Notification S0\%XWWRQ

S0\%XWWRQ!*HW3XVK%$FWLYDWH1RWLILFDWLRQ 
CB method &$7&RPPDQG0HWKRG 0\'LDORJP\)LUVW&%

18// 
User data to be passed
to the CB method

&RS\ULJKW'$66$8/76<67(0(6 
5HWULHYLQJXVHULQSXWV

'LDORJ(QJLQH,QWHJUDWLRQ

– $VVRFLDWHDGLDORJWR\RXUFRPPDQG
&$76WDWH&RPPDQG &$7'OJ'LDORJ
%XLOG*UDSK 6HW9LVLELOLW\

0\&RPPDQG 0\'LDORJ
MyCommand () Build ()
BuildGraph ()

Dialog definition
State Machine definition (layout, controls)
(states, agents and transitions)

SDQHO QHZ0\'LDORJ 

SDQHO!%XLOG 
.H\
3URYLGHGE\'LDORJIUDPHZRUN

SDQHO!6HW9LVLELOLW\ &$7'OJ6KRZ  7REHRYHUORDGHGE\DSSOLFDWLRQSURJUDPPHU

Provided by application programmer

&RS\ULJKW'$66$8/76<67(0(6 
5HWULHYLQJXVHULQSXWV

'LDORJ(QJLQH,QWHJUDWLRQ

– 8VHD'LDORJ$JHQWLQVWHDGRIDFDOOEDFNZKHQ\RX
ZDQWWRSHUIRUPDWUDQVLWLRQ
0\&RPPDQG BSDQHO0\'LDORJ
MyCommand () Build ()
BuildGraph ()
MyActionMethod ()

BFWO&$7'OJ6SLQQHU
DJHQW&$7'LDORJ$JHQW *HW;;;1RWLILFDWLRQ

$FFHSW2Q1RWLI\
BFWO QHZ&$7'OJ6SLQQHU  

DJHQW QHZ&$7'LDORJ$JHQW ³$JHQW´ 

DJHQW!$FFHSW2Q1RWLI\ BSDQHO!BFWOBSDQHO!BFWO!*HW;;;1RWLILFDWLRQ 

ILUVW6WDWH!$GG'LDORJ$JHQW DJHQW 



$GG7UDQVLWLRQ ILUVW6WDWHVHFRQG6WDWH,V2XWSXW6HW&RQGLWLRQ DJHQW 

$FWLRQ $FWLRQ0HWKRG 0\&RPPDQG0\$FWLRQ0HWKRG 

&RS\ULJKW'$66$8/76<67(0(6 
5HWULHYLQJXVHULQSXWV

$SSOLFDWLRQ$UFKLWHFWXUH

• &$7,QWHUDFWLYH$SSOLFDWLRQ
Destroy ()
GetArgs () &$7'OJ'RFXPHQW
%HJLQ$SSOLFDWLRQ

(QG$SSOLFDWLRQ SetVisibility ()

0\$SSOLFDWLRQ 0\'RFXPHQW
BeginApplication () Build ()
EndApplication () ExitCB ()

BZLQGRZ QHZ0\:LQGRZ WKLV³P\:LQGRZ´  BDSSOLFDWLRQ!'HVWUR\ 

BZLQGRZ!%XLOG 

BZLQGRZ!6HW9LVLELOLW\ &$7'OJ6KRZ 

.H\
3URYLGHGE\'LDORJIUDPHZRUN

7REHRYHUORDGHGE\DSSOLFDWLRQSURJUDPPHU

3URYLGHGE\DSSOLFDWLRQSURJUDPPHU

&RS\ULJKW'$66$8/76<67(0(6 
7KH'LDORJEXLOGHU

,QWKLVOHVVRQ\RXZLOOOHDUQWKH&$7,$9ZL]DUGWRGHILQH\RXU 'LDORJ

'LDORJ%XLOGHU

&RS\ULJKW'$66$8/76<67(0(6 
7KH'LDORJ%XLOGHU

'LDORJ%XLOGHU

– &$7,$'LDORJ%XLOGHUIDFLOLWDWHVSDQHOFUHDWLRQDQG
HGLWLRQ
• $FFHVVWKURXJKPHQXRUE\GRXEOHFOLFNLQJRQDQH[LVWLQJ &$7'OJILOH
• *HQHUDWHV&FRGH
• 3RVVLELOLW\WRGHILQH&DOOEDFNV Dialog Builder Toolbar

&RS\ULJKW'$66$8/76<67(0(6 
7R6XP8S

,QWKLV&RXUVH\RXKDYHVHHQ«

$OOWKH'LDORJ2EMHFWVSURYLGHGE\&$7,$9

+RZWRDVVRFLDWH&RPPDQGVWRWKH'LDORJ

7KH'LDORJ%XLOGHU

&RS\ULJKW'$66$8/76<67(0(6 
&$$9$GPLQLVWUDWLRQ

<RXZLOOOHDUQZKDWDUHWKHSUHUHTXLVLWHVWRLQVWDOO&$$RQD
ZRUNVWDWLRQDQGKRZWRPDQDJHWKHDSSOLFDWLRQVEXLOGZLWK
&$$

3DFNDJLQJ

/LFHQVLQJ

6RIWZDUH3UHUHTXLVLWHV

'HOLYHULQJD&$$EXLOG$SSOLFDWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
&$$93K\VLFDO3DFNDJLQJ

5DSLG$SSOLFDWLRQ'HYHORSPHQW(QYLURQPHQW RQH&'
$VHWRISURJUDPPLQJWRROV

9$3,IRU&$7,$ RQH&'
$VHWRIKHDGHUVZLWKWKHLUFRUUHVSRQGLQJGRFXPHQWDWLRQ
7KH&$$9(QF\FORSHGLD

&RS\ULJKW'$66$8/76<67(0(6 
&$$953DFNDJLQJDQG3RUWIROLR
: : :
1( 1( 1(
$GGRQ
á &XVWRPL]DWLRQZLWK
&$$6&0 &$$6&0 &$$6&0
: Π&$7,$
1( $GGRQ
&$$-87
Π(129,$VHUYHU
&$$'0& &$$/:* Π(129,$GFRP
: á 'DWD)HGHUDWLRQZLWK
1(
&$$&87

: Π(129,$GFRP
1(
&$$&6&

Π:(%EURZVHU
&$$&,' &$$&,' &$$-,'

&$$0$% &$$0$% &$$0$% &$$0$%


&(;7(1'('
'(9(/230(17
'(9(/230(17

'(9(/230(17

/(*$&<'$7$
,17(*5$7,21
-$9$%$6(
&%$6(

(
' $7 : :
83 1( 1(
&$$&'& &$$&'9 &$$-'9 &$$/'& &RQILJXUDWLRQV

&RS\ULJKW'$66$8/76<67(0(6 
&$$95$'( IRU&$7,$ LQFOXGHV

&,QWHUDFWLYH'DVKERDUG3URGXFW &,'
3URYLGHGHYHORSHUVZLWKDQHQYLURQPHQWIRUEXLOGLQJ&&RPSRQHQW$SSOLFDWLRQ
$UFKLWHFWXUH &$$ DSSOLFDWLRQV
7LJKWLQWHJUDWLRQZLWK0LFURVRIW9LVXDO6WXGLR&
&,QWHUDFWLYH'DVKERDUG3URGXFWLVRQO\DYDLODEOHRQ:LQGRZV17DQGJLYHV
DFFHVVWRWKHRWKHU5$'(SURGXFWV
0XOWL:RUNVSDFH$SSOLFDWLRQ%XLOGHU3URGXFW 0$%
3URYLGHDVLQJOHWRROWRFRPSLOHDQGOLQNDSSOLFDWLRQVZKDWHYHUWKHSURJUDPPLQJ
ODQJXDJHVXVHG )RUWUDQ&&-DYD
$YDLODEOHERWKRQ17DQG81,;

&8QLW7HVW0DQDJHU3URGXFW &87
(QDEOHVXVHUVWRFKHFNGHYHORSPHQWFRPSOLDQFHZLWKGHVLJQVFHQDULRVDQGWR
HQVXUHUHJUHVVLRQIUHHPRGLILFDWLRQVVFHQDULRVSHUWLQHQFHDXWRPDWLFUHVXOW
FRPSDULVRQVWLPHRXWSHUIRUPDQFHUHSOD\
2QO\RQ:LQGRZV17,QWHJUDWLRQZLWK5DWLRQDO3XULI\IRUPHPRU\ PDQDJHPHQW
WHVWVDQG5DWLRQDO3XUH&RYHUDJHIRUWHVWFRYHUDJH
&RS\ULJKW'$66$8/76<67(0(6 
&$$95$'( IRU&$7,$ LQFOXGHV
'DWD0RGHO&XVWRPL]HU '0&
80/PRGHOLQJDXWKRULQJIRU(129,$REMHFWPRGHO &$7,$REMHFWPRGHO
(129,$0RGHOLQJREMHFWRSWLPL]HGSXEOLFDWLRQFDSDELOLW\
2IIHUVDPHXVHULQWHUIDFHVIRU&$7,$DQG(129,$REMHFWH[WHQVLRQ

&6RXUFH&KHFNHU &6&
$XWRPDWLFFKHFNRI&9FRGLQJUXOHV
0HPRU\OHDNVGHEXJJLQJ
&VRXUFHSDUVHUDQGIXOO+70/UHSRUW

6RXUFH&RGH0DQDJHU 6&0
:RUNVSDFHPDQDJHPHQW
&ROODERUDWLYHDQGLQWHJUDWHGFRGHGLVWULEXWLRQ
&RQFXUUHQWGHYHORSPHQWVXSSRUW
9HUVLRQDQGFRQILJXUDWLRQFRQWURO
0XOWLSODWIRUPZRUNVSDFHPDQDJHPHQW
6FDOHVIURPVPDOOWHDPZRUNWRODUJHGHYHORSPHQWRUJDQL]DWLRQ
&RS\ULJKW'$66$8/76<67(0(6 
&$$9/LFHQVLQJ0HFKDQLVPV

&'&RU&'9OLFHQVHLVWRXVH&$$95$'( &
&$$9FDQEHXVHGLQWZROLFHQVLQJPRGHVHLWKHUQRGHORFNRUZLWKFRQFXUUHQW
XVDJHRIOLFHQVHVRQDQHWZRUNMXVWOLNHVWDQGDUG'6SURGXFWV

/LFHQVLQJPHFKDQLVPVDUHEDVHGRQ/80
/LFHQVH8VH0DQDJHPHQW
:LQGRZV17ZRUNVWDWLRQVPXVWKDYHD/$1&DUG (WKHUQHWRU7RNHQ5LQJ DQG
7&3,3LQVWDOOHGDQGSURSHUO\FRQILJXUHGHYHQLQWKHFDVHRIQRGHORFNOLFHQVLQJ

2Q178VH1RGHORFN.H\0DQDJHPHQW
6HOHFWWKH6WDUW!3URJUDPV!&$7,$!7RROV!1RGHORFN.H\0DQDJHPHQWFRPPDQG
WRFKHFN1RGHORFNOLFHQVHVLI\RXXVH1RGHORFNOLFHQVHV

&RS\ULJKW'$66$8/76<67(0(6 
&$$96RIWZDUH3UHUHTXLVLWHV 

&,QWHUDFWLYH'DVKERDUG3URGXFW &,' UHTXLUHV


0LFURVRIW9LVXDO&SURGXFW63
7KH8QLFRGHRSWLRQ0867EHVHOHFWHGZKHQLQVWDOOLQJ9LVXDO&
0LFURVRIW,QWHUQHW([SORUHU GHOLYHUHGZLWK:LQGRZV17 DWPLQLPXPOHYHO
6HUYLFH3DFN

0XOWL:RUNVSDFH$SSOLFDWLRQ%XLOGHU3URGXFW 0$% 
UHTXLUHV
6RPHVSHFLILFFRPSLOHUOHYHOGHSHQGLQJRQWKH26 FIIROORZLQJIRLOV
-$9$-'.RU-$9$-'.ZKHQXVLQJ,'/FRPSLOHU

&RS\ULJKW'$66$8/76<67(0(6 
&$$96RIWZDUH3UHUHTXLVLWHV 

&8QLW7HVW0DQDJHU3URGXFW &87 UHTXLUHV


)RU$XWRPDWLF5XQWLPHEDWFKWHVWUHSOD\0.67RRONLWŠ9RQ:LQGRZV17
)RU$XWRPDWLFPHPRU\PDQDJHPHQWFKHFN5DWLRQDO3XULI\9
)RU$XWRPDWLFWHVWFRYHUDJHFRPSXWDWLRQ5DWLRQDO3XUH&RYHUDJH 9

$FFHVVWR2QOLQH'RFXPHQWDWLRQUHTXLUHVDQ+70/
EURZVHU
,QD81,;HQYLURQPHQW1HWVFDSH1DYLJDWRUDWPLQLPXPOHYHO
,QD:LQGRZVHQYLURQPHQWHLWKHU0LFURVRIW,QWHUQHW([SORUHUDWPLQLPXPOHYHO
6HUYLFH3DFNRU1HWVFDSH1DYLJDWRUDWPLQLPXPOHYHO

&RS\ULJKW'$66$8/76<67(0(6 
&$$96RIWZDUH3UHUHTXLVLWHV 

:LQGRZV17(QYLURQPHQW
0LFURVRIW:LQGRZV17:RUNVWDWLRQ9HUVLRQZLWK6HUYLFH3DFN RURUD
0LFURVRIW9LVXDO&SURGXFW63

,%0$,;(QYLURQPHQW
$,;9HUVLRQ5HOHDVH
,%0&DQG&IRU$,;&RPSLOHUV9HUVLRQRU LEPF[[ 

&RS\ULJKW'$66$8/76<67(0(6 
&$$96RIWZDUH3UHUHTXLVLWHV 

6*,,5,;(QYLURQPHQW
,5,;P
&&0,36SUR&RPSLOHU Q$%, 

6XQ6RODULV(QYLURQPHQW
6XQ6RODULVRU6RODULV
&&681:RUN6KRS&RPSLOHUV

+38;(QYLURQPHQW
+38;9HUVLRQ$&(
&FRPSLOHU$
&FRPSLOHUD&$

&RS\ULJKW'$66$8/76<67(0(6 
&$$9,QVWDOODWLRQ3URFHGXUH

&KHFNWKH&$7,$LQVWDOODWLRQ
<RXQHHGWRKDYHWKHVDPH5HOHDVHDQG6HUYLFH3DFNDVIRU&$$
7KHGLUHFWRU\SDWKIRU&$7,$FDQQRW FRQWDLQVEODQNFKDUDFWHUV

,QVWDOO&$$9$3,IRU&$7,$
7KH9$3,DUHLQVWDOOHGLQWKHVDPHGLUHFWRU\WKDQ&$7,$
,QVWDOOILUVWWKH*$YHUVLRQWKHQWKHSURSHU6HUYLFH3DFN

,QVWDOO&$$95$'(
&KRRVHDVHSDUDWHGLUHFWRU\WRLQVWDOOWKH&$$95$'(SURGXFW
,QVWDOOILUVWWKH*$YHUVLRQWKHQWKHSURSHU6HUYLFH3DFN

&RS\ULJKW'$66$8/76<67(0(6 
'HOLYHULQJDQ$SSOLFDWLRQ 

&RS\WKH5XQWLPH9LHZRI\RXU&$$DSSOLFDWLRQ

2Q17RQO\XVH(QYLURQPHQW(GLWRUWRFUHDWH
DQHZHQYLURQPHQW
6HOHFWWKH6WDUW!3URJUDPV!&$7,$!7RROV!(QYLURQPHQW(GLWRUFRPPDQG

,QWKH'LDORJ%R[SURYLGH
• $QDPHIRUWKHQHZHQYLURQPHQW
• 7KHSDWK
• 7KHPRGH XVHUJOREDO 7KHHQYLURQPHQWZLOOEH
DYDLODEOHIRUDOOWKHXVHUVRURQO\IRUWKHFXUUHQWRQH
• 7KHSURGXFWOLQH &$7,$

7KHSDWKKDVWRUHIHUHQFH&$7,$DQGWKH5XQWLPH9LHZRI\RXU&$$ DSSOLFDWLRQ
F?FDWLDBY?LQWHOBDF?P\$SSOLFDWLRQ?LQWHOBD

&RS\ULJKW'$66$8/76<67(0(6 
'HOLYHULQJDQ$SSOLFDWLRQ 

2Q17DQGRQ81,;
XVHWKH³VHWFDWHQY´FRPPDQGWRFUHDWHDQHZHQYLURQPHQW
7KHVHWFDWHQYFRPPDQGLVORFDWHGLQ?,QVWDOOBIROGHU?26BD?FRGH?ELQ
,QVWDOOBIROGHULVWKHGLUHFWRU\ZKHUH&$7,$LVLQVWDOOHG
26BDFDQEHLQWHOBDDL[BDKSX[BDLUL[BDVRODULVBD

7KHPDLQRSWLRQVDUH
HWRVSHFLI\WKHQDPHRIWKHQHZHQYLURQPHQW
GWRVSHFLI\WKHGLUHFWRU\ZKHUHWKH&$7,$HQYLURQPHQWVDUHVWRUHG
SWRJLYHWKHSDWK

7KHSDWKKDVWRUHIHUHQFH&$7,$DQGWKH5XQWLPH9LHZRI\RXU&$$ DSSOLFDWLRQ
VHWFDWHQY±HP\(QY±GF?FDWLDBY?&$7(QY±SF?FDWLDBYF?P\$SSOLFDWLRQ

,IWKHSDWKFRQWDLQVDEODQNFKDUDFWHUXVHGRXEOHTXRWHV 
VHWFDWHQY±HP\(QY±SF?3URJUDP )LOHV?'DVVDXOW 6\VWHPHV?%F?P\$SSOLFDWLRQ

&RS\ULJKW'$66$8/76<67(0(6 
'HOLYHULQJDQ$SSOLFDWLRQ 

:KHQ\RXFUHDWHDQHZHQYLURQPHQW
7KHVHWRIYDULDEOHVLVGHILQHG

$QHZVKRUWFXWLVFUHDWHGRQWKHGHVNWRSWRVWDUW&$7,$ZLWKWKH QHZ&$$
$SSOLFDWLRQ

$QHZFRPPDQGLVFUHDWHGLQWKH6WDUWPHQX 17RQO\
6WDUW!3URJUDPV!&$7,$!P\(QY

<RXFDQGHOLYHUPRUHWKDQRQH&$$$SSOLFDWLRQ
,QWKHSDWK\RXFDQSURYLGHVHYHUDOGLUHFWRULHV
VHWFDWHQY±HP\(QY±SF?FDWLDBYF?P\$SSOLFDWLRQF?P\$SSOLFDWLRQ

7RGHOHWHDQHQYLURQPHQWXVHGHOFDWHQY
8VDJHGHOFDWHQY±HP\(QY

&RS\ULJKW'$66$8/76<67(0(6 
7R6XP8S

,QWKLVOHVVRQ\RXKDYHVHHQ«

7KHSUHUHTXLVLWHVWRLQVWDOO&$$9RQDZRUNVWDWLRQ

+RZWRGHOLYHUD&$$9DSSOLFDWLRQWRDFXVWRPHU

&RS\ULJKW'$66$8/76<67(0(6 

You might also like