You are on page 1of 8

Lp m hnh vi Java: Mt cun sch bi tp v

UML, Phn 1
Gii thiu v so d tun t
Muc d: Nhp mn
Granville Miller, Tc gia
11 09 2009
Trong bi vit du tin trn chuyn muc moi cua mnh, Granville Miller dua ra mt trong nhung
khi nn tang cua Ngn ngu m hnh ha thng nht (Unified Modeling Language): lp so d
tun tu. Cc so d tun tu duoc su dung trong sut qu trnh thit k d trnh by tuong tc ni
b giua cc tc nhn v di tuong khi mt h thng thi hnh theo thoi gian. Hy theo Granville
khi ng tao ra mt trong nhung so d ny, bng cch su dung mt ung dung xu l vay no lm v
du.
Ngn ngu m hnh ha thng nht (UML) l mt k php chun d m hnh ho cc h thng huong di
tuong. Duoc gioi thiu voi cng dng lp trnh huong di tuong trong khoang thoi gian giua cc nm 1995
dn 1997, UML d duoc OMG (Object Management Group - Tp don Quan l Di tuong) ph duyt vo
cui nm 1997. Mc d d c nhiu tranh ci khi khoi du -- n d duoc gioi thiu giua mt bu khng kh
phan di v phan d nghi -- UML k tu d d tro thnh tiu chun cng nghip dnh cho k php h thng.
UML hin l phin ban 1.4 v tip tuc tin ho d dp ung nhu cu cua cc nh pht trin huong di tuong.
(D bit thm chi tit v lich su cua UML, xem Ti nguyn.)
UML c th l kh hoc, chu yu do n c gng dua ra k php m hnh ho di voi mt mang rng lon dn
th cc tnh hung. Cc k php m hnh ho du duoi dang so d, v hin c chn so d trong dc ta UML.
Rt may l vic hoc UML c th l mt qu trnh, chia thnh cc giai doan; ban c th chi hoc mt so d mi
ln, v ban khng cn phai m dm ton b nhung su phuc tap cua mt so d trong n luc du tin cua ban.
Trong chuyn muc ny, ti s dn dt ban qua qu trnh thit k v k php UML d pht trin ung dung dua
trn Java. Ti s gioi thiu nhung dim ct yu v khung cng tc UML v cc cng ngh m hnh ho khc
theo mt cch lgic (v hy vong l th vi), v ban s hoc duoc cc kinh nghim thuc hnh bng cc v du m
hnh ho tu th gioi thuc. Trong bi vit du tin ny, chng ta s bt du voi vic lp so d tun tu, bng cch
su dung mt ung dung xu l vay no lm v du. Xin luu rng ti gia thit ban d quen voi ngn ngu Java v
c mt kin thuc co ban v cc phuong php v thut ngu pht trin huong di tuong. Cc khi nim huong
di tuong s duoc giai thch ngn gon, nhung thao lun su hon nm ngoi pham vi chuyn muc ny.
V cc so d tun t
UML khng bi tru bt ky phuong php hay quy trnh pht trin phn mm dc bit no; n chi tiu chun ho
dang thuc k php. Tuy nhin, nhiu phuong php pht trin lai kt hop voi UML. Mt trong nhung phuong
php d l Quy trnh thng nht Rational (RUP- Rational Unified Process); Mt phuong thuc khc l pht
trin theo dc tnh (FDD - feature-driven development). Cc so d tun tu UML, do ban cht truc gic v da
dung linh hoat cua chng, d tro thnh mt phn khng th tch roi cua cc hoat dng m hnh ho mt truoc
cua cc quy trnh ny. So d tun tu duoc su dung d m hnh ho cc thu sau dy:
Cc kich ban ca su dung
Cc giao thuc trong mt khung cng tc
Cc h thng con
Cc lop
Lgic cua phuong thuc
Giai thch so luoc v tung chuc nng ni trn dy s duoc trnh
V cc c th tc nhn (actor
personalities)
C th tc nhn c th huu ch trong
vic pht hin v xc dinh cc tc nhn
c th tham gia vo mt kich ban ca su
dung. Mt tc nhn c th c nhiu c
Page 1 of 8 Lp m hnh voi Java: Mt cun sch bi tp v UML, Phn 1
by theo thu tu.
K[ch bn ca s dng
Di voi ung dung mu cua chng ta, chng ta s su dung cc so
d tun tu d m hnh ho mt kich ban ca su dung. Ca su dung l
mt nhim vu don le duoc thuc hin boi mt tc nhn khi tuong
tc voi ung dung cua ban nhm dn mt muc tiu d chi r. Mt
tc nhn l bt ky nguoi su dung cui cng no, t chuc no, hay
h thng no m tuong tc voi, nhung lai o bn ngoi, ung dung
cua ban. (Xem phn V cc c th tc nhn d tm hiu v bn c
th tc nhn; d nhn duoc thao lun su hon v cc kich ban ca
su dung, xin xem phn Ti nguyn.)
Cc giao thc trong mt khung cng tc
Mt giao thuc duoc dt giua mt khung cng tc v cc thnh
phn c th thay th ln nhau duoc goi l cc qun th
(ensembles). Vic hiu bit v cc tuong tc m mt khung cng
tc di hoi s gip d cho vic pht trin cc qun th moi. So d
tun tu thuong duoc su dung d lm tu liu dn chung cho cc
tuong tc ny.
Cc h thng con
Cc du n lon duoc phn chia thnh cc manh nho hon, d quan
l hon goi l cc h thong con. Cc giao din giua cc h thng
con l rt quan trong di voi vic tch hop dng dn chng vo ci
tng th lon hon, d l h thng. So d tun tu duoc su dung d
xc dinh tuong tc giua cc lop trn bin gioi cua cc h thng
con.
Cc lp
Mt s lop (nhu Socket v InetAddress) di hoi mt chui
tun tu phuc tap cc loi goi phuong thuc d tuong tc mt cch
thch hop. Cc chui tun tu ny tao ra cc giao thuc d tuong tc
voi mt lop hoc tp hop cc lop nhu vy. So d tun tu c th
duoc su dung d m ta vic su dung mt lop hoc nhm cc lop
tuong tc voi nhau, bng cch d m ta cc giao thuc cn thit d
tuong tc.
Lgic phuong thc
Cc so d tun tu l tuyt voi d lm tu liu dn chung cho logic
cua phuong thuc. Trn thuc t, mt s cng cu CASE, khi cho
truoc mt phuong thuc Java, s tu dng tao ra mt so d tun tu.
Vic lp so d tun tu c th dng d thit k mt phuong thuc
trong tuong lai hoc d lm tu liu dn chung cho dng xu l cua
mt phuong thuc hin hnh.



V ng dng mu
Chng ta s tm hiu v cch lp so d tun tu voi su gip d cua
th trong mt ca su dung v xuyn
nhiu ca su dung. Cho dn nay, bn c
th tc nhn khc nhau d duoc xc
dinh nhu l cc cai tin hoc ban mu
(stereotype) di voi dc ta UML: tc
nhn khoi tao (initiator), my chu, tc
nhn tip nhn (receiver), v tc nhn
xc tin (facilitator). Do cc c th tc
nhn c th duoc phan nh trong cc so
d tun tu, ban nn lm quen voi cc
chuc nng cua chng.
Mt tc nhn khoi to l mt
thuc th ngoi m dua mt hnh
vi h thng no d vo hoat
dng. Cc tc nhn khoi tao c
th yu cu cc dich vu hoc tao
ra cc su kin. Trong cc so d
tun tu noi c mt cc tc nhn,
cc tc nhn khoi tao khoi dng
chui su kin.
Cc c th my chu bn ngoi
cung cp dich vu cho cc bn
khc. Cc my chu gip d h
thng trong vic dat duoc muc
dch cua n bng cch cung cp
chuc nng hoc thng tin tu bn
ngoi. Nhiu h thng bn ngoi,
gm ca h diu hnh l cc c
th my chu. Cc my chu c xu
huong thu nhn cc thng dip
nhung hu nhu khng tao ra
chng.
C th tc nhn tip nhn thu
nhn thng tin tu h thng.
Chng c th cung cp cc dich
vu nhung chng lm vic d mt
cch thu dng. Kt qua l chng
c th khng mang lai gi tri cho
h thng nhung s mang lai gi
tri cho cc tc nhn khc. V du
v mt tc nhn tip nhn l mt
kho du liu hoc h thng sao
luu bn ngoi. Tc nhn tip
nhn thuong nhn duoc cc
thng dip tu cc di tuong trong
h thng nhung thuong khng
tao ra chng.
Tc nhn xc tin (facilitator) l
mt tc nhn thuc hin mt hnh
dng thay mt mt tc nhn
khc. Mt v du v mt tc nhn
xc tin l mt nhn vin cua
hng cho thu video, nguoi cho
thu cc video dnh cho khch
hng.
Page 2 of 8 Lp m hnh voi Java: Mt cun sch bi tp v UML, Phn 1
mt ung dung xu l vay no mu. Do chuyn muc ny tp trung
vo vic m hnh ho, khng phai l vo phuong thuc, chng ta cn di thng vo vic lp so d, nhu vy
chng ta s vn d cc chi tit cua ung dung kh long leo. Cc chuc nng cn ban m chng ta s lp so d cho
ung dung xu l vay no nhu sau:
Ca s dng: Np yu cu vay n (Submit loan request)
1. Mt nguoi dung don hon tt v trnh np mt don xin vay no qua Internet toi ngn hng.
2. H thng kim tra tnh hop l cua thng tin trn don xin vay, kim tra xem n d chnh xc v dy du
nht chua.
3. H thng chuyn tip yu cu vay tin dn mt phng tn dung bn ngoi d nhn duoc mt bo co tn
dung cua nguoi dung don.
4. H thng tnh ton dim s tn dung cua nguoi dung don dua trn bo co tn dung d tra v.



Bt du
Buoc du tin d tao ra mt so d tun tu l xc dinh xem so d
d c biu din mt tuong tc voi mt thuc th bn ngoi hay bn
trong h thng. Nu ban dang m hnh ho mt kich ban ca su
dung, cc so d tun tu cua ban thuong s biu din mt tuong
tc voi mt thuc th bn ngoi. Nu ban dang m hnh ho cc
giao thuc trong mt khung cng tc, cc so d ny c th biu
din mt tuong tc bn ngoi hoc bn trong. Cc so d cho cc
h thng con, cc lop, v logic cua mt phuong thuc ring le
thuong chi biu din cc thuc th bn trong. D d l truong hop
no th kiu tuong tc m ban dang m hnh ho s xc dinh phn
tu du tin (v o ngoi cng bn tri) trong so d tun tu d.
Mt tuong tc voi mt thuc th bn ngoi chi r rng mt tc
nhn s l mt bn cua tuong tc d. Mt tuong tc bn trong c th duoc mt tc nhn kch hoat (nu cc ca
su dung h thng con l co so cua tuong tc), nhung rt c th n s duoc kch hoat boi mt lop chung goi l
Sender (bn gui). Nu mt tc nhn khoi dng tuong tc ny, tc nhn d s roi vo loai hnh tc nhn khoi
tao, mt trong bn c th tc nhn ph bin (xin xem V cc c th tc nhn (About actor personalities) d bit
thm chi tit).
Chng ta s tp trung vo vic lp so d mt kich ban cho ung dung xu l vay no cua chng ta: d l ca su
dung nop yu cau vay no phc thao trn dy. Hy ch toi cc thay di voi so d tun tu cua chng ta khi mt
nguoi dung don hon tt mt don vay tin truc tuyn v trnh np n trn Internet. Trong kich ban ny, nguoi
dung don l bn ngoi so voi h thng v do d duoc dai din boi mt tc nhn. Chng ta s bt du bng cch
thm tc nhn ny, Applicant, vo so d, nhu trong Hnh 1.

Hnh 1. Thm vo ngui dng don
Dng bo l phn cn li cua lot bi
"Mt cun sch bi tp v UML"
Phn 2: "Logic diu kin trong cc so
d tun tu" (06.2001)

Phn 3: "Logic giao din nguoi dng
trong vic lp m hnh ca su
dung" (06.2001)

Phn 4: "Vai tr cua tc nhn" (06.
2002)
Page 3 of 8 Lp m hnh voi Java: Mt cun sch bi tp v UML, Phn 1




Thm vo ngui choi
Khi tc nhn khoi tao cua tuong tc d sn sng, buoc tip theo l thm vo cc di tuong m tc nhn ny s
tuong tc voi chng theo din bin cua kich ban. Tn cua cc di tuong ny s phan nh hnh vi cua cc lop
hay c th. (Vic lua chon cc lop hay chon c th di tuong mang lai mt nghia ring bit cho so d tun
tu, nhung ti s d dnh lai vic thao lun v su khc bit giua hai lua chon d cho ln sau).
Di voi kich ban mu, chng ta s thm vo hai lop: LoanApplication v LoanRequest. Mt don xin vay
tin l bt buc phai c khi xin vay tin. N chua thng tin v nguoi lm don v khoan tin mun vay. Mt
yu cu vay tin l mt mu biu ngn hng gui dn mt phng tn dung sau khi nhn duoc don xin vay tin.
N chua mt s thng tin tu don xin vay tin, cung nhu mt yu cu nhn cc thng tin v lich su tn dung cua
nguoi dung don. Vic thm hai lop ny vo so d tun tu duoc th hin trong Hnh 2.

Hnh 2. Thm vo hai lp tuong tc

Page 4 of 8 Lp m hnh voi Java: Mt cun sch bi tp v UML, Phn 1



Ni cc nt chm -- , nt gach
Cc so d tun tu c tnh truc gic di voi hu ht cc nh pht trin phn mm. Chng nh xa cc di tuong
v cc tc nhn (truc ngang) voi thoi gian (truc dung). Cc thng dip kt ni cc di tuong, di tu di tuong
ny dn di tuong khc xui xung theo truc dung nhu khi cc thng dip xut hin theo thoi gian. Cc thng
dip ny duoc ni voi mt duong thng dung, nt dut, bt ngun tu dim giua dy cua di tuong hay tc nhn.
Duong ny goi l dy treo (lifeline). (N.D: khng bit c phai nguoi dt ra thut ngu ny dua vo mt lin
tuong kh bt ngo sau dy hay khng? Nhung nguoi lm vic trn cao phai deo mt dy an ton mc o tht
lung, bung thng xung theo chiu thng dung, n goi l (lifeline)).
Trn truc ngang, chng ta biu din thng dip bng cc mui tn di khi goi l cc mi tn cuoc goi hay mi
tn thng dip. Mt mui tn thng dip huong tu bn gui (dui) dn bn nhn (du). Cc mui tn ny su dung
bt giu hnh vi dng cua h thng. Cc cuc goi thuong bt du tu bn tri v di v huong bn phai. Nghia l,
mui tn ban du trong mt tuong tc thuong dn tu bn tri. Khi chng ta tao ra mt c th moi cua mt lop,
chng ta v mui tn tro dn chnh lop d chu khng phai l dn dy treo cua n. Buoc du tin trong kich ban
cua chng ta l tao ra mt don xin vay tin moi, v vy chng ta s v mt mui tn giua Applicant v
LoanApplication. Boi v vic tao ra mt c th moi trong Java bao gm vic goi hm tao (constructor),
chng ta c th gn nhn mui tn ny bng tn hm tao v c th gm ca cc di s cua n.
Chng ta vn dang trong giai doan phn tch cua vng doi pht trin phn mm, v vy chng ta cn bao gm
thm thng tin phn tch cng nhiu cng tt. Mt trong nhung nh phn tch nghip vu cua chng ta d ni
rng chng ta goi hnh dng tao ra mt don xin vay tin moi l "hon tt don xin vay". Nu chng ta mun
tht st dng di voi so d tun tu dang xy dung ny, chng ta c th trin khai thuc hin complete nhu l
mt phuong thuc tinh cng cng (public static), trong d s goi hm tao LoanApplication nhu Hnh 3.

Hnh 3. To ra LoanApplication




V so d mt s kch hoat
Khi mt lop hoc c th nhn duoc mt thng dip, n tao ra mt hp trn dy treo cua di tuong tip nhn;
Page 5 of 8 Lp m hnh voi Java: Mt cun sch bi tp v UML, Phn 1
vic ny goi l mt kch hoat.Mt kch hoat biu din dng diu khin trong phuong thuc cua bn nhn. Khi
mt thng dip dn dn vic tao ra mt di tuong, kch hoat du tin biu din cho logic cua hm tao. Cc
thng dip sau d s dn dn vic tao ra cc kch hoat moi.
Sau khi nhn duoc mt thng dip, di tuong nhn c th, dn luot mnh, gui cc thng dip dn chnh n
hoc dn cc di tuong khc. Diu ny th hin bng dui cua cc mui tn, trnh by cc thng dip xut pht
tu kch hoat d v kt thc tai cc kch hoat moi. Khi mt di tuong goi chnh n, kch hoat moi duoc dt ln
trn kch hoat cu.
Trong kich ban cua chng ta, nguoi dung don tuong tc voi don xin vay tin hai ln, du tin l d hon tt n,
v ln thu hai l d gui np. Khi LoanApplication nhn duoc thng dip submit n tu kim tra hop l bng
cch gui mt thng dip validate dn chnh n. Nu hop l, n s tao ra mt LoanRequest moi d gui dn
phng tn dung. Hnh 4 cho thy vic kim tra hop l LoanApplication.

Hnh 4. Kim tra hp l LoanApplication




Khi mi tn bay: Cho bit thi gian tri qua
Chng ta su dung mt mui tn nghing d biu thi d tri qua mt qung thoi gian dng k giua khoang thoi
gian mt thng dip duoc gui di v thoi gian n duoc tip nhn. K php ny su dung d cho bit rng mt
cuc goi khng phai l nguyn tu (N.D: tuc l c th phn chia duoc). V du v cc cuc goi khng nguyn tu
l cc loi goi phuong thuc thng qua CORBA hoc RMI, hoc cc thng dip gui qua mang.
Trong v du cua chng ta, phng tn dung l mt h thng bn ngoi, mt tc nhn c c th my chu (xin xem
V cc c th tc nhn d bit thm chi tit). Cc my chu thuong khng pht ra thng dip, m dng hon l
yu cu thng dip gui dn chng -- trong truong hop ny l yu cu v mt bo co tn dung, duoc gui boi b
kim tra tn dung. B kim tra tn dung dai din cho phng tn dung. N theo di v chuyn tip cc yu cu
dn phng tn dung, theo di v nhn phan hi, v mt khc thit lp cc kt ni giua ung dung xu l vay no
v phng tn dung. Phng tn dung s nhn yu cu ny v xu l n theo lich biu ring cua mnh. Chng ta su
Page 6 of 8 Lp m hnh voi Java: Mt cun sch bi tp v UML, Phn 1
dung mui tn nghing ny d biu din thoi gian tri qua, nhu Hnh 5 duoi dy.
Khi kt thc mt kch hoat, phn tra v cho bn goi l n. Tuy nhin, trong mt s truong hop, ban c th
mun lm cho phn tra v hin ra tuong minh. Cc loi goi tra v tuong minh duoc th hin bng mt mui tn
nt dut c dui l bn nhn v du l bn gui. Mui tn tra lai tuong minh thuong duoc gn nhn bng gi tri
m cuc goi tra v. Di voi v du cua chng ta, chng ta d thm vo mt mui tn tuong minh giua
CreditBureau v CreditChecker. Mui tn ny c th duoc gn nhn CreditReport, v d l di tuong
duoc tra lai tu phuong thuc requestCreditReport.

Hnh 5. Nhn mt CreditReport

Cn nhng g na
Nhu ti d nu o phn du chuyn muc ny, cc so d tun tu l huu ch di voi vic m ta hnh vi bn trong
cua mt h thng theo thoi gian. Trong bi vit ny, ti d dua ban qua cc buoc du tin cua vic xy dung so
d tun tu bng vic m hnh ho cc tuong tc giua cc di tuong. Trong phn tip theo, ti s gioi thiu hai
dang so d tun tu (chung v c th) v giai thch vai tr cua logic diu kin trong vic lp so d tun tu, bng
cch su dung cc v du rt ra tu cc phuong thuc Java don gian. Hen gp ban sau!


Ti nguyn
Martin Fowler (tc gia cua UML Distilled) dua ra mt ci nhn cua nguoi trong cuc v lich su khoi du
cua UML.

Nu ban nghim tc mun tm hiu v UML ban nn bt du bng bi vit gc cua ba nguoi ban
(Booch, Jacobson, Rumbaugh): Huong dan su dung Ngn ng M hnh ho thong nhat (loat bi v
Cng ngh Di tuong cua Addison Wesley, 1998).

Tip theo trong danh sch ct yu cn doc l Dc ta Ngn ngu M hnh ho thng nht cua OMG (ban
1.4 tnh dn 02.2001).

Trang Ti nguyn UML cua Rational cung cp thng tin hin tai v UML, RUP, v nhiu thu nua.

Mt cun sch dng doc v pht trin theo dc tnh v Quy trnh thng nht cua Rational l M hnh
ho Java voi mu sc bng UML (Java Modeling in Color with UML) cua Peter Coad, Eric Lefebvre,
Page 7 of 8 Lp m hnh voi Java: Mt cun sch bi tp v UML, Phn 1
Jeff DeLuca (Prentice Hall, 1999).

Mt cun sch tt nua v RUP l Quy trnh thong nhat cua Rational: Bi gioi thiu cua cua Philippe
Kruchten (Addison Wesley, 2000).


i nt v tc gi







Granville c 13 nm kinh nghim trong cng dng huong di tuong. ng l dng tc gia cua loat bi
Advanced Use Case Modeling (M hnh ho ca su dung nng cao) v d trnh by cc bi huong dn tai nhiu
hi nghi cng ngh huong di tuong trn ton th gioi. Cch tip cn thuc hnh dn vic pht trin huong di
tuong cua ng l kt qua qu trnh lm vic cua ng voi cc cng ty, tu cng ty khoi du trong giai doan non
tre dn mt s nhung nguoi khng l phn mm ting tm nht. ng hin dang giang day cc x mi na, phin
huong dn, cc lop hoc v quy trnh v phuong php lun pht trin lanh loi (agile), cng ngh Java, cung
nhu c vn v gip d d cung cp cc du n nng n.
Page 8 of 8 Lp m hnh voi Java: Mt cun sch bi tp v UML, Phn 1

You might also like