• No results found

Design reverse-engineering and automated design-pattern detection in Smalltalk

N/A
N/A
Protected

Academic year: 2020

Share "Design reverse-engineering and automated design-pattern detection in Smalltalk"

Copied!
73
0
0

Loading.... (view fulltext now)

Full text

(1)

'(6,*15(9(56((1*,1((5,1*$1' $8720$7(''(6,*13$77(51

'(7(&7,21,160$//7$/. E\

.\OH%URZQ

$WKHVLVVXEPLWWHGWRWKH*UDGXDWH)DFXOW\RI 1RUWK&DUROLQD6WDWH8QLYHUVLW\

LQSDUWLDOIXOILOOPHQWRIWKHUHTXLUHPHQWVIRUWKH'HJUHHRI 0DVWHURI6FLHQFH

&RPSXWHU(QJLQHHULQJ

5DOHLJK

$SSURYHG%\

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

(2)
(3)

$%675$&7

%52:1.</(*(1('HVLJQ5HYHUVHHQJLQHHULQJDQG$XWRPDWHG'HVLJQ3DWWHUQ 'HWHFWLRQLQ6PDOOWDON8QGHUWKHGLUHFWLRQRI'U(GZDUG*HKULQJHU

7KHSXUSRVHRIWKLVUHVHDUFKKDVEHHQWRGHPRQVWUDWHWKHIHDVLELOLW\RIEXLOGLQJSURJUDPVWR GHWHFWWKHXVHRIVRIWZDUHGHVLJQSDWWHUQVLQ6PDOOWDONSURJUDPV7RWKLVHQGWKLVWKHVLV H[DPLQHVWKHVWUXFWXUHRIGHVLJQSDWWHUQVGHWHUPLQHV WKH QDWXUH RI ZKDW PDNHV D GHVLJQ SDWWHUQ GHWHFWDEOH E\ DXWRPDWHG PHDQV DQG RXWOLQHV DOJRULWKPV E\ ZKLFK D VPDOO VHW RI GHVLJQSDWWHUQVFDQEHGHWHFWHG

(4)
(5)

3(5621$/%,2*5$3+<

(6)

$&.12:/('*0(176

7KHDXWKRUZLVKHVWRWKDQNKLVZLIH$QQZLWKRXWZKRVHVXSSRUWDQGHQFRXUDJHPHQWWKLV ZRXOGQRWKDYHEHHQSRVVLEOH7KLVWKHVLVLVGHGLFDWHGWR\RX

(7)

7$%/(2)&217(176

LIST OF TABLES...VI LIST OF FIGURES ... VII

1. WHAT ARE DESIGN PATTERNS AND WHY DO WE CARE?... 1

1.1 THE OO DESIGN PROBLEM... 1

1.1.1 Why OO Design is difficult to teach ... 1

1.1.2 Why existing designs are hard to document... 3

1.2 DESIGN PATTERNS... 5

1.2.1 What is a pattern?... 5

1.2.2 Where did patterns come from? ... 5

1.2.3 The pattern form ... 7

1.2.4 An example software design pattern... 8

1.3 HOW PATTERNS ARE USEFUL... 11

1.3.1 Using patterns in developing new designs ... 11

1.3.2 Using patterns to understand existing designs... 12

1.3.3 Documenting frameworks using patterns... 12

1.4 HOW PATTERNS RELATE TO OTHER DESIGN COMPREHENSION WORK... 13

1.4.1 Clichés vs. patterns... 13

1.4.2 Plans vs. patterns... 15

1.4.3 How patterns fit into the design continuum ... 16

1.5 DOCUMENTATION TOOLS FOR PATTERNS... 17

1.6 OUTLINE OF THE REMAINDER OF THE THESIS... 17

2. DETECTING DESIGN PATTERNS ... 19

2.1 INTENT VS. ARTIFACT... 19

2.2 OBJECT-ORIENTED DESIGN INFORMATION IN DESIGN PATTERNS... 19

2.2.1 Class hierarchy representation ... 20

2.2.2 Aggregation/association information ... 20

2.2.3 Message information... 21

2.2.4 Graphically representing design information ... 21

2.3 DETECTING PATTERNS... 23

2.3.1 What makes a pattern detectable?... 23

2.3.2 The GOF patterns ... 24

2.3.3 Composite and Decorator ... 25

2.3.4 Template Method ... 27

2.3.5 Chain of Responsibility... 28

2.3.6 Other potentially detectable patterns ... 31

2.4 SUMMARY... 33

3. DESIGN OF THE REVERSE ENGINEERING TOOL... 34

3.1 STATIC MODELING... 34

3.2 POSSIBLE CHOICES FOR SMALLTALK TYPING... 36

3.3 RUNTIME STATISTICAL TYPING... 37

3.4 DYNAMIC MODELING... 43

(8)

3.4.2 Existing Smalltalk message facilities... 43

3.4.3 Dynamic message recording ... 44

3.4.4 Call Tree interpretation ... 44

3.5 PATTERNS INTERPRETATION... 45

3.5.1 Composite/Decorator design... 46

3.5.2 Template Method Design ... 47

3.5.3 Chain of Responsibility design... 48

3.6 ROSE FILE GENERATION... 48

3.7 SUMMARY... 51

4. DEMONSTRATING REVERSE ENGINEERING ... 52

4.1 PROGRAMS UNDER REVIEW... 52

4.2 RESULTS OF ANALYZING THE PROGRAMS... 52

4.3 A NOTE ABOUT CHAIN OF RESPONSIBILITY... 55

4.4 SUMMARY... 56

5. SUMMARY AND CONCLUSIONS... 57

5.1 RESULTS OF THE RESEARCH... 57

(9)

/,672)7$%/(6

1XPEHU 3DJH

(10)

/,672)),*85(6

1XPEHU 3DJH

(11)

:KDWDUHGHVLJQSDWWHUQVDQGZK\GRZHFDUH" 7KH22GHVLJQSUREOHP

2EMHFW2ULHQWHG 22 ODQJXDJHV DUH UDSLGO\ EHFRPLQJ WKH GH IDFWR VROXWLRQ IRU PRVW JHQHUDOSXUSRVH SURJUDPPLQJ SUREOHPV 0DQ\ FROOHJHV DQG XQLYHUVLWLHV 1& 6WDWH LQFOXGHGDUHQRZWHDFKLQJ&DVWKHILUVWODQJXDJHLQLQWURGXFWRU\SURJUDPPLQJFRXUVHV DQG 22 PHWKRGRORJLHV DUH EHFRPLQJ DFFHSWHG DV WKH VWDQGDUG DQDO\VLV DQG GHVLJQ WHFKQLTXH IRU QHZ ODUJHVFDOH VRIWZDUH V\VWHPV 0RVW RI WKHVH QHZ V\VWHPV ZLOO DOVR EH LPSOHPHQWHGLQDQREMHFWRULHQWHGODQJXDJH

$ UHDGHU SROO E\ (OHFWURQLF 'HVLJQ 1HZV VKRZHG WKDW RYHU RI WKH VRIWZDUH

HQJLQHHUVZKRUHVSRQGHGWRWKHLUSROOZHUHDOUHDG\XVLQJDQ22ODQJXDJHDQGWKDW SODQQHG RQ XVLQJ RQH ZLWKLQ WKH QH[W PRQWKV $ VLPLODU &RPSXWHUZRUOG SROO

VKRZHGWKDWRIVRIWZDUHPDQDJHUVUHVSRQVLEOHIRUWRROVSXUFKDVHVFRQVLGHUHGREMHFW RULHQWHG IHDWXUHV HLWKHU ´VRPHZKDWµ RU ´YHU\µ LPSRUWDQW LQ PDNLQJ WKHLU SXUFKDVLQJ GHFLVLRQV2EMHFWRULHQWDWLRQLVKHUHWRVWD\DQGOHDUQLQJKRZWRPDNHSURSHUXVHRILWV WHFKQLTXHV LV EHFRPLQJ D FULWLFDO QHHG IRU GHYHORSPHQW WHDPV DQG FRUSRUDWH WUDLQLQJ RUJDQL]DWLRQV

:K\22'HVLJQLVGLIILFXOWWRWHDFK

:KLOH22GHVLJQPHWKRGRORJLHV DQG ODQJXDJHV DUH LQ HYHULQFUHDVLQJ XVH LW LV EHFRPLQJ UHFRJQL]HGWKDWLWLVKDUGHUWREHFRPHDQ´H[SHUWµ22SURJUDPPHUWKDQLWLVWREHFRPHDQ H[SHUWLQWUDGLWLRQDOVWUXFWXUHGWHFKQLTXHV7KLVLVSDUWO\GXHWRWKH IDFW WKDW 22 EXLOGV XSRQVWUXFWXUHGWHFKQLTXHVDQGDGGVDGGLWLRQDOSURJUDPPLQJODQJXDJHDQGGHVLJQIHDWXUHV

(12)

WKDW PXVW EH FRPSUHKHQGHG DQG ODUJH OLEUDULHV WKDW PXVW EH OHDUQHG +RZHYHU WKH SUREOHPJRHVGHHSHUWKDQWKLV

:KHQDSHUVRQLVILUVWOHDUQLQJREMHFWRULHQWHGGHVLJQDQGREMHFWRULHQWHGSURJUDPPLQJKH RIWHQVWUXJJOHVWRXQGHUVWDQGKRZWKHFRQFHSWVZRUNWRJHWKHUZLWKLQWKHVROXWLRQVSDFHRI KLVRZQSUREOHP7KHYDULRXVREMHFWRULHQWHGPHWKRGRORJ\ERRNV%RRFK>@5XPEDXJK >@HWFVSHDNDWOHQJWKDERXWKRZLQKHULWDQFHLVXVHGDQGKRZWRPRGHODVVRFLDWLRQDQG DJJUHJDWLRQRIREMHFWVEXWWKH\GRQRWDQGLQDVHQVH FDQQRW FRPPXQLFDWH ZK\ WKHVH IHDWXUHVDUHXVHGLQDSDUWLFXODUVLWXDWLRQ,QJHQHUDO22PHWKRGRORJ\ERRNVDOVRGRQRW FRQYH\WKHWUDGHRIIVLQKHUHQWLQXVLQJWKHGLIIHUHQW22 IHDWXUHV LQ SDUWLFXODU VLWXDWLRQV 2QFHWKHIHDWXUHVKDYHEHHQSUHVHQWHGLWLVJHQHUDOO\OHIWXSWRWKHUHDGHUKRZWRDSSO\D SDUWLFXODU GHYHORSPHQW SURFHVV D VHW RI GLDJUDPPDWLF FRQYHQWLRQV DQG D VHW RI JHQHUDO FRQFHSWVOLNH´DEVWUDFWLRQµWRKLVRZQSUREOHP

0RVWRIWKHUHDOWUDLQLQJLQ22$ 'DQG223 WKDW JRHV RQ WRGD\ GRHV QRW RFFXU LQ D FODVVURRPVHWWLQJEXWUDWKHULQUHODWLRQVKLSVPRUHOLNHWKDWRIWKHPDVWHUDQGDSSUHQWLFHLQ SUHLQGXVWULDO WUDGH JXLOGV 7KURXJK UHSHDWHG H[DPSOH DQG FRUUHFWLRQ H[SHULHQFHG 22

GHVLJQHUVRIWHQFRQVXOWDQWVWHDFKLQH[SHULHQFHGGHVLJQHUVDQGFRGHUVKRZWRSUDFWLFHWKHLU FUDIW :KLOH HIIHFWLYH ZLWK VPDOO JURXSV WKLV SURFHVV LV LQHIILFLHQW DQG FDQQRW KRSH WR SURGXFHWKHQXPEHURISURILFLHQW22GHVLJQHUVWKDWZLOOEHQHHGHGLIWKHWHFKQRORJ\LVWR VXVWDLQLWVFXUUHQWUDWHRIJURZWK

(13)

$OWKRXJKLWLVGLIILFXOWWROHDUQDQGHYHQPRUHGLIILFXOW WR WHDFK 22 GHVLJQ H[SHULHQFHG GHVLJQHUV VWLOO WXUQ RXW YROXPHV RI GHVLJQV HYHU\ GD\ 6R ZKLOH LW LV SRVVLEOH WR OHDUQ WR EHFRPH DQ 22 GHVLJQHU WUDGLWLRQDO WHDFKLQJ PHWKRGV DUH QRW HQRXJK WR FRPSOHWHO\ DGGUHVVWKHSUREOHP

:K\H[LVWLQJGHVLJQVDUHKDUGWRGRFXPHQW

0RVW 22 GHVLJQ PHWKRGRORJLHV DUH YHU\ JRRG DW UHSUHVHQWLQJ WKH VWDWLF UHODWLRQVKLSV EHWZHHQREMHFWVDQGGRFXPHQWLQJWKHLQKHULWDQFHDVVRFLDWLRQDQGDJJUHJDWLRQUHODWLRQVKLSV LQ D GHVLJQ 8QIRUWXQDWHO\ LQ PDQ\ 22 GHVLJQV WKLV LV DOO WKDW LV GRFXPHQWHG 0RVW H[LVWLQJGRFXPHQWDWLRQWRROVIRFXVRQWKHVHVWDWLFUHODWLRQVKLSVDQGGRQRWDVHIIHFWLYHO\ GRFXPHQWWKHG\QDPLFPHVVDJHIORZVEHWZHHQREMHFWVRUVKRZKRZREMHFWVHYROYHRYHU WLPH

,QSDUWWKLVLVGXHWRWKHQDWXUHRIH[LVWLQJGHVLJQGRFXPHQWDWLRQ0RVWGLDJUDPVFDQRQO\ FDSWXUH D ´VOLFH LQ WLPHµ RI D GHVLJQ DQG FDQQRW UHSUHVHQW WKH HYROXWLRQ RI DQ REMHFW VWUXFWXUH,WLVDOVRGLIILFXOWWRUHSUHVHQWWKHG\QDPLFQDWXUHRIDUXQWLPHVWUXFWXUHLQD VWDWLFGLDJUDP

,QWHQWYVDUWLIDFW

(14)

GXULQJ GHVLJQ DUH NH\ WR PDNLQJ D GHVLJQ IOH[LEOHµ 7KHVH DUWLIDFWV ZKLOH VRPHWLPHV

FRQIXVLQJDUHQHFHVVDU\IRUDQH[WHQVLEOHDQGIOH[LEOHV\VWHP

'LDJUDPVDUHQRWTXLWHHQRXJK

'LDJUDPV DUH WKH PRVW FRPPRQ IRUP RI GHVLJQ GRFXPHQWDWLRQ EXW WKH\ DORQH GR QRW SURYLGHDOORIWKHLQIRUPDWLRQQHFHVVDU\WREHDEOHWRH[WHQGRUPDLQWDLQFODVVHV3UREOHPV LQKHUHQWLQDQ\GLDJUDPPDWLFUHSUHVHQWDWLRQOLPLWLWVHIILFDF\DVDWRROIRUXQGHUVWDQGLQJ

)HZKXPDQVFDQFRPSUHKHQGDODUJHFRPSOLFDWHGVWUXFWXUHDWDJODQFH$FRPPRQUXOHRI FRJQLWLYH VFLHQFH KROGV WKDW DQ DYHUDJH SHUVRQ FDQ RQO\ KROG WKLQJV LQ VKRUWWHUP PHPRU\DWRQFH&RPSOLFDWHGGLDJUDPPDWLFVWUXFWXUHVWKDWLQYROYHPRUHFODVVHVRUREMHFWV PXVW EH GHFRPSRVHG RU ´FKXQNHGµ LQWR VPDOOHU SLHFHV WR DOORZ FRPSUHKHQVLRQ DQG UHWHQWLRQ,QRUGHUWRXQGHUVWDQGDFRPSOLFDWHGGHVLJQRQHQHHGVDZD\WREULQJDEHWWHU VWUXFWXUHWRLWVUHSUHVHQWDWLRQ

+RZGRZHSURFHHG"

:KDW LV QHHGHG LV VRPHWKLQJ WKDW XWLOL]HV GLDJUDPPDWLF LQIRUPDWLRQ EXW JRHV EH\RQG VKRZLQJZKDWHOHPHQWV D GHVLJQ FRQWDLQV VRPHWKLQJ WKDW DOVR H[SODLQV ZK\ FODVVHV DUH DUUDQJHGWKHZD\WKH\DUHDQGKRZREMHFWVLQVWDQWLDWHGIURPWKRVHFODVVHVFDQHYROYHRYHU WLPH7KLVPXVWDOORZQRYLFHGHVLJQHUVWRFRPSUHKHQGWKHFRPPRQHOHPHQWVRIDGHVLJQ DQG SURYLGH D IUDPH RI UHIHUHQFH E\ ZKLFK WKHVH HOHPHQWV FDQ EH FRPSDUHG WR RWKHU H[DPSOHV

(15)

'HVLJQ3DWWHUQV

3RVVLEO\WKHEHVWLGHDWRFRPHIURPWKH22GHVLJQFRPPXQLW\LQDQDWWHPSWWRVROYHWKHVH SUREOHPV LH KRZ WR UHSUHVHQW DQG FRPPXQLFDWH WKH LQIRUPDWLRQ DERXW FRPPRQ DEVWUDFWLRQV DQG VROXWLRQV WR GHVLJQ SUREOHPV KDV EHHQ WKH QRWLRQ RI GHVLJQ SDWWHUQV 'HVLJQSDWWHUQVKDYHWKHSRWHQWLDOWRUHSUHVHQWWKHFRPPRQDEVWUDFWLRQVWKDWH[SHULHQFHG 22 GHVLJQHUV XVH WR VROYH WKH EDVLF SUREOHPV RI 22 GHVLJQ LQ D ZD\ WKDW FDQ EH XQGHUVWRRGDQGXWLOL]HGE\DQRYLFHGHVLJQHU

:KDWLVDSDWWHUQ"

7KHVLPSOHVWGHILQLWLRQRIDSDWWHUQLV´DVROXWLRQWRDSUREOHPLQDFRQWH[Wµ+RZHYHUWKLV GHILQLWLRQ LV D ELW WRR WHUVH WR EH XVHIXO WR DQ\RQH RXWVLGH WKH SDWWHUQV FRPPXQLW\ $ SDWWHUQ LV D ZD\ WR SURYLGH LQIRUPDWLRQ LQ WKH IRUP RI D SUREOHP VWDWHPHQW VRPH FRQVWUDLQWVRQWKHSUREOHPDSUHVHQWDWLRQRIDZLGHO\DFFHSWHGVROXWLRQWRWKHSUREOHP DQGWKHQDGLVFXVVLRQRIWKHFRQVHTXHQFHVRIWKDWVROXWLRQ:HDUHSDUWLFXODUO\LQWHUHVWHGLQ DUHVRIWZDUHGHVLJQSDWWHUQVZKLFKVSHFLILFDOO\GHDOZLWKFRPPRQSUREOHPVLQ22GHVLJQ 'HVLJQ SDWWHUQV FDQ EH WKRXJKW RI DV PLFURDUFKLWHFWXUHV IRU VROYLQJ SDUWLFXODU GHVLJQ SUREOHPV

:KHUHGLGSDWWHUQVFRPHIURP"

7KHGHVLJQSDWWHUQPRYHPHQWEHJDQZLWKWKHZRUNRIWKHDUFKLWHFWRIWKHVWHHOZRRGDQG VWRQH YDULHW\ &KULVWRSKHU $OH[DQGHU LQ WKH PLGWRODWH ·V ,Q $OH[DQGHU SXEOLVKHGWKHERRN$3DWWHUQ/DQJXDJH IROORZHG LQ E\ 7KH 7LPHOHVV :D\ RI %XLOGLQJ

%RWK ERRNV SUHVHQWHG D ZD\ RI UHSUHVHQWLQJ DUFKLWHFWXUDO NQRZOHGJH DV D VHULHV RI

(16)

SUREOHPVWRJHWKHUZLWKWKHIRUFHVRUFRQVWUDLQWVRQHDFKSUREOHPZLWKDVROXWLRQWRWKH SUREOHPDORQJZLWKDWHPSODWHRUH[DPSOHWKDWFDQEHIROORZHGWRVROYHWKHSUREOHP

$3DWWHUQ/DQJXDJHFRQWDLQHGSDWWHUQVUDQJLQJIURPWKHYHU\ODUJHVFDOHSROLWLFDODQG JHRJUDSKLFGLYLVLRQVWRWKHYHU\VPDOOKRZWREXLOGGRRUVDQGSODFHZLQGRZV,QJHQHUDO WKHSDWWHUQVIORZIURPODUJHVFDOHWRVPDOOVFDOH7KHDUHDOVRJURXSHGWRJHWKHUE\WKHPH DQG FRQQHFWLRQ $V DQ H[DPSOH RI WKH $OH[DQGULDQ SDWWHUQV WDNH SDWWHUQ &RUQHU 'RRUV

$OH[DQGHUEHJLQVHDFKSDWWHUQZLWKDVWDWHPHQWRIWKHSUREOHP,QWKLVLQVWDQFH´7KHVXFFHVV RIDURRPGHSHQGVWRDJUHDWH[WHQWRQWKHSRVLWLRQRIWKHGRRUV,IWKHGRRUVFUHDWHDSDWWHUQRIPRYHPHQW ZKLFKGHVWUR\VWKHSODFHVLQDURRPWKHURRPZLOOQHYHUDOORZSHRSOHWREHFRPIRUWDEOHµ

1H[WFRPHVDGLVFXVVLRQRIWKHFRQVWUDLQWVDQGIRUFHVRQWKHSUREOHP,QWKLVSDUWLFXODU LQVWDQFH$OH[DQGHUVKRZVVHYHUDOGUDZLQJVRIURRPVZLWKGRRUVLQGLIIHUHQWSRVLWLRQVRQ WKHZDOO+HLOOXVWUDWHVWUDIILFIORZLQURRPVZLWKFRUQHUGRRUVDQGWDONVDERXWKRZWUDIILF IORZ GLYLGHV WKH URRP LQWR VSDFHV +H ILQDOO\ QRWHV WKDW WKH LVVXHV DQG FRQVWUDLQWV DUH GLIIHUHQWLQYHU\ODUJHURRPV

)LQDOO\KHSURYLGHVWKHVROXWLRQWRWKLVSUREOHP´7KHUHIRUH([FHSWLQYHU\ODUJHURRPVDGRRU RQO\UDUHO\PDNHVVHQVHLQWKHPLGGOHRIDZDOOLQPRVWURRPVHVSHFLDOO\VPDOORQHVSXWWKHGRRUVDVQHDU WKHFRUQHUVRIWKHURRPDVSRVVLEOH,IDURRPKDVWZRGRRUVDQGSHRSOHPRYHWKURXJKLWNHHSERWKGRRUVDW

(17)

RQHHQGRIWKHURRPµ+HFRQFOXGHVZLWKDQH[DPLQDWLRQRISDWWHUQVUHODWHGWRWKLVRQHLQ

WKLVH[DPSOHWKH\LQFOXGH/RZ'RRUZD\DQG&ORVHWVEHWZHHQURRPV

,Q WZR RI WKH HDUOLHVW 22 GHVLJQ H[SHUWV .HQW %HFN DQG :DUG &XQQLQJKDP RI 7HNWURQL[ EHFDPH LQWHUHVWHG LQ DSSO\LQJ $OH[DQGHU·V ZRUN WR VRIWZDUH HQJLQHHULQJ DQG GHYHORSHG D VLPSOH SDWWHUQ ODQJXDJH IRU GHVLJQLQJ JUDSKLFDO XVHU LQWHUIDFHV LQ 6PDOOWDON 7KH\SUHVHQWHGWKLVZRUNLQDSDQHODQGZRUNVKRSDW2236/$¶7KHLGHDZDVSLFNHG XSDJDLQE\(ULFK*DPPDDQG5LFKDUG+HOPDWWKH(&223¶FRQIHUHQFHZKHUHWKH\ EHJDQWRGLVFRYHUFRPPRQSDWWHUQVLQWKHGHVLJQRIODUJH22IUDPHZRUNV

7KLVLQLWLDOZRUNZLWKFROODERUDWLRQE\5DOSK-RKQVRQDQG-RKQ9OLVVLGHVFXOPLQDWHGLQD FDWDORJRIFRPPRQGHVLJQSDWWHUQVWKDWZDVSXEOLVKHGLQDV'HVLJQ3DWWHUQV(OHPHQWVRI 5HXVDEOH2EMHFW2ULHQWHG6RIWZDUH

7KHSDWWHUQIRUP

(YHUVLQFHWKHLQLWLDOGHVLJQSDWWHUQVZRUNEHJDQLQWKH22FRPPXQLW\RQHRIWKHPRVW KHDWHGO\ GHEDWHG WRSLFV KDV EHHQ KRZ SDWWHUQV VKRXOG EH UHSUHVHQWHG 7KLV LV D IXQGDPHQWDOTXHVWLRQLISDWWHUQVDUHWREHXVHGDVDFRPPRQFRPPXQLFDWLRQVPHGLXP

3UREDEO\ WKH PRVW DFFHSWHG SDWWHUQV IRUP LV WKH ´FDQRQLFDOµ RU $OH[DQGULDQ IRUP RI SUHVHQWLQJDSDWWHUQ$WHPSODWHRIDW\SLFDO$OH[DQGULDQSDWWHUQIROORZVZLWKWKHWLWOHRI HDFKVHFWLRQLQEROGIDFH

RSFLWS

(18)

• 7KHQDPHRIWKHSDWWHUQEHJLQVWKHSDWWHUQ

• $VWDWHPHQWRIWKHSUREOHPWKHSDWWHUQVROYHVIROORZVWKHQDPH

• $GLVFXVVLRQRIWKHFRQVWUDLQWVRUIRUFHVRQWKHSUREOHPFRPHVQH[W7KLVLV PHDQWWREULQJDFURVVZK\WKHSUREOHPLVKDUGDQGPD\GLVFXVVDOWHUQDWLYHVROXWLRQV WKDWKDYHEHHQH[DPLQHGDQGUHMHFWHG

• )LQDOO\WKHSDWWHUQFRQWDLQVDGHVFULSWLRQRIWKHVROXWLRQWRWKHSUREOHPRIWHQLQ WKHIRUPRIDQH[DPSOHRUWHPSODWH

$QRWKHUFRPPRQPRWLILVWRDGG D VHFWLRQ DW WKH HQG RI WKH SDWWHUQ QRWLQJ ZKDW RWKHU SDWWHUQVDUHUHODWHGWRWKLVSDWWHUQ

3HWHU &RDG ZKRVH RZQ ZRUN LQ SDWWHUQV KDV SDUDOOHOHG WKDW RI PDQ\ RI WKH RWKHU FRQWULEXWRUVWRWKHILHOGKDVWDNHQVWURQJGLVDJUHHPHQWZLWKWKHFDQRQLFDOIRUPDQGLQVLVWV WKDWWKHWHPSODWHRUH[DPSOHLVWKHPRVWLPSRUWDQWSDUWRIWKHSDWWHUQ,Q&RDG>@KH ZULWHV WKDW ´$Q REMHFWPRGHO SDWWHUQ LV D WHPSODWH RI REMHFWV ZLWK VWHUHRW\SLFDO UHVSRQVLELOLWLHVDQGLQWHUDFWLRQVWKHWHPSODWHPD\EHDSSOLHGDJDLQDQGDJDLQE\DQDORJ\µ

1RPDWWHUZKDWLVWDNHQWREHFHQWUDOWKHSUREOHPGHVFULSWLRQDQGIRUFHVRUWKHWHPSODWH VROXWLRQ WKH EDVLF RXWOLQH LV WKH VDPH 7KH NH\ WR GHVLJQ SDWWHUQV OLHV LQ DVVRFLDWLQJ D VROXWLRQ ZLWK D JLYHQ SUREOHP DQG GHPRQVWUDWLQJ KRZ WR DSSO\ WKH WHPSODWH WR QHZ SUREOHPVKDYLQJWKHVDPHIRUPZLWKLQWKHFRQVWUDLQWVJLYHQ

$QH[DPSOHVRIWZDUHGHVLJQSDWWHUQ

(19)

$VDQH[DPSOHRIKRZWKHSDWWHUQIRUPKDVEHHQDSSOLHGWR22VRIWZDUHGHVLJQDJRRG FKRLFHLVDSDWWHUQIURP*DPPD>@&RPSRVLWH*DPPD>@VWDWHVWKDWWKHLQWHQW RI WKH &RPSRVLWH SDWWHUQ LV WR ´&RPSRVH REMHFWV LQWR WUHH VWUXFWXUHV WR UHSUHVHQW SDUW ZKROH KLHUDUFKLHV &RPSRVLWH OHWV FOLHQWV WUHDW LQGLYLGXDO REMHFWV DQG FRPSRVLWLRQV RI REMHFWVXQLIRUPO\µ,QWKH0RWLYDWLRQVHFWLRQRIWKHSDWWHUQWKH\GLVFXVVKRZLQJUDSKLFV

DSSOLFDWLRQV FRPSOH[ GLDJUDPV DUH RIWHQ EXLOW XS RXW RI VLPSOH GLDJUDPV $Q LPSOHPHQWDWLRQRI DQ HGLWRU WKDW XVHG VHSDUDWH FODVVHV IRU SULPLWLYH OLQH WH[W UHFWDQJOH DQG FRPSRVLWH REMHFWV ZRXOG EH PXFK PRUH FRPSOH[ WKDQ DQ DSSOLFDWLRQ WKDW KDG D FRPPRQUHSUHVHQWDWLRQIRUERWKW\SHVRIREMHFWV

*DPPD>@S

children

1 N Component

Leaf Composite

(20)

*DPPD>@JRHVRQWRSUHVHQWWKHVWUXFWXUHRIWKH&RPSRVLWHSDWWHUQLQDFODVVGLDJUDP VHH)LJXUH&RPSRVLWH&ODVV6WUXFWXUHDQGVKRZDW\SLFDOREMHFWVWUXFWXUH7KHUHDUH WKUHHSDUWLFLSDQWFODVVHVLQWKLVSDWWHUQ

• &RPSRQHQWZKLFKGHILQHVDQDEVWUDFWLQWHUIDFHVKDUHGE\DOOJUDSKLFVREMHFWV

• /HDIZKLFKUHSUHVHQWVDSULPLWLYHJUDSKLFVXFKDVDUHFWDQJOHDQG

• &RPSRVLWH ZKLFK LV D JUDSKLF REMHFW EXW ZKLFK DOVR FRQWDLQV RWKHU JUDSKLF REMHFWVLQDZKROHSDUWUHODWLRQVKLS

$IWHULQWURGXFLQJWKHVROXWLRQWKH\GLVFXVVLWVFRQVHTXHQFHVZKLFKLQFOXGH

• PDNLQJFOLHQWVRIWKH&RPSRQHQWVVLPSOHDQGLJQRUDQWRIWKHIDFWWKDWWKH\DUH XWLOL]LQJHLWKHUD&RPSRVLWHRUD/HDI

• PDNLQJLWHDV\WRDGGQHZFRPSRQHQWVWRWKHUXQWLPHVWUXFWXUHDQG

• PDNLQJLWPRUHFKDOOHQJLQJWRUHVWULFWWKHW\SHVRIFRPSRQHQWVWKDWDFRPSRVLWH FDQ FRQWDLQ D UXQWLPH FKHFN PXVW EH SHUIRUPHG LQVWHDG RI XVLQJ WKH W\SH V\VWHPRIWKHODQJXDJH

(21)

+RZSDWWHUQVDUHXVHIXO

'HVLJQ SDWWHUQV DUH SRWHQWLDOO\ XVHIXO LQ ERWK GHYHORSLQJ QHZ GHVLJQV DQG DV DQ DLG LQ FRPSUHKHQGLQJH[LVWLQJ22GHVLJQV:KLOH WKH IRUPHU XVH LV WKH EHVW GRFXPHQWHG WKH ODWWHUZLOOEHFRPHPRUHLPSRUWDQWDVWLPHJRHVRQ

8VLQJSDWWHUQVLQGHYHORSLQJQHZGHVLJQV

7KHKRSHRIWKHGHVLJQSDWWHUQVFRPPXQLW\LVWKDWRYHUWLPHDODUJHQXPEHURISDWWHUQVZLOO EHFRPSLOHGDQGSXEOLVKHGDQGWKDWWKH\ZLOOEHFRPHSDUWRIWKHHYHU\GD\YRFDEXODU\RI VRIWZDUH GHVLJQHUV 7R WKLV HQG PRVW SDWWHUQV OLWHUDWXUH WRGD\ FRQVLVWV RI FDWDORJV RI VRIWZDUHSDWWHUQV*DPPD>@LVWKHSULPDU\H[DPSOHRIWKLVDVLWSUHVHQWVWZHQW\WKUHH IXQGDPHQWDOGHVLJQSDWWHUQV2WKHUZRUNVVXFKDV&RDG>@DQG3UHH>@DUHSULPDULO\ SDWWHUQV FDWDORJV DOWKRXJK ERWK WU\ WR SUHVHQW D WKHRU\ RI VRIWZDUH GHYHORSPHQW EDVHG XSRQSDWWHUQV

7KHILUVW3DWWHUQ/DQJXDJHRI3URJUDPV3/R3FRQIHUHQFHZDVKHOGDW0RQWLFHOOR,OOLQRLV LQ 6HSWHPEHU ,WV SURFHHGLQJV DUH D FDWDORJ RI QHZ SDWWHUQV IURP PDQ\ GLIIHUHQW

DXWKRUV7KHVHFRQGFRQIHUHQFHZDVKHOGLQ6HSWHPEHUDQGLWVSURFHHGLQJVZLOODJDLQ FRQVLVWRIDFDWDORJRIQHZSDWWHUQV

7KHPRWLYDWLRQEHKLQGVXFKFDWDORJVLVWKDWDVGHVLJQHUVIDFHSUREOHPVLQWKHFRXUVHRI22 GHVLJQ WKH\ ZLOO ORRN WR WKH YDULRXV SDWWHUQV FDWDORJV IRU VROXWLRQV WR SDUWLFXODU GHVLJQ

(22)

SUREOHPV7KLVLVSUREDEO\WKHEHVWXVHRIGHVLJQSDWWHUQVIRUWKHQHDUIXWXUHDQGHDUO\ UHVXOWVKDYHVKRZQWKDWWKH\FDQEHVXFFHVVIXOO\XVHGLQWKLVPDQQHU

8VLQJSDWWHUQVWRXQGHUVWDQGH[LVWLQJGHVLJQV

%HVLGHVEHLQJ XVHIXO DV D WRRO LQ WKH GHYHORSPHQW RI QHZ 22 GHVLJQV RQH RI WKH PRVW LQWHUHVWLQJ XVHV RI GHVLJQ SDWWHUQV LV LQ WKH GRFXPHQWDWLRQ RI H[LVWLQJ GHVLJQV 3DWWHUQV IRUPDEDVLVIURPZKLFKDNQRZOHGJHDEOHHQJLQHHU FDQ FRPH WR FRPSUHKHQG D FRPSOH[ GHVLJQ

'HVLJQ SDWWHUQV FDQ IRUP D VKDUHG YRFDEXODU\ ZLWK ZKLFK HQJLQHHUV FDQ FRQYHUVH DERXW GHVLJQGHFLVLRQV$QLPSRUWDQWIHDWXUHRIWKHGHVLJQSDWWHUQIRUPDWLVWKHGLVFXVVLRQRIWKH ´IRUFHVµRUWUDGHRIIVWKDWHDFKGHVLJQSDWWHUQDGGUHVVHVDQGZKLFKWKHVROXWLRQUHVROYHV,I DQHQJLQHHUFDQXQGHUVWDQGWKDWDSDUWLFXODUGHVLJQSDWWHUQKDVEHHQXVHGDVSDUWRIDQ22 GHVLJQ KH FDQ PDNH FHUWDLQ DVVXPSWLRQV DERXW WKH FRQVWUDLQWV WKDW ZHUH SODFHG RQ WKH GHVLJQ 2QFH WKH FRQVWUDLQWV DUH XQGHUVWRRG KH FDQ XQGHUVWDQG WKH FDSDELOLWLHV DQG OLPLWDWLRQVRIWKDWVHFWLRQRIWKHV\VWHP

'RFXPHQWLQJIUDPHZRUNVXVLQJSDWWHUQV

2QHRIWKHHDUOLHVWSXEOLVKHGZRUNVRQGHVLJQSDWWHUQVZDV-RKQVRQ>@ZKLFKDGGUHVVHG WKHXVHRISDWWHUQVDVDGRFXPHQWDWLRQWRROIRU22IUDPHZRUNV,QLW-RKQVRQSUHVHQWHGD VHWRISDWWHUQVWKDWVHUYHGERWKDVGRFXPHQWDWLRQRIWKHSXUSRVHDQGXVHRIWKHFODVVHVLQ WKH +RW'UDZ JUDSKLFV IUDPHZRUN DQG DV D URDGPDS WR EXLOGLQJ DSSOLFDWLRQV ZLWK WKH IUDPHZRUN

(23)

3DWWHUQVKROGDJUHDWGHDORISURPLVHDVDWRROIRUXQGHUVWDQGLQJIUDPHZRUNVEHFDXVHWKH\ PDNHFOHDUWKHSDUWVRIDIUDPHZRUNWKDWFDQDUHIL[HGDQGWKHSDUWVWKDWFDQFKDQJH3UHH >@SUHVHQWVDFRQFHSWXDOIUDPHZRUNIRUXVLQJSDWWHUQVWRPDNHWKHVHGLIIHUHQWSDUWVRID IUDPHZRUNXQGHUVWDQGDEOHDQGLQWURGXFHVWKH QRWLRQ RI ZKDW KH FDOOV ´KRWVSRW GULYHQµ IUDPHZRUNGHVLJQWKDWKLQJHVXSRQWKHXVHRIVSHFLILFGHVLJQSDWWHUQVWRFUHDWHIUDPHZRUNV

+RZSDWWHUQVUHODWHWRRWKHUGHVLJQFRPSUHKHQVLRQZRUN

:KLOHGHVLJQSDWWHUQVDUHDQHZGHYHORSPHQWLQWKH22GHVLJQILHOGWKHUHKDYHEHHQRWKHU HIIRUWVZLWKVLPLODUJRDOV7KHFORVHVWUHVHPEODQFH·VDUHLQWKH$,ILHOGZKHUHWZRUHFHQW UHVHDUFKHIIRUWVKDYHKDGVLPLODUDLPVEXWYHU\GLIIHUHQWZD\VLQUHDFKLQJWKRVHJRDOV

&OLFKpVYVSDWWHUQV

$UHODWHGHIIRUWLQGHVLJQFRPSUHKHQVLRQDQGGHVLJQUHFRYHU\WKDWKDVEHHQRQJRLQJRYHU WKHSDVWVHYHUDO\HDUVLVWKH3URJUDPPHU·V$VVLVWDQWSURMHFWDW0,7·V$UWLILFLDO,QWHOOLJHQFH /DEKHDGHGE\'U5LFKDUG:DWHUVDQG'U&KDUOHV5LFK

7KH3URJUDPPHU·V$SSUHQWLFHSURMHFWVHHNVWRGHYHORSDQLQWHOOLJHQWDVVLVWDQWIRUSURJUDP GHYHORSHUVWKDWZRUNVIURPDNQRZOHGJHEDVHRILQIRUPDWLRQDERXWSURJUDPPLQJVWRUHGLQ WKHIRUPRIZKDW5LFKDQG:DWHUVWHUPFOLFKpV,Q5LFKDQG:DWHUV·WHUPLQRORJ\FOLFKpVDUH ´FRPPRQO\XVHGFRPELQDWLRQVRIHOHPHQWVZLWKIDPLOLDUQDPHVµ7KH\KDYHLGHQWLILHGD

QXPEHURIDOJRULWKPLFDQGGDWDVWUXFWXUHFOLFKpVWKDWUHSUHVHQW FRPPRQ DOJRULWKPV DQG DOJRULWKPIUDJPHQWVDQGFRPPRQGDWDVWUXFWXUHVDQG$'7·V

(24)

5LFKDQG:DWHUVKDYHGHYHORSHGDUHSUHVHQWDWLRQRIFOLFKpVWKH\WHUPWKH3ODQ&DOFXOXVWKDW FRQVLVWVRISURJUDPHOHPHQWVRSHUDWLRQVRUGDWDHOHPHQWVFRQQHFWHGE\GDWDIORZSDWKV DQGFRQWUROSDWKV&RPPRQFOLFKpVUHSUHVHQWHGLQWKH3ODQ&DOFXOXVIRUPWKHEDVLVRIWKHLU NQRZOHGJHEDVH

$ VHJPHQW RI WKH 3URJUDPPHU·V $SSUHQWLFH SURMHFW FDOOHG WKH 5HFRJQL]HU KDV EHHQ

GHYHORSHGWRDQDO\]HVRXUFHFRGHLQYDULRXVODQJXDJHVDQGGHULYHDUHSUHVHQWDWLRQRIWKH VRXUFHSURJUDPVLQDIRUPWKDWFDQEHFRPSDUHGWRWKHFOLFKpVVWRUHGLQ WKH NQRZOHGJH EDVH7KH5HFRJQL]HUKDVEHHQUXQRQVPDOOSURJUDPVDQGKDVEHHQVKRZQWREHDEOHWR UHFRJQL]HDQGGRFXPHQWWKHXVHRIDOJRULWKPLFDQGGDWDVWUXFWXUHFOLFKpVLQWKRVHSURJUDPV 8QIRUWXQDWHO\WKH SDUVLQJ DOJRULWKP XVHG LQ WKH 5HFRJQL]HU KDV EHHQ VKRZQ WR KDYH DQ H[SRQHQWLDO ZRUVWFDVH SHUIRUPDQFH ZKLFK SUHYHQWV WKLV DSSURDFK IURP EHLQJ XVHG LQ LQGXVWULDODSSOLFDWLRQV

7KHSULPDU\GLIIHUHQFHEHWZHHQDFOLFKpDQGDGHVLJQSDWWHUQOLHVLQWKHOHYHORIDEVWUDFWLRQ FDSWXUHGE\WKHWZR$FOLFKpUHSUHVHQWVHLWKHUDVLQJOHDOJRULWKPDQDOJRULWKPIUDJPHQW RU DQ $'7 7KHVH SLHFHV RI LQIRUPDWLRQ DUH WKH EDVLF EXLOGLQJ EORFNV RI REMHFWV IURP ZKLFKSDWWHUQVDUHFUHDWHG:KLOHDFOLFKpPD\UHSUHVHQWWKHLPSOHPHQWDWLRQRIDSLHFHRI DQREMHFWLWVD\VQRWKLQJDERXWWKHLQWHUDFWLRQRIWKHREMHFWZLWKRWKHUREMHFWVZKLFKLVWKH UDLVRQGrWUHRIGHVLJQSDWWHUQV

(25)

3ODQVYVSDWWHUQV

$QRWKHU UHODWHG HIIRUW ZDV WKH 3$7 3URJUDP $QDO\VLV 7RRO V\VWHP GHYHORSHG DW WKH 8QLYHUVLW\RI,OOLQRLVE\'U0HKGL+DUDQGLDQG'U-LP1LQJ3$7LVPHDQWWREHDQ

LQWHOOLJHQW SURJUDP DQDO\VLV DQG GHEXJJLQJ WRRO WKDW GHWHFWV HYHQWV ZKLFK DUH DEVWUDFW FRQFHSWVFRQWDLQHGLQDSURJUDP DQG XVHV WKHP WR GHVFULEH SODQV ZKLFK WKH\ GHILQH DV KLJKOHYHOFRQFHSWXDOYLHZVRIDSURJUDP

3$7FRPELQHV22DQG$,FRQFHSWVDQGUHSUHVHQWVWKHVHWRIHYHQWVWKDWLWFDQUHFRJQL]H LQDFODVVLILFDWLRQKLHUDUFK\WKDWLQFOXGHVVXEFODVVHVUHSUHVHQWLQJEDVLF FRQWURO VWDWHPHQWV GDWD VWUXFWXUHV VWUDWHJLHV OLNH LQFUHPHQWLQJ D YDULDEOH DQG DOJRULWKPV 3$7 ZRUNV E\ SDUVLQJ WKH VRXUFH WH[W RI WKH SURJUDP LQ TXHVWLRQ DQG WKHQ SURGXFLQJ DQ LQLWLDO VHW RI JOREDO IDFWV WKDW DUH XVHG DV WKH VWDUW UXOHV E\ D GHGXFWLYH LQIHUHQFH HQJLQH 7KH HQJLQH XWLOL]HVDGDWDEDVHRIH[LVWLQJSURJUDPNQRZOHGJHWRGHWHUPLQHZKDWSODQVKDYHEHHQIRXQG LQWKHFRGH$ORQJWKHZD\3$7GHVFULEHVZKDWLWKDVIRXQGVRIDULQWKHLQIHUHQFHDQG GHWHFWLRQSURFHVVWRSURGXFHSURJUDPGRFXPHQWDWLRQ

3$7ZDVRULJLQDOO\GHYHORSHGWRDQDO\]H3DVFDOSURJUDPVDOWKRXJKLWZDVEXLOWLQVXFKD ZD\WKDWHYHU\WKLQJLQLWZRXOGEHODQJXDJHLQGHSHQGHQWH[FHSWIRUWKHVRXUFHFRGHSDUVHU WKDWFUHDWHGWKHLQLWLDOUXOHV,WVFRQFHSWVKDYHVLQFHEHHQLQFRUSRUDWHGLQWRDV\VWHPWKDW DQDO\]HV&2%2/SURJUDPVDQGDQRWKHUWKDWDQDO\]HV&SURJUDPV

(26)

,Q D ZD\ 3$7 LV D PRUH IOH[LEOH WRRO WKDQ WKH 5LFK DQG :LOO·V 5HFRJQL]HU LQ WKDW LWV GHILQLWLRQ RI D SURJUDP SODQ DOORZV VLPSOH FRQFHSWV WR EH EXLOW XS LQWR PRUH FRPSOH[ FRQFHSWVE\XVLQJERWKFRPSRVLWLRQDQGLQKHULWDQFH %\ FRPSDULVRQ WKH 3URJUDPPHU·V $SSUHQWLFHRQO\DOORZVSODQVWREHEXLOWE\FRPSRVLWLRQ

:KLOH 3$7 IRUPV D UHDVRQDEOH EDVLV IRU GHYHORSLQJ D NQRZOHGJHEDVHG SURJUDP DQDO\VLV WRRO WKH SURJUDP VWUXFWXUHV LW GHWHFWV DUH DW D ORZHU OHYHO WKDQ GHVLJQ SDWWHUQV ,WV DUFKLWHFWXUH FRQWDLQV VRPH H[WUHPHO\ LQWHUHVWLQJ HOHPHQWV EXW LWV FRQFHSWXDO VWUXFWXUH FDQQRWVXEVXPHGHVLJQSDWWHUQV

+RZSDWWHUQVILWLQWRWKHGHVLJQFRQWLQXXP

(27)

'RFXPHQWDWLRQWRROVIRUSDWWHUQV

,I GHVLJQ SDWWHUQV DUH XVHIXO IRU FRPSUHKHQGLQJ FRPSOH[ GHVLJQV WKHQ D WRRO IRU GRFXPHQWLQJWKHGHVLJQSDWWHUQVWKDWZHQWLQWRDGHVLJQZRXOGEHH[WUHPHO\XVHIXODVDQDLG LQ FRPSUHKHQGLQJ H[LVWLQJ GHVLJQV %XLOGLQJ VXFK WRROV ZDV D SULPDU\ JRDO RI WKH 3URJUDPPHU·V$SSUHQWLFHDQG3$7V\VWHPVDQGWKHLUEDVLFDSSURDFKFDQEHDGRSWHGIRU XVHLQGHWHFWLQJGHVLJQSDWWHUQV$GHVLJQSDWWHUQUHYHUVHHQJLQHHULQJWRROPXVWUHSUHVHQW GHVLJQNQRZOHGJHLQDQDEVWUDFWIRUPDWDQGSURYLGHWKHPHDQVRIPDWFKLQJWKRVHWHPSODWHV DJDLQVW VWRUHG GHVLJQ LQIRUPDWLRQ IURP UHYHUVHHQJLQHHUHG SURJUDPV 7KH JRDO RI WKLV WKHVLV LV WR RXWOLQH KRZ WKLV FDQ EH GRQH DQG WR GHPRQVWUDWH WKH UHVXOWV RI DSSO\LQJ D SURWRW\SHWRROWRDQXPEHURIH[DPSOHSURJUDPV

2XWOLQHRIWKHUHPDLQGHURIWKHWKHVLV

&KDSWHUZLOOLQYHVWLJDWHFHUWDLQGHVLJQSDWWHUQVLQGHWDLODQGGHVFULEH WKH PHFKDQLFV RI GHWHFWLQJWKHVHSDWWHUQVLQ REMHFWRULHQWHG SURJUDPV &KDSWHU ZLOO GHVFULEH WKH VSHFLDO SUREOHPVDQGRSSRUWXQLWLHVSUHVHQWHGE\6PDOOWDONDVDWDUJHWODQJXDJHIRUSDWWHUQGHWHFWLRQ DQG GHVFULEH WKH GHVLJQ RI D WRRO WR GLVFRYHU DQG GRFXPHQW VSHFLILF GHVLJQ SDWWHUQV

complexity scale

small large

simple complex

algorithm implementation

Object design

framework design

architectural design

design patterns

(28)
(29)

'HWHFWLQJGHVLJQSDWWHUQV ,QWHQWYV$UWLIDFW

:KHQFRQVLGHULQJKRZWREXLOGSURJUDPVWRGRFXPHQWGHVLJQSDWWHUQVLQH[LVWLQJSURJUDPV LW PXVW EH UHPHPEHUHG WKDW WKH VRIWZDUH GHVLJQ SDWWHUQ LV SULPDULO\ D OLWHUDU\ IRUP 3DWWHUQVDUHQRWULJRURXVPDWKHPDWLFDOGHILQLWLRQV,WLVQRWP\LQWHQWLRQWREULQJULJRUWR WKHSDWWHUQIRUPDVLWVIUHHGRPLVRQHRILWVPRVWDSSHDOLQJTXDOLWLHV:LWKWKLVLQPLQGLW FDQEHVHHQWKDWLWLVQDLYHWRDVVXPHWKDWDSURJUDPFDQFRPSUHKHQGWKHLQWHQWRIDGHVLJQ SDWWHUQ7KLVLVZHOOEH\RQGWKHVWDWHRIWKHDUWRIDUWLILFLDOLQWHOOLJHQFHDQGIDURXWVLGHWKH VFRSHRIWKLVWKHVLV

:KDW PD\ EH GHWHFWDEOH KRZHYHU DUH WKH DUWLIDFWV RI LPSOHPHQWLQJ WKH VROXWLRQ RI WKH GHVLJQ SDWWHUQ HJ WKH FRGH WHPSODWH RU GHVLJQ GLDJUDPV WKDW DUH JLYHQ LQ WKH VROXWLRQ VHFWLRQRIWKHSDWWHUQ7KHVHDUWLIDFWVZKLOHQRWWKHSDWWHUQPD\SRLQWWRWKHSDWWHUQDQG SUHVHQW D FRQYLQFLQJ DUJXPHQW WKDW D SDWWHUQ KDV EHHQ XVHG LQ D GHVLJQ 7KLV FKDSWHU GHVFULEHV LQIRUPDWLRQ UHSUHVHQWHG LQ YDULRXV GHVLJQ SDWWHUQV ZD\V RI UHSUHVHQWLQJ WKLV LQIRUPDWLRQDQGZD\VRIXVLQJWKHVHUHSUHVHQWDWLRQVWRGHWHFWWKHVHDUWLIDFWV

2EMHFWRULHQWHGGHVLJQLQIRUPDWLRQLQGHVLJQSDWWHUQV

(30)

&ODVVKLHUDUFK\UHSUHVHQWDWLRQ

0DQ\ SDWWHUQV LQYROYH GHILQLQJ DQ LQKHULWDQFH UHODWLRQVKLS DPRQJ D VHW RI FODVVHV )RU H[DPSOHERWK'HFRUDWRUDQG&RPSRVLWHGHSHQGXSRQGHILQLQJDQDEVWUDFWFODVV IURPZKLFKWZRVSHFLDOL]HGW\SHVRIVXEFODVVHVGHVFHQG&RPPDQG6WUDWHJ\ DQG,QWHUSUHWHUDOVRXWLOL]HLQKHULWDQFHDOWKRXJKLWLVXVHGPRUHDVDFRQYHQLHQFHLQ LPSOHPHQWLQJWKHSDWWHUQDQGGRHVQRWQHFHVVDULO\FRPSULVHSDUWRIWKHEDVLFVWUXFWXUH

,QKHULWDQFH UHODWLRQVKLSV DUH UHSUHVHQWHG E\ GLJUDSKV LQ PRVW 22 GHVLJQ PHWKRGRORJLHV %\GHVLJQ22ODQJXDJHVPDNHLWLPSRVVLEOHWRGHILQHF\FOHVRILQKHULWDQFHLH$!%! $VLQFHPHWKRGUHVROXWLRQZRXOGEHFRPHH[FHHGLQJO\ GLIILFXOW LQ WKLV FDVH ,Q D VLQJOH LQKHULWDQFH HQYLURQPHQW OLNH 6PDOOWDON DOO LQKHULWDQFH UHODWLRQVKLSV DUH UHSUHVHQWHG E\ VLPSOHWUHHVWUXFWXUHVSHUKDSVZLWKPXOWLSOHURRWV,QDPXOWLSOHLQKHULWDQFHHQYLURQPHQW OLNH&DJHQHUDODF\FOLFGLJUDSKFDQUHSUHVHQWDOOLQKHULWDQFHUHODWLRQVKLSV

$JJUHJDWLRQDVVRFLDWLRQLQIRUPDWLRQ

,QDGGLWLRQWRLQKHULWDQFHDQ22GHVLJQPD\FRQWDLQLQIRUPDWLRQDERXW WKH DJJUHJDWLRQ DQGDVVRFLDWLRQRIREMHFWV$JJUHJDWLRQLVDVWURQJUHODWLRQVKLSWKDWLVXVXDOO\LPSOHPHQWHG LQ 22 ODQJXDJHV WKURXJK KDYLQJ LQVWDQFHV RI RQH REMHFW W\SH UHIHU WR DQ LQVWDQFH RI DQRWKHUREMHFWYLDDQLQVWDQFHYDULDEOH$VVRFLDWLRQLVDZHDNHUUHODWLRQVKLSWKDWLQGLFDWHV WKDWLQVWDQFHVRIRQHREMHFWW\SH´NQRZDERXWµLQVWDQFHVRIDQRWKHUW\SH7KHUHIHUHQFHV WR WKH VHFRQG W\SH PD\ EH WKURXJK WKH SDVVLQJ RI SDUDPHWHUV WKURXJK LQVWDQWLDWLRQ RU WKURXJKRWKHUPRUHLQGLUHFWPHDQV

(31)

+RZHYHU PDQ\ GHVLJQ SDWWHUQV LQFOXGH LQIRUPDWLRQ DERXW DJJUHJDWLRQ DV SDUW RI WKHLU WHPSODWHVROXWLRQ

$QDJJUHJDWLRQUHODWLRQVKLSFDQEHUHSUHVHQWHGE\DGLUHFWHGJUDSKZLWKWKHDGGLWLRQRIWZR SLHFHVRILQIRUPDWLRQWKH ´RZQHUµ RI WKH DJJUHJDWH LH ZKLFK HQG RI WKH UHODWLRQVKLS FRQWDLQVWKHLQVWDQFHYDULDEOHWKDWUHIHUVWRWKHRWKHUDQGWKHFDUGLQDOLW\RIWKHUHODWLRQVKLS

0HVVDJHLQIRUPDWLRQ

0DQ\GHVLJQSDWWHUQVDOVRLQFOXGHLQIRUPDWLRQDERXWKRZWKHSURWRFRORIDFODVVRUVHWRI FODVVHV LV VWUXFWXUHG )RU LQVWDQFH 7HPSODWH 0HWKRG GHVFULEHV WKH UHODWLRQVKLS EHWZHHQ PHWKRGV LQ DEVWUDFW DQG FRQFUHWH FODVVHV 2WKHU SDWWHUQV VXFK DV &KDLQ RI 5HVSRQVLELOLW\GHVFULEHSDWWHUQVRIPHVVDJHIORZEHWZHHQUHODWHGREMHFWV

$JDLQ WKH PHVVDJH IORZ EHWZHHQ REMHFWV FDQ EH UHSUHVHQWHG E\ D GLJUDSK LQGLFDWLQJ WKH REMHFWV SDUWLFLSDWLQJ LQ D VFHQDULR DQG WKH PHVVDJHV WKDW DUH VHQW WR WKHVH REMHFWV DQ REMHFWPHVVDJHGLDJUDP$QDGGLWLRQDOXVHIXOSLHFHRILQIRUPDWLRQLVDVHTXHQFHQXPEHU LQGLFDWLQJLQZKLFKRUGHUWKHPHVVDJHVDUHVHQW

*UDSKLFDOO\UHSUHVHQWLQJGHVLJQLQIRUPDWLRQ

$VWKHSUHYLRXVVHFWLRQVKDYHVKRZQPDQ\GLIIHUHQWDVSHFWVRIGHVLJQLQIRUPDWLRQFDQEH UHSUHVHQWHGE\QRGHDQGDUFJUDSKV,QKHULWDQFH$JJUHJDWLRQDQG0HVVDJHIORZVFDQDOOEH GHVFULEHGLQWKLVPDQQHU

(32)

SULYDWH SURWHFWHG DQG ZKHWKHU RU QRW WKH PHWKRG LV YLUWXDO ,W LV PRVW UHDVRQDEOH WR UHSUHVHQWWKLVLQIRUPDWLRQLQWDEXODUIRUP

7KHUH LV DQRWKHU VXEWOH SUREOHP LQ UHSUHVHQWLQJ GHVLJQ WKDW FRPHV LQ WR SOD\ LQ FHUWDLQ REMHFWRULHQWHG ODQJXDJHV QRWDEO\ 6PDOOWDON )RU VHYHUDO \HDUV UHVHDUFKHUV LQWR W\SH V\VWHPVKDYHNQRZQWKDWWKHLQKHULWDQFHUHODWLRQVKLSVRIDFODVVQHHGQRWEHUHODWHGWRWKH W\SLQJRIDFODVV$W\SHFDQEHGHILQHGDVDVHWRIPHVVDJHVRUSURWRFROVWRZKLFKD

FODVV UHVSRQGV :KHQ D FOLHQW VHQGV PHVVDJHV WR DQ REMHFW RI D W\SH ZKDW LV UHDOO\ RI FRQFHUQLVWKDWWKHUHFHLYHUZLOOXQGHUVWDQGWKHPHVVDJHVVHQWWRLW:KDWFODVVLQKHULWDQFH GHILQHVLVWKHPHFKDQLFVRIZKHUHWKHERGLHVRIPHVVDJHVDUHLPSOHPHQWHG$QLQKHULWDQFH WUHHLVPHDQWWRDLGUHVROXWLRQDVWRZKLFKERG\RIDPHWKRGLVWREHXVHGZKHQDPHVVDJH LVUHFHLYHG

,Q PDQ\ 22 ODQJXDJHV QRWDEO\ & DQG (LIIHO WKH QRWLRQV RI W\SH DQG FODVV DUH LQH[WULFDEO\LQWHUWZLQHG+RZHYHULQ6PDOOWDONZKLFKLVG\QDPLFDOO\W\SHGWKHQRWLRQVDUH QRW VR FORVHO\ OLQNHG ,Q IDFW LQ QHZHU ODQJXDJHV OLNH -DYD WKHVH QRWLRQV KDYH EHHQ H[SOLFLWO\VHSDUDWHG:KDWLVRILQWHUHVWWRXVLQDQDO\]LQJGHVLJQSDWWHUQVLVWKDWWKHGHVLJQ QRWDWLRQVRIWHQPDNHQRGLVWLQFWLRQEHWZHHQFODVVDQGW\SH:KDWPD\DSSHDU WR EH DQ LQKHULWDQFHUHODWLRQVKLSLQPDQ\GHVLJQSDWWHUQVPD\DFWXDOO\EHRQO\DZD\RIHQVXULQJD W\SHUHODWLRQVKLS,Q&DQG(LIIHOWKHUHLVQRGLIIHUHQFHEHWZHHQWKHWZR+RZHYHULQ 6PDOOWDONDQLQKHULWDQFHUHODWLRQVKLSPD\QRWEHQHFHVVDU\WRDFKLHYHWKHGHVLUHGUHVXOW

(33)

'HWHFWLQJSDWWHUQV

,QRUGHUWRGHWHFWGHVLJQSDWWHUQVZHPXVWILUVWLQYHVWLJDWHZKDWPDNHVDSDWWHUQGHWHFWDEOH )URPWKLVZHPD\EHDEOHWRFODVVLI\SDWWHUQVDQGWRGLVFHUQZD\VRIGHWHFWLQJSDUWLFXODU SDWWHUQV

:KDWPDNHVDSDWWHUQGHWHFWDEOH"

,QPDQ\FDVHVGHVLJQSDWWHUQVDUHGLIILFXOWLIQRWLPSRVVLEOHWRGHWHFWLQDSXUHO\DXWRPDWLF IDVKLRQ0DQ\GHVLJQSDWWHUQVVXFKDV,QWHUSUHWHUUHO\XSRQJHQHUDOGHVLJQSULQFLSOHVWKDW FDQQRW EH GLUHFWO\ UHSUHVHQWHG DV GHVLJQ GLDJUDP IUDJPHQWV ,Q FDVHV OLNH WKLV D JHQHUDO VWDWHPHQWVXFKDV´%XLOGDSDUVHWUHHIRUDODQJXDJHµFDQEHLQWHUSUHWHGDQGLPSOHPHQWHG LQPDQ\ZD\V7KLVUHOLDQFHXSRQVHPDQWLFVUHVXOWVLQVRPDQ\SRVVLEOHLQWHUSUHWDWLRQVDVWR PDNHWKHSDWWHUQLPSRVVLEOHWRGHWHFW

,QRWKHUFDVHVDSDWWHUQJLYHVFOHDUHQRXJKGLUHFWLRQWRPDNHLWYHU\HDV\WRGHWHFW)RU LQVWDQFH7HPSODWH0HWKRGVLPSO\UHIHUVWRDVSHFLILFUHODWLRQVKLSEHWZHHQYLUWXDOPHWKRGV DQGFRQFUHWHPHWKRGVZLWKLQDFODVVKLHUDUFK\$Q\PHWKRGFDQEHFODVVLILHGDVD7HPSODWH 0HWKRG D +RRN PHWKRG RU D &RQFUHWH PHWKRG E\ H[DPLQLQJ LWV GHILQLWLRQ DQG WKH FODVVLILFDWLRQVRIWKHPHWKRGVLWVHQGVWRLWVHOI,QFDVHVOLNH7HPSODWH0HWKRGWKHSDWWHUQ LVSXUHO\VWUXFWXUDODQGGRHVQRWUHO\XSRQVHPDQWLFLQIRUPDWLRQ

0RVW GHVLJQ SDWWHUQV KRZHYHU OLH EHWZHHQ WKHVH WZR SROHV 6RPH RI WKH DUWLIDFWV RI D GHVLJQSDWWHUQLPSOHPHQWDWLRQPD\EHGHWHFWDEOHEXWLWPD\QRWEHGHWHUPLQDEOHZLWKLQD UHDVRQDEOHOHYHORIFRQILGHQFHLIWKHVHDUWLIDFWVUHIOHFWWKHXVHRIWKHSDUWLFXODUSDWWHUQ

(34)

OLNHO\ WR EH JHQHUDWHG LQ D GHVLJQ WKDW GRHV QRW XWLOL]H WKDW SDWWHUQ ,I D VROXWLRQ LV XQDPELJXRXVWKHQWKHSDUWLFXODUVROXWLRQPXVWEHUHSUHVHQWDEOHLQRQO\RQHZD\0XOWLSOH UHSUHVHQWDWLRQVRIWKHVROXWLRQLQDGHVLJQGLDJUDPPXVWQRWEHSRVVLEOH$VDQLOOXVWUDWLYH H[DPSOH OHW·V ORRN DW WKH $GDSWHU SDWWHUQ IURP *DPPD >@ $GDSWHU ´>F@RQYHUWV WKH LQWHUIDFHRIDFODVVLQWRDQRWKHULQWHUIDFHFOLHQWVH[SHFWµ7KHEDVLFSUREOHPWREHVROYHG

E\$GDSWHULVWKDWRQHFODVVQHHGVWRXVHDQRWKHUFODVVEXWWKHLULQWHUIDFHVRUW\SLQJGR QRWPDWFK7KHVROXWLRQLVWREXLOGDQRWKHUFODVVDQ$GDSWHUWKDWGRHVFRQIRUPWRWKH H[SHFWHGSURWRFRORIWKHFOLHQWDQGWKDWFRQYHUWV PHVVDJHV VHQW WR LW WR WKH DSSURSULDWH PHVVDJHLQWKHVHUYHUFODVV7KHEDVLFVROXWLRQKDVWKH$GDSWHUFODVVVXEFODVVWKH´7DUJHWµ FODVVDQGFRQWDLQDQLQVWDQFHRIWKH´$GDSWHHµFODVVWRZKLFKLWIRUZDUGVPHVVDJHV7KLV VROXWLRQ LV XQDPELJXRXV WKHUH DUH QRW PDQ\ RWKHU ZD\V WR GR WKLV +RZHYHU LW LV QRW GLVWLQFWLYHWKHVWUXFWXUHRIWKHGLDJUDPLVQRWXQLTXHHQRXJKWREHSRVLWLYHO\LGHQWLILHGDV DQLQVWDQFHRI$GDSWHU,ILWZHUHWDNHQWREHVR WKHQ HYHU\ FODVV WKDW GHVFHQGHG IURP DQRWKHUFODVVDQGFRQWDLQHGLQVWDQFHYDULDEOHVFRXOGEHFRQVWUXHGDVEHLQJDQ$GDSWHU

7KH*2)SDWWHUQV

,Q FKRRVLQJ D VHW RI GHVLJQ SDWWHUQV WKDW DUH WR VHUYH DV D WHVW FDVH IRU DQ DXWRPDWLF GHWHFWLRQWRROERWKWKHSDWWHUQ·VXWLOLW\DQGVWUXFWXUHPXVWEHFRQVLGHUHG%\IDUWKHPRVW ZHOO HODERUDWHG SXEOLVKHG SDWWHUQV DUH WKRVH GHYHORSHG E\ *DPPD +HOPV -RKQVRQ DQG 9OLVVLGHV WKH ´*DQJ RI )RXUµ RU *2) DQG IRXQG LQ *DPPD >@ 7KH SDWWHUQV LQ *DPPD>@DUHUHSUHVHQWDWLYHRIRWKHUZRUNEXWDUHVWLOOYHU\HOHPHQWDODQGFRQWDLQPDQ\ RIWKHEDVLFWRROVXWLOL]HGE\H[SHULHQFHG22GHVLJQHUV

(35)

:K\FKRRVHWKHVHSDUWLFXODUSDWWHUQV"

*DPPD>@GHVFULEHVDSDUWLFXODUVXEVHWRIVRPHRIWKHPRUHEDVLFSDWWHUQVWKDWQRYLFH

22 GHVLJQHUV VKRXOG EHFRPH IDPLOLDU ZLWK 7KHVH SDWWHUQV LQFOXGH &RPSRVLWH 'HFRUDWRUDQG6WUDWHJ\7RWKLVOLVW,ZRXOGDGG&KDLQRI5HVSRQVLELOLW\ EHFDXVHRILWVFORVHWLHVWR&RPSRVLWHDQG'HFRUDWRU7HPSODWH0HWKRGEHFDXVHLWLV VREDVLFWR22GHVLJQDQG6WDWHDQG&RPPDQGEHFDXVHRIWKHLUVLPLODULWLHVWR 6WUDWHJ\7RJHWKHUWKHVHSDWWHUQVGHVFULEHWKHEDVLFVWUXFWXUHRIPDQ\IUDPHZRUNVWKLVLV LQIRUPDWLRQVRUHO\QHHGHGE\GHYHORSHUVXVLQJDQGH[WHQGLQJIUDPHZRUNV

&RPSRVLWHDQG'HFRUDWRU

&RPSRVLWHLVSUREDEO\RQHRIWKHPRVWJHQHUDOO\XVHIXOGHVLJQSDWWHUQVLQ*DPPD>@,W LVXVHGLQPDQ\REMHFWIUDPHZRUNVLQDYDULHW\RISUREOHPGRPDLQV)RULQVWDQFHDOORIWKH FRPPHUFLDO6PDOOWDONJUDSKLFV IUDPHZRUNV XWLOL]H LW WR DOORZ QHVWHG YLVXDOV ZLWKLQ YLVXDOV 5DOSK -RKQVRQ RQH RI WKH DXWKRUV RI *DPPD >@ KDV VWDWHG WKDW &RPSRVLWH LV ´KLV IDYRULWHKDPPHUµIURPKLVER[RISDWWHUQVWRROVDQGRQHRIWKHILUVWSDWWHUQVKHVHHNVWR DSSO\ZKHQEXLOGLQJDQHZIUDPHZRUN

$VPHQWLRQHGLQVHFWLRQWKHVROXWLRQJLYHQLQWKH&RPSRVLWHSDWWHUQLQYROYHVFUHDWLQJ DQDEVWUDFWVXSHUFODVVWKDWLPSOHPHQWVDJLYHQSURWRFRORIWHQXWLOL]LQJERWKSXUHO\YLUWXDO PHWKRGVDQG7HPSODWH0HWKRGV7ZRW\SHVRIVXEFODVVHVDUHWKHQFUHDWHGOHDYHVZKLFK UHSUHVHQWFRQFUHWHFRQFHSWVRIWKHDEVWUDFWW\SHDQG&RPSRVLWHVZKLFKDUHDOVRFRQFUHWH EXWZKLFKFRQWDLQDFROOHFWLRQRIHOHPHQWVZKRVHFODVVHVGHVFHQGIURPWKHDEVWUDFWSDUHQW W\SH$VLPLODUVROXWLRQLVJLYHQIRUWKH'HFRUDWRUSDWWHUQZKLFKGHILQHVDQDEVWUDFWSDUHQW

(36)

W\SHDQGD'HFRUDWRUVXEFODVVWKDWFRQWDLQVDVLQJOHLQVWDQFHRIDQ\VXEFODVVRIWKHDEVWUDFW SDUHQWW\SH

7KLVVROXWLRQFDQEHGHWHFWHGE\ORRNLQJIRUF\FOHVLQDFRPELQHGLQKHULWDQFHFRPSRVLWLRQ JUDSKVHH)LJXUH&\FOHVLQ&RPSRVLWH:KHQHYHUDFODVVKDVDQDJJUHJDWLRQUHODWLRQVKLS WRDFODVVLWGHVFHQGVIURPLQDQLQKHULWDQFHUHODWLRQVKLSLWLVDVWURQJVXJJHVWLRQWKDWHLWKHU WKH&RPSRVLWHSDWWHUQRUWKH'HFRUDWRUSDWWHUQPD\EHEHLQJXWLOL]HG,IWKHFDUGLQDOLW\RI WKH UHODWLRQVKLS IURP FRQWDLQHU WR FRPSRQHQW LV WR WKHQ WKH 'HFRUDWRU SDWWHUQ LV VXJJHVWHG,IWKHFDUGLQDOLW\LVWR1&RPSRVLWHLVVXJJHVWHG

7KHVLPSOLFLW\RIWKLVSDWWHUQPDNHVLWDJRRGFDQGLGDWHIRUDXWRPDWLFGHWHFWLRQ+RZHYHU LWPXVWEHNHSWLQPLQGWKDWLQDFWXDOLW\&RPSRVLWHDQG/HDIQHHGRQO\VKDUHDQFRPPRQ VXEW\SH DQG QRW D FRPPRQ VXSHUFODVV ,Q ODQJXDJHV WKDW DOORZ WKH VHSDUDWLRQ RI WKHVH QRWLRQVWKLVFDQEHDSRLQWRIFRQFHUQ,QWKHVHFDVHVRQHZRXOGQHHGWRLQVWHDGORRNDW WKHLQKHULWDQFHRISURWRFROUDWKHUWKDQLPSOHPHQWDWLRQDQGXVHWKDWDVWKHEDVLV IRU WKH GHWHFWLRQRIJUDSKF\FOHV7KLVVXEWOHW\LVKRZHYHURXWVLGHRIWKHVFRSHRIWKLVWKHVLV

Abstract Parent Class

Leaf Class Composite Class

cycle

(37)

7HPSODWH0HWKRG

7KH 7HPSODWH 0HWKRG SDWWHUQ LV VXFK D EDVLF WRRO RI REMHFWRULHQWHG GHVLJQ WKDW PDQ\ SURJUDPPHUV GLVPLVV WKH SDWWHUQ DV ´REYLRXVµ +RZHYHU WKH SDWWHUQ SURYLGHV D EDVLF YRFDEXODU\ RI PHWKRG FODVVLILFDWLRQV WKDW DOORZV SURJUDPPHUV WR UHIHU WR PHWKRGV RI D SDUWLFXODUW\SH7KURXJKWKLVWKHSDWWHUQKDVDFKLHYHGLWVDLPRISURYLGLQJDFRPPRQO\ DFFHSWHG VROXWLRQ WR D SUREOHP WR ZKLFK GHVLJQHUV FDQ UHIHU DQ DERXW ZKLFK WKH\ FDQ FRQYHUVH

7HPSODWH 0HWKRG GHVFULEHV KRZ WR GHILQH DQ DOJRULWKP LQ VXFK D ZD\ WKDW SDUWV RI WKH DOJRULWKP DUH GHIHUUHG WR VXEFODVVHV 7KLV DOORZV PDQ\ GLIIHUHQW YDULDWLRQV RQ WKH EDVLF DOJRULWKPWREHZULWWHQZLWKRXWKDYLQJWRUHFRGHWKHFRPPRQSRUWLRQV7HPSODWH0HWKRG GRHVWKLVE\GHILQLQJDSDUWLFXODUDOJRULWKPLQD7HPSODWH0HWKRGWKDWSHUIRUPVLWVZRUNE\ LQYRNLQJDFRPELQDWLRQRI%DVH0HWKRGVDQG+RRN0HWKRGV%DVH0HWKRGVDUHPHWKRGV WKDWDUHHQWLUHO\GHILQHGLQWKHDEVWUDFWSDUHQWFODVV+RRNRU´DEVWUDFWµPHWKRGVDUHWKRVH GHILQHG LQ WKH DEVWUDFW SDUHQW FODVV DV EHLQJ SXUHO\ YLUWXDO LH WKHLU LPSOHPHQWDWLRQ LV GHIHUUHGWRVXEFODVVHV$Q\PHWKRGGHILQHGLQDSDUHQWFODVVWKDWUHIHUVWRDSXUHO\YLUWXDO PHWKRGLQWKDWVDPHFODVVLVWKHUHIRUHGHILQHGDVD7HPSODWH0HWKRG

(38)

7KHUHLVRQHSDUWLFXODUO\VXEWOHSLWIDOOWRWKLV GHWHFWLRQ PHWKRG ,Q PRVW 22 ODQJXDJHV YLUWXDOPHWKRGVDUHGHVFULEHGLQD SDUWLFXODU ZD\ VXFK WKDW WKH\ PXVW EH RYHUULGGHQ ,Q &WKLVLVGRQHWKURXJKWKH´YLUWXDOµNH\ZRUG,Q(LIIHOLWLVDFFRPSOLVKHGWKURXJKWKH XVH RI WKH ´GHIHUUHGµ NH\ZRUG ,Q 6PDOOWDON WKH VDPH HQG LV PHW WKURXJK XVLQJ WKH #subclassResponsibilityPHVVDJH+RZHYHUDPHWKRGFDQEHGHILQHGLQDQ\RIWKHVH ODQJXDJHVDVEHLQJDEDVHPHWKRGDQGWKHQWKDWPHWKRGPD\EHRYHUULGGHQLQDQ\RUDOORI LWVVXEFODVVHV,QWKLVZD\DPHWKRGLVEHLQJWUHDWHGDVLILWZHUHYLUWXDOZKLOHLWZDVQRW GHILQHGLQWKDWZD\,QDOORIWKHDERYHODQJXDJHVWKHGHVLJQHURIDFODVVGHFODUHVDPHWKRG YLUWXDODVDQDLGWRGHVLJQHUVRIVXEFODVVHV,IWKHGHVLJQHURIWKHVXSHUFODVVGRHVQRWJLYH WKDWDLGWRVXEFODVVGHVLJQHUV\HWLWLVVWLOOPHDQWWREHGRQHWKHQWKLVLVLQIRUPDWLRQWKDW OLHVRXWVLGHRIWKHVWDWHGGHVLJQRIWKHFODVV,QWKLV FDVH WKH 7HPSODWH 0HWKRG SDWWHUQ FDQQRWEHGHWHFWHGLQWKHGHVFULEHGZD\

&KDLQRI5HVSRQVLELOLW\

&KDLQ RI 5HVSRQVLELOLW\ LV D SDWWHUQ WKDW ´DYRLGV FRXSOLQJ WKH VHQGHU RI D UHTXHVW WR LWV UHFHLYHUµ &KDLQ RI 5HVSRQVLELOLW\ LV XVHG ZKHQ PDQ\ REMHFWV LQ D FKDLQ PD\ KDQGOH D

(39)

,QWKLVZD\HDFKHOHPHQWLQWKHFKDLQRIREMHFWVJHWVDFKDQFHWRKDQGOHWKHUHTXHVWRUSDVV LWRQWRRWKHUHOHPHQWV

&KDLQ2I5HVSRQVLELOLW\LVRIWHQIRXQGLQFRQMXQFWLRQZLWKWKHREMHFWVWUXFWXUHVWKDWUHVXOW IURPXVLQJ'HFRUDWRUDQG&RPSRVLWH'HWHFWLRQRIWKH XVHV RI &KDLQ RI 5HVSRQVLELOLW\ PD\ WKHQ EXLOG XSRQ GHWHFWLRQ VFKHPHV IRU WKHVH WZR SDWWHUQV ,Q WKLV FDVH WKH EDVLF PHWKRG ZRXOG EH WR VHDUFK WKURXJK D FRQWDLQPHQW WUHH IRU D FDOO WUHH WKDW SDUDOOHOV LW +RZHYHU WKLV VHDUFK PHWKRG LV QRW H[WUHPHO\ DWWUDFWLYH DV LW PD\ TXLFNO\ EHFRPH RYHUZKHOPLQJ7KHUHDUHVHYHUDOKHXULVWLFVWKDWFDQEHDSSOLHGWRUHGXFHWKHVHDUFKVSDFH

7KHILUVWUHVWULFWLRQLVWROLPLWRXUVHDUFKWRLPSOHPHQWHUVRIPHWKRGVRIWKHVDPH QDPHLQDOOFDVHV7KH&KDLQ2I5HVSRQVLELOLW\SDWWHUQGRHVQRWUHTXLUHWKDWWKH VDPHPHWKRGQDPHEHLQYRNHGRQDOOHOHPHQWVRIWKHFKDLQ5HVWULFWLQJLWWRWKH VDPH PHWKRG QDPH ZLOO PDNH WKH SUREOHP DW OHDVW WUDFWDEOH E\ UHPRYLQJ GHSHQGHQFHXSRQVHPDQWLFV

:H FDQ UHVWULFW RXU VHDUFK WR RQO\ ORRNLQJ IRU PHVVDJH VHQGV WR HDVLO\ NQRZQ UHFHLYHUV 2QFH LQVWDQFH YDULDEOHV KDYH EHHQ W\SHG DQG DUH NQRZQ WR RQO\ KROG YDOXHVIURPDSDUWLFXODUVHWRIFODVVHVZHFDQFRQFHQWUDWHRXUHIIRUWRQO\RQWKRVH YDULDEOHVWKDWFRXOGSDUWLFLSDWHLQD&KDLQRI5HVSRQVLELOLW\LHWKRVHZKRVHFODVVHV LPSOHPHQWVRPHRIWKHVDPHPHWKRGVDVWKHFODVVFXUUHQWO\XQGHUH[DPLQDWLRQ

7KHVHDUFKVSDFHFDQEHIXUWKHUSUXQHGE\VSHFLILFDOO\LJQRULQJPHVVDJH VHQGV WR VHOIVXSHUREMHFWVSDVVHGLQDVPHVVDJHDUJXPHQWVDQGREMHFWVKHOGLQWHPSRUDU\

(40)

YDULDEOHV 7KLV ZLOO UHVXOW LQ VRPH PHVVDJH VHQGV EHLQJ PLVVHG HJ WKHUH LV D SDWKRORJLFDOFDVHZKHUHDWHPSRUDU\YDULDEOHLVDVVLJQHGWRWKHYDOXHRIDQLQVWDQFH YDULDEOHWKDWLVWKHQVHQWWKHPHVVDJH

(YHQZLWKWKHVHUHVWULFWLRQVLWLVVWLOOGLIILFXOWWRGHWHFWWKH&KDLQRI5HVSRQVLELOLW\SDWWHUQ &KDLQ RI 5HVSRQVLELOLW\ ZRXOG DFWXDOO\ EH PXFK HDVLHU WR GHWHFW XVLQJ DQ REMHFWPHVVDJH GLDJUDP,QDQREMHFWPHVVDJHGLDJUDPDQ\VHTXHQWLDOVHULHVRIPHVVDJHVHQGVKDYLQJWKH VDPH PHVVDJH VHOHFWRU FDQ EH LQWHUSUHWHG WR EH D XVH RI &KDLQ RI 5HVSRQVLELOLW\ )RU H[DPSOHVHH)LJXUH&KDLQRI5HVSRQVLELOLW\,Q)LJXUHZHVHHWKHVDPHPHVVDJHEHLQJ VHQWLQRUGHUWRPDQ\REMHFWVLQDFKDLQ7RLPSOHPHQWWKLVFDVHVRPHOHYHORIG\QDPLF DQDO\VLVRIWKHVRXUFHFRGHPLJKWEHFRPHQHFHVVDU\WRSURGXFHREMHFWPHVVDJHGLDJUDPV $OWHUQDWLYHO\WKHXVHURIWKHV\VWHPPLJKWEHUHTXLUHGWRHQWHUWKHREMHFWPHVVDJHGLDJUDPV PDQXDOO\

:KLOH XVLQJ REMHFWPHVVDJH GLDJUDPV VHHPV WR EH DQ DWWUDFWLYH RSWLRQ LW DOVR UDLVHV D SUREOHP,QDQ\VLQJOHREMHFWPHVVDJHGLDJUDP\RXPD\ILQGDWPRVWRQHXVHRIWKHSDWWHUQ IRUDQ\SDUWLFXODUFKDLQ,IPXOWLSOHREMHFWPHVVDJHGLDJUDPVDUHSURYLGHGWKHQRWKHUXVHV FDQEHGHWHFWHGDVZHOO+RZHYHUWKHDELOLW\WRGHWHFWWKHSDWWHUQZLOORQO\EHDVJRRGDV

Window

CompositePart

VisualComponent displayOn:

displayOn:

(41)

WKH VHW RI REMHFWPHVVDJH GLDJUDPV SURYLGHG 2EMHFWPHVVDJH GLDJUDPV ZLOO QRW KHOS WR GHWHFWSRWHQWLDOXVHVRIWKH&KDLQRI5HVSRQVLELOLW\SDWWHUQ2QO\WKRVHZKRVHFKDLQVZHUH H[HUFLVHG LQ WKH SDUWLFXODU VHW RI VFHQDULRV IRU ZKLFK GLDJUDPV ZHUH JHQHUDWHG ZLOO EH GHWHFWHG7KXVLQDQ\VHWRIREMHFWPHVVDJHGLDJUDPV\RXFDQQRWGLVSURYHWKDW&KDLQRI 5HVSRQVLELOLW\ZDVXVHG\RXFDQDWPRVWVWDWHWKDWLWZDVQRWIRXQGLQWKDWSDUWLFXODUVHW

2WKHUSRWHQWLDOO\GHWHFWDEOHSDWWHUQV

7KUHH RWKHU SDWWHUQV WKDW DUH RIWHQ IRXQG LQ IUDPHZRUNV DUH WKH 6WUDWHJ\ 6WDWH DQG &RPPDQGSDWWHUQV(DFKSDWWHUQVROYHVDVOLJKWO\GLIIHUHQWSUREOHPHDFKZLWKDVOLJKWO\ GLIIHUHQWFRQWH[WEXWDVLQJOHLGHDXQLWHVWKHPDOO7KHFRPPRQLGHDOLQNLQJWKHVHSDWWHUQV LVWKHUHLILFDWLRQRIDUHVSRQVLELOLW\WKDWLVWDNLQJDIXQFWLRQDQGPDNLQJLWLQWRDQREMHFW (DFK SDWWHUQ KDV D YHU\ VLPLODU VROXWLRQ EXW WKH VHPDQWLFV RI HDFK DUH TXLWH GLIIHUHQW *DPPD >@ GHVFULEHV WKH PRWLYDWLRQ RI WKH 6WUDWHJ\ SDWWHUQ DV ´'HILQH D IDPLO\ RI

ClientClass AbstractServerClass

ConcreteServerA ConcreteServerB ConcreteServerC

(42)

DOJRULWKPV HQFDSVXODWH HDFK RQH DQG PDNH WKHP LQWHUFKDQJHDEOH 6WUDWHJ\ OHWV WKH DOJRULWKPYDU\LQGHSHQGHQWO\IURPWKHFOLHQWVWKDWXVHLWµ,QDVLPLODUYHLQ&RPPDQGLV

GHVFULEHGDV´(QFDSVXODWHDUHTXHVWDVDQ REMHFW WKHUHE\ OHWWLQJ \RX SDUDPHWHUL]H FOLHQWV ZLWKGLIIHUHQWUHTXHVWVµ7KHSXUSRVHRI6WDWHLVVOLJKWO\GLIIHUHQWEXWLWZRUNVLQDVLPLODU

PDQQHUDVLWVVROXWLRQLVWREXLOGFODVVHVIRUHDFKVWDWHLQDVWDWHWUDQVLWLRQGLDJUDPDQGOHW WKHVHUYHUREMHFWUHVSRQGDSSURSULDWHO\WRDVHWRIPHVVDJHVGHSHQGLQJXSRQZKDWLWVFODVV LV

,QHDFKFDVHZHKDYHRQHREMHFWDFOLHQWUHIHUULQJWRDQRWKHUREMHFWDVHUYHUWKDWFDQEH DQ\RIDVHWRI´VLEOLQJµREMHFWVWKDWGHVFHQGIURPDFRPPRQDQFHVWRUFODVV,QHDFKFDVH WKHWDUJHWREMHFWZLOOXWLOL]HDFRPPRQSURWRFROGHILQHGLQDQDEVWUDFWSDUHQWFODVVWKDWLV VKDUHGE\DOORIWKHVLEOLQJFODVVHVVHH)LJXUH5HLILFDWLRQV3DWWHUQVVWUXFWXUH

,QWKLVFDVHZHVKRXOGVHDUFKIRUDVXEJUDSKZKHUHDQLQVWDQFHYDULDEOHRIWKHWDUJHWFOLHQW FODVVLVW\SHGWRDQDEVWUDFWVHUYHUFODVV:HZRXOGWKHQQHHGWRFKHFNLIDQ\SXUHO\YLUWXDO PHWKRGVDUHFDOOHGLQWKDWFODVVLQGLFDWLQJDUHLPSOHPHQWDWLRQLQPDQ\FRQFUHWHVXEFODVVHV

8QIRUWXQDWHO\ WKLV LV DOO WKDW FDQ EH GHWHUPLQHG ,W ZRXOG WDNH PRUH LQWHOOLJHQFH LQ WKH SURJUDPWKDQLVUHDVRQDEOHWRGHWHUPLQHZKLFKSDWWHUQRXWRIWKHJURXSLVEHLQJXVHG7KH EHVWWKDWFDQEHGRQHLVWRLWUHSRUWWKDWDPHPEHURIWKHJURXSKDVEHHQGHWHFWHG1RWH WKDW LW ZRXOG EH HDV\ WR REWDLQ D ´IDOVH SRVLWLYHµ KHUH :KLOH WKHVH GHVLJQ SDWWHUQV DUH XQDPELJXRXV,DPQRWFRQYLQFHGWKDWWKH\DUHGLVWLQFWLYH)RUWKLVUHDVRQ,KDYHGHFLGHG

(43)

WR H[FOXGH WKLV VHW RI SDWWHUQV IURP P\ UHVHDUFK DOWKRXJK WKHLU GHWHFWLRQ GRHV VHHP SRVVLEOH

6XPPDU\

(44)

'HVLJQRIWKHUHYHUVHHQJLQHHULQJWRRO

$Q\ WRRO GHVLJQHG WR GHWHFW WKH DUWLIDFWV RI GHVLJQ SDWWHUQV PXVW DV PHQWLRQHG LQ WKH SUHYLRXVFKDSWHUVXSSRUWERWKVWDWLFDQGG\QDPLFPRGHOLQJFRQVWUXFWV,QWKHFDVHRIWKH .7WRRO,UHDOL]HGWKDW,ZRXOGKDYHWRILUVWGHWHUPLQHDZD\WRUHYHUVHHQJLQHHUERWKVWDWLF GHVLJQ GLDJUDPV LVNLQGRI DQG KDVD UHODWLRQVKLSV DQG G\QDPLF GLDJUDPV REMHFW LQWHUDFWLRQRUPHVVDJHIORZGLDJUDPV7KHIRUPHUUHODWLRQVKLSVZRXOGEHQHFHVVDU\IRUWKH DOJRULWKPVWKDWGHWHFWWKH&RPSRVLWHDQG'HFRUDWRUSDWWHUQV7KHLQIRUPDWLRQLQWKHODWWHU GLDJUDPVLVQHFHVVDU\WRGHWHFWWKH&KDLQRI5HVSRQVLELOLW\SDWWHUQ

6WDWLFPRGHOLQJ

5HYHUVHHQJLQHHULQJLVNLQGRIDQGKDVDGLDJUDPVIURP6PDOOWDON FRGH LV ERWK DLGHG DQG KLQGHUHG E\ WKH QDWXUH RI WKH 6PDOOWDON ODQJXDJH DQG SURJUDPPLQJ HQYLURQPHQW :KLOH PRVW WUDGLWLRQDO UHYHUVHHQJLQHHULQJ HYHQ IRU RWKHU 22 ODQJXDJHV OLNH & SURFHHGV

IURPDQDQDO\VLVRIWKHVRXUFHWH[WRIDSURJUDPWKLVQHHGQRWEHWKHFDVH LQ 6PDOOWDON )LUVWLWLVH[FHSWLRQDOO\VLPSOHWRGHWHUPLQHWKHLQKHULWDQFHUHODWLRQVKLSVLQDQ\DUELWUDU\VHW RIFODVVHVLQD6PDOOWDONSURJUDP7KLVLVEHFDXVHLQ6PDOOWDONFODVVHVDUHILUVWFODVVREMHFWV WKDWFDQEHTXHULHGWRGHWHUPLQHZKDWFODVVHVLQKHULWIURPZKRP7KLVPHWDOHYHOFDSDELOLW\ RI 6PDOOWDON LV ZHOO GRFXPHQWHG LQ *ROGEHUJ >@ DQG LWV DSSOLFDELOLW\ IRU GHWHUPLQLQJ GHVLJQPHWULFVKDVEHHQGLVFXVVHGLQ/DORQGH>@DPRQJRWKHUFLWDWLRQV

(45)

,Q WKH FDVH RI WKH .7 SURJUDP , GHYHORSHG D VHW RI FODVVHV WR UHSUHVHQW PHWDOHYHO LQIRUPDWLRQ VHSDUDWH IURP WKH FODVV KLHUDUFK\ RI 6PDOOWDON 7KLV DOORZV PH WR XVH DQG PDQLSXODWHWKHREMHFWVUHSUHVHQWLQJ6PDOOWDONFODVVHVHYHQLIWKRVHFODVVHVDUHQRWSUHVHQWLQ D6PDOOWDONLPDJH,WZDVDOVRP\LQWHQWLRQIURPWKHRXWVHWWRXVHWKHVHVDPHFODVVHVDORQJ ZLWK RWKHUV WR UHSUHVHQW KDVD UHODWLRQVKLSV DV ZHOO DV LQKHULWDQFH UHODWLRQVKLSV 7KH UHVXOWLQJFODVVGHVLJQLVVKRZQLQ)LJXUH&ODVV5HODWLRQVKLS6WUXFWXUH

7KHGHVLJQLQIRUPDWLRQDWWKHKHDUWRIWKH.7V\VWHPLVTXLWHVLPSOHWRXQGHUVWDQG$Q LQVWDQFH RI WKH FODVV .7&ODVV5HS UHSUHVHQWV HDFK FODVV WKDW LV EHLQJ UHYHUVH HQJLQHHUHG (DFK.7&ODVV5HSFRQWDLQVUHIHUHQFHVWRRWKHU.7&ODVV5HSVWKDWUHSUHVHQWWKHVXSHUFODVV

.7,YDU/LQN5HS

.7&ODVV5HS .7&ODVV5HS*URXS

FODVV5HSV

1

W\SH

LYDU/LQNV

1

VXSHUFODVV/LQN

VXEFODVV/LQNV

1

(46)

DQG VXEFODVVHV RI WKH WDUJHW FODVV ,Q DGGLWLRQ HDFK .7&ODVV5HS FRQWDLQV D VHW RI .7,YDU/LQN5HSVWKDWUHSUHVHQWHDFKLQVWDQFHYDULDEOHLQWKHWDUJHWFODVV

(DFK.7,YDU/LQN5HSUHIHUVEDFNWRDVLQJOH.7&ODVV5HSLQLWV´W\SHµILHOGWKDWUHSUHVHQWV WKHGRPDLQRIYDOXHVWKDWLQVWDQFHYDULDEOHFDQWDNHRQ,WDOVRFRQWDLQVDILHOGUHSUHVHQWLQJ WKHFDUGLQDOLW\RIWKDWLQVWDQFHYDULDEOH,QWKHFDVHZKHUHDQLQVWDQFHYDULDEOHLQDWDUJHW FODVVQRUPDOO\FRQWDLQVD&ROOHFWLRQVXEFODVVWKH.7,YDU/LQN5HSZLOOKDYHDFDUGLQDOLW\RI 17KHW\SHRIWKH&ROOHFWLRQ6RUWHG2UGHUHG6HWLVQRWUHFRUGHGDOWKRXJKLWFRXOGEH ,QWKDWFDVHWKHW\SHRIWKH.7,YDU/LQN5HSZRXOGUHIHUWRWKH.7&ODVV5HSWKDWUHSUHVHQWV WKHWDUJHWFODVVQRUPDOO\KHOGLQWKDWFROOHFWLRQ

:KLOHEXLOGLQJFODVVLQKHULWDQFHJUDSKVDUHVWUDLJKWIRUZDUGGHWHUPLQLQJKDVDUHODWLRQVKLSV LVPRUHSUREOHPDWLFLQ6PDOOWDON7KLVLVGXHWR WKH IDFW WKDW 6PDOOWDON LV QRW D VWURQJO\ W\SHGODQJXDJH,QDW\SHGODQJXDJHOLNH&RU(LIIHOWKHVDPHVWUDWHJ\RISDUVLQJWKH SURJUDPVRXUFHWRGHWHUPLQHERWKW\SHVRIUHODWLRQVKLSVZRXOG ZRUN +RZHYHU WKLV ZLOO QRWZRUNLQVWDQGDUG6PDOOWDONVLQFHLQ6PDOOWDONYDULDEOHVDUHQRWW\SHGXQWLOUXQWLPH

3RVVLEOHFKRLFHVIRU6PDOOWDONW\SLQJ

0DQ\ DUWLFOHV KDYH EHHQ SXEOLVKHG WKDW GHWDLO ZD\V RI DGGLQJ W\SLQJ LQIRUPDWLRQ WR 6PDOOWDON VXFK DV *UDYHU >@ DQG %UDFKD >@ 0RVW H[WHQG WKH 6PDOOWDON ODQJXDJH WR UHTXLUHDOOYDULDEOHVWREHW\SHGDOWKRXJKVRPHPDNHWKHSURYLVLRQRIW\SHLQIRUPDWLRQ

RSWLRQDO

(47)

0RVW HIIRUWV WR DGG W\SLQJ WR 6PDOOWDON KDYH IRFXVHG RQ EXLOGLQJ D W\SH V\VWHP WKDW VHSDUDWHVWRVRPHH[WHQWLQWHUIDFHVSHFLILFDWLRQVIURPLPSOHPHQWDWLRQ+RZHYHUWKLVLV QRWVXSSRUWHGE\H[LVWLQJ22GHVLJQPHWKRGV,QRUGHUWRZRUNZLWKDOO22ODQJXDJHV LQFOXGLQJ&ZKHUHWKHUHLVQRVHSDUDWLRQEHWZHHQLQWHUIDFHDQGLPSOHPHQWDWLRQPRVW H[LVWLQJGHVLJQPHWKRGVDVVXPHWKDWVWUXFWXUDOW\SLQJLVWKHGHIDXOW%HFDXVHRIWKLVPRVW 22GHVLJQVSURGXFHGZLWKWKHVHPHWKRGVDUHEXLOWZLWKWKLVNLQGRIW\SHLQIRUPDWLRQLQ PLQG/XFNLO\LWLVSRVVLEOHWRSURGXFH6PDOOWDONLPSOHPHQWDWLRQVWKDWFRQIRUPFORVHO\WR WKHVHGHVLJQVDQGGRQRWWDNHDGYDQWDJHRIWKHGLVWLQFWLYHIHDWXUHVRIWKHODQJXDJH3DUWO\ EHFDXVHRIWKLVW\SLQJZLOOZRUNRQWKHPDMRULW\RI6PDOOWDONFRGHWKRXJKQRWRQDOORILW

:KLOH6PDOOWDONW\SHV\VWHPVDUHDZHOOUHSUHVHQWHGDUHDRIUHVHDUFKLWZRXOGEHRYHUNLOOWR DGGDIXOOW\SLQJPHFKDQLVPWR.7MXVWWRIDFLOLWDWHUHFRJQLWLRQRISDWWHUQV,QSDUWLFXODU WR UHSUHVHQW PDQ\ 22 GHVLJQV ZH QHHG RQO\ SD\ DWWHQWLRQ WR WKH W\SLQJ RI LQVWDQFH YDULDEOHVVLQFHWKDWLVWKHZD\WKDWWKHKDVDUHODWLRQVKLSLVUHSUHVHQWHG:LWKWKLVLQPLQG LWLVHQRXJKWRVSHFLI\W\SHVIRULQVWDQFHYDULDEOHVDQGLJQRUHDOORWKHUNLQGVRI6PDOOWDON YDULDEOHV JOREDO FODVV WHPSRUDU\ HWF LI ZH PHUHO\ LQWHQG WR UHYHUVHHQJLQHHU GHVLJQ GLDJUDPVDQGVHDUFKIRUSDWWHUQV

5XQWLPHVWDWLVWLFDOW\SLQJ

(48)

7KHREYLRXVZD\WRSURYLGHHQRXJKW\SLQJLQIRUPDWLRQLVWRDOORZDQHQJLQHHUWRVSHFLI\ WKHYDULDEOHW\SHVIURPLQVSHFWLRQRIWKHVRXUFHFRGH,QIDFWWKHILUVWYHUVLRQRIWKH.7 V\VWHP RQO\ VXSSRUWHG WKLV ,W ZDV SXUSRVHO\ NHSW VLPSOH WR DOORZ PH WR IRFXV RQ GHYHORSLQJWKHFRGHWRDQDO\]HWKHGHVLJQUHSUHVHQWDWLRQVIRUSDWWHUQGHWHFWLRQ

+RZHYHUZKLOHLWLVVLPSOHWRZRUNZLWKKXPDQSURYLGHGW\SHLQIRUPDWLRQLWLVQRWYHU\ XVHIXOLQUHYHUVHHQJLQHHULQJUHDOSURJUDPV,WLVRIWHQGLIILFXOWWRGHWHUPLQHZKDWW\SHVDQ LQVWDQFHYDULDEOHFDQWDNHRQGLUHFWO\IURPH[DPLQDWLRQRIVRXUFHFRGH,QWKHDEVHQFHRID W\SLQJ V\VWHP WKDW HQIRUFHV VXFK GHVLJQ GHFLVLRQV ZKHQ WKH FRGH LV ZULWWHQ H[LVWLQJ LQIRUPDWLRQLQWKHFRGHHJYDULDEOHQDPHVFRPPHQWV RIWHQ EHFRPHV RXW RI GDWH QR ORQJHUUHIOHFWLQJWKHUHDOLW\RIWKHZD\YDULDEOHVDUHDFWXDOO\XVHG

7RPDNHLWVLPSOHUIRUWKHUHYHUVHHQJLQHHUWRGHWHUPLQHZKDWDYDULDEOHVDFWXDOW\SHLV, DJDLQGHFLGHGWR WDNH DGYDQWDJH RI 6PDOOWDON·V XQLTXH PHWDOHYHO IDFLOLWLHV ,Q WKLV FDVH , GHFLGHGWRWDNHDGYDQWDJHRIWZRIDFWVDERXW6PDOOWDON·VEHKDYLRUV\VWHP

• 6PDOOWDON·VEHKDYLRUFODVVHVNQRZWKHLULQVWDQFHYDULDEOHVDVGHILQHGLQWKHVRXUFH FRGH%\XVLQJWKH#instVarNames PHWKRGLWLVSRVVLEOHWR DVN D FODVV ZKDW LWV LQVWDQFHYDULDEOHVDUHQDPHGDQGZKDWWKHLUUHODWLYHSRVLWLRQVLQWKHFODVVGHILQLWLRQ DUH

(49)

8VLQJWKLVLQIRUPDWLRQDQGWKHDELOLW\RI9LVXDO:RUNVWRGHILQHKLJKSULRULW\SURFHVVHVWKDW FDQ LQWHUUXSW D UXQQLQJ 6PDOOWDON SURJUDP , GHYHORSHG D VLPSOH DSSURDFK , FDOO UXQWLPH VWDWLVWLFDOW\SLQJ%DVLFDOO\,KDYHZULWWHQDVHWRIFODVVHVWKDWGRWKHIROORZLQJ

(YHU\IHZ PLOOLVHFRQGV GHWHUPLQDEOH E\ D SURJUDPVHW SDUDPHWHU D KLJKSULRULW\ SURFHVVZLOOVXVSHQGWKHFXUUHQWO\UXQQLQJ6PDOOWDONSURFHVV

7KLV QHZ SURFHVV ZLOO FKRRVH RQH FODVV IURP D VHW RI FODVVHV IRU ZKLFK W\SLQJ LQIRUPDWLRQ LV QHHGHG 7KH V\VWHP ZLOO VHQG WKDW FODVV WKH #allInstances PHVVDJHDQGWKHQLWHUDWHRYHUHDFKLQVWDQFH

(50)

2QFH WKLV LQIRUPDWLRQ KDV EHHQ UHFRUGHG VLPSOH DQDO\VLV FDQ RIWHQ LQIHU WKH QHFHVVDU\ W\SLQJ LQIRUPDWLRQ )RU LQVWDQFH LI DOO LQVWDQFHV RI D FODVV KROG LQ D SDUWLFXODU LQVWDQFH YDULDEOHLQVWDQFHVRIDVLQJOHFODVVWKHQIRURXUSXUSRVHVZHFDQDVVXPHWKDWWKHLQVWDQFH YDULDEOH PD\ DOZD\V UHIHU WR LQVWDQFHV RI WKDW FODVV ,Q WKH FDVH ZKHUH WKH FODVV 8QGHILQHG2EMHFWQLOLVUHIHUUHGWRWKLVYDOXHFDQEHVDIHO\LJQRUHGVLQFHLWPHDQVLQHIIHFW WKDWWKHLQVWDQFHYDULDEOHKDVQRW\HWEHHQXWLOL]HG .76QDSVKRW(QWU\ .76QDSVKRW(QWU\ *URXS HQWULHV 1 FROOHFWLRQ(QWULHV 1 6WULQJ

IURP'HIDXOWV FODVV1DPH

6PDOO,QWHJHU IURP'HIDXOWV FRXQW FDUGLQDOLW\ .72EMHFW6QDSVKRW LYDUV 1 %\WH6WULQJ IURP'HIDXOWV

(51)

7KH YDULDEOH W\SLQJ LQIRUPDWLRQ LV FDSWXUHG E\ WKH FODVVHV .72EMHFW6QDSVKRW .76QDSVKRW(QWU\DQG.76QDSVKRW(QWU\*URXS7KHUHLVDVLQJOH.72EMHFW6QDSVKRWIRU HDFKFODVVLQWKHV\VWHPWKDWLVEHLQJDQDO\]HG,WFRQWDLQVDGLFWLRQDU\WKDWUHSUHVHQWVWKH LQVWDQFHYDULDEOHVRIWKHWDUJHWFODVVHDFKHOHPHQWRIZKLFKLVD.76QDSVKRW(QWU\*URXS (DFK.76QDSVKRW(QWU\*URXSFRQWDLQVDFROOHFWLRQRI.76QDSVKRW(QWULHVRQHIRU HDFK FODVV WKDW LV HQFRXQWHUHG DV D YDOXH RI WKH FRUUHVSRQGLQJ LQVWDQFH YDULDEOH 7KH .76QDSVKRW(QWU\ DOVR FRQWDLQV D FRXQW RI WKH QXPEHU RI WLPHV WKDW YDOXH KDV EHHQ REVHUYHG ,Q WKH FDVH ZKHUH D .76QDSVKRW(QWU\ UHSUHVHQWV D FROOHFWLRQ FODVV LW DOVR FRQWDLQVDQRWKHUFROOHFWLRQRI.76QDSVKRW(QWULHVWKDWUHSUHVHQWWKHYDOXHVHQFRXQWHUHGDV HOHPHQWVRIWKDWFROOHFWLRQ

(52)

2IFRXUVHWKLVPHWKRGRIVWDWLVWLFDOW\SLQJLVQRWSHUIHFW7KHUHDUHPDQ\SUREOHPVWKDW FDQSUHYHQWWKHFRUUHFWW\SHRIDQLQVWDQFHYDULDEOHIURPEHLQJGLVFRYHUHG)RULQVWDQFH VRPHYDULDEOHVPD\QHYHUFRQWDLQDYDOXHRWKHUWKDQQLOGXULQJWKHFRXUVHRIWKHWHVW$OVR WKHYDOXHVWKHYDULDEOHVKROGGXULQJWHVWLQJPD\QRWEHUHSUHVHQWDWLYHRIWKHIXOOUDQJHRI FODVVHV WKDW WKH\ FDQ WDNH RQ %HFDXVH RI WKHVH OLPLWDWLRQV LW LV QHFHVVDU\ WR DOORZ WKH UHYHUVH HQJLQHHU WKH DELOLW\ WR FKDQJH WKH W\SH DQG FDUGLQDOLW\ RI DQ LQVWDQFH YDULDEOH GHILQLWLRQRQWKHIO\7KLVLQWHUIDFHLVVKRZQLQ)LJXUH&ODVV5HSUHVHQWDWLRQ(GLWRU

)LJXUH &ODVV 6HOHFWLRQ8,

(53)

'\QDPLF0RGHOLQJ 3RWHQWLDOPRGHOLQJFKRLFHV

/LNHWKHVWDWLFPRGHOLQJSUREOHPWKHSUREOHPRIDQDO\]LQJWKHG\QDPLFIORZRIPHVVDJHV LQ D 6PDOOWDON SURJUDP LV H[DFHUEDWHG E\ WKH QDWXUH RI 6PDOOWDON $V ZLWK WKH KDVD UHODWLRQVKLS FRQVLGHUHG DERYH WUDGLWLRQDO PHWKRGV RI DQDO\]LQJ SURJUDP VRXUFH WH[W DUH PDGH GLIILFXOW LI QRW LPSRVVLEOH E\ WKH QDWXUH RI 6PDOOWDON FRGH +RZHYHU MXVW DV WKH XQLTXHPHWDOHYHOIDFLOLWLHVRI6PDOOWDONSURYLGHGDVROXWLRQWRWKHSUHYLRXVSUREOHPWKH\ DOVRKHOSUHVROYHWKHSUREOHPRIDQDO\]LQJPHVVDJHIORZ

([LVWLQJ6PDOOWDONPHVVDJHIDFLOLWLHV

0RGHUQ 6PDOOWDON FRPSLOHUV XWLOL]H WKH G\QDPLF FRPSLODWLRQ WHFKQLTXH SLRQHHUHG E\ 9LVXDO:RUNV ZKLFK LQYROYHV WUDQVODWLRQ RI 6PDOOWDON E\WHFRGHV LQWR QDWLYH PDFKLQH ODQJXDJH LQVWUXFWLRQV DW WKH WLPH D SDUWLFXODU PHWKRG LV ILUVW LQYRNHG +RZHYHU IRU GHEXJJLQJ SXUSRVHV 9LVXDO:RUNV VWLOO LQFOXGHV WKH WUDGLWLRQDO E\WHFRGH LQWHUSUHWHU 7KLV FDQEHXVHGWRFDSWXUHPHVVDJHVHQGVDVWKH\DUHH[HFXWHGLQDZD\QRWSRVVLEOHLQRWKHU 6PDOOWDONV

(54)

'\QDPLFPHVVDJHUHFRUGLQJ

7KLVPDFKLQHU\PDNHVLWSRVVLEOHWRFDSWXUHPHVVDJHVVHQWLQDQ\FRGHEORFNDQGUHFRUG LQIRUPDWLRQDERXWWKHVHQGHUUHFHLYHUDQGVHOHFWRURIWKHVHQWPHVVDJH.7XVHVWKHWUHH RI PHWKRGV FDOOHG IURP DQ DUELWUDU\ FRGH EORFN WR KHOS GLVFRYHU XVHV RI WKH &KDLQ RI 5HVSRQVLELOLW\SDWWHUQ 2QFH WKHVH PHVVDJHV DUH ORJJHG D FDOO WUHH FDQ EH UHFRQVWUXFWHG IURPWKDWLQIRUPDWLRQ

&DOO7UHHLQWHUSUHWDWLRQ

(55)

3DWWHUQVLQWHUSUHWDWLRQ

6LQFHDIXQGDPHQWDOWHQHWRIREMHFWRULHQWHGGHVLJQLVWKDWEHKDYLRUVKRXOGIROORZVWUXFWXUH LWLVQRWVXUSULVLQJWKDW.7·VSDWWHUQVGHWHFWLRQDOJRULWKPVDUHGLUHFWO\LQWHJUDWHGLQWRWKH REMHFWV WKDW UHSUHVHQW WKH GHVLJQ VWUXFWXUHV ,Q HDFK FDVH WKHUH DUH D VHW RI EHKDYLRUV VSHFLILFWRWKHSDUWLFXODUGHVLJQVWUXFWXUHWKDWDLGVLQILQGLQJHDFKGHVLJQSDWWHUQ

:KLOHWKLVGHVLJQVWUDWHJ\ZRUNVRQDVPDOOVFDOHLWLVSUREDEO\QRWWKHEHVWDSSURDFKWR IROORZLIWKHZRUNEHJDQLQWKLVSURMHFWLVWREHFRQWLQXHG ,Q D PRUH JHQHUDO FDVH WKH GLIIHUHQW GHWHFWLRQ VWUDWHJLHV VKRXOG EH LVRODWHG LQWR WKHLU RZQ FODVV KLHUDUFKLHV DOORZLQJ HDVLHUH[WHQVLRQDQGPRGLILFDWLRQ7KH6WUDWHJ\3DWWHUQIURP*DPPD>@LVDQDSSURSULDWH GHVLJQ FRQVWUXFW WR IROORZ LQ WKLV FDVH )XUWKHU UHVHDUFK DORQJ WKHVH OLQHV LV QHFHVVDU\ VSHFLILFDOO\ LQ FODVVLI\LQJ SDWWHUQV DQG FRGLI\LQJ GHWHFWLRQ DOJRULWKPV DV ZHOO DV LQ

(56)

GHWHUPLQLQJ WKH JHQHUDO VWUXFWXUH RI GHVLJQ PHWDGDWD QHHGHG IRU WKHVH DOJRULWKPV WR IXQFWLRQ

&RPSRVLWH'HFRUDWRUGHVLJQ

7KH PHWKRGV XVHG IRU GHWHFWLRQ RI WKH &RPSRVLWH DQG 'HFRUDWRU SDWWHUQV DUH FRGHG GLUHFWO\ LQWR WKH .7&ODVV5HS DQG .7,YDU/LQN5HS FODVVHV $ VWDQGDUG F\FOHGHWHFWLRQ DOJRULWKPWDNHQIURP&RUPHQ>@ZDVXVHGIRUGHWHFWLQJWKHVHSDWWHUQV

7KHF\FOHGHWHFWLRQDOJRULWKPZRUNVE\LQLWLDOO\FRORULQJDOO.7&ODVV5HSVEODFNXQYLVLWHG 7KHURRWFODVVUHSUHVHQWDWLRQD.7&ODVV5HSIRU2EMHFWLVWKHQLQLWLDOO\VHQWWKHPHVVDJH #searchForCompositeCycle:reportTo$WHDFKQRGHLQWKHWUHHWKHQRGHLVDGGHGWR DQ RQJRLQJ VWDFN RI QRGHV ,W LV WKHQ FRORUHG UHG LQ SURJUHVV (DFK RI LWV LQVWDQFH YDULDEOHOLQNVDUHWUDYHUVHGDQGLIDOLQNLVIRXQGWRSRLQWWRDQRWKHULQSURJUHVVQRGHD F\FOHLVUHSRUWHGWRWKH.7&RPSRVLWH5HSRUWHU7KHFDUGLQDOLW\RIWKHOLQNGRHVQRWPDWWHU DW WKLV WLPH WKDW LQIRUPDWLRQ LV ORJJHG WR WKH UHSRUWHU WKDW ZLOO ODWHU GLVWLQJXLVK WKH 'HFRUDWRUF\FOHVIURPWKH&RPSRVLWHF\FOHV

(57)

5HSRUWLQJ HDFK F\FOH LV VLPSOH :KHQ WKH .7&RPSRVLWH5HSRUWHU PHWKRG #reportCycle:startingFromLVFDOOHGLWVLPSO\LQGLFDWHVWKDWWKHFODVVHVFXUUHQWO\RQWKH VWDFN KDYH EHHQ IRXQG WR SDUWLFLSDWH LQ HLWKHU WKH 'HFRUDWRU RU &RPSRVLWH SDWWHUQ GHSHQGLQJ XSRQ WKH FDUGLQDOLW\ RI WKH OLQN SDVVHG LQ )LJXUH 6DPSOH GRFXPHQWDWLRQ RXWSXWVKRZVDVDPSOHOLVWLQJRIWKHRXWSXWSURGXFHGE\WKH.7&RPSRVLWH5HSRUWHUFODVV LOOXVWUDWLQJWKHGRFXPHQWDWLRQRIWKH&RPSRVLWH'HFRUDWRUDQG7HPSODWH0HWKRGSDWWHUQV

7HPSODWH0HWKRG'HVLJQ

/LNH WKH DOJRULWKPV IRU GHWHFWLQJ &RPSRVLWH DQG 'HFRUDWRU WKH 7HPSODWH 0HWKRG GHWHFWLRQ DOJRULWKP LV FRGHG LQWR WKH .7&ODVV5HS FODVV ,Q WKLV SDUWLFXODU FDVH WKH .7&ODVV5HSGRHVDWZRVWHSVFDQRIDOOWKHPHWKRGVLPSOHPHQWHGLQWKHWDUJHWFODVV7KH ILUVWVWHSVFDQVIRUYLUWXDOPHWKRGVE\ORRNLQJLQWKHFODVVVPHWKRGGLFWLRQDU\IRUPHWKRGV WKDW VHQG WKH PHVVDJH #subclassResponsibility ZKLFK LV WKH VWDQGDUG 6PDOOWDON FRQYHQWLRQIRUGHFODULQJDYLUWXDOPHWKRG7KHVHFRQGVWHSVFDQVWKHPHWKRGGLFWLRQDU\

7KH FODVVHV 2EMHFW 6FKHGXOHG5HVRXUFH *URXSHG5HVRXUFH KDYH EHHQ IRXQG WR IRUP D F\FOH WKDW PD\ LQGLFDWH SDUWLFLSDWLRQ LQ WKH &RPSRVLWHSDWWHUQ

7KH FODVVHV 2EMHFW $EVWUDFW3DUW7\SH &RPSRVLWH3DUW7\SH KDYH EHHQ IRXQG WR IRUP D F\FOH WKDW PD\ LQGLFDWH SDUWLFLSDWLRQ LQ WKH &RPSRVLWHSDWWHUQ

(58)

IRU PHWKRGV WKDW VHQG DQ\ RI WKH PHVVDJHV IRXQG LQ WKH ILUVW VFDQ $Q LQVWDQFH RI .70HWKRG5HS LV FUHDWHG IRU HDFK PHWKRG LQ WKH WDUJHW FODVVV PHWKRG GLFWLRQDU\ 7KLV LQVWDQFHLVWKHQPDUNHGDVWRZKHWKHURUQRWLWLVYLUWXDORUDWHPSODWHPHWKRGDVIRXQGLQ WKHWZRVFDQV

&KDLQRI5HVSRQVLELOLW\GHVLJQ

8QOLNHWKHDOJRULWKPVIRUWKHSUHYLRXVWKUHHSDWWHUQVWKHDOJRULWKPIRUGHWHFWLQJ&KDLQRI 5HVSRQVLELOLW\ LV FRGHG LQWR WKH .70HVVDJH/RJ FODVV 7KH PHVVDJH #findChainOfResponsibility ZRUNV WRJHWKHU ZLWK .70HVVDJH6HQG DQG 7UHH1RGH WR ILQGRFFXUUHQFHVRI&KDLQVRI5HVSRQVLELOLW\%DVLFDOO\WKHDOJRULWKPGRHVDWUHHWUDYHUVDO WKURXJKWKHFDOOWUHHFRQVWUXFWHGHDUOLHU$WHDFKQRGHWKHDOJRULWKPFKHFNVWRVHHLIWKH VHOHFWRUDWWKDWQRGHLVWKHVDPHDVRUGHULYHGIURPWKHVHOHFWRUDWLWVSDUHQWQRGH,IVRLW ORJV WKH FRQWLQXDWLRQ RI WKH FKDLQ IRU WKDW VHOHFWRU RQ DQ LQVWDQFH RI .7&KDLQ2I5HVSRQVLELOLW\5HSRUWHU ,I QRW WKH FKDLQ WHUPLQDWHV 7KH .7&KDLQ2I5HVSRQVLELOLW\5HSRUWHUFODVVLVEXLOWVRWKDWLWFRQWDLQVDGLFWLRQDU\RIFKDLQVDQ 2UGHUHG&ROOHFWLRQRI.70HVVDJH6HQGVLQGH[HGE\WKHLQLWLDOVHOHFWRUIRXQGRQWKDWFKDLQ 7KLVDOORZVWKHFKDLQVWREHHDVLO\UHSRUWHGRQWRDVWUHDPODWHU

5RVH)LOHJHQHUDWLRQ

7RFRPSOHWHWKHSLFWXUHRIWKHFRGHIRUWKHUHYHUVHHQJLQHHUWKHILQDOFDSDELOLW\RIWKH.7 SURJUDP LV QHHGHG WKH DFWXDO GLDJUDPV WKDW UHSUHVHQW WKH VWUXFWXUH RI WKH FRGH DQG WKH REMHFW LQWHUDFWLRQV WKDW WRRN SODFH ,Q EXLOGLQJ WKH .7 SURJUDP , LQLWLDOO\ GUHZ WKHVH GLDJUDPVXVLQJFXVWRPGUDZLQJFODVVHV,XVHGDPL[WXUHRIWKH%RRFKDQG:LUIV%URFN

(59)

QRWDWLRQVWRVKRZWKHVWDWLFFODVVUHODWLRQVDQGXVHG-DFREVRQVW\OHLQWHUDFWLRQGLDJUDPVWR VKRZREMHFWLQWHUDFWLRQV

$IWHUWKHLQLWLDO SURWRW\SH , GHWHUPLQHG WKDW WKLV ZRXOG QRW VXIILFH 7KH GUDZLQJ FODVVHV SURYHGWURXEOHVRPHDQGFRPSOH[DQGLWVHHPHGOLNHWRRPXFKHIIRUWZRXOGEHQHHGHGWR EULQJWKHPWRDOHYHOZKHUHWKH\FRXOGVXEVWDQWLDOO\EHQHILWWRWKHXVHURIWKHWRRO$WWKDW SRLQW,EHJDQH[SHULPHQWLQJZLWKXVLQJDFRPPHUFLDO2EMHFW&$6(WRRO5DWLRQDO 5RVH ZKLFKXVHVDSXEOLFILOHIRUPDWWRVWRUHLWVGLDJUDPV7KHWRWDOHIIRUWQHFHVVDU\WRJHQHUDWH WKH5RVHSHWDOILOHVIURPWKHH[LVWLQJLQIRUPDWLRQLQWKH.7WRROWXUQHGRXWWREHOHVV WKDQ D ZHHN RQFH , XQGHUVWRRG WKH ILOH IRUPDW $ 5RVH ´SHWDOµ ILOH FRQVLVWV D WH[WXDO UHSUHVHQWDWLRQIRUHDFKREMHFWDQGUHODWLRQVKLSSRVVLEOHLQWKH%RRFKPHWKRGLQKHULWDQFH DJJUHJDWLRQHWF

(60)

$IWHU WKH REMHFWV UHSUHVHQWLQJ WKH VHFWLRQV RI D SHWDO ILOH DUH FUHDWHG WKH\ WKHQ ZULWH WKHPVHOYHVRXWWRDILOHLQWKHDSSURSULDWHIRUPDW$VKRUWUHSUHVHQWDWLYHVHJPHQWRIRQH RIWKHJHQHUDWHG´SHWDOµILOHVLVVKRZQLQ)LJXUH3HWDO)LOH6HJPHQW$GLDJUDPRIWKH SHWDOVWUXFWXUHLVVKRZQLQ)LJXUH3HWDOILOHVWUXFWXUH,WVKRXOGEHQRWHGWKDWDOORIWKH GHVLJQGLDJUDPVVHHQLQWKLVFKDSWHUZHUHJHQHUDWHGE\WKH.7WRRODQG5DWLRQDO5RVH

(object Class_Category "<Top Level>" exportControl "Public"

global TRUE

subsystem "<Top Level>"

logical_models (list unit_reference_list

(object Class_Category "AMPScheduling" exportControl "Public"

logical_models (list unit_reference_list (object Class "MaterialLevel"

fields (list has_relationship_list (object Has_Relationship

label "materialLevels"

supplier_cardinality (value cardinality "1") client_cardinality (value cardinality "1")))

superclasses (list inheritance_relationship_list (object Inheritance_Relationship supplier "Object")))

(object Class "NoneRule"

superclasses (list inheritance_relationship_list (object Inheritance_Relationship

supplier "Object"))) (object Class "PartType"

superclasses(list inheritance_relationship_list (object Inheritance_Relationssupplier

"AbstractPartType ")))

(61)

6XPPDU\

(62)

'HPRQVWUDWLQJ5HYHUVH(QJLQHHULQJ 3URJUDPVXQGHUUHYLHZ

,QRUGHUWRWHVWWKHK\SRWKHVLVWKDW.7FRXOGGHWHFWGHVLJQSDWWHUQVLQH[LVWLQJVRIWZDUH DQGWRGHWHUPLQHLIWKHLGHDRIVWDWLVWLFDOUXQWLPHW\SLQJZRUNHGLQSUDFWLFH,WHVWHGWKH.7 SURJUDPRQIRXU6PDOOWDONSURJUDPV

7KHSURJUDPVWHVWHGUDQJHGLQVL]HIURPFODVVHVWRFODVVHV7KH\LQFOXGHGDODUJH VFDOHVFLHQWLILFSURJUDPXVHGLQJHQHWLFVUHVHDUFKDIDFWRU\VFKHGXOLQJV\VWHPDVPDOO0,6 V\VWHPIRURUGHUSURFHVVLQJDQGWKH .7 SURJUDP LWVHOI 7KH SURJUDPV ZHUH ZULWWHQ E\ SURJUDPPHUVKDYLQJYDULRXVOHYHOVRI6PDOOWDONH[SHUWLVHUDQJLQJIURPOHVVWKDQVL[PRQWKV WR PRUH WKDQ VL[ \HDUV 7KH QXPEHU RI SURJUDPPHUV LQYROYHG LQ ZULWLQJ HDFK RI WKH SURJUDPVUDQJHGIURPRQHWRILYH,QIRUPDWLRQDERXWHDFKRIWKHSURJUDPVWHVWHGFDQEH IRXQGLQ7DEOH3URJUDPVWDWLVWLFV7ZRRIWKHSURJUDPVDQDO\]HGDUHFRPPHUFLDOV\VWHPV ZKRVHQDPHVDQGVRXUFHVDUHERXQGE\QRQGLVFORVXUHDJUHHPHQWV)RUWKLVUHDVRQ,ZLOO UHIHUWRHDFKRIWKHVHSURJUDPVE\WKHSVHXGRQ\PV$%&DQG'

7DEOH3URJUDPVWDWLVWLFV

3URJUDP QXPEHURI

FODVVHV XVH

$ )DFWRU\VFKHGXOLQJ

% *HQHWLFUHVHDUFK

& 6RIWZDUHWRRO.7

' 2UGHUSURFHVVLQJ

5HVXOWVRI$QDO\]LQJWKHSURJUDPV

(63)

JDWKHULQJLQIRUPDWLRQDERXWWKHW\SHVRILQIRUPDWLRQKHOGLQWKHLQVWDQFHYDULDEOHVRIWKH FODVVHV LQYROYHG 0\ ILUVW FRQFHUQ ZDV LQ GHWHUPLQLQJ LI WKH EDVLF SUHPLVH RI VWDWLVWLFDO W\SLQJWKDWPRVW6PDOOWDONLQVWDQFHYDULDEOHVZHUHLPSOLFLWO\W\SHGWRDVLQJOHFODVVZDVWUXH 7KHUHVXOWV,IRXQGDUHVKRZQLQ7DEOH,QVWDQFHYDULDEOHW\SLQJVWDWLVWLFV

7KH ILUVW FROXPQ RI 7DEOH UHIHUV WR WKH SDUWLFXODU SURJUDP XQGHU LQYHVWLJDWLRQ 7KH VHFRQG FROXPQ VKRZV WKH WRWDO QXPEHU RI LQVWDQFH YDULDEOHV LQ WKH FODVVHV UHYHUVH HQJLQHHUHG 7KH WKLUG FROXPQ VKRZV WKH QXPEHU RI LQVWDQFH YDULDEOHV WKDW ZHUH QHYHU IRXQGWRFRQWDLQLQVWDQFHVRIPRUHWKDQRQHFODVVGXULQJWKHVDPSOHVWDNHQ7KHIRXUWK FROXPQVKRZVWKHQXPEHURILQVWDQFHYDULDEOHVWKDWFRQWDLQHGLQVWDQFHVRIPRUHWKDQRQH FODVVEXWZKLFKZHUHHDFKVXEFODVVHVWKHVDPHFODVVEHORZ2EMHFWLQWKHFODVVKLHUDUFK\ 7KH ILQDO FROXPQ VKRZV WKH QXPEHU RI LQVWDQFH YDULDEOHV WKDW LQ GLIIHUHQW VDPSOHV FRQWDLQHGLQVWDQFHRIFODVVHVWKDWZHUHQRWIURPWKHVDPHKLHUDUFK\

7KHUHVXOWVRIWKLVLQLWLDOVWXG\ZHUHVXUSULVLQJ,KDGJXHVVHGWKDWPRVWLQVWDQFHYDULDEOHVLQ 6PDOOWDONZHUHLPSOLFLWO\W\SHGWRDVLQJOHFODVVRUDWOHDVWUHVWULFWHGWRPHPEHUVRIDVLQJOH KLHUDUFK\+RZHYHUWKHGHJUHHWRZKLFKWKLVZDVWUXHLQWKHWHVWSURJUDPVZDVDPD]LQJ ,QHDFKFDVHPRUHWKDQRIDOOLQVWDQFHYDULDEOHVXQGHUVWXG\FRXOGKDYHEHHQVWDWLFDOO\

(64)

W\SHGXVLQJ&VW\OHW\SLQJ/HVVWKDQRIWKHLQVWDQFHYDULDEOHVVXUYH\HGUHOLHGRQWKH IDFWWKDWLQ6PDOOWDONPDQ\REMHFWVLQGLIIHUHQWLQKHULWDQFHKLHUDUFKLHVFDQUHVSRQGWRWKH VDPHPHVVDJHSRO\PRUSKLFDOO\,QIDFWRYHURIWKHYDULDEOHVRQO\HYHUKHOGLQVWDQFHV RIRQHFODVV,WVKRXOGEHQRWHGWKDWLQREWDLQLQJWKHVHVWDWLVWLFV,RQO\ORRNHGDWRQHOHYHO RIGHSWKLQHDFKREMHFW,GLGQRWH[DPLQHWKHFRQWHQWVRI&ROOHFWLRQVWRGHWHUPLQHLIWKH\ ZHUHKRPRJHQRXVRUKHWHURJHQHRXVRUWRZKDWH[WHQWWKH\ZHUHKHWHURJHQHRXV+RZHYHU IURP H[SHULHQFH DQG WKH DERYH UHVXOWV , VXVSHFW WKDW WKH ILJXUHV LQFOXGLQJ &ROOHFWLRQ FRQWHQWVZRXOGQRWEHPXFKGLIIHUHQW

(65)

7KHWKLUGFROXPQVKRZVWKHQXPEHURIRFFXUUHQFHVRIWKH'HFRUDWRUSDWWHUQIRXQGE\WKH .7SURJUDP7KHIRXUWKFROXPQVKRZVWKHQXPEHURIFODVVHVLGHQWLILHGDVEHLQJDEVWUDFW DQGWKHODVWFROXPQVKRZVWKHQXPEHURIPHWKRGVLQWKRVHFODVVHVLGHQWLILHGDVEHLQJHLWKHU DWHPSODWHPHWKRGRUDKRRNPHWKRG

:KLOH WHVWV RI WKH .7 SURJUDP KDG GHPRQVWUDWHG LWV DELOLW\ WR GHWHFW WKH VWUXFWXUHV UHSUHVHQWLQJWKHVHGHVLJQSDWWHUQVLQWHVWFDVHV LW ZDV HQFRXUDJLQJ WR ILQG WKDW WKH VDPH VWUXFWXUHV FRXOG EH IRXQG LQ UHDO SURJUDPV ,Q IDFW HDFK RI WKH RFFXUUHQFHV RI WKH VWUXFWXUHV WKDW .7 IRXQG DFWXDOO\ UHSUHVHQWHG D XVH RI WKH SDUWLFXODU GHVLJQ SDWWHUQ , KHVLWDWHWRGUDZPXFKIURPWKLVREVHUYDWLRQDVWKLVZDVSUREDEO\GXHWRDIRUWXLWRXVFKRLFH RIWHVWSURJUDPV2QHREVHUYDWLRQFDQEHPDGHKRZHYHUIURPWKHDERYH VWDWLVWLFV ,W VHHPV WKDW 7HPSODWH 0HWKRG LV WKH PRVW FRPPRQO\ RFFXUULQJ SDWWHUQ LQ WKH WHVW GDWD IROORZHG E\ &RPSRVLWH DQG WKHQ 'HFRUDWRU 7KLV DJUHHV ZLWK P\ H[SHULHQFH DQG PD\ VDIHO\EHJHQHUDOL]HGWRPRVW6PDOOWDONSURJUDPV

$QRWHDERXW&KDLQRI5HVSRQVLELOLW\

2QH GHVLJQ SDWWHUQ FRQVSLFXRXVO\ DEVHQW IURP WKH DERYH UHVXOWV LV WKH &KDLQ RI 5HVSRQVLELOLW\SDWWHUQ7KHPHWKRG,XVHGWRREWDLQWKHFDOOWUHHQHFHVVDU\WRGHWHFWWKLV GHVLJQSDWWHUQSURYHGQRWWREHXVHIXOLQSURILOLQJDQ\EXWWKHVPDOOHVWFRGHEORFNV:KLOH XVHIXOLQWKHRU\WKHPHWKRGZLOOKDYHWREHDEDQGRQHGRUPRGLILHGLQRUGHUWRZRUNRQ ODUJHUVFDOHV\VWHPV,KDYHVLQFHLGHQWLILHGVHYHUDORWKHURSWLRQVIRUEXLOGLQJWKLVFDOOWUHH WKH PRVW SURPLVLQJ RI ZKLFK LQYROYHV EXLOGLQJ D 3UR[\ REMHFW DURXQG HDFK RI WKH

LQVWDQFHVRIWKHREMHFWVWKDWDUHXQGHUWHVW$VPHVVDJHVDUHVHQWWRWKHSUR[\LQSODFHRI

(66)

WKHDFWXDOREMHFWWKH\DUHORJJHGLQWRWKHPHVVDJHORJLQWKHVDPHZD\DVLQWKHH[LVWLQJ PHWKRG,PSOHPHQWLQJWKLVQHZPHWKRGLVDWRSLFIRUIXUWKHUUHVHDUFK

6XPPDU\

(67)

6XPPDU\DQG&RQFOXVLRQV 5HVXOWVRIWKHUHVHDUFK

,QWKLVWKHVLV,KDYHH[DPLQHGVHYHUDOWRSLFVDQGWKHUHODWLRQVKLSVEHWZHHQWKHP

• 'HVLJQ3DWWHUQV

• 'HVLJQ'LDJUDP5HSUHVHQWDWLRQ

• 6PDOOWDON5HYHUVH(QJLQHHULQJ

• $XWRPDWHG3DWWHUQVGHWHFWLRQ

,KDYHORRNHGDWZK\GHVLJQSDWWHUQVDUHXVHIXOLQ6RIWZDUH(QJLQHHULQJDQGH[DPLQHGD IHZVSHFLILFGHVLJQSDWWHUQVIURP*DPPD>@LQGHWDLO,KDYHDOVRORRNHGEULHIO\DWGHVLJQ UHSUHVHQWDWLRQV DQG KRZ PDQ\ GHVLJQ SDWWHUQV DUH UHSUHVHQWHG LQ FRPPRQ 22 GHVLJQ QRWDWLRQV )URP WKLV , KDYH SURFHHGHG WR H[DPLQH WKH SUREOHPV LQKHUHQW LQ EXLOGLQJ D UHYHUVHHQJLQHHULQJWRROWRGLVFRYHUWKHGHVLJQSDWWHUQVXVHGLQEXLOGLQJ22VRIWZDUH

,QP\UHVHDUFK,KDYHFKRVHQ6PDOOWDONDVDWDUJHWODQJXDJHIRULPSOHPHQWDWLRQRIWKHWRRO DQGDVWKHVRXUFHRIWKHSURJUDPVWREHUHYHUVHHQJLQHHUHG$VDUHVXOWRIWKLVFKRLFH, KDYH H[DPLQHG WKH SUREOHPV LQ EXLOGLQJ D UHYHUVH HQJLQHHULQJ WRRO IRU 6PDOOWDON 7KHVH KDYHLQFOXGHG

• UHYHUVHHQJLQHHULQJLQKHULWDQFHVWUXFWXUHV

• UHYHUVHHQJLQHHULQJKDVDFRPSRVLWLRQUHODWLRQVKLSV

(68)

,WKHQGHVFULEHGDWRROIRUUHYHUVHHQJLQHHULQJ6PDOOWDONSURJUDPV.7DQGGHPRQVWUDWHG KRZWKHDERYHGHVLJQLQIRUPDWLRQFDQEHXVHGLQWKHVHDUFKIRUGHVLJQSDWWHUQVDUWLIDFWV )LQDOO\,VKRZHGWKHUHVXOWVRIXVLQJWKH.7WRRORQDVPDOOVDPSOH RI FRPPHUFLDOVFDOH 6PDOOWDONSURJUDPV

)XUWKHUWRSLFVIRUVWXG\

7KHUHDUHPDQ\DUHDVVWLOORSHQIRUVWXG\UHODWHGWRWKLVWKHVLV,KDYHRQO\ORRNHGDWDIHZ GHVLJQ SDWWHUQV WKHUH DUH PDQ\ PDQ\ PRUH LQ WKH OLWHUDWXUH WKDW FRXOG EH SRWHQWLDOO\ GHWHFWHGE\DXWRPDWHGWRROV,Q&KDSWHU,PHQWLRQHGDVSHFLILFVHWRISDWWHUQVWKDWDUH FORVHO\UHODWHGWRWKHRQHVGHWHFWHGE\WKH.7WRRO7KHVHOLHRQO\VOLJKWO\RXWVLGHWKHVFRSH RIWKLVWKHVLVDQGVRIWZDUHIRUWKHLUGHWHFWLRQLVYHU\IHDVLEOH7KHSDWWHUQVOLWHUDWXUHJURZV GDLO\DQGVRGRWKHRSSRUWXQLWLHVIRUSDWWHUQVUHYHUVHHQJLQHHUV

7KH UHYHUVHHQJLQHHULQJ WRRO GHVFULEHG LQ WKLV WKHVLV FDQ DOVR VHUYH DV D EDVLV IRU PRUH UHVHDUFK 7KH UXQWLPH VWDWLVWLFDO W\SLQJ PHWKRG LV D TXLFNDQGGLUW\ DSSURDFK IRU GHWHUPLQLQJKDVDUHODWLRQVKLSVEHWWHURQHVFRXOGEHGHYHORSHG,KDYHFKRVHQWRXVHRQH SDUWLFXODUFRPPHUFLDO&$6(WRROWRGLVSOD\GHVLJQGLDJUDPV,WZRXOGEHEHWWHULIWKHWRRO VXSSRUWHGVHYHUDO&$6(WRROIRUPDWVDQGSURYLGHGDZD\IRUXVHUVZLWKRXWVXFKWRROVWR YLHZDQGSULQWGHVLJQGLDJUDPV

(69)
(70)

%,%/,2*5$3+<

[Auer 95], Auer, K. “Smalltalk training: as innovative as the environment”, Communications of the ACM, 38(10), October 1995.

[Alexander 77], Alexander, C., Ishikawa, S., Silverstein, M., Jacobson, M., Fiksdahl-King, I., Angel, S. A Pattern Language. Oxford University Press, New York, 1977.

[Alexander 79], Alexander, C. The Timeless Way of Building. Oxford University Press, New York, 1979.

[Booch 92], Booch, G. Object-Oriented Analysis and Design with Applications. Benjamin-Cummings, Redwood City, California. 1992.

[Bracha 93] Bracha, G.. “Strongtalk: typechecking Smalltalk in a production environment”, Proceedings of the 1993 Conference on Object-Oriented Programming Systems, Languages, and

Architectures, Addison-Wesley, 1993, pp.215-230.

[Brown 96] Brown, K. “Experiencing patterns at the design level”, Object Magazine, 5(8), January 1996, pp 40-48.

[Buschmann 95] Buschmann, F. “A System of patterns”, Pattern Languages of Program Design. Addison-Wesley 1995.

[Coad 95] Coad, P. and Mayfield, M. Object Models: Strategies, patterns and applications. Yourdon Press, 1995.

[Computerworld 95] Computerworld, May 29 1995, v29, n22, p 74(1).

[Corman 90] Corman, T., Leiserson, C., Rivest R. Introduction to Algorithms. Mc-Graw Hill, New York NY, 1990.

[Coplien 95] Coplien, J. and Schmidt, D., editors. Pattern Languages of Program Design. Addison-Wesley, 1995.

[EDN 92] Electronic Design News, June 8 1992, 37(11), pp S30(3).

[Gamma 95] Gamma, E., Helms, R., Johnson, R., Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

[Goldberg 89] Goldberg, A., Robson, D. Smalltalk-80: the Language. Addison-Wesley, 1989

[Graver 90] Graver, J., Johnson, R. “A Type system for Smalltalk”, Proceedings of the 1990 Conference on Object-Oriented Programming Systems, Languages, and Applications, ACM SIGPLAN Notices, 25(10), October 1990, pp. 136-150.

(71)

[Harandi 90] Harandi, M., Ning, J., “Knowledge-based program analysis”, IEEE Software, January 1990, pp. 74-81.

[Johnson 92] Johnson, R. “Documenting frameworks using patterns”, Proceedings of the 1992

Conference on Object-Oriented Programming Systems, Languages, and Applications, ACM SIGPLAN Notices 27(10), October 1992, pp 63-76

[Kung 93] Kung, C.H., Gao, J., Hsia, P., Lin, J., Toyoshima, Y., “Design recovery for software testing of object-oriented programs”, Proceedings of the Working Conference on Reverse Engineering, IEEE Computer Society Press, Los Alamitos, CA, 1993.

[Lalonde 91] Lalonde, W., Pugh, J. “Subclassing != subtyping != is-kind-of”, Journal of Object Oriented Programming, 3(5), January 1991.

[Lalonde 94] Lalonde, W., Pugh, J. “Gathering metrics information using meta-level facilities”, Journal of Object Oriented Programming, 7(1), March/April 1994.

[Ning 89] Ning, J. “A Knowledge-based approach to automatic program analysis”, Doctoral dissertation, University of Illinois at Urbana-Champaign, 1989.

[Ning 94] Ning, J, “Automating support for legacy code understanding”, Communications of the ACM, 37(5), May 1994, pp. 50-57.

[Palsberg 91] Palsberg, J, “Object-oriented type inference”, Proceedings of the 1991 Conference on Object-Oriented Programming Systems, Languages, and Applications, ACM SIGPLAN Notices 26(11), October 1991, pp. 146-160.

[Pree 95] Pree, W. Design Patterns for Object-Oriented Software Development. Addison-Wesley, 1995.

[Porter 92] Porter, H. “Separating the subtype hierarchy from the inheritance of implementation”, Journal of Object-Oriented Programming, 4(9), February 1992, pp. 20-29.

[Quilici 94] Quilici, A. “A memory-based approach to recognizing program plans”, Communications of the ACM, May 1994.

[Rich 88] Rich, C. and Waters, R. “The Programmer’s Apprentice: a research overview”, IEEE Computer, 21(11), November 1988, pp. 11-24.

[Rich 90a] Rich, C., Waters, R. The Programmers Apprentice. Addison-Wesley, 1990.

[Rich 90b] Rich, C., Wills, C. “Recognizing a program’s design: A graph-parsing approach”, IEEE Software, 7(1), January 1990, pp. 82-89.

[Rumbaugh 91], Rumbaugh, J., Premerlani, W., Blaha, M. Object-Oriented Modeling and Design. Prentice Hall, Englewood Cliffs, N.J., 1991.

[Wilde 92] Wilde, N., Huitt, R. “Maintenance support for object-oriented programs”, IEEE Transactions on Software Engineering, 18(12), December 1992, pp. 1038-1044.

(72)
(73)

References

Related documents

In Proceedings of the IEEE Computer Society Conference on Com- puter Vision and Pattern Recognition , volume 1 , pages 285 – 292 , San Diego, California, June 2005.. Speech

 Collaborative in terms of the PO, facility, host and home school districts and the youth and family working together to ensure that placement interventions are tied to

[r]

Public school teachers within a Pennsylvania intermediate unit are receiving inadequate job-embedded professional development that recognizes knowledge of content, pedagogy,

While the arcs show a relative velocity offset with high dispersions, the velocity offsets and dispersions in the arcs overall are smaller than the clear outflow compo- nent seen in

The past 12 months has been one of many achievements for the Group including record occupancy in our Garden Villages rental portfolio, growing development and sales in our

Oleh itu, tujuan kajian ini adalah untuk mengenai pasti kegemaran maklum balas pensyarah dan pelajar, pandangan mereka tentang kepentingan pelbagai jenis aspek

Once the registered nurse’s ethical ideology and strength of professional values are established, the extent to which the registered nurse demonstrates one particular value, such