Professional Documents
Culture Documents
CAA V5 For CATIA Foundations PDF
CAA V5 For CATIA Foundations PDF
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&$$$SSOLFDWLRQVLQWHUDFWLYHRUEDWFK
3UHUHTXLVLWHV
&$7,$9XVHULQWHUIDFHSULQFLSOHV0DQGDWRU\
GD\V &LQGXVWULDOSURJUDPPLQJSUDFWLFH0DQGDWRU\
&200LFURVRIW2EMHFW0RGHOQRWLRQV1LFHWRKDYH
0LFURVRIW'HYHORSHU6WXGLRSUDFWLFH1LFHWRKDYH
&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[SRUW95
0DFURVXVLQJWKH$XWRPDWLRQ$3,95
.QRZOHGJHZDUH95
,QWHUDFWLYH8VHU'HILQHG)HDWXUH95
&$$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
&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
*HQHUDWHGDWD
%DVLF6FULSW6XPPLW
&RPPXQLFDWLRQZLWKDQ\2/( 9%DSSOLFDWLRQ
FRPSOLDQWDSSOLFDWLRQ17
&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%DVLF17RQO\
➘ $VVRFLDWHDQLFRQWRDPDFURDQGSOXJLW
LQWKH&$7,$IUDPH
➘ 6HOHFWLRQFDSDELOLWLHV95
➘ 6RSKLVWLFDWHGLQWHUDFWLYHFRPPDQGV
&$$9 ➘ &RPPDQGJURXSLQJLQZRUNEHQFK
&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
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
([WHQGHG&$7,$9
&$7,$9WKHV\VWHP
3URGXFWUHXVLQJ
&$$9FRPSRQHQWV &$$9FRPSRQHQWV
&RS\ULJKW'$66$8/76<67(0(6
&$$9)UDPHZRUN
*URXSRILQWHURSHUDWLQJREMHFWVZLWKEXLOWLQFDSDELOLWLHV
GHOLYHUHGDVDFRPSOHWHUHVRXUFHWRFOLHQWDSSOLFDWLRQV
0RGXOH 0RGXOHQ
/RFDO,QWHUIDFHV K K K /RFDO,QWHUIDFHV K K
&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)UDPHZRUNVIRUEXLOG
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
([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
½2Q17XVH6WDUW3URJUDPV&$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
8VHWKHXSGDWHXRSWLRQZKHQ
PRGLI\LQJWKHGHSHQGHQFLHVDQLQFOXGHILOHDGGHGRU
VXSSUHVVHG
DGGLQJRUUHPRYLQJDILOHKDQGFSS
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\WKHDSSOLFDWLRQUHVRXUFHVLFRQVPHVVDJH
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
([SORUHUFRSLHGPRYHGRUGHOHWHGILOHVLQ06'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)
>&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)HDWXUHIUDPHZRUN
&$70OG&RPSRQHQWPPRGXOH
&$70OG(MHFWRU,PSOFSSKFODVV
&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
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\"
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
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,'
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
LQWHUIDFHVLWDGKHUHV WR
– $QLPSOHPHQWDWLRQSURYLGHVFRGHIRUDOOWKH
DEVWUDFWPHWKRGV GHILQHGLQWKHLQWHUIDFHVLW
DGKHUHVWR
– $QLPSOHPHQWDWLRQPD\DGKHUHWRPDQ\ LQWHUIDFHV
– 7KHFOLHQWDSSOLFDWLRQGHDOVZLWKWKH
LPSOHPHQWDWLRQRQO\WKURXJKWKHLQWHUIDFH
&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&ODVVWKLV&ODVV1DPH!
&$7,PSOHPHQW&ODVVWKLV&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
– ,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\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
RQDKLJKOHYHOREMHFWGRFXPHQWVFRQWDLQHUV
[...]
[...]
////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
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
...... 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$GG5HIto
$GG5HItosecure
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
piMove TIE_CATIMove
10
&RS\ULJKW'$66$8/76<67(0(6
5HIHUHQFH&RXQWLQJ*ROGHQ5XOHV
– 0HWKRGVUHWXUQLQJDSRLQWHURQLQWHUIDFHH[4,
IDFWRU\VKRXOGDOZD\V$GG5HILWSULRUWR
UHWXUQLQJ
– &OLHQWVUHFHLYLQJVXFKDSRLQWHUVKRXOGDOZD\V
5HOHDVHLWDIWHUXVDJH
• 7LSZULWHWKH5HOHDVHFRGHMXVWDIWHUWKHIXQFWLRQFDOOWKDWFUHDWHGWKH
LQWHUIDFHSRLQWHUDQG© SXVK ªLWZLWKXVDJHFRGH
• 7LSZKHQXVLQJ4,\RXXVXDOO\FDQ5HOHDVHWKHROGLQWHUIDFHDIWHU
JHWWLQJWKHQHZRQH
– $YRLGSDVVLQJLQWHUIDFHSRLQWHUVDURXQG
• ,IIRUFHGWRGRVRFDUHIXOO\$GG5HIWKHP
&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
6PDUW3RLQWHUVDOVRFDOOHG+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
!
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\,QWHUIDFHDXWRPDWLFDOO\LQFUHPHQWVWKHUHIHUHQFHFRXQW
– 0L[LQJWKHWZRFDQEHH[SORVLYH
• 0HPRU\OHDNV
• &RUHGXPSV
– :HUHFRPPHQGWRHLWKHU
• 6WLFNWR5HIHUHQFH&RXQWLQJ
– +HDYLHUWRFRGHEXWFRQVLVWHQW
• 8VHUHIHUHQFHFRXQWLQJDWIXQFWLRQERXQGDULHVSDVVLQJLQWHUIDFHVDV
DUJXPHQWVDQGVPDUWSRLQWHUVZLWKLQIXQFWLRQ¶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
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\SHGHILQLWLRQKHQFHODWH
&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\VSHFLDOHQWLWLHVJOREDO
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
« Code|Data Extension »
([WHQVLRQ
'LFWLRQDU\
« Code|Data Extension »
«([WHQVLRQ
Code|Data Extension »
([WHQVLRQ
0RGXOHPQRQ'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
%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
. User freely
assembles native and
user defined features
&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
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\SHQRWWKHFDVHLQ
&
&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
VDPHWLPHKHQFH© SURWRW\SH ª
• ,QVWDQFHVDQGSURWRW\SHVFDQEH
V\QFKURQL]HGDWWULEXWHVVWUXFWXUHZKHQ
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\
&RS\ULJKW'$66$8/76<67(0(6
)HDWXUH8SGDWH0HFKDQLVP
7KH6SHFV0RGHOHUSURYLGHVWKHLQIUDVWUXFWXUHWR
PDQDJHXSGDWHV
– ,WDXWRPDWLFDOO\SURSDJDWHVQRWLILFDWLRQRIFKDQJH
DFURVVWKHVSHFLILFDWLRQWUHHEXWLWGRHVQRW
WULJJHUWKHXSGDWHLWVHOI
– 'HFLGLQJLIDQREMHFWPXVWEHXSGDWHGRUQRWLV
WKHUHVSRQVLELOLW\RIWKHDSSOLFDWLRQ
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
– $IHDWXUHGHILQLWLRQVNHOHWRQLVFDOOHGD6WDUWXS
– 7KHUHFDQEHDVPDQ\FDWDORJILOHDVQHHGHG
• 8VHUFDWDORJILOHVHQGZLWK&$7IFW
• '6FDWDORJILOHVHQGZLWKIHDW
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
PHFKDQLVPDQ2EMHFW0RGHOHUVHUYLFH
– ,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$FFHVVDWWULEXWHYDOXDWLRQZLOOEHUHSODFHGE\&$7,6SHF$WWU9DOXH
• &$7,6SHF$WWU.H\DWWULEXWHLQGH[IRUIDVWDFFHVVZLOOEHUHSODFHGE\
&$7,6SHF.H\
&RS\ULJKW'$66$8/76<67(0(6
)HDWXUH,QWHUIDFHV95
• $WWKHHQGRIWKHPLJUDWLRQIHDWXUHLQWHUIDFHVZLOOEH
&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[WHQVLRQV
• ,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\6SHF2EMHFWGRXEOHYDOXH
0\6SHF2EMHFWGRXEOHYDOXH 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\6SHF2EMHFWGRXEOHYDOXH
0\6SHF2EMHFWGRXEOHYDOXH
a0\6SHF2EMHFW
a0\6SHF2EMHFW &$$(0\7\SH
&$$(0\7\SH
YRLGP\0HWKRG
YRLGP\0HWKRG YRLGP\0HWKRG &$$,0\7\SH
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
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
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
&$78QLFRGH6WULQJFOLHQW,G ³«
&RS\ULJKW'$66$8/76<67(0(6
&DWDORJ'HILQLWLRQ
– &UHDWHWKHVWDUWXSV
• 6HHQH[WVOLGH
– $GG$WWULEXWHVWR\RXUVWDUWXSV1H[W6OLGH
– 6DYHWKHFDWDORJ
• 8VHWKH6DYH&DWDORJPHWKRGGHILQHGLQKHDGHUILOH
&$7&DWDORJ)DFWRU\6HUYLFHVK
&$78QLFRGH6WULQJVWRUDJH1DPH «
&RS\ULJKW'$66$8/76<67(0(6
6WDUWXS'HILQLWLRQ
– $VWDUWXSLVGHILQHGE\
• LWVQDPHLQVWDQFHQDPH
– &$78QLFRGH6WULQJ
• LWVODWHW\SH
– &$78QLFRGH6WULQJ
• LWVVXSHUW\SHRSWLRQDOWKHODWHW\SHRIWKHVWDUWXSLW
20GHULYHVIURP
– &$78QLFRGH6WULQJ
– 7KHQHZVWDUWXSZLOOLQKHULWDOOWKHDWWULEXWHVDQGEHKDYLRUVGHILQHGDWWKH
OHYHORIWKHVXSHUW\SHVWDUWXS
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
– 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
WNBVSHFREMHFW
'HILQLWLRQRIDQLQSXWDWWULEXWH
UHIHUULQJWRDQRWKHUVSHFREMHFW VSB,1
&$78QLFRGH6WULQJ0\/LVW$WWULEXWH1DPH ³/LVW
WNBOLVWWNBVSHFREMHFW
7ZRZD\VWRGHILQHDQDWWULEXWH
FRUUHVSRQGLQJWRDOLVWRIYDOXHV VSB,1
2U
WNBOLVWWNBVSHFREMHFW
VSB,1
&RS\ULJKW'$66$8/76<67(0(6
6HWWLQJ$WWULEXWHV'HIDXOW9DOXHV
– 7RVHWDWWULEXWHGHIDXOWYDOXHXVHWKHDSSURSULDWH
PHWKRG
• &$7,6SHF$WWULEXWH6HW[[[
– 6HW6WULQJWRDVVLJQDYDOXHWRDWNBVWULQJW\SHDWWULEXWH
– 6HW6SHF2EMHFW6HW/LVW6WULQJ6HW'RXEOH
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,' ,'
&RS\ULJKW'$66$8/76<67(0(6
)HDWXUH,QVWDQWLDWLRQ
– 5HWULHYHWKH6WDUWXSLIQRWDOUHDG\GRQH
&$7%DVH8QNQRZQ
P\6WDUW8S 18//
&$78QLFRGH6WULQJP\6WDUW8S1DPH ³0\6WDUW8S
P\6WDUW8S1DPH
³&$7,6SHF2EMHFW
– ,QVWDQWLDWHWKH6WDUWXSLQWKHIHDWXUHFRQWDLQHU
&$7,6SHF2EMHFW
SL6SHF2Q6WDUWXS 18//
YRLG SL6SHF2Q6WDUWXS
&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//
YRLG SL$FFHVV
LIBDWW.H\^
&RS\ULJKW'$66$8/76<67(0(6
,PSOHPHQWWKH)HDWXUH%HKDYLRUV
– ,QWHUIDFHVDUHLPSOHPHQWHGWKURXJKWKH2EMHFW0RGHOHU
H[WHQVLRQPHFKDQLVP
– $WOHDVW\RXZLOOZDQWWR
• 3URYLGHDEXLOGPHFKDQLVPIRU\RXUIHDWXUH
• (QFDSVXODWHLQ\RXURZQLQWHUIDFHVWKHDFFHVVWRWKHIHDWXUH
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[WHQVLRQKDVLWVRZQDWWULEXWHVQHXWUDO
– ,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
6HWDFOLHQWLGHQWLILFDWLRQIRUWKHFDWDORJ
&$78QLFRGH6WULQJ&OLHQW,G 0\&OLHQW,G
– &UHDWHWKHIHDWXUHH[WHQVLRQLQWKHFDWDORJ
&$7,([WHQVLRQ)DFWRU\
SL)DFWRU\2Q0\([W&DWDORJ 18//
&RS\ULJKW'$66$8/76<67(0(6
'HILQHWKHIHDWXUHH[WHQVLRQGDWD
VWUXFWXUH
– 'HILQHWKHIHDWXUHH[WHQVLRQDWWULEXWHV
&$7,6SHF2EMHFW
SL6SHF2Q0\([W 18//
H[DPSOH
&$78QLFRGH6WULQJ$WWULEXW1DPH «
E\GHIDXOWWKHDWWULEXWH¶VTXDOLW\RIDIHDWXUHH[WHQVLRQLV 1(875$/
– 6DYHWKHFDWDORJ
UF 6DYH&DWDORJ SL0\([W&DWDORJ&DWDORJ1DPH
&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//
,,'B&$7,&RQWDLQHU
&RQWDLQHU6XSHU7\SH
$SSOL&RQW,G
&RS\ULJKW'$66$8/76<67(0(6
&UHDWHDQLQVWDQFHLQDGRFXPHQW
– 2SHQWKHH[WHQVLRQFDWDORJLQWKHDSSOLFDWLYH
FRQWDLQHU
&$7,&DWDORJ
SL0\([W&DWDORJ 18//
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
YRLG SL([WHQGDEOH)HDWXUH,QVWDQFH
&RS\ULJKW'$66$8/76<67(0(6
&UHDWHDQLQVWDQFHLQDGRFXPHQW
– $FWLYDWHWKHIHDWXUHH[WHQVLRQRQWKHIHDWXUH
&$7%RROHDQ&UHDWH,I1HFHVVDU\ 758(
$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
Applicative Container
– ,PSOHPHQWWKHSURYLGHULQWHUIDFH
20,PSOHPHQWDWLRQ!!
CATIxxxProvider
CAAProviderImpl
– 'HFODUH3URYLGHURQWKHGRFXPHQWDIWHU\RXFUHDWH\RXU
DSSOLFDWLYHFRQWDLQHU
5HWULHYHD &$7,3URYLGHUV SRLQWHURQWKHFXUUHQWGRFXPHQW
'HFODUHSURYLGHUWROLVWWKHFKLOGUHQRIWKHDSSOLFDWLYHFRQWDLQHU
&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
HOVHUHWXUQ(B)$,/
&$7,GHQWLG$SSOL&RQW &$7)HDW&RQW
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//
LI68&&(('('UF
check if extension is actived
^ &$7,([WHQGDEOH
S,([W3URG 18//
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
DQGWKHSUHVHQWDWLRQYLHZ
– $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
&$76HOHFWRU
&$7,9LVX 9LHZSRLQW'
'DWD 9LHZSRLQW'
&RPSRQHQW &$$,*UDSK'9LVX
&$7,'*HR9LVX 9LHZHU
0RGHO 9LHZ
&RS\ULJKW'$66$8/76<67(0(6
&RQWUROOHU0LVVLRQV
• 7KHFRQWUROOHUGLVSOD\VDURRWREMHFWIHGHUDWLYHPRGHOHQWLW\
– ,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$VNIRUQHZUHSUHVHQWDWLRQVLIDQ\
• 0RGLILFDWLRQ0RGLI\RUUHFRPSXWHVWKH
UHSUHVHQWDWLRQ
• 'HOHWLRQ5HPRYHVREVROHWHUHSUHVHQWDWLRQVLI
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
– ,WFUHDWHVRQHRUVHYHUDOLH''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
&RS\ULJKW'$66$8/76<67(0(6
&RQWUROOHU3URWRFRO
• &RQWUROOHUXVHVWKH9LVXDOL]DWLRQLQWHUIDFHVWR
– &UHDWHWKHLQLWLDOJUDSKLFUHSUHVHQWDWLRQ
• %XLOG5HSPHWKRG
– 8SGDWHWKHUHSUHVHQWDWLRQ
• 0RGLI\5HSPHWKRG
– %XLOGWKHUHSUHVHQWDWLRQIRUSUHKLJKOLJKWSXUSRVHV
• %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
DQVZHUWRXVHUDFWLRQV6HOHFW3LFN'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(YHQWV2Q5RRWSL5RRW
SL0RGHO(YHQWV2Q5RRW!&RQQHFW7R&$7%DVH8QNQRZQ
'LVSOD\HG2EMHFW
:KHQ\RXZDQWWRXSGDWHWKH YLVXDOLVDWLRQ
&$7&UHDWH&UHDWHQRWLI'LVSOD\HG2EMHFW
&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*UDSKLF3ULPLWLYH
&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
&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
DFWLYHREMHFWZKRVHHGLWLRQLVUHTXHVWHGRUE\RQHRILWVDQFHVWRUV
• ZRUNVKRSVDUHQRWUHVHUYHGWRGRFXPHQWW\SHVH[DPSOH6NHWFK
– DGGLWLRQDOO\DQHGLWLRQFRPPDQGPD\EHVWDUWHG
• GHSHQGLQJRQWKHIDFWWKDWWKH&$7,(GLW LQWHUIDFHLVLPSOHPHQWHGE\WKHDFWLYH
REMHFWUHWXUQWKH&$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\RXUREMHFWFODVVRUODWHW\SHDVD
GDWDH[WHQVLRQ7KHQLPSOHPHQWWKH$FWLYDWHPHWKRG
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[LVWLQJZRUNEHQFK7RROEDUEXWQRWPHQX
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[LVWLQJZRUNVKRS7RROEDUDQGPHQX
'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&XVWRPHU1DPHS0\&RQWDLQHU³0\7RROEDU
'HILQHWKHFRQWDLQHULQ
1HZ$FFHVV&$7&PG6WDUWHUS6WDUWHU1HZ%XWWRQ
KHDGHUDQGWKHQDUUDQJHWKH
$GG7RROEDU9LHZS0\&RQWDLQHU5LJKW FRPPDQGRUGHU
6HW$FFHVV&KLOGS0\: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
PHQX
1HZ$FFHVV&$7&PG6WDUWHUS0\&RPPDQG0\&RPPDQG
6HW$FFHVV&KLOGS,16(57S0\&RPPDQG
6HW$FFHVV&RPPDQGS0\&RPPDQG³0\&RPPDQG
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\RXUFRPPDQGVDSSOLFDWLRQ
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 &UHDWH3RLQW3RVLWLRQ $FWLRQ
,QGLFDWH3RVLWLRQ
0RXVH%XWWRQ&OLFN
>,QGLFDWLRQLQWKHULJKWORFDWLRQ"@
3RLQW &UHDWH3RLQW3RVLWLRQ
/LQH &UHDWH/LQH3RLQW3RLQW
)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
'HFODUH5HVRXUFH0\&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&ODVV0\&RPPDQG
« 7KLVPDFURLVPDQGDWRU\WREHDEOHWRLQVWDQWLDWHD
FRUUHVSRQGLQJFRPPDQGKHDGHULQDWRROEDURUDPHQX
– 6RPHWLPHVLW¶VLQWHUHVWLQJWRSDVVDQDUJXPHQWWRD
FRPPDQGVRWKHFRPPDQGFDQEHUHXVHGIRUFUHDWLRQ
DQGDOVRIRUHGLWLRQ
&$7&UHDWH&ODVV$UJ0\&RPPDQG&$7,6DPSOH
&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
&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
&RS\ULJKW'$66$8/76<67(0(6
3OXJ WKH'LDORJ$JHQWVWRWKHVWDWHV
6WDWH!$GG'LDORJ$JHQWBP\$JHQW
6WDWH!$GG'LDORJ$JHQWBP\$JHQW
3RVLWLRQ
6HYHUDODJHQWFDQEHSOXJJHGWRWKHVDPHVWDWH
&RS\ULJKW'$66$8/76<67(0(6
'HILQHVLPSOHFRQGLWLRQWRWULJJHU
WUDQVLWLRQV
$WUDQVLWLRQLVDWOHDVWWULJJHUHGE\DQHQGXVHU
« LQWHUDFWLRQWKDWYDOXDWHVWKHGLDORJDJHQW
3RVLWLRQ
$GG7UDQVLWLRQ6WDWH6WDWH
&RS\ULJKW'$66$8/76<67(0(6
'HILQHFRQGLWLRQFRQVWUDLQLQJWKHXVHU
LQSXW
– 7KHFRQGLWLRQPHWKRGVLJQDWXUHLV
• ERROHDQ&RQGLWLRQ0HWKRGYRLG
L8VHIXO'DWD
3RVLWLRQ
>,QGLFDWLRQLQWKHULJKWORFDWLRQ"@
3RVLWLRQ
7KHWUDQVLWLRQLVWULJJHUHGE\DQHQGXVHU
LQWHUDFWLRQDQGDQDGGLWLRQDOFRQGLWLRQ
$GG7UDQVLWLRQ6WDWH6WDWH
&RS\ULJKW'$66$8/76<67(0(6
'HILQHDFWLRQGRQHLQDWUDQVLWLRQ
– 7KHDFWLRQPHWKRGVLJQDWXUHLV
• ERROHDQ$FWLRQ0HWKRGYRLG
L8VHIXO'DWD
3RVLWLRQ
3RVLWLRQ
&$7,3RLQW 3RLQW7R%H&KHFNHG
$FWLRQ0HWKRG 0\&RPPDQG8QGR&UHDWH3RLQW
&RS\ULJKW'$66$8/76<67(0(6
$GGLWLRQDO,QIRUPDWLRQ3URSRVH0XOWL
$FTXLVLWLRQ
7RHQDEOHPXOWLVHOHFWLRQIRUDSDWKHOHPHQWGLDORJDJHQWVHW
LWVEHKDYLRUWR&$7'OJ(QJ0XOWL$FTXLVLWLRQ
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
^
S2EM62!,QLW(OHPHQW/LVW
^
,,'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&RQGLWLRQBP\$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
'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
– $GGDPHQXEDUDVWDWXVEDUHWFWKHVHREMHFWDUHSURYLGHGE\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'HIDXOW2ULHQWDWLRQ9HUWLFDO
• 7KHREMHFWVFDQEHUHVL]HGLQRUGHU
WRILOODOOWKHURRPLQWKHFRQWDLQHU
E\XVLQJWKH$WWDFK6LGHVPHWKRG
BFRQWDLQHU!$WWDFK6LGHVFKLOG
BFRQWDLQHU!$WWDFK6LGHVFKLOG
BFRQWDLQHU!$WWDFK6LGHVFKLOG
&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)UDPHWKLV0\&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&RQVWUDLQWVJULG&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
&RS\ULJKW'$66$8/76<67(0(6
%XLOGLQJJUDSKLFXVHULQWHUIDFHV
5HVRXUFHV
– :KDWDUHUHVRXUFHV
• 5HVRXUFHVFRXOGEHWH[WRULFRQVGLVSOD\HGE\
WKHDSSOLFDWLRQ
• 7H[WUHVRXUFHVDUHFRPSDWLEOHZLWK1DWLRQDO
/DQJXDJH6XSSRUW
• 5HVRXUFHVFDQEHFKDQJHGZLWKRXW
UHFRPSLODWLRQ
&RS\ULJKW'$66$8/76<67(0(6
%XLOGLQJJUDSKLFXVHULQWHUIDFHV
$VVLJQLQJ5HVRXUFHV
– 'HFODUHUHVRXUFHVLQ\RXUREMHFW
0\'LDORJ%R[K
FODVV0\'LDORJ%R[SXEOLF&$7'OJ'RFXPHQW^
'HFODUH5HVRXUFH0\'LDORJ%R[&$7'OJ'RFXPHQW
– &UHDWHUHVRXUFHILOHV Class
name
• 2QHPHVVDJHILOH&$71OVIRUHDFKVXSSRUWHG
ODQJXDJH
• 2QH&$75VFILOHIRUQRQPHVVDJHUHVRXUFHV
&RS\ULJKW'$66$8/76<67(0(6
%XLOGLQJJUDSKLFXVHULQWHUIDFHV
$VVLJQLQJ5HVRXUFHV
– 8VLQJXVHUGHILQHGUHVRXUFHV
• 7KHVHDUHPHVVDJHVWKDW\RXGHILQHDQGXVHE\
\RXUVHOI 0\'LDORJ%R[FSS
0\'LDORJ%R[&$71OV
Message Key
– 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\VLVXVHGWRVHWDEDFNJURXQGFRORULIWKHLFRQLV
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
$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
&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!$FFHSW2Q1RWLI\BSDQHO!BFWOBSDQHO!BFWO!*HW;;;1RWLILFDWLRQ
ILUVW6WDWH!$GG'LDORJ$JHQWDJHQW
&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!%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(QYLURQPHQWRQH&'
$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
&$$&,' &$$&,' &$$-,'
'(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%XLOGHU3URGXFW0$%
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&RGH0DQDJHU6&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(WKHUQHWRU7RNHQ5LQJDQG
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
0XOWL:RUNVSDFH$SSOLFDWLRQ%XLOGHU3URGXFW0$%
UHTXLUHV
6RPHVSHFLILFFRPSLOHUOHYHOGHSHQGLQJRQWKH26FIIROORZLQJIRLOV
-$9$-'.RU-$9$-'.ZKHQXVLQJ,'/FRPSLOHU
&RS\ULJKW'$66$8/76<67(0(6
&$$96RIWZDUH3UHUHTXLVLWHV
$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$,;&RPSLOHUV9HUVLRQRULEPF[[
&RS\ULJKW'$66$8/76<67(0(6
&$$96RIWZDUH3UHUHTXLVLWHV
6*,,5,;(QYLURQPHQW
,5,;P
&&0,36SUR&RPSLOHUQ$%,
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
• 7KHPRGHXVHUJOREDO7KHHQYLURQPHQWZLOOEH
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
$QHZFRPPDQGLVFUHDWHGLQWKH6WDUWPHQX17RQO\
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