You are on page 1of 19

K Thut Lp Trnh

Sinh vin :Nguyn Thanh Dng Lp : Tin Php MSSV : 20080505 Lch s pht trin ca tin hc lun gn lin vi vic tm kim cc phng php lp trnh gip cho ngi s dng trin khai cac ng dng mt cch d dng , nhanh chng v hiu qu . Nh chng ta bit , mi loi my tnh (s dung loi CPU Central Processing Unit xc nh) ch c th hiu v thc hin trc tip c cc lnh cng nh trng trnh theo mt loi noon ng dnh ring c gi l noon ng my . Tuy nhin nu thc hin cc ng dng trong thc t m phi vit chng trnh trc tip bng ngn ng my th s rt phc tp , i hi thi gian v cng thc rt ln , nhiu khi khng th thc hin c . V vy ngi ta tm cch xy dng mt ngn ng lp trnh ring , gn vi cc ngn ng t nhin , thun li cho vic trin khai cc ng dng . Khi thc hin cc chng trnh bng ngn ng ny phi qua mt bc dch chng trnh sang ngn ng my n c th thc hin . T trc n nay c rt nhiu ngn ng lp trnh c ra i va phc v c lc cho vic trin khai cc ng dng trn my tnh . Sau y , chng ta s i tm hiu v 5 m hinh lp trnh sau : Visual paradigm Parallel paradigms Concurrent programming Distributed programming Extreme programming K53

A.Visual Paradigm .
1.Gii thiu v Visual Paradigm .
Lnh vc lp trnh trc quan l s kt hp gia ho my tnh, ngn ng lp trnh v tng tc ngi my. N c to ra t nhiu nghin cu c lp v c nhiu cng trnh nghin cu c xem l tin phong trong lnh vc ny.

Mt nghin cu u tin trong lnh vc ny l h thng Sketchpad ca Ivan Sutherland vo nm 1963. Sketchpad c thit k v thc hin trn my tnh TX-2 ti
MIT v n c xem l ng dng ho u tin trn my tnh. H thng cho php ngi s dng lm vic vi mt bt v to ra cc hnh nh trong khng gian 2 chiu (2D) n gin nh ng thng, ng trn cc x l nh sao chp v cc php bin i hnh hc khc trn cc hnh v ny. T nm 1965, Em trai ca Ivan Sutherland l William s dng my tnh TX-2 pht trin mt ngn ng c t dng d liu trc quan n gin. H thng cho php ngi s dng khi to, d li v thc thi cc biu dng d liu trong mi trng trc quan. K tip , nm 1975 , vi vic cng b lun n tin s ca David Canfield Smith vi tiu Pygmalion: A Creative Programming Environment . Cng vic ca Smith nh du s khi u ca mt lot cc nghin cu trong lnh vc ny cho n ngy hm nay.

2.Phn loi cc ngn ng lp trnh trc quan

Khi lnh vc VPL chn mui, ngy cng nhiu nhng nghin cu hng n vic sng to mnh m hn cng nh nhng tiu chun phn loi nhng cng vic trong lnh vc ny. Mt h thng phn loi khng ch gip cc nh nghin cu trong vic xc nh cc cng vic lin quan m cn cung cp mt ranh gii so snh v nh gi cc h thng khc nhau. Mts tn tui c nhng ng gp quan trng trong lnh vc ny nh Chang, Shu, v Burnett. H phn loi v a ra nhng nh ngha xc nh c trng cc nhm chnh ca VPL. Sau y l s phn loi cc ngn ng lp trnh trc quan chnh:
Cc ngn ng trc quan thun tu Nhng h thng lai gia trc quan v vn bn (text) Nhng h thng lp trnh bng v d Nhng h thng rng buc i tng Nhng h thng c xy dng da trn cc biu mu (form)

Lu rng vic phn loi trn l khng loi tr ln nhau. Do , c nhiu ngn ng c th thuc nhm ny nhng cng c th thuc nhm khc.

Ch ring nhm cc ngn ng trc quan thun tu (Purely Visual Languages) l quan trng nht. Cc ngn ng ny c c trng bi vic da hon ton trn cc k thut trc quan thng qua tin trnh lp trnh. Ngi lp trnh vn dng cc biu tng hoc cc s biu din ho khc khi to mt chng trnh ri tip theo s g li v thc thi trong cng mtmi trng trc quan. Chng trnh l c bin dch trc tip t s trnh by trc quan can v khng bao gi dch n mt ngn ng trung gian da trn ch vn bn (interim text- based language). Nhng v d ca cc h thng thun tu trc quan nh VIPR, Prograph v PICT. Trong nhiu ti liu thuc lnh vc ny, s phn loi ny l i xa hn n vic phn loicc nhm con nh nhm ngn ng biu tng (iconic languages) v phi biu tng (non-iconic languages), ngn ng hng i tng (object-oriented), ngn ng lp trnh hm (functional programming), v ngn ng mnh lnh (imperative languages).

3.c im ni bt ca Visual Paradigm


c im ni bt ca phng php lp trnh trc quan l : - Cho php xy dng chng trnh theo hng s kin (Event-Driven Programming, nghal mt chng trnh ng dng c vit theo kiu ny p ng da theo tnh hung xy ralc thc hin chng trnh. Tnh hung ny bao gm ngi s dng n mt phm tng ng, chn la mt nt lnh hoc gi mt lnh t mt ng dng khc chy song song cng lc. - Ngi lp trnh trc tip tao ra cc khung giao din (interface) , ng dng thng qua cc thao tc trn mn hnh da vo i tng (object) nh hp thoi hoc nt iu khin (control button), nhng i tng ny mang cc thuc tnh (properties) ring bit nh : mu sc ,Font ch m ta ch cn chn la trn mt danh sch cho sn. - Khi dung cc noon ng lp trnh trc quan , ta rt it khi phi vit cc lnh , t chc chng trnh mt cch rc ri m m ch cn khai bo vic g cn lm k hi m t t nh hu ng xu t hin.

My tnh s da vo phn thit k v khai bo ca lp trnh vin t ng to lp chng trnh .

Nh vy vi k thut lp trnh trc quan, lp trnh vin ging nh mt nh thit k, t chc to ra cc biu mu, ngh cc cng vic cn thc hin v my tnh s da vo xy dng chng trnh. Hin nay cc ngn ng lp trnh, h qun tr c s d liu theo hng trc quan thng dng nh : Visual Basic, Visual Foxpro, Visual C, Delphi...

4.L Thuyt ca cc ngn ng lp trnh trc quan


a.Mt s nh ngha

icon (biu tng, hnh tng) Mt i tng vi s trnh by kp ca mt phn l-gc ( ngha) v mt phn vt l (hnh nh). iconic system (h thng c tnh cht biu tng) Mt tp hp c cu trc ca nhng biu tng c lin quan. iconic sentence (cu biu tng/trc quan) Mt s sp xp khng gian ca cc biu tng t h thng biu tng. visual language (ngn ng trc quan) Mt tp cc cu trc quan c cu trc vi c php v ng ngha cho trc. syntactic analysis (phn tch c php) Mt s phn tch ca mt cu trc quan xc lp cu trc c s. semantic analysis (phn tch ng ngha)
b.Phn tch

Mt s sp xp khng gian ca cc biu tng s to thnh mt cu trc quan. N l bn sao hai chiu ca s sp xp mt chiu ca cc du hiu trong cc ngn ng lp trnh qui c (trong ch text). Trong nhng ngn ng ny, mt chng trnh l c din gii nh mt xu k t trong k hiu kt thc l mc ni n mu mt cu m cu trc v ng ngha ca n l c khm ph bi s phn tch c php v ng ngha theo th t nh sn. Theo cch , qui tc xy dng l tim n trong ngn ng v khng cn gii thch nh mt phn ca ngn ng c t. Ngc li, trong nhng ngn ng lp trnh trc quan chng ta phn bit 3 nguyn tc sp xp cc biu tng: s mc ni theo chiu ngang (biu hin bi k hiu &), mc ni theo chiu ng (biu hin bi k hiu ^) v khng gian bao ph (biu hin bi k hiu +).
Trong vic nh dng cc ngn ng lp trnh trc quan, n l la chn phn bit cc biu tng tin trnh t cc biu tng i tng. S tnh ton cc biu thc trc, sau c th phn nh n cc biu tng i tng s cp v cc biu tng i tng phc hp. Nhng biu tng i tng c s cho bit cc i tng s cp trong ngn ng, nhng ngc li cci tng phc hp cho bit cc i tng c nh dng bi mt s sp xp khng gian cacc biu tng i tng s cp. Tm li, thut ng biu tng s cp (elementary icons) l tham chiu n c hai loi: biu tng tin trnh v biu tng i tng s cp v biu hin bi nhng biu tng ca chng l nguyn gc trong ngn ng. T mt bc tranh (hoc biu tng

trong trng hp ny) l c hng ngn cch biu t, chng ta c gng minh ho tt c nhng nim trn y trong hnh v sau:

Hnh 1. H thng biu tng Heidelberg

Hnh v ny gii thiu mt vi biu tng t b biu tng Heidelberg. Nhng biu tng s cp gm (a) l mt k t v (b) l mt k t c chn; cc biu tng tin trnh: (c) l hot ng chn v (d) l hot ng xo; cc biu tng phc hp: (e) l mt xu (kt hp cc k t) v (f) l xu c la chn; (g) cu trc quan biu th s thay th ca mt xu con trong mt xu no . Mt mn ng lp trnh trc quan l c c t bi mt b ba (ID,G0,B), y ID l t in biu tng, G0 l mt ng php v B l mt c s tri thc cho mt lnh vc c bit. T in biu tng l mt tp hp cc biu tng tng qut v mi mt phn t l c trnh by bi mt cp (Xm,Xi), vi phn l-gc Xm (ngha) v phn vt l Xi (hnh nh). Ng php G0 ch nh cch thc lm th no nhng biu tng i tng phc hp c th c xy dng t cc biu tng s cp bng vic s dng nhng ton t sp xp khng gian. C s tri thc B cha nhng thng tin ca mt lnh vc c bit cn thit cho vic xy dng ng ngha ca mt cu trc quan cho trc. N cha thng tin v cc tn s kin, nhng quan h thuc v khi nim, tn ca cc i tng kt qu v nhng tham chiu n cc i tng kt qu.

c.Danh sch mt s khng gian Picture-processing grammars (ng php x l nh) Ngun gc ca vic thit k l phn tch nhng nh s trn mt li vung, nhng ng php l c xy dng trn c s thc t l nhng bc nh s l s kt hp ca cc im nh. Ng php ny khm ph ra cu trc ca cu trc quan bi trt t ca cc im nh ring l n cc phn t trc quan c th nhn din c (ng thng, hp, cung trn...). Cch tip cn ny c ch khi mt h thng biu tng cn nhn dng cc biu tng vi mt mc no ca li c th chp nhn c (v d cc ch s vit tay). Precedence grammars (ng php th t) Ng php phn tch khng gian ny c th c s dng dnh cho vic phn tch cc biu thc ton hc trong khng gian 2 chiu v phn tch cc trang in. Ng php th t l ph hp hn phn tch c php ca cc cu trc quan c xy dng t cc biu tng s cp cc ton t biu tng. Cy phn tch l c xy dng bi vic so snh th t ca cc ton t trong mt mu v tp con c chia ca mu n mt hoc nhiu mu con. Context-free and context-dependent grammars (ng php ph thuc ng cnh v ng php phi ng cnh) Nhng ng php ny c dng xc nh t hp ca cc cu trc quan trong vic s dng nhng hnh thc quen thuc v nhiu phng php tiu chun ca s phn tch nh nhng ng php ph hp. Graph grammars (ng php th) y l phng thc mnh nht (mc d km hiu qu) c t cc ngn ng trc quan. Nhng hnh thc ny cung cp nhiu ngha nht thit lp nhng quan h ng cnh v nhiu nghin cu hin ti c u t to ra nhng phn tch c th tnh ton c vi ng php th. Mt cy phn tch c sn sinh bi mt trong nhng phng php phn tch trn l nhng phn tch s dng cch tip cn truyn thng phn tch ng ngha (ngha l ng php tng trng hoc cy tnh ton...).

5.Nhng vn ca ngn ng trc quan


Chng ta tho lun mt vi vn chung v ngn ng trc quan. Nhng vn ny l thch hp nht vi cc ngn ng trc quan hng mc ch (ph hp sn sinh chng trnh thc thi trong kch c hp l), nhng nhng vn no cng s c lin quan n nhng ngn ng thuc mt lnh vc c bit (c thit k phc v mt lnh vc c bit nh l cng ngh phn mm hoc khoa hc hin th). a. Control Flow (lung iu khin) Tng t nh nhng ngn ng lp trnh thng thng, nhng ngn ng trc quan gn lin vi hai khi nim v lung iu khin trong cc chng trnh l: mnh lnh v khai bo. Vi cch tip cn mnh lnh, mt ngn ng lp trnh trc quan da trn mt hoc nhiu lung iu khin hoc biu lung d liu m n cho bit lm th no xu chui cc lung iu khin thng qua chng trnh. Mt u th c bit ca cch tip cn ny l n cung cp mt s trnh by trc quan hiu qu theo kiu song song. Mt bt tin ca phng php ny l mt ngi lp trnh phi lu gi du vt ca chui th t no ca dy cc hot ng lm thay i tnh trng ca chng trnh, y l iu khng phi l mt c im c

mong i ca mt h thng (c bit l nu n c thit k cung cp cho nhng ngi mi hc vic). Mt trong s cc ng ngha mnh lnh ca lung iu khin l s dng mt kiu c th khai bo ca lp trnh. Vi cch tip cn ny, ngi ta ch lo lng mi vic l nhng tnh ton no l s c thc hin v khng cn bit lm th no nhng hot ng hin ti c tin hnh. Vic thay i trng thi nht nh l c phng bi vic s dng ch mt s phn cng: ngi lp trnh khi to mt i tng mi bi vic sao chp mt trng thi ca i tng ang tn ti. Cng vy, thay v c t mt dy cc thay i trng thi, ngi lp trnh nh ngha nhng hot ng bi vic c t nhng ph thuc i tng. V d, nu ngi lp trnh nh ngha Y l bng X+1, th r rng Y c tnh ton bng cch s dng i tng X, cho php h thng suy ra rng gi tr ca X cn phi tnh ton trc. V vy, dy cc x l l vn hin din nhng phi c suy ra bi h thng th ng hn l c nh ngha bi ngi lp trnh. D nhin, s chm sc c bit phi c nm gi bi h thng m thng bo c lp l c nhn din v c thng bo nh l cc s c (errors). b. S tru tng ho th tc (Procedural Abstraction) Chng ta phn bit hai mc ca vic tru tng ho th tc. Nhng ngn ng lp trnh trc quan bc cao, ngha l khng th vit v bo qun ton b chng trnh trong mt ngn ng v chc chn c mt s lp cha nhng m-un khng trc quan m chng c kt hp li bng cch s dng mt ngn ng trc quan. Cch tip cn ny lp trnh trc quan l c th c tm thy trong rt nhiu cc h thng phc v cho mt lnh vc c bit, v d nh nhng cng c bo qun phn mm v mi trng trc quan khoa hc. pha ngc li l nhng ngn ng trc quan mc thp, chng khng cho php ngi lp trnh mc ni nhng n v l-gc n cc m-un th tc. Phng php ny cng c li trong nhiu ngn ng thuc mt lnh vc c bit v d nh l nhng b m phng l-gc. Nhng ngn ng lp trc quan a nng thng bao ph mt ph rng v cung cp tt c nhng chc nng nhm gip ngi lp trnh d dng khi pht trin ng dng nh mc ni n cc ngn ng bc thp, cc iu kin, qui, lp v mc ni d dng n cc m-un tru tng (th tc, lp, th vin...). c. S tru tng ho d liu (Data Abstraction)

Nhng phng tin cho php tru tng ho d liu l ch c th tm thy trong cc ngn ng lp trnh trc quan a nng. Khi nim tru tng ho d liu trong lp trnh trc quan l rt ging vi khi nim tru tng ho d liu trong nhng ngn ng lp trnh thng thng vi ch nhng yu cu tru tng cc kiu d liu c nh ngha trc quan (tri vi textually), c mt s trnh by trc quan (iconic) v c cung cp dnh cho cch i x tng tc.

6.Mt s ngn ng lp trnh trc quan


a.ARK

Hn 10 nm k t ngy bt u, ngn ng Alternate Reality Kit (ARK) c thit k bi R. Smith ti Xerox PARC, ra i mt ngn ng lp trnh thuc h VPL phc v cho mt lnh vc c bit. ARK c pht trin trn Smalltalk-80, cung cp cho ngi dng mt mi trng ng trong khng gian 2 chiu dnh khi to s m phng tng tc. H thng l c d nh phc v cho nhng ngi lp trnh nghip d to ra cc m phng v mt nhm khn gi rng ln tng tc vi nhng m phng ny. gip ngi s dng hiu nhng lut c bn ca t nhin, ARK s dng php n d theo ngha ca ch m trong

ngi s dng iu khin bn tay trn mn hnh m n c th tng tc vi cc i tng vt l, v d cc qu bng hoc cc khi, chng x l mt khi lng ln v vn tc nhanh v vi cc i tng c gi l cc b tng tc, trnh by cc qui lut vt l nh l trng lc. Bng vic cung cp mt kiu nguyn bn vt l n cc lut tru tng, h thng c gng hu b mt vi b mt bao quanh theo nhng cch m cc lut tng tc vi cc i tng v nhng ci khc. Nhng ngi s dng c th hiu chnh bt k i tng no trong vic s dng mi trng, cc hp thng ip v cc nt, nhn thy kt qu ca nhng thay i ca chng trong thi gian thc. Vic m phng thc hin trong mt alternate reality cha trong mt ca s v tt c c bao quanh mt th gii siu thc. Cu trc rt ging mt h thng cc mn hnh v ca s theo kiu giao tip ngi dng ho hin i. Ngi lp trnh c th di chuyn bn tay gia nguyn bn lun phin v nhng i tng tc ng ra ngoi s m phng v n s siu thc bt k lc no. b.Prograph Trong phn ny, chng ti m t ngn ng Prograph, n c xem l ngn ng thnh cng nht trong s cc ngn ng trc quan a nng (general-purpose visual languages). Vic nghin cu Prograph c tin hnh t nm 1982 ti Trng i hc K thut Nova Scotia. T n nay, c vi phin bn c a vo s dng v trong s c dng ph bin nht l Prograph/CPX v c thng mi ho bi Pictorius, Inc. Prograph l ngn ng hng i tng trc quan. N mc ni nhng khi nim v cc lp, cc i tng vi mt c ch c t dng d liu trc quan rt mnh. Prograph cn l mt ngn ng mnh lnh, n cung cp nhng iu khin r rng trn trt t cc tnh ton. iu c bit l cc trng hp n l v a thnh phn ca Prograph, nhng cu trc iu khin c bit l c mong i thay th vng lp v cung cp cc iu khin lung tinh vi. Chng ta s tho lun nhng iu ny nh mt phn ca v d di y. Prograph cho php ngi lp trnh lm vic trn c hai mc thp v cao, cho php h thit k v bo tr nhiu hoc t phn mm phc tp. Nhng s tnh ton nguyn thu nh cc php ton s hc, cc li gi cc method... l c mc ni n cc phn thn ca phng php biu mu bi cc biu dng d liu. Cc phng thc (methods) l c t chc thnh cc lp. Ngoi ra, Prograph cn cung cp cho ngi lp trnh c ch gi nhng i tng m n c th l c lu tr trong mt c s d liu Prograph gia cc li ngh khc nhau ca chng trnh. c.Form/3 Forms/3 l mt ngn ng lp trnh khc thuc dng ngn ng lp trc quan hng i tng a nng. c im ni bt ca n l tru tng ho d liu. Tuy nhin, khng ging nh Prograph, n khng mang tnh k tha v s phn tch cc thng ip l c c h tr. Forms/3 phng theo cch t chc bng tnh vi cc v cng thc trnh by d liu v th t tnh ton. Mt c trng ca Forms/3 l cc y c t chc thnh mt nhm gi c l form, mt c ch tru tng ho d liu c bn. Mt form c th trnh by mt nh cho trc (cn gi l mt biu tng) v n c th c minh ho cho mt i tng. Theo ngha ny, mt form tng ng n mt i tng nguyn mu trong cc ngn ng hng i tng nguyn mu c bn (prototype-based object oriented languages. Trong Forms/3, d liu (values) v s tnh ton (formulas) l mt cp thng nht. Mi mt i tng c t trong mt v c nh ngha vi khai bo s dng mt cng thc. Cc i tng c th ch c khi to theo cc cng thc v mi mt cng thc sn sinh mt i tng ging nh mt kt qu ca vic nh gi n. Nhng cng thc cung cp mt s d

dng yu cu cc kt qu t cc i tng khc v khi to nhng i tng mi: iu ny khng cn s phn tch cc thng ip.

B.Extreme Programming
1.Gii thiu .
Lp trnh cc (eXtreme Programming vit tt l XP) l mt trong nhng nhm cc phng php pht trin phn mm mt cch linh hot . XP s dng cc nhm lm vic kt hp gm nhng ngi lp trnh, khch hng v cc nh qun tr pht trin phn mm c cht lng cao trong thi gian nhanh chng . Mt chng trnh chy c l thc o u tin ca tin trnh theo XP . XP c th pht trin v tn ti c l do s hiu bit ngy mt tin b v cc vn ang gii quyt v cng l v cc cng c sn c cho php ta thay i c ci gi ca s thay i (cost-of-change) ( ang l dng hm m trc y ) . XP gi cho ci gi phi tr ny mc thp do vy s thc y mi trng sn xut phn mm . --u im ca Extreme Programming :

Nh ta bit hu ht cc phng php u xem xt vic pht trin phn mm nh l mt quy trnh gia cng vi tin trnh phn mm i theo mt con ng

Nhu cu (th trng) Phn tch Thit k M ha Th nghim Bo tr

Cch tip cn ny c mt s tha nhn quan trng l ta bit c sn phm cui cng trc khi tin trnh bt u . Nhng hu ht cc d n phn mm hin i khng th tho mn ci s tha nhn ny . Khch hng s a ra mt cch y nhng ci g mi v ngi sn xut cn nhng thng tin phn hi mt cch lin tc nh gi li cc la chn ca h. Ngi lp trnh cn phi c mt phng n lun sn sng n nhn nhng thay i trong Nhu cu h c th i ph c vi cc thng tin phn hi. Nu bn lm vic trong mt mi trng m cc Nhu cu c ch thay i v cc khch hng s c li t vic bn giao phn mm sm v thng xuyn th chc chn nn xem xt XP . Cc nhm lm theo XP s thng xuyn nhn ra rng h ang bn giao cc sn phm phn mm cht lng cao vi s lng rt ln v nhanh hn trc y rt nhiu .

2. Phng thc tin hnh XP


XP l mt phng php c kh nng thch nghi, thch ng . iu c ngha l s khng c hai d n XP no ging nhau c . XP cung cp mt tp hp cc thc hnh v c s dng nh l im khi u, v sau c lm cho thch ng ph hp vi cc rng buc ca tng d n ring . Sau y l mt tp hp cc nguyn tc c mong i : 1. Lin lc: mt XP team ln mnh da trn cc kin thc, s hiu bit bi ton v hiu bit phn mm c chia s . Cc phng php gii quyt vn c trao i trc tip . Nhng th cn tr n cng vic u c loi b . 2. n gin ho: cng vic cn gim ti thiu phc tp t c hiu qu cao nht . 3. Thng tin phn hi thng cc i lm d n v khch hng ca h khng nhn ra nhng vn rc ri cho ti khi sp bn giao sn phm .Nhng cc XP teams thng xuyn ly feedback trong qu trnh lm vic, test, bn giao sn phm Khi s control c cc vn pht sinh . 4. Th mnh: cc i lm phn mm thnh cng cn phi kim sot c ngay c khi xut hin cc li . XP a ra 12 phng n thc hnh, v im mnh ca XP chnh l kt hp c cc phng n ny li . Mi mt phng n tuy n gin nhng rt cn thit phi nm vng, s gp phn lm gim bt ng k ci gi ca s thay i .

3. Cc phng n thc hnh


Tiu chun ho m ngun
y l mt lot cc quy c v m ho cc thnh vin ca d n theo lm . Khi mi ngi c th xem xt ln nhau v c th bn giao c cho nhau .

Thit k n gin
gim gi phi tr cho s thay i ng ngha vi vic lm cho h thng cng n gin cng tt . iu c ngha l khng nn b qu nhiu thi gian v cng sc vo nhng vic m sau ny c th cn hoc cng c th khng. Cc n XP thng c n gin mt cch ti a, m bo rng sau ny nu c cn thay i th chi ph cng rt nh .

Dng thc Thit k v Nguyn l Thit k


Mi thnh vin trong nhm u phi hc v s dng thnh tho cc Nguyn l v Dng thc Thit k. Th nht, n gip cho c nhm lm vic vi nhau mt cch n (lin lc tt). Sau l gip cho vic vit m ca tng thnh vin c tt v nhanh do ti s dng c kinh nghim t ngi i trc, iu ny rt quan trng, v trong XP khng c thit k chi tit, tng on m/tng module phi do tng thnh vin ca nhm th hin, v vy nu p dng c th s gim thiu c qu trnh iu chnh/ti ch.

Th nghim(test-first design)
Cc lp trnh vin s vit cc n v th nghim (unit test) (trng hp th nghim) trc khi vit m (thit k th nghim u tin). Tt c cc n v th nghim (trng hp th nghim) u c thc hin thng xuyn trong qu trnh pht trin sn phm trong tng module m ca tng lp trnh vin. Cc lp trnh vin c th thay i mt cch linh hot v quy trnh th nghim c th mc li hay sai so vi thit k ban u (iu chnh trng hp th nghim).

Lp trnh cp i
Tt c qu trnh pht trin sn phm u c thc hin bi 2 ngi cng chia s cng vic trn mt my . iu ny hiu qu hn l 2 ngi lm vic c lp . Vic quay vng cc cp thng xuyn nh vy s ph bin c kinh nghim v kin thc cho ton nhm. M s c xem li lin tc .

Quyn s hu m kt tp
Bt k ngi no trong i d n u c quyn thay i m trong qu trnh lm vic vi khch hng ch cn tun theo Tiu chun m ho v phi m bo thc hin th nghim li ton b sau khi hon tt cng vic sa i . iu ny s loi b cc vn nh l sai lch v cu trc chng trnh, c th xy ra khi mt c nhn m ho c lp .

Ti ch
Ti ch l k thut lm tng hiu qu ca vic tht k cc m c sn m khng lm thay i chc nng . Ti ch l rt kh thi v mt nhm XP c cc quy trnh th nghim t ng bt li, cho php

ta thay i m ( phn nh kh nng hiu bi ton ngy cng cao ca cc thnh vin ) . Qua cng m rng cc thit k ln .

Tng tc lin tc
Cc nhm XP chia cng vic ra thnh cc bc nh v tch hp m ca h mt vi ln trong mt ngy . Do vy, cc vn s c xem xt ngay sau khi thc hin v c th d dng sa cha khi gp s c . Qu trnh ny m bo cho mi ngi lun lm vic vi phin bn mi nht ca h thng .

Pht hnh nh gn
Do nhm XP lm vic trong cc bc nh cho nn vic pht hnh cng chia ra thnh cc pht hnh nh ( khong vi tun mt ln ) . V cc thnh vin s phi tch hp lin tc . C nhng n XP thc hin vic pht hnh hng ngy .

Khch hng trc din


Cc lp trnh vin phi lun tip xc vi khch hng xc nh r nhu cu bt k n lc tn bao nhiu. Cc nh lp trnh XP khng nn suy on cc vn c th ca mt chc nng m phi hi trc tip khch hng.

Tr chi k hoch
Thao tc ny thc hin cc ti lp ( vi tun mt ln ) quyt nh xem chc nng tip theo s c pht hnh l g . Cc lp trnh vin s a ra cc d on v khch hng s la chn ci no c li nht, v mi ngi s thc hin .

Tun l 40 gi
Vic pht trin phn mm l mt cng vic sng to, v h s khng th sng to c nu h kit sc. Vic gii hn s gi lm vic trong tun s m bo c sc kho ca cc thnh vin v tng cng cht lng sn phm.

Metaphor
Dng mt h thng cc thut ng v business object trong vic discuss cc vn v cc solutions cho chng ( the system Metaphor ) . Di y l mt s nhn xt v XP v Rational Unified Process(RUP) Ging nhau RUP khng cp t m n nhng nh l, tuy nhin nhng nguyn l c bn ca phng php lun c ra r rng v ta c th thy r, v d nh phn hi t khch hng, s thay i tng dn, u t ban u t, th nghim c th v tu bin theo tng ni. C mt s im tng ng trong chin lc lp k hoch, c hai phng php u pht biu l khng lp k hoch qu c th ngay t ban u bi v bn khng th bit cng vic g l quan trong ngay t lc u. C hai phng php s dng quan nim vng quay ca d n, v nhn

mnh s u tin theo mc quan trng ca cc chc nng. User story v use case u c dng nh hng kin trc phn mm v ng vai tr quyt nh cho vic lp k hoch cng nh qu trnh pht trin. Phng php lun hng i tng u l cng c chnh ca c hai phng php. User story trong XP ging ht vi Use case trong RUP. Trong cc yu t quan trng cu thnh d n l phm vi d n, tnh ng hn, cht lng v ti nguyn d n, XP khuyn co chng ta cn gi c nh mc tiu tnh ng hn, cht lng v ti nguyn. Phm vi d n c th c php iu chnh. RUP khng t quan im mt cch cht ch nh vy, tuy nhin RUP cho php chng ta dng phng php xy dng ma trn quyt nh, trong cc yu t c th c iu chnh ph hp theo c tnh ca tng d n. Du RUP khng pht biu c th nh vy v s cho php thay i phm vi d n, tuy nhin quan im tng ng cng th hin phng php pht trin phn mm to dn ca RUP. Th nghim c th l mt nguyn l ca XP v ta cng c th thy trong RUP. Trong giai on Elaboration, RUP i hi bn phi tin hnh nghin cu nhng vn quan trng v v th nghim nhng cng ngh mi. Vic kim tra chng trnh mt cch t ng u c XP v RUP khuyn co. XP da trn vic ny m bo chi ph thp cho mi s thay i, tuy nhin RUP th khng i hi. Khc nhau S khc bit ng k gia RUP v XP l RUP hng n nhng d n ln hn so vi XP v v th, n phc tp hn. Chi ph cho thay i v ri ro RUP cho rng chi ph thay i tng theo hm m v tp trung vo cho nhng bc u tin gim thiu nhng chi ph v sau trong qu trnh pht trin phn mm. RUP quan tm nhiu n vic gim thiu ri ro, theo di tm kim ri ro v tip cn mc tiu ny tng bc t qu trnh xy dng kin trc n cc qu trnh pht trin phn mm sau ny. XP cho rng chi ph thay i khng ln lm. XP cng c xy dng vi mc tiu gim thiu ri ro (ri ro y nh ngha l nhng vn c bn) v hng ti mt thit k v kin trc tt cng nh vi mc tiu trc tin l cho ra l nhng chc nng quan trng nht. Tuy nhin, vi s gi nh l gi cho s thay i thp, kin trc ca phn mm c php pht trin mt cch hu c, nh mt b xng ch cn pht trin va nng c th ti thi im nht nh. iu then cht trong XP l s n gin.

Mt i iu v ti liu d n
XP khuyn ngh bn c mt hnh l gn nh v khng phi lun lun cp nht ti liu d n, tr khi bn cn dng chng. RUP nhn nhn vn theo mt cch khc v da trn s cp nht kp thi bn thit k nhm phc v cho vic pht trin phn mm tip theo. XP cn c m ngun phi c vit tt v da trn trao i cng nh thit k cho cc bc tip theo.

Chia s m ngun
XP khuyn ngh cn c mt s chia s m ngun trong nhm, iu ny c ngha l bt k ai vo bt k lc no cng c th thay i bt k phn no ca m ngun. RUP gi rng ngi thit k phn mm c trch nhim cho mt phn h hoc mt gi no , tng t nh vy i vi lp trnh vin.

V tr v trch nhim ca cc thnh vin


Khi trin khai nhng cng vic v vai tr trong d n, RUP s hn nhiu so vi XP. Nhng vai tr trong XP ch n thun l Lp trnh vin, Khch hng, Coach v Manager. i vi RUP th ta cng thy LTV v KH, Coach tng t nh Architect v Manager tng t nh Project Leader. Tuy nhin, nhng trch nhim ca cc v tr ny khng ging nhau bi v c mt s hnh ng hoc nhng concept khng c trong XP. Nhng v tr trong XP thng c nhiu trch nhim hn so vi RUP, v d Programmer l Designer, Customer c trch nhim xy dng yu cu.

Cc bc ca d n
RUP c 4 bc c nh ngha r rng : Inception, Elaboration, Construction, and Transition. XP th ni v Exploration, Commitment v Steer vi nhng u mc cng vic khc nhau v phn chia thi gian theo nhng phng php khc nhau. RUP chia ton b qu trnh sn xut phn mm thnh mt s release. XP chia v thc hin d n theo tng bc k tip. Nhng bc ny c XP gi trong khong thi gian ngn hn.

C.Parallel Paradigms
1.Gii thiu
Parallel Paradigms l mt phng thc lp trnh m trong : Nhng ch dn c thc hin mt cch ng thi . Nhng vn , bi ton cj chia thnh nhng phn nh hn nhng c th c gii mt cch ng thi . Nhng ch dn ca mi phn c thc hin ng thi trn nhng CPU khc nhau

-So snh gia serial va parallel programming :

Trong nhng ngay u ca my tnh , chng trnh c thc hin ni tip , tc l mi chng trnh bao gm mt chui cc lnh , mi lnh thc hin sau khi thc hin xong mt lnh trc . N chay t u n cui trn mt b x ly duy nht .
Parallel programming xut hin nh mt phng tin ci thin hiu xut v hiu qu .Trong mt chng trnh song song , x l c chia thnh cc phn , mi phn trong s c th c thc hin ng thi . Cc lnh t mi phn chy ng thi trn cc CPU khc nhau , CPU ny c th tn ti trn mt my duy nht hoc chng c th l CPU trong mt hp cc my tnh c kt ni qua mng .

R rang l lp trnh song song c u im hn tun t : Serial programming

Vy , ti sao phi cn lp trnh parallel programming . l t nhng l do sau : Tit kim thi gian . Gii quyt c nhng vn ln hn . Cung cp s tng tranh : C th lm nhiu th cng mt lc .

Ngoi nhng l do chnh nh trn cn c mt s l do sau : Tn dng c nhng ti nguyn non-local. Chi ph tit kim s dng ti nguyn tnh ton c hiu qu . Gii phng b nh b chim ng. Thot khi s gii hn truyn ca serial programming v tc v kinh t.

2.Xy dng mt chng trnh song song .


Bc u tin trong vic xy dng mt chng trnh song song l xc nh tp hp cc nhim v c th chy ng thi v / hoc cc phn d liu c th c x l ng thi . Bi v khng phi nhim v hay d lieuj no cng c th chy , x l mt cch ng thi . Ta ly v d nh hm Fibonacci : F(k+2) = F(k) + F(k+1) Hm ny khng th thc hin song song bi v gi tr tnh ph thuc vo gi tr tnh trc . Mt tnh trng ph bin l c mt lng ln d liu nht qun v cn phi c x l .Nu d liu c th c phn tch thnh cc phn c kch thc bng nhau , chng ta c th ngh ra mt gii php song song . Xem xt mt mng ln m c th chia thnh cc tiu mng :

Nu cng mt x l m cn thit cho mi phn t mng , khng ph thuc vo tnh ton, v khng c yu cu thng tin lin lc gia cc tc v , chng ta c mt tng tnh ton song song . y l mt k thut ph bin c gi l Master/Worker . Master : Khi to cc mng v chia tch n theo cc Worker c sn . Gi cho mi Worker cc subarray ca n . Nhn c cc kt qu t mi Worker . Worker : Nhn c subarray t Master . Thc hin x l trn subarray . Tr v kt qu cho Master . M hnh ny c s dng ph bin khi tt c cc nhim v ang c thc hin cng s lng cng vic trn cc my tnh ging ht nhau . Nhn chung , n cp n k thut m c gng tn ra cc nhim v gia cc b vi x l trong mt h thng song song trnh mt s b vi x l c nhn ri trong khi nhng ci khc

c nhng nhim v phi xp hang c thc hin . M hnh tnh ton song song c ng dung rng ri , nhng language/library c s dng n nh : MPICH ,OpenMP,FORTRAN 90/95 . V nhng Software Package nh : Gaussian, GAMESS, MM5 N gip pht trin nhng siu my tnh v nhng my tinh a nhn.

D.Distributed Programming
1.Gii thiu
Thng thng m lnh ca mt chng trnh khi thc thi c tp trung trn cng mt my, y l cch lp trnh truyn thng. S pht trin nh v bo ca mng my tnh c bit l mng Internet ton cu, khin cc chng trnh truyn thng ny khng cn p ng c yu cu na. Cc chng trnh by gi yu cu phi c s hp tc x l, tc l m lnh ca n khng tp trung trn mt my m c phn tn trn nhiu my. Khi mt ng dng c m lnh thc thi c phn tn trn nhiu my th chng trnh c gi l chng trnh phn tn v vic lp trnh to ra cc chng trnh ny c gi l lp trnh phn tn. C rt nhiu cng ngh lp trnh phn tn nh: DCOM, CORBA, RMI, EJB.. trong RMI l cng ngh thun Java v d lp trnh nht. C cc m hnh lp trnh phn tn nh : - M hnh client/server . - M hnh tc t di ng . - M hnh da trn thnh phn , m hnh i tng phn tn . Tnh ton phn tn l mt lnh vc khoa hc my tnh m mghin cu v nhng h thng phn tn . Mt h thng phn tn bao gm nhiu my tnh t tr m c th truyn thong lin lc trong sut mt mng my tnh . Nhng my tnh tng tc vi nhau t c mt mc ch chung . Mt chng trnh my tnh m chy trong mt h thng phn tn c gi l mt chng trnh phn tn , v lp trnh phn tn l qu trnh ca vic vit ra nhng chng trnh nh vy . S tnh ton phn tn cng da vo vic s dng h thng phn tn gii gii quyt nhng vn . Trong s tnh ton phn tn , mt vn c chia thnh nhiu cng vic , mi cng vic c gii quyt bi mt my tnh .

2.So snh parallel v distributed computing . Nhn chung c v lp trnh song song v lp trnh phn tn ging ht nhau v cng chia nh vn ra x l . Nhng thc ra bn cht l khc nhau hon ton : Trong cc lp trnh song song th tt c cc b x l cng truy nhp n mt b nh dung chung .B nh dng chung c th c dung trao i thng tin gia cc b x l . Trong lp trnh phn tn th mi b x l c mt b nh ring ca mnh (b nh phn tn) , thong tin c trao i bi s chuyn qua thong bo gia nhng b x l .

(a)(b) A distributed system. (c) A parallel system

2.ng dng
Nhng h thng phn tn lan rng u tin l nhng mng local area networks nh Ethernet c pht minh vo khong nm 1970 . Nghin cu v tnh ton phn tn tr thnh mt b phn ca nganh khoa hc my tnh vo cui nhng nm 1970 v u nhng nm 1980 . C hai l do chng ta s dng h thng phn tn v tnh ton phn tn : Tnh t nhin ca ng dng c th yu cu s dng mt mng thong tin m ni mt s my tnh . C li v l do thc t . V d c th tng hiu qu , gim chi ph vi vic s dng nhiu my tinh cp thp so vi vic s dng mt my tnh cp cao duy nht .

E.Concurrent Programming
1.Gii thiu
Tnh ton Concurrent l mt hnh thc trong nhng chng trnh c thit k nh nhng tp hp ca nhng vic tng tc tnh ton x l m c th thc hin song song . Nhng chng trnh concurrent c th c thc hin tun t trn mt b x l n bi vic xem xt t mi bc thc hin ca mi qu trnh tnh ton , hoc thc hin trong ng song song bi vic gn mi qu trnh tnh ton cho mt s tp hp nhng b x l gn hoc phn tn trong mt mng . Nhng thch thc chnh trong vic thit k nhng chng trnh concurrent l m bo s sp xp ng trnh t ca s tng tc hoc truyn thong gia nhng qu trnh tnh ton x l khc nhau v phi hp truy nhp ti nhng ti nguyn chia s trong nhng qu trnh . Mt s phng php khc nhau c th c s dng thc hin nhng chng

trnh concurrent ,nh vic thc hin mi qu trnh tnh ton nh mt h iu hnh x l , hay vic thc hin nhng qu trnh tnh ton nh mt tp hp hot ng n l quy trnh h thng . Nhng ngi tin phong trong lnh vc concurrent computing bao gm : Edsger

Dijkstra, Per Brinch Hansen v 2.Nhng m hnh concurrent

C.A.R. Hoare .

C mt s m hnh concurrent computing m c th dung hiu v phn tch nhng h thng concurrent system :

Actor model o Object-capability model for security Petri nets Process calculi such as o Ambient calculus o Calculus of Communicating Systems (CCS) o Communicating Sequential Processes (CSP) o -calculus

3.Concurrent programming languages


Nhng ngn ng concurrent programming l nhng ngn ng lp trnh m s dng cc cu trc ngn ng cho concurrent , nhng cu trc ny c th lien quan n multithreading (a lung) , nhng h tr tnh ton phn tn , shared resources (bao gm shared memory) Ngy nay , nhng ngn ng lp trnh thng s dng nht c cu trc c th cho concurrent l Java v C# ....

You might also like