Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV �
/HFWXUH���2203$
� 2EMHFW RULHQWHG FRQFHSWV
� (QFDSVXODWLRQ
� ,QKHULWDQFH
� 3RO\PRUSKLVP
� $EVWUDFW FODVVHV
� $VVRFLDWLRQV
� 8QLILHG 3URFHVV� ([WUHPH 3URJUDPLQJ�:DWHUIDOO PRGHO
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV �
3URFHGXUDO�/DQJXDJHV
� ([DPSOHV RI SURFHGXUDO ODQJXDJHV� &� 3DVFDO� )RUWUDQ� $ SURJUDP LQ D SURFHGXUDO ODQJXDJH LV EDVLFDOO\D OLVW RI LQVWUXFWLRQV
� $V SURJUDPV EHFRPH ODUJHU WKH\ DUH XVXDOO\ EURNHQ GRZQLQWR VPDOOHU XQLWV� VXFK DV IXQFWLRQV� SURFHGXUHV� VXEURXWLQHV
� )XQFWLRQV FDQ EH JURXSHG WRJHWKHU LQWR PRGXOHV DFFRUGLQJWR WKHLU IXQFWLRQDOLW\� REMHFWLYHV DQG WDVNV�
� 6WUXFWXUHG SURJUDPPLQJ LV D SURJUDPPLQJ SDUDGLJP WKDWWR D ODUJH H[WHQW UHOLHV RQ WKH LGHD RI GLYLGLQJ D SURJUDPLQWR IXQFWLRQV DQG PRGXOHV�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV �
3UREOHPV ZLWK 6WUXFWXUHG 3URJUDPPLQJ
� )XQFWLRQV KDYH XQUHVWULFWHG DFFHVV WR JOREDO GDWD
JOREDO GDWD <
)XQFWLRQ $�
ORFDO GDWD
)XQFWLRQ %�
ORFDO GDWD
)XQFWLRQ &�
ORFDO GDWD
� /DUJH QXPEHU RI SRWHQWLDO FRQQHFWLRQV EHWZHHQ IXQFWLRQV DQGGDWD �HYHU\WKLQJ LV UHODWHG WR HYHU\WKLQJ� QR FOHDU ERXQGDULHV�� PDNHV LW GLIILFXOW WR FRQFHSWXDOL]H SURJUDP VWUXFWXUH� PDNHV LW GLIILFXOW WR PRGLI\ DQG PDLQWDLQ WKH SURJUDPH�J� � LW LV GLIILFXOW WR WHOO ZKLFK IXQFWLRQV DFFHVV WKH GDWD
JOREDO GDWD ; JOREDO GDWD =
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV �
3UREOHPV ZLWK 6WUXFWXUHG 3URJUDPPLQJ
� GDWD DQG IXQFWLRQ DUH FRQVLGHUHG DV WZR VHSDUDWHHQWLWLHV
� PDNHV LW GLIILFXOW WR PRGHO WKLQJV LQ WKH UHDO ZRUOG� FRPSOH[ UHDO ZRUOG REMHFWV KDYH ERWK DWWULEXWHV DQGEHKDYLRXUV
� DWWULEXWHV� SHRSOH� QDPH� GDWH RI ELUWK� H\H FRORU� MRE WLWOH� FDUV� KRUVH SRZHU� QXPEHU RI GRRUV� FRORU
� EHKDYLRXUV� SHRSOH� DVN D SHUVRQ WR EULQJ \RX D EHHU� FDUV� DSSO\ WKH EUDNHV� WXUQ RQ WKH HQJLQH
� DWWULEXWHV DQG EHKDYLRUV DORQH DUH VXIILFLHQW WR UHDOLVWLFDOO\PRGHO UHDO ZRUOG REMHFWV EXW D XQLILHG YLHZ LV QHHGHG
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV �
2EMHFW�2ULHQWHG�/DQJXDJHV
� 6LPXOD
� )LUVW 22 SURJUDPPLQJ ODQJXDJH ���¶V�
� 6PDOOWDON
� &RQFHSWXDOL]HG LQ WKH ��¶V DQG ��¶V
� 6PDOOWDON��� ZDV D PDMRU PLOHVWRQH
� &��
� %DVHG RQ ODQJXDJH &
� ,QVSLUHG E\ 6LPXOD
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV �
2EMHFW�2ULHQWHG�/DQJXDJHV
� (LIIHO� 2EMHFWLYH &� &/26 �22 /LVS�� 2EMHFW�3DVFDO
� -$9$
� 'HYHORSHG LQ WKH HDUO\ ��¶V
� 3ODWIRUP LQGHSHQGHQW
� :(% RULHQWHG
� &OLHQW�VHUYHU
� 6HFXULW\
� 0DQ\ IUDPHZRUNV IRU *8, �6ZLQJ�� FRQFXUUHQWSURJUDPPLQJ� GLVWULEXWHG FRPSXWLQJ �-'%&�&25%$� -DYD%HDQV��
�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV �
2EMHFW�2ULHQWHG�$SSURDFK
2EMHFW
GDWD
IXQFWLRQV
� (QFDSVXODWLRQ� LQWHJUDWH GDWD DQG IXQFWLRQV LQWR RQH REMHFW� 'DWD KLGLQJ � GDWD LV KLGGHQ WR WKH RXWVLGH ZRUOG DQG FDQ
RQO\ EH DFFHVVHG YLD WKH IXQFWLRQV� ,Q 22 ODQJXDJHV IXQFWLRQV DVVRFLDWHG WR DQ REMHFW DUH FDOOHG
PHPEHUVKLS IXQFWLRQV RU PHWKRGV�� 'DWD LWHPV DUH FDOOHG DWWULEXWHV RU LQVWDQFH YDULDEOHV
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV �
2EMHFW�2ULHQWHG�$SSURDFK
2EMHFW $
GDWD
IXQFWLRQV
2EMHFW &
GDWD
IXQFWLRQV
2EMHFW %
GDWD
IXQFWLRQV
� VHSDUDWLRQ� REMHFWV LQWHUDFW ZLWK HDFK RWKHU RQO\ YLDWKH WKHLU PHPEHUVKLS IXQFWLRQV
� VHSDUDWLRQ KHOSV WR PDLQWDLQ WKH LQWHJULW\ RI WKH HQWLUHSURJUDP
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV �
$EVWUDFWLRQ
� $Q DEVWUDFWLRQ LV D QDPHG FROOHFWLRQ RI DWWULEXWHV DQGEHKDYLRU UHOHYDQW WR PRGHO D JLYHQ HQWLW\ IRU VRPHSDUWLFXODU SXUSRVH
HQWLW\DWWULEXWHV
EHKDYLRU
^GDWD� GDWD�«`
^ PHWKRG� PHWKRG«`
UHDO�ZRUOG DEVWUDFWLRQ VRIWZDUH
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
(QFDSVXODWLRQ
� LQGHSHQGHQW VSHFLILFDWLRQ RI D YLVLEOH LQWHUIDFH DQGD KLGGHQ LPSOHPHQWDWLRQ
� LQWHUIDFH LV VRPH NLQG RI FRQWUDFW EHWZHHQ WKH REMHFWDQG WKH XVHU RI WKLV REMHFW RU PRGXOH
� VHSDUDWLRQ LV QRW UHVWULFWHG WR REMHFW�RULHQWHG SURJUDPPLQJIRU H[DPSOH KHDGHU ILOHV LQ VWDQGDUG & FDQ EH UHJDUGHGDV LQWHUIDFHV
,PSOH�PHQWDWLRQ
LQWHUIDFHYLVLEOH
KLGGHQ
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
6WUXFWXUH�RI�DQ�2EMHFW
2EMHFW
GDWD
PHWKRG FRGH
PHWKRG FRGH
PHWKRG FRGH
PHWKRG FRGH
,QWHUIDFH ,PSOHPHQWDWLRQ
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
([DPSOHV�RI�2EMHFWV
� SK\VFLDO REMHFWV
� YHKLFOHV LQ D WUDIILF�IORZ VLPXODWLRQ� HOHFWULFDO FRPSRQHQWV LQ D FLUFXLW�
GHVLJQ SURJUDP
� LWHPV LQ D VKRS� HOHPHQWV RI D FRPSXWHU XVHU
HQYLURQPHQW
� PHQXV� JUDSKLFDO REMHFWV
� EXWWRQV
� GDWD�VWRUDJH FRQVWUXFWV� DUUD\V
� OLQNHG OLVWV
� KXPDQ HQWLWLHV
� HPSOR\HHV� VWXGHQWV
� FROOHFWLRQV RI GDWD
� LQYHQWRU\� DGGUHVV ERRN
� EXVLQHVV SURFHVVHV
� FUHGLW FDUG DSSURYDO� VDOH
� SD\PHQW
� VSHFLILFDWLRQV� SURGXFW VSHFLILFDWLRQ
� IOLJKW VSHFLILFDWLRQ
�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
([DPSOH�RI�D�&ODVV�LQ�-$9$
public class Point //declares a class{
private double x,y; // class data
public void move(double dx, double dy)// method to move a point
{ x+=dx; y+=dy; }}
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
&ODVVHV�YHUVXV�2EMHFWV
� $ FODVV LV D SURWRW\SH VSHFLILFDWLRQ IURP ZKLFKRQH FDQ JHQHUDWH D QXPEHU RI VLPLODU REMHFWV
� $ FODVV FDQ EH FRQVLGHUHG DV DQ REMHFW IDFWRU\�
� $Q REMHFW LV VDLG WR EH D PHPEHU RU LQVWDQFH RI D FODVV
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
,QVWDQWLDWLRQ�RI�2EMHFWV
SHUVRQGDWD� QDPH� SBQXPPHU� DGGUHVV� GDWH RI ELUWKPHWKRGV� JHWDJH��� FKDQJHDGGUHVV�QHZDGGUHVV�
&ODVV
SHUVRQGDWD� (ULN 2OVVRQ� ������������ +DPQJDWDQ �� PDOH
SHUVRQGDWD� /HQD %UDW� ������������ 6WXUHSODQ �� IHPDOH
SHUVRQGDWD� /DUV %DFNH� �������$���� 0lODUWRUJHW ��� PDOH
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
,QVWDQWLDWLRQ�RI�2EMHFWV
FODVV 3HUVRQ ^SULYDWH 6WULQJ QDPH�SULYDWH LQW SHUVRQBQXPEHU�SULYDWH 6WULQJ DGGUHVV�SXEOLF 3HUVRQ�6WULQJ QBQDPH� LQW SBQXP�
6WULQJ QBDGGUHVV� ^«``
3HUVRQ HPSOR\HH QHZ 3HUVRQ�³/HQD %UDW´������������´+XPOHJDWDQ ��� ����� 6WRFNKROP´��
3HUVRQ VWXGHQW QHZ 3HUVRQ�³-DQ (NOXQG´������������´'URWWQLQJVJDWDQ ��� ����� 6WRFNKROP´��
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
2EMHFW�2ULHQWHG�'HVLJQ
� 7KH KDUG SDUW DERXW REMHFW�RULHQWHG GHVLJQ LV
GHFRPSRVLQJ D V\VWHP LQWR REMHFWV EHFDXVHPDQ\ IDFWRUV FRPH LQWR SOD\�
� (QFDSVXODWLRQ
� *UDQXODULW\
� 'HSHQGHQF\
� )OH[LELOLW\
� 3HUIRUPDQFH
� (YROXWLRQ
� 5HXVDELOLW\6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3URJUDP WR DQ ,QWHUIDFH QRW DQ,PSOHPHQWDWLRQ
� $OO FODVVHV GHULYHG IURP DQ DEVWUDFW FODVV VKDUH LWVLQWHUIDFH�
� 0DQLSXODWLQJ REMHFWV VROHO\ LQ WHUPV RI WKHLULQWHUIDFH GHILQHG E\ WKH DEVWUDFW FODVV RIIHUV WZRPDMRU EHQHILWV�
� &OLHQWV UHPDLQ XQDZDUH RI WKH VSHFLILF W\SHV RIREMHFWV WKH\ XVH� DV ORQJ DV WKH REMHFWV DGKHUH WRWKH LQWHUIDFH WKDW FOLHQWV H[SHFW�
� &OLHQWV UHPDLQ XQDZDUH RI WKH FODVVHV WKDWLPSOHPHQW WKHVH REMHFWV� &OLHQWV RQO\ NQRZ DERXWWKH DEVWUDFW FODVVHV GHILQLQJ WKH LQWHUIDFH�
� 3URJUDP WR DQ LQWHUIDFH QRW DQ LPSOHPHQWDWLRQ�
�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
5HODWLRQVKLSV�DPRQJ�2EMHFWV
� $WWULEXWH�2QH REMHFW XVHV DV DQRWKHU REMHFW DV DQ DWWULEXWH�QDPHO\ DV PHPEHU GDWD� IRU H[DPSOH D 3HUVRQFRQWDLQV DQ DWWULEXWH 1DPH� 7KLV W\SH RI UHODWLRQ�VKLS LV DOVR FDOOHG D ZHDN DVVRFLDWLRQ RU KDV�DUHODWLRQVKLS� ([DPSOH� $ 3HUVRQ KDV D 1DPH
� $VVRFLDWLRQ�2QH REMHFW XVHV DQRWKHU WR KHOS LW FDUU\ RXW D WDVN�&ODVVHV WKDW FROODERUDWH DUH XVXDOO\ UHODWHG WKURXJKDVVRFLDWLRQV� 7KLV W\SH RI UHODWLRQVKLS LV DOVRFDOOHG D XVHV UHODWLRQVKLS�([DPSOH� 7KH REMHFW 'ULYHU LQYRNHVWKH PHWKRG %UDNH RI WKH REMHFW %UDNLQJ6\VWHP�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
5HODWLRQVKLSV�DPRQJ�2EMHFWV
� $JJUHJDWLRQ�$JJUHJDWLRQ PHDQV WKDW RQH REMHFW FRQWDLQV RWKHUREMHFWV� $JJUHJDWLRQ LV DOVR FDOOHG SDUW�RI UHODWLRQVKLS�([DPSOH� 7KH FODVV $GUHVVERRN FRQWDLQV PDQ\ 3HRSOH2EMHFWV�
� &RPSRVLWLRQ�&RPSRVLWLRQ LV EXLOGLQJ REMHFWV IURP SDUWV� ,W LV D VWURQJHUW\SH RI DJJUHJDWLRQ LQ ZKLFK WKH SDUWV DUH QHFHVVDU\ WRWKH ZKROH� QDPHO\ WKH\ DUH SHUPDQHQWO\ ERXQG WR WKHREMHFW DQG GR QRW H[LVW RXWVLGH WKH REMHFW�$ FODVV 3URFHVVRU FRQWDLQV D &38� 0HPRU\ DQG ,�2�3RUWV�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
$JJUHJDWLRQ
$JJUHJDWLRQ PHDQV WKDW RQH REMHFW FRQWDLQV RWKHUREMHFWV� $JJUHJDWLRQ LV DOVR FDOOHG SDUW�RI UHODWLRQVKLS�
$GGUHVVERRN 3HUVRQV
public class Person {private String name; ...
}
public class Addressbook { private Person[] persons; ...
}6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
$JJUHJDWLRQ
'RFXPHQW 3DUDJUDSK /LQHV
)LJXUHV
� �
�
package mybook;
class Line { private String text; ...}
class Paragraph { private Line[] lines; ... }
class Figure { ...}
class Document {
private Paragraph[] paragraphs;
private Figure[] figures; }
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
&RPSRVLWLRQ
&RPSRVLWLRQ LV EXLOGLQJ REMHFWV IURP SDUWV� ,W LVVWURQJH W\SH RI DJJUHJDWLRQ LQ ZKLFK WKH SDUWVDUH QHFHVVDU\ WR WKH ZKROH� QDPHO\ WKH\ DUH
SHUPDQHQWO\ ERXQG WR WKH REMHFW DQG GR QRWH[LVW RXWVLGH WKH REMHFW� &RPSRVLWLRQ LV ´LV EXLOGRI´ UHODWLRQVKLS
3URFHVVRU
&38
�
�
0HPRU\ ,�2 3RUW
� �
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
*HQHUDOL]DWLRQ
*HQHUDOL]DWLRQ LV D UHODWLRQVKLS GHILQHG DW WKH FODVV OHYHOQRW WKH REMHFW OHYHO� ZKLFK PHDQV WKDW DOO REMHFWV RIWKLV FODVV PXVW REH\ WKH UHODWLRQVKLS� 7KLV LV W\SH RIUHODWLRQVKLS LV DOVR FDOOHG D LV�D�NLQG�RI UHODWLRQVKLS�
9HKLFOH
&DU 7UXFN 0RWRU &\FOH
class Vehicle {...}
class Car extends Vehicle {...}
class Truck extends Vehicle {...}
class MotorCycle extends Vehicle {...}
�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
5HODWLRQVKLSV�DPRQJ�2EMHFWV
� *HQHUDOL]DWLRQ
*HQHUDOL]DWLRQ LV D UHODWLRQVKLS GHILQHG DW WKH FODVV OHYHOQRW WKH REMHFW OHYHO� ZKLFK PHDQV WKDW DOO REMHFWV RIWKLV FODVV PXVW REH\ WKH UHODWLRQVKLS� 7KLV LV W\SH RIUHODWLRQVKLS LV DOVR FDOOHG D LV�D�NLQG�RI UHODWLRQVKLS�*HQHUDOL]DWLRQ LQ REMHFW RULHQWHG ODQJXDJHV LV UHDOL]HGE\ PHDQV RI LQKHULWDQFH�([DPSOH� $ FDU LV D NLQG RI YHKLFOH�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
,QKHULWDQFH
� ,Q RXU GDLO\ OLYHV ZH XVH WKH FRQFHSW RI FODVVHV GLYLGHGLQWR VXEFODVVHV� IRU H[DPSOH YHKLFOHV DUH GLYLGHG LQWR FDUV�WUXFNV� EXVHV DQG PRWRU F\FOHV�
� 7KH SULQFLSOH LQ WKLV VRUW RI GLYLVLRQ LV WKDW HDFK VXE�FODVV VKDUHVVRPH FRPPRQ IHDWXUHV ZLWK WKH EDVH FODVV IURP ZKLFK LWLV GHULYHG� EXW DOVR KDV LWV RZQ SDUWLFXODU IHDWXUHV�
9HKLFOH
ZKHHOVHQJLQH
&DU
ZKHHOVHQJLQHWUXQN
7UXFN
ZKHHOVHQJLQHWUDLOHUWUXQN WUDLOHU
EDVH FODVVRU VXSHU FODVV
VXE�FODVVHV RUGHULYHG FODVVHV
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
7UXFN
,QKHULWDQFH
9HKLFOH
EUDNH��VWDUWBHQJLQH��
&DU
EUDNH��VWDUWBHQJLQH��RSHQBGRRU��SXOOBWUDLOHU��
EDVH FODVV
VXE�FODVVHV RUGHULYHG FODVVHV
� $ VXE�FODVV DOVR VKDUHV FRPPRQ PHWKRGV ZLWK LWVVXSHU�FODVV EXW FDQ DGG LWV RZQ PHWKRGV RU RYHUZULWHWKH PHWKRGV RI LWV VXSHU�FODVV�
EUDNH��VWDUWBHQJLQH��RSHQBGRRU��RSHQBGRRU��
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
,QKHULWDQFH
7HUPLQRORJ\�� &DU LV D VXE�FODVV �RU GHULYHG FODVV� RI 9HKLFOH� &DU LQKHULWV IURP 9HKLFOH� &DU LV D VSHFLDOL]DWLRQ RI 9HKLFOH� 9HKLFOH LV D VXSHU�FODVV �RU EDVH FODVV� RI &DU� 9HKLFOH LV D JHQHUDOL]DWLRQ RI &DU
� ,Q -$9$ DQ REMHFW RI D VXE�FODVV LV VXEVWLWXWDEOHIRU DQ REMHFW RI WKH VXSHU�FODVV� LQ RWKHU ZRUGVDQ REMHFW RI FODVV &DU FDQ EH XVHG ZKHQHYHUDQ REMHFW RI FODVV 9HKLFOH LV UHTXLUHG� 7KLV SURFHVVLV FDOOHG ´XSFDVWLQJ´�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
5HXVDELOLW\
� 5HXVDELOLW\ PHDQV WKDW D FODVV WKDW KDV EHHQ GHVLJQHG�FUHDWHG DQG GHEXJJHG RQFH FDQ EH GLVWULEXWHG WR RWKHUSURJUDPPHUV IRU XVH LQ WKHLU RZQ SURJUDPV�
� 6LPLODU WR WKH LGHD RI D OLEUDU\ RI IXQFWLRQV LQ D SURFHGXUDOODQJXDJH�
� 7KH FRQFHSW RI LQKHULWDQFH SURYLGHV DQ LPSRUWDQW H[WHQVLRQWR WKH LGHD RI UHXVDELOLW\� DV LW DOORZV D SURJUDPPHU WR WDNHDQ H[LVWLQJ FODVV ZLWKRXW PRGLI\LQJ LW DQG DGGLQJ DGGLWLRQDOIHDWXUHV DQG IXQFWLRQDOLW\� 7KLV LV GRQH E\ LQKHULWLQJ D QHZVXE�FODVV IURP WKH H[LVLWLQJ EDVH FODVV�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
,QKHULWDQFH�YV��&RPSRVLWLRQ
� 7KH WZR PRVW FRPPRQ WHFKQLTXHV IRU UHXVLQJIXQFWLRQDOLW\ LQ REMHFW�RULHQWHG V\VWHPV DUH FODVV
LQKHULWDQFH DQG REMHFW FRPSRVLWLRQ
� &ODVV LQKHULWDQFH GHILQHV WKH LPSOHPHQWDWLRQ RIRQH FODVV LQ WHUPV RI DQRWKHU¶V LPSOHPHQWDWLRQ�:LWK LQKHULWDQFH WKH LQWHUQDOV RI SDUHQW FODVVHVDUH RIWHQ YLVLEOH WR VXE�FODVVHV �ZKLWH ER[��
� ,Q REMHFW FRPSRVLWLRQ QHZ IXQFWLRQDOLW\ LVREWDLQHG E\ DVVHPEOLQJ RU FRPSRVLQJ REMHFWV WRJHW PRUH FRPSOH[ IXQFWLRQDOLW\� ,QWHUQDO GHWDLOVRI REMHFWV DUH QRW YLVLEOH� REMHFWV DSSHDU DV EODFN
ER[HV�
�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
,QKHULWDQFH�YV��&RPSRVLWLRQ
� &RPSRVLWLRQ�
� &RPSRVLWLRQ LV EXLOGLQJ REMHFWV IURP SDUWV�
� &RPSRVLWLRQ GHQRWHV D KDV�D UHODWLRQVKLS
� &RPSRVLWLRQ LV GHILQHG RQ WKH REMHFW OHYHO�
� ([DPSOH� $ &DU KDV DQ (QJLQH
� *HQHUDOL]DWLRQ�
� *HQHUDOL]DWLRQ LV D UHODWLRQVKLS GHILQHG DW WKH FODVVOHYHO QRW WKH REMHFW OHYHO� ZKLFK PHDQV WKDW DOOREMHFWV RI WKLV FODVV PXVW REH\ WKH UHODWLRQVKLS�
� *HQHUDOL]DWLRQ GHQRWHV D LV�D�NLQG�RI UHODWLRQVKLS�
� ([DPSOH� $ &DU LV D NLQG RI 9HKLFOH�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
,QKHULWDQFH�9HKLFOH�(QJLQH
class Engine{
private double horsepower;Engine(double hp) { hp=horsepower; }void StartEngine();
}class Vehicle extends Engine // bad design{
Vehicle(double hp) { super(hp); }}Vehicle volvo = new Vehicle(80);volvo.StartEngine();
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
&RPSRVLWLRQ�9HKLFOH�(QJLQH
class Engine{
private double horsepower;Engine(double hp) { hp=horsepower; }void StartEngine();
}class Vehicle {
private Engine engine;Vehicle (double hp) { engine=new Engine(hp); }void Start() { engine.StartEngine(); }
}
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3URV�DQG�&RQV�RI�,QKHULWDQFH
� 3URV� &ODVV LQKHULWDQFH LV GHILQHG VWDWLFDOO\ DWFRPSLOH�WLPH DQG LV VWUDLJKWIRUZDUG WR XVH� VLQFHLW LV VXSSRUWHG GLUHFWO\ E\ WKH SURJUDPPLQJODQJXDJH� &ODVV LQKHULWDQFH PDNHV LW HDVLHU WRPRGLI\ WKH LPSOHPHQWDWLRQ EHLQJ UHXVHG�
� &RQV� <RX FDQ QRW FKDQJH WKH LPSOHPHQWDWLRQVEHLQJ LQKHULWHG DW UXQ�WLPH� ,QKHULWDQFH H[SRVHVDV VXEFODVV WR GHWDLOV RI LWV SDUHQW¶VLPSOHPHQWDWLRQ� $Q\ FKDQJH LQ WKH SDUHQW¶VLPSOHPHQWDWLRQ ZLOO IRUFH WKH VXEFODVV WR FKDQJH�2QH FXUH LV WR RQO\ LPSOHPHQW LQWHUIDFHV VLQFHWKH\ SURYLGH OLWWOH RU QR LPSOHPHQWDWLRQ�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3URV�DQG�&RQV�RI�&RPSRVLWLRQ
� &RPSRVLWLRQ LV GHILQHG DW UXQ�WLPH WKURXJKREMHFWV DFTXLULQJ UHIHUHQFHV WR RWKHU REMHFWV�
� &RPSRVLWLRQ UHTXLUHV REMHFWV WR UHVSHFW HDFKRWKHU¶V LQWHUIDFH� %HFDXVH REMHFWV DUHDFFHVVHG VROHO\ WKURXJK WKHLU LQWHUIDFHV ZHGRQ¶W EUHDN HQFDSVXODWLRQ� $Q\ REMHFW FDQ EHUHSODFHG DW UXQ�WLPH E\ DQRWKHU DV ORQJ DV LWKDV WKH VDPH W\SH�
� %HFDXVH DQ REMHFW�V LPSOHPHQWDWLRQ LVZULWWHQ LQ WHUPV RE REMHFW LQWHUIDFHV� WKHUHDUH VXEVWDQWLDOO\ IHZHU LPSOHPHQWDWLRQGHSHQGHQFLHV�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
,QKHULWDQFH�YV��2EMHFW�&RPS�
� )DYRULQJ REMHFW FRPSRVLWLRQ RYHU FODVV LQKHULWDQFHKHOSV \RX NHHS HDFK FODVV HQFDSVXODWHG DQGIRFXVHG RQ RQH WDVN�
� &ODVVHV DQG FODVV KLHUDUFKLHV UHPDLQ VPDOO DQGPDQDJDEOH�
� $ GHVLJQ EDVHG RQ REMHFW FRPSRVLWLRQ KDV PRUHREMHFWV �LI IHZHU FODVVHV� DQG WKH V\VWHP EHKDYLRUGHSHQGV RQ WKHLU LQWHUUHODWLRQVKLSV LQVWHDG RI EHLQJGHILQHG LQ RQH FODVV�
� )DYRU REMHFW FRPSRVLWLRQ RYHU FODVV LQKHULWDQFH�
�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3RO\PRUSKLVP��2YHUORDGLQJ
� 3RO\PRUSKLVP � XVLQJ IXQFWLRQV DQG RSHUDWRUV LQ GLIIHUHQWZD\V� GHSHQGLQJ RQ ZKDW WKH\ DUH RSHUDWLQJ RQ�
� 3RO\PRUSKLVP DOORZV LW WR PDQLSXODWH REMHFWV ZLWKRXWNQRZLQJ WKHLU H[DFW W\SH EXW RQO\ WKHLU FRPPRQ SURSHUW\�IRU H[DPSOH� WKH FODVVHV 7ULDQJOH DQG &LUFOH ERWKKDYH WKHLU RZQ �SRO\PRUSKLF� YHUVLRQ RI WKH PHWKRG 'UDZ�EXW D JUDSKLF URXWLQH WKDW GUDZV JUDSKLFDO HOHPHQWV GRHVQRW KDYH WR NQRZ ZKLFK REMHFW LW PDQLSXODWHV�
� 2YHUORDGLQJ� DQ H[LVWLQJ RSHUDWRU� VXFK DV � RU LV JLYHQWKH FDSDELOLW\ WR RSHUDWH RQ D QHZ GDWD W\SH� IRU H[DPSOHGHILQH WKH RSHUDWRU � IRU WKH FODVV &RPSOH[ VXFK WKDWLW UHDOL]HV WKH DGGLWLRQ RI WZR FRPSOH[ QXPEHUV�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3RO\PRUSKLVP
� SRO\PRUSKLVP PHDQV ´KDYLQJ PDQ\ VKDSHV´� LQ 22 SURJUDPPLQJ LW UHIHUV WR D VLWXDWLRQ LQ ZKLFK DQREMHFW FRXOG EH DQ\ RI VHYHUDO W\SHV
� D SRO\PRUSKLF YDULDEOH FDQ UHIHU WR REMHFWV RIGLIIHUHQW FODVVHV� IRU H[DPSOH D JUDSKLF REMHFW FDQEH HLWKHU D FLUFOH RU D WULDQJOH
� D SRO\PRUSKLF IXQFWLRQ RU RSHUDWRU FDQ WDNH DUJXPHQWV RIGLIIHUHQW W\SHV
� H[DPSOH�int max(int a, int b);double max(double a, double b);
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
*UDSKLFDO�2SHUDWLRQV
PRYH�G[�G\�G[�G\
URWDWH�3�[�\��SKL� 3�[�\�
URWDWHVKDSH�SKL�
3�[�\� FHQWHU��
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3RO\PRUSLVKP '\QDPLF %LQGLQJ
� $VVXPH \RX KDYH D FODVV OLEUDU\ IRU JUDSKLFV REMHFWV�$OO FODVVHV OLNH 3RLQW� &LUFOH� 5HFWDQJOH� /LQH HWF�LQKHULW IURP D EDVH FODVV 6KDSH�
� 6KDSH LV DQ DEVWUDFWLRQ RI SURSHUWLHV WKDW DOOJUDSKLFDO HOHPHQWV KDYH LQ FRPPRQ�
� %XW WKHUH ZLOO QHYHU EH DQ REMHFW RI WKH 6KDSH FODVVLWVHOI� ZH ZLOO RQO\ PDNH VSHFLILF VKDSHV VXFK DVFLUFOHV DQG UHFWDQJOHV�
� $V FODVV WKDW RQO\ DFWV DV D EDVH FODVV IRU RWKHUFODVVHV LV FDOOHG DQ DEVWUDFW FODVV�
� <RX FUHDWH DQ DEVWUDFW FODVV ZKHQ \RX ZDQW WRPDQLSXODWH D VHW RI FODVVHV WKURXJK WKLV FRPPRQLQWHUIDFH�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
9LUWXDO�0HWKRGV
� 9LUWXDO PHWKRGV DOORZ WKH UH�GHILQLWLRQ RI
EDVH FODVV IXQFWLRQV LQ WKH GHULYHG FODVV
� 7KH SURJUDP GHFLGHV DW UXQ�WLPH QRW DWFRPSLOH WLPH ZKLFK YHUVLRQ RI D PHWKRG LV
FDOOHG �G\QDPLF ELQGLQJ�
� :KHQ YLUWXDO PHWKRGV DUH XVHG� D SURJUDPWKDW DSSHDUV WR EH FDOOLQJ D PHWKRG RI RQH
VXSHU�FODVV PD\ LQ UHDOLW\ EH FDOOLQJ D PHWKRGRI RQH RI LWV VXE�FODVVHV�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
$EVWUDFW�0HWKRG
� $ EDVH FODVV EHFRPHV DQ DEVWUDFW FODVV LI LW FRQWDLQVDW OHDVW RQH DEVWUDFW PHWKRG�
� $Q DEVWUDFW PHWKRG UHPDLQV XQGHILQHG LQ WKH EDVHFODVV EXW KDV WR EH RYHUORDGHG E\ LWV VXEFODVVHV�
� $Q DEVWUDFW PHWKRG PXVW EH RYHUORDGHG E\ WKHVXEFODVV ZKHUHDV D YLUWXDO �QRQ�DEVWUDFW� PHWKRGFDQ EH RYHUORDGHG E\ VXEFODVVHV�
�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3RO\PRUSKLVP '\QDPLF %LQGLQJ
abstract class Shape {abstract void move(double dx, double dy);abstract void rotate(double angle); // rotate around origin
abstract Point center(); // center Point of Shapevoid rotateshape(double angle) {…} // rotate Shape around
// centervoid rotate(Point p, double angle) { … } // rotate around Point p
}� 6KDSH LV DQ DEVWUDFW FODVV WKDW LV LQFRPSOHWH DV LW FRQWDLQV
�DEVWUDFW� PHWKRGV IRU ZKLFK LW SURYLGHV QR LPSOHPHQWDWLRQ� ,WGHILQHV WKH LQWHUIDFH WR ZKLFK WKH VXE�FODVVHV PXVW FRPSO\DQG PLJKW SURYLGH LPSOHPHQWDWLRQ IRU VRPH PHWKRGV�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3RO\PRUSKLVP '\QDPLF %LQGLQJ
class Point extends Shape // subclass inherits from Shape{private double x,y;Point(double nx, double ny) { x=nx; y= ny;} // constructorvoid move(double dx, double dy) {x+=dx; y+=dy;}void rotate(double angle) {double tmp_x = x * Math.cos(angle) - y.Math.sin(angle); y = x * Math.cos(angle) + y.Math.sin(angle);
x=tmp_x;}Point center() {return this;} double GetX() { return x;}; double GetY() { return y;}
}
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3RO\PRUSKLVP '\QDPLF %LQGLQJ
class Line extends Shape // subclass inherits from Shape{private Point p1, p2;Line(Point np1, Point np2) { p1=np1; p2=np2;} void move(double dx, double dy) {
p1.move(dx,dy); p2.move(dx,dy) }void rotate(double angle) {
p1.rotate(angle); p2.rotate(angle) }Point center() { new Point((p1.get_x()+p2.get_x())/2.0,((p1.get_y()+p2.get_y())/2.0)}
}
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3RO\PRUSKLVP '\QDPLF %LQGLQJ
class Circle extends Shape // subclass inherits from Shape{private Point p;private double radius;Circle(Point np, double r) { p=np; radius=r;} void move(double dx, double dy) { p.move(dx,dy); }void rotate(double angle) { p.rotate(angle); }Point center() { return p; }
}
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3RO\PRUSKLVP '\QDPLF %LQGLQJ
� 3RLQW� &LUFOH DQG /LQH SURYLGH WKHLU RZQ SRO\PRUSKLFPHWKRG YRLG PRYH�� WR PRYH WKH VKDSH�
� 7KH WHUP G\QDPLF ELQGLQJ UHIHUV WR WKH SURFHVVRI LGHQWLI\LQJ DW UXQ WLPH ZKDW FRGH VKRXOG EH H[HFXWHGDV D UHVXOW RI D PHVVDJH
Point p = new Point(10,10);Line l = new Line(new Point(0,0), new Point(10,20));Circle c = new Circle( new Point(5,5), 8);Shape s;s=c;s.move(5,10); // Shape bounds to Circle move()s=l;s.move(3,9); // Shape bounds to Line move()
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
'\QDPLF�%LQGLQJ
&LUFOH
PRYH��
Point p=new Point(10,15);s=p;s.move(15,0);
3RLQW
PRYH��
/LQH
PRYH��
Shape s;Circle c=new Circle (new Point(0,0),5);s=c;s.move(10,15);
Line l=new Line(new Point(0,0),new Point(10,5));
s=l;s.move(10,10);
�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3RO\PRUSKLVP
Shape[] shapes = new Shape[3]; // Null references shapes[0] = new Point(3,9);shapes[1]= new Line( new Point(0,0),
new Point(10,20));shapes[2]=new Circle(new Point(15,5), 8);
for (int i=0; i<shapes.length; i++){
shapes[i].move(-10,0);shapes[i].rotate(new Point(4,5), Math.Pi/2);
}
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3RO\PRUSKLVP '\QDPLF %LQGLQJ
abstract class Shape {public abstract void move(double dx, double dy);public abstract void rotate(double angle); // rotate around P(0,0)public abstract Point center(); // center Point of Shapepublic void rotateshape(double angle) // rotate around center{ rotate(center(),angle); }public void rotate(Point p, double angle) {
move(-p.get_x(),p.get_y());rotate(angle);move(p.get_x(),p.get_y());
}}
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
3RO\PRUSKLVP '\QDPLF %LQGLQJ
class Point extends Shape // subclass inherits from Shape{
private double x,y;Point(double nx, double ny) { x=nx; y= ny;} // constructorvoid move(double dx, double dy) {x+=dx; y+=dy;}void rotate(double angle) { … }void rotateshape(double angle) {} // overloads rotateshape() method in class ShapePoint center() {return this;} double GetX() { return x;}; double GetY() { return y;}
}
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
6RIWZDUH�'HYHORSPHQW�3URFHVV
� $ VRIWZDUH GHYHORSPHQW SURFHVV GHVFULEHV DQDSSURDFK WR EXLOGLQJ� GHSOR\LQJ DQG SRVVLEO\PDLQWDLQLQJ VRIWZDUH�
� 8QLILHG 3URFHVV �83�
� 7KH PRVW LPSRUWDQW LGHD RI WKH 8QLILHG 3URFHVV LVLWHUDWLYH DQG LQFUHPHQWDO GHYHORSPHQW�
� 7KH V\VWHP JURZV LQFUHPHQWDOO\ RYHU WLPH�LWHUDWLRQ E\ LWHUDWLRQ�
� (DFK LWHUDWLRQ WDFNOHV D VPDOO VXEVHW RIUHTXLUHPHQWV ZKLFK DUH TXLFNO\ ���� ZHHNV�GHVLJQHG� LPSOHPHQWHG DQG WHVWHG�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
%HQHILWV RI ,WHUDWLYH 'HYHORSPHQW
� (DUO\ UDWKHU WKDQ ODWH PLWLJDWLRQ RI KLJK ULVNV�WHFKQLFDO� UHTXLUHPHQWV� REMHFWLYHV� XVDELOLW\�
� (DUO\ YLVLEOH SURJUHVV
� (DUO\ IHHGEDFN� XVHU HQJDJHPHQW� DQGDGDSWDWLRQ
� 0DQDJHG FRPSOH[LW\
� /HDUQLQJ ZLWKLQ DQ LWHUDWLRQ FDQ LPSURYH WKHGHYHORSPHQW SURFHVV LWVHOI� LWHUDWLRQ E\ LWHUDWLRQ�
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
³:DWHUIDOO´�OLIH�F\FOH
� 7KH ZDWHUIDOO OLIHF\FOH LV VHTXHQWLDO� OLQHDU
UDWKHU WKDQ LWHUDWLYH� ,W FRQWDLQV WKH IROORZLQJVWHSV�
� &ODULI\� UHFRUG DQG FRPPLW WR D VHW RI
FRPSOHWH DQG IUR]HQ UHTXLUHPHQWV
� 'HVLJQ D V\VWHP EDVHG RQ WKHVHUHTXLUHPHQWV
� ,PSOHPHQW� EDVHG RQ WKH GHVLJQ
��
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
83�YV��:DWHUIDOO�OLIH�F\FOH
83
5HTXLUHPHQWV'HVLJQ,PSOHPHQWDWLRQ
5HTXLUHPHQWV'HVLJQ,PSOHPHQWDWLRQ
5HTXLUHPHQWV'HVLJQ,PSOHPHQWDWLRQ
,WHUDWLRQ �
,WHUDWLRQ �
,WHUDWLRQ �
5HTXLUHPHQWV
'HVLJQ
,PSOHPHQWDWLRQ
:DWHUIDOO
6HSWHPEHU ��� ���� �'���� �'���� � 2EMHFW 2ULHQWHG 0RGHOLQJ� 3URJUDPPLQJ $QDO\VLV ��
([WUHPH�3URJUDPPLQJ��;3�
� $JLOH� DGDSWLYH GHYHORSPHQW SURFHVV
� ,WHUDWLYH DQG LQFUHPHQWDO GHYHORSPHQW
� :ULWH WHVW FDVHV ILUVW
� 0DMRU GLIIHUHQFHV EHWZHHQ 83 DQG ;3
� 83 UHFRPPHQGV LQFUHPHQWDOO\ ZULWLQJ XVH FDVHVDQG QRQ�IXQFWLRQDO UHTXLUHPHQW GRFXPHQWV
� 83 UHFRPPHQGV PRUH YLVXDO GHVLJQ GLDJUDPPLQJ�EHIRUH SURJUDPPLQJ� ZKHUHDV ;3 SXWV PRUHHPSKDVLV RQ WKH FRGH LWVHOI UDWKHU WKDQ GLDJUDPVDQG GRFXPHQWDWLRQ