You are on page 1of 11

BO CO NHP MN CNG NGH PHN MM Sinh vin thc hin : Nguyn Thanh Dng Lp : 11CNTN MSSV : 1112056

Thnh ph H Ch Minh

5/2013

Tng quan v Extreme Programming

Mc lc

Mc lc................................................................................................................ 1 I II III IV V VI VII nh ngha ........................................................................................................... 2 Lch s ................................................................................................................. 2 Cc gi tr c bn ca Extreme Programming .................................................... 3 c im ............................................................................................................. 4 Nn tng ca quy trnh pht trin phn mm ...................................................... 4 Cc nguyn tc v bin php............................................................................... 6 Nhng vn khi s dng Extreme Programming............................................. 8 Cc khi nim lin quan ...................................................................................... 9 Tham kho ......................................................................................................... 10

Khoa CNTT i hc KHTN thnh ph H Ch Minh

Tng quan v Extreme Programming

I nh ngha : Extreme Programming (XP) l 1 phng php pht trin phn mm thuc nhm cc phng php pht trin phn mm nhanh (Agile Programming). N gip ci thin cc sn phm phn mm theo 5 gi tr chnh : giao tip, n gin, phn hi, tn trng, dng cm. Phng php ny c thc hin da trn vic tp hp c nhm lp trnh tham gia vo qu trnh pht trin, vi cc phn hi c a ra kp thi gip nhm pht trin bit h ang u trong qu trnh v iu chnh li phng php da theo tnh hung c th.

II Lch s : 1. Hnh thnh : Extreme Programming c pht trin bi Kent Beck trong khi ng ta ang lm vic cho mt d n ca t chc Chrysler Comprehensive Compensation System (C3). Beck tr thnh ngi ch nhim d n ca C3 vo nm 1993 v bt u chnh sa li phng php pht trin phn mm m mnh s dng trong d n vit mt cun sch v phng php ny, cun Extreme Programming Explained c xut bn vo thng 10 nm 1999. Sau Chrysler hy d n C3 vo nm 2000 sau khi cng ti c nm gi bi DaimlerBenz. Mc d phng php XP l mi, tuy nhin cc bin php c s dng trong n c thc hin t lu. Phng php sau nng cc bin php ln mt mc tt cng, to nn Extreme Programming. V d, bin php chun b cc test trc khi pht trin c s dng t sm bi d n sao Thy ca NASA vo u thp k 1960. 2. Qu trnh pht trin : Vic pht trin phn mm vo giai on thp nin 90 chia ra lm 2 nhm chnh :

Khoa CNTT i hc KHTN thnh ph H Ch Minh

Tng quan v Extreme Programming

Pht trin bn trong (internally) : lp trnh hng i tng thay th cho lp trnh th tc nh l mt m hnh lp trnh c a thch trong cng nghip phn mm. Pht trin b ngoi (externally) : s tri dy ca Internet v s bng n kinh doanh trn mng v vic pht trin ca cc cng ti nh l mt phn ca vic cnh tranh trong kinh doanh.

Cc yu cu thay i nhanh chng i hi mt chu trnh pht trin sn phm ngn hn, v tr nn khng ha hp vi cc phng php pht trin truyn thng. iu ny i hi mt phng php mi gip vic pht trin phn mm nhanh chng v hiu qu hn. C3 c thnh lp vi mc tiu tm ra mt cch tt nht, s dng h thng thanh ton ti Chrysler nh l 1 i tng nghin cu, vi ngn ng s dng l Smalltalk, v lp d liu truy cp l GemStone. Beck tham gia vo d n trn v sau tr thnh trng d n. ng mi Ron Jeffries tham gia vo gip pht trin v chnh sa cc phng php ni trn. Jeffries sau tr thnh trng nhm C3. Beck sau xut bn mt lot sch v XP, bt u vi cun Extreme Programming Explained, th hin tng ca ng rng hn, tt hn. Tc gi ca lot sch a ra nhiu kha cnh ca XP v cc phng php thc hin n. Trong lot sch cn c mt quyn vit v cch thc hin c th ca XP. XP to nn mt cn st nh vo cui nhng nm 1990 u nhng nm 2000, to nn mt s cc bin th ring so vi bn gc. Mc d cc phng php pht trin nhanh khc khng bao gi ng yn m lun pht trin, XP vn pht trin v b sung vo n cc bin php thc hin c p dng trong thc t lm phong ph thm cho bn thn. XP vn l mt phng php pht trin phn mm c a chung cho n thi im ny. III Cc gi tr c bn ca Extreme Programming : 1. S n gin (Simplicity) : Chng ta ch lm nhng g cn lm v c yu cu lm, khng hn. Chng ta s chn nhng bc nh, n gin t c mc ch v gim thiu cc ri ro c th c. 2. Giao tip (Communication) : Tt c mi ngi u l mt phn ca quy trnh pht trin v chng ta s giao tip vi nhau hng ngy. Tt c u lm chung t vic tip nhn yu cu n lp trnh. Cc gii php tt nht x l cc vn u c thc hin chung. 3. Phn hi (Feedback) : Chng ta m t v a ra cc sn phm sm, t lng nghe cc phn hi mt cch cn thn v a ra cc thay i nu c th.

Khoa CNTT i hc KHTN thnh ph H Ch Minh

Tng quan v Extreme Programming

4. S tn trng (Respect) : Tt c mi ngi u cn phi tn trng v c tn trng vi t cch l mt thnh vin ca d n. Tt c u ng gp cng sc nh nhau. 5. S can m (Courage) : Chng ta phi trung thc v quy trnh v vic nh gi. Chng ta khng bin h cho tht bi v chng ta u hng ti s thnh cng. Chng ta khng s g c v khng ai lm vic mt mnh. Hy sn sng thay i bt c khi no vn xut hin. IV c im : 1. Mc tiu : - To ra nhng sn phm cht lng cao hiu qu hn. - Gim chi ph khi thay i yu cu bng cch c ng thi nhiu chu trnh lp trnh ngn thay v mt chu trnh di. 2. iu lm cho XP khc bit so vi cc phng php pht trin khc : S dng trong cc d n nh, t 2-8 lp trnh vin. Nhanh, c th, cc phn hi c tr v lin tc t cc chu trnh ngn. L phng php tip cn cc k hoch gia tng trong vng i ca d n. Thay i k hoch thc hin cc chc nng linh hot, ty theo s thay i ca cng vic cn n. Ph thuc vo cc test t ng c vit bi lp trnh vin v khch hng iu chnh qu trnh pht trin, gip cho h thng pht trin v bt c cc li sm. Ph thuc vo qu trnh tin ha ca quy trnh thit k. Ph thuc vo s kt hp cht ch gia lp trnh vin v cc k nng c bn. Ph thuc vo vic thc hin cc quy trnh ngn hn ca lp trnh vin v di hn ca d n.

V Nn tng ca quy trnh pht trin phn mm : XP m t c 4 hot ng nn tng c thc hin trong qu trnh pht trin phn mm, l lp trnh (coding), kim th (testing), lng nghe (listening) v thit k (designing). Bn lp trnh v nu khng, bn khng hon thnh bt k th g. Bn kim li bi nu khng, bn khng bit khi no lp trnh xong. Bn lng nghe, bi nu khng th bn khng bit lp trnh ci g, kim tra ci g. V bn thit k c th lp trnh, kim tra v lng nghe v thi hn. chnh l 4 hot ng cn c trong mt quy trnh pht trin phn mm. 1. Lp trnh (Coding) :
Khoa CNTT i hc KHTN thnh ph H Ch Minh 4

Tng quan v Extreme Programming

Ch khi lp trnh, bn mi tht s lm mt th g trong quy trnh pht trin. Nu khng lp trnh, s khng c sn phm no hon thnh, Khi bn lp trnh 1 th g , bn s c c hi hiu r hn v kin trc tt nht cho sn phm. C nhng du hiu nht nh trong cc on m cho chng ta thy rng nhng phn kin trc quan trng no m chng ta vn cha hiu r. Lp trnh cng a n 1 c hi giao tip mt cch r rng v chnh xc. Nu bn c mt kin v gii thch ra, ngi khc c th s hiu nhm. Nhng nu chng ta lp trnh cng nhau, chng ta c th thy v hiu c chnh xc nhng g m cng s mun th hin. Cui cng, lp trnh l th khng th thiu trong qu trnh pht trin. K c khi sn phm c a ra, chng ta vn cn phi gi ly m ngun ca n. C m ngun, chng ta c th thc hin c rt nhiu mc ch. 2. Kim th (Testing) : Vic kim tra gip cho chng trnh tn ti c lu hn. Lp trnh khi c b test c sn cng th v hn khi khng c. Lp trnh v kim th song hnh vi nhau s nhanh hn so vi vic ch lp trnh n thun. Tuy nhin, nu b test km s khin cho ngi lp trnh mt i s t tin, bi v h thng chy tt khi tt c cc b test u chy. Nu b test b li, m h thng chy tt trn b test , c xc sut rng h thng s c li. Nu chng ta b qua iu v tip tc ci t cc b phn khc ca h thng, c ngha rng chng ta li mt ci by ngm trong h thng v c th dn ti nhng h ly khng mong mun. C 2 loi test : Test c s : c vit bi lp trnh vin thuyt phc chnh h rng chng trnh lm vic ng theo ci cch m h ngh n s lm. Test chc nng : c vit (hoc c ch ra) bi khch hng thuyt phc bn thn rng h thng lm vic theo cch m h mong mun c h thng s lm.

3. Lng nghe (Listening) : Lp trnh vin khng bit bt k th g v cng vic, v nhng yu cu m khch hng cn v ngh rng n th v. Tuy nhin, nu nhng ngi kinh doanh m bit lp trnh th h s chng cn n lp trnh vin.

Khoa CNTT i hc KHTN thnh ph H Ch Minh

Tng quan v Extreme Programming

Lp trnh vin phi lng nghe khch hng mun h thng lm g, cng vic cn g. H phi hiu nhng yu cn tt c th phn hi li khch hng v kha cnh k thut rng vn c th c gii quyt hay khng. Lp trnh vin phi gip khch hng hiu c th g kh, th g d. Nhng phn hi t lp trnh vin s gip khch hng hiu v nhng vn ca h tt hn. 4. Thit k (Designing) : XP i hi s n gin, th th ch cn coding, testing v listening l ri? Ti sao li cn n designing? Trn l thuyt, nu 3 iu trn thc hin tt th h thng s c vn hnh tt. Tuy nhin thc t th khng nh th. D sm hay mun, mt h thng khng c thit k tt sm hay mun cng s b trc trc. Cch duy nht trnh iu ny l phi thit k. Thit k to mt kin trc th hin mc t chc logic ca h thng. Mt thit k tt s gip cho khi thay i mt phn ca h thng s khng nh hng n cc phn cn li. Thit k tt m bo s m rng h thng s ch nh hng ti mt im duy nht. Thit k ti th ngc li. VI Cc nguyn tc v bin php : 1. Ln k hoch (The planning game) : Qu trnh ln k hoch ca XP cho php khch hng nh ngha cc tnh nng mong mun, v c lng chi ph ca n c cung cp bi nhm lp trnh, t chn ra nhng th g cn phi thc hin v nhng th g cn phi hon li. Gi tr ca vic ln k hoch l n gip nh hng c quy trnh t a n thnh cng. 2. Pht hnh cc phin bn nh (Small Releases) : Nhm XP tung ra cc h thng n gin thnh cc sn phm rt sm, v cp nht n thng xuyn thng qua cc chu trnh pht trin ngn. 3. Thit k n gin (Simple design) : XP s dng thit k n gin nht c th p ng c cc yu cu. Cc yu cu c th thay i vo ngy mai, cho nn chng ta ch cn p ng cc yu cu vo hm nay l . Thit k trong XP khng phi l thit k 1 ln m l thit k trong ton b thi gian pht trin. Trong qu trnh pht trin chng ta s phi thit k li trong rt nhiu giai on ca quy trnh.
Khoa CNTT i hc KHTN thnh ph H Ch Minh 6

Tng quan v Extreme Programming

4. n d (Metaphor) : Nhm XP pht trin mt danh sch cc tn h thng chung v cc m t chung thun li cho vic pht trin v giao tip. Nhm XP s dng cc tn chung ny chc chn rng tt c mi ngi u hiu h thng hot ng th no v ni no tm kim cc chc nng cn thit, hoc tm ni thch hp t cc cc chc nng mun thm vo. 5. Kim tra lin tc (Continuous testing) : Nhm s dng XP tp trung vo vic phn mm chy tt trong sut qu trnh. Lp trnh vin pht trin phn mm bng vic vit cc b test trc, sau lp trnh tha mn cc b test . Khch hng cung cp cc b test chc chn rng chng trnh tha mn cc tnh nng m h a ra. 6. Cu trc li h thng (Refactoring) : Nhm lm vic ci thin thit k ca h thng thng qua ton b qu trnh pht trin. iu ny c thc hin bng cch gi cho phn mm sch s : khng c vic trng lp, c s giao tip tt, n gin v hon tt. 7. Lp trnh theo cp (Pair programming) : Tt c sn phm c vit bi 2 lp trnh vin lm vic ti cng 1 my tnh. Hnh thc ny m bo tt c m ngun c kim tra k lng ngay khi ang vit v dn n thit k tt hn, kim th tt hn v lp trnh tt hn. 8. Quyn s hu m tp th (Collective code ownership) : Khng c mt c nhn no s hu mt m-un. Bt k ngi pht trin no cng c th lm vic trn bt k phn no ca h thng ti bt c lc no. 9. Tch hp lin tc (Continuous integration) : Tt c thay i u c tch hp vo h thng t nht l theo tng ngy. Cc test c s (unit test) phi chy tt trn h thng trc v sau khi tch hp. 10. Thi gian lm vic theo chun 40 gi/tun (40-hour work week) : Lp trnh vin lm vic ng gi, t phi lm qu gi quy nh. Trong giai on lm vic gp gp, c th cho php lm qu gi nhng khng qu 1 tun. Nhiu tun lin tc lm vic thm gi s l du hiu cho thy c s bt n ca qu trnh pht trin v trong vic lp k hoch.

Khoa CNTT i hc KHTN thnh ph H Ch Minh

Tng quan v Extreme Programming

11. Khch hng tham gia vo nhm pht trin (On-site customer) : Nhm pht trin lin tc tip cn khch hng, nhng ngi thc s s dng h thng. Trong phn ln trng hp, mt i din ca pha khch hng (c th l ngi qun l cht lng sn phm) s c ch nh tham gia vo nhm pht trin. 12. Chun lp trnh (Coding standards) : Tt c mi ngi u lp trnh theo 1 chun cho trc. Chi tit ca chun ny khng cn qu quan tm, tuy nhin iu cn quan tm l tt c cc lp trnh vin u lp trnh tng i ging nhau, h tr cho vic thu thp quyn s hu. VII Nhng vn khi s dng Extreme Programming : Vic lp trnh theo cp gy kh chu i vi nhiu lp trnh vin. Khch hng tham gia vo nhm pht trin nh l 1 phn quan trng i khi gy ra ri ro v vn bo mt ca m ngun. i vi phn ln d n, XP qu nh v qu nhiu ri ro. Phc tp. Da vo nhiu th thc hin.

Khoa CNTT i hc KHTN thnh ph H Ch Minh

Tng quan v Extreme Programming

Cc khi nim lin quan Test t ng (Automated test) Cc test case c chy m khng c s can thip ca con ngi. Cc test kim tra xem h thng cho ra cc gi tr c ng vi mong i hay khng. Test chc nng (Functional test) Test c vit t gc nhn ca khch hng. Test c s (Unit test) Test c vit t gc nhn ca lp trnh vin. Lp trnh theo cp (Pair programming) K thut lp trnh trong 2 lp trnh vin s dng chung 1 my tnh, 1 bn phm, 1 con chut. Trong XP cp lp trnh thng thng thay i theo ngy. Lp k hoch (Planning Game) Quy trnh pht trin ca XP. Ln k hoch (Refactoring) S thay i n h thng tuy nhin khng lm thay i cc hnh vi ca n, m thm vo mt s gi tr phi chc nng n gin, linh hot, d hiu v chy tt.

Khoa CNTT i hc KHTN thnh ph H Ch Minh

Tng quan v Extreme Programming

Tham kho

1. Kent Beck. Extreme Programming Explained (1st Edition). 2. Lowell Lindstrom, Ron Jeffries. Extreme Programming and Agile Software Development methodologies 3. Wikipedia. http://en.wikipedia.org/wiki/Extreme_programming 4. Extreme Programming : a gentle introduction. http://www.extremeprogramming.org/ 5. Ganesh Sambasivam. Extreme Programming 6. Mike Grant. Introduction to eXtreme Programming 7. Ian Sommerville. Software Engineering (9th Edition)

Khoa CNTT i hc KHTN thnh ph H Ch Minh

10

You might also like