Tải bản đầy đủ (.pdf) (108 trang)

Khảo sát cách tiếp cận component (Patterns Frameworks) để ứng dụng trong lĩnh vực phân tích thiết kế hệ thống thông tin

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.7 MB, 108 trang )

BQ GIAo Ol,JC vA £>Ao TAO
£>AIHOC QUaC GIA TP HO CHI MINH
TRUONG £>AI HOC KH9A HOCTV NHIEN
I

NGUYEN LAM KIM THY
? , , ,.!'"
KHAO SAT CACH TIEP C~N COMPONENT (PATTERNS-
~ , -
FRAMEWORKS) DE UNG D{)NGTRONG LINH vTjc
PHAN TICH THIET KE Hit THONG THONG TIN
LuANAN THACSI KHOAHOC
CHUYENNGANHTIN HOC
MA SO:1.01.10
r
l
NGUOI HUaNG 0 "oJ KHOA H(
;:; ., ?
TS. DONG THT BICH THUY
TP. He CHi MINH - 2001
Moe loe
. .
***
Chu'dng1D~nnh~p trang 1
Chu'dng 2 KHAO SAT cAcH TIEP CAN THANH TO trang 7
2.1 Thanh to trang 7
2.2 M~u trang 11
M~uthietke ' trang 12
M~u phan tfeh : """""'" trang 18
2.3 Khung m~u trang 22
2.4 NhG'ngdi;iedi~m eua cae khai ni~m trong each tiep e~n thanh to' trang 24


NhG'ngdi~m khae nhau giG'am~u thiet ke va khung m~u trang 24
NhG'ngdi~m khae nhau giG'am~u thanh to va khung m~u trang 25
2.5 Nh~n xet ket 1u~n trang 25
Chu'dng 3 UNG D1)NG CACH TIEP cAN THANH TO TRONG PHAN TICH,
THIET KE H~ THONG THONG TIN: THU.NGHI~M val H~ THONG
QUAN LY cAc GIAO D~CHDA.T TRVac (GIU CHO) trang 29
3.1 MQtso each tiep e~n truy~n thong d~ phan rich, thiet ke mQth~ thong
thong tin :: trang 29
3.2 Xay dtjng h~ thong thong tin rhea each tiep e~n thanh to trang 31
3.2.1 Ph~m vi ling dl,ll1geua h~ thong qmln 1y cae giao diet di;ittru'oe trang 32
3.2.2 Xay dtjng m~u phan tich trong giai do~n phan tfeh h~ thong qmln 1y
cae giao diet di;ittru'oe trang 33
3.2.3 Thiet ke h~ thong qUail 1y de giao diet di;ittru'oe trang 38
3.3 Xay dtjng mQt ling dl,ll1ge1;lth~, b~ng each dung 1~ih~ thong quan1y
cae giao diet di;ittru'ck trang 47
3.3.1 H~ thong di;itmu'c;insaeh eua thu' vi~n trang 47
3.3.2 Cae ling d1;lngkhae trang 50
3.4 Ket 1u~n trang 54
Chuang 4 CAI BAT MOT KHUNG MAU CHO H~ THONG QUAN LY CA.C
GIAO DTCHBAT TRUaC : trang 55
4.1 Cai d~t mQt khung mall eho h~ th6ng quan 1y cae giao dieh d~t truck trang 56
4.1.1 Phan tieh yell du eua h~ th6ng trang 59
4.1.2 Phan tich h~ th6ng trang 65
4.1.3 Thie't ke'h~ th6ng trang 67
4.2 Xay dlfng mQt ling dl;lng el;lth~ bang each dung l~i
khung mall "q1gd.md1" trang 72
Chuang 5 BA.NHGIA.KET QUA THljC HI~N VA HUaNG PHA.T TRIEN trang 74
5.1 Danh gia ke't qua thlfe hi~n : trang 74
5.2 Huang phat tri~n trang 80
Phl;lll;le A trang 83

Phl;lll;le B : trang94
Tai 1i~u thalli khao trang 103
Trang 1
Chtidng 1
DANNH~P
Khoa hQcngay cang phat tritin chinh la nha d~c ditim thlia huang l~i
nhG'ngthanh qua cua the' h~ trudc d6, cac the' h~ trudc da "di truy~n" cho
con chau nhG'ng d~c tinh u'u vi~t cua mlnh. VI v~y khi phan tkh mQt h~
thO'ngrhea hudng dO'ituQng chung ta luon dling tren quail ditim : sa dl;lng
lq,inhilng gi dii co tli trudc d6, cua chinh mlnh hay do mQt ai d6 da t~o ra
va khi khong phai l~p l~i nhung gl da lam, chung ta se c6 nhi~u thai gian
cho stj sang t~o, thie't ke' nhG'ng chudng trlnh phlic t~p mang tinh hi~u qua
cao.
Di doi vdi vi~c phan tkh mQt h~ thO'ngrhea hudng dO'ituQng d6 la
thie'tke' mQth~ thO'ngrhea hudng d6i tuQng,vdi slf baa ham bell trong mQt
ldp dO'ituQng la nhG'ngthuQc tinh, phudng thlic va slf ki~n ma nhung
chuyen gia l~p trlnh c6 thti rhea d6 dti cai d~t nhung phffn m~m ling dl;lng
ffiQtcach hi~u qua, va khong nhfft thie't mQi vffn d~ d~u phai duQc phan
tkh dti c6 duQCnhung baa cao chi tie't, r6i sail d6 mdi chuytin sang giai
do~n thie't ke'.
Tli nhG'ng quail ditim phan rIch, thie't ke' h~ thO'ng rhea hudng dO'i
tuQngnhu da lieu tren ma ngay nay phan tkh thie't ke' h~ thO'ngrhea hudng
dO'ituQngda chin mu6i thanh mQtcach tie'p c~n c6 hi~u llfc va thlfc te' Wi
vi~c phat tritin phffn m~m va d~t hi~u qua "dung l~i". Tuy v~y, "slf dung
l~i" v~n con bi h~n che' do mQtsO'nguyen nhan sail day [13]:
Trang 2
- Trang nhi~u tntong hQp, khong th€ n~lOd~c ta duQc dfty dli mQt
vin d~ ngay tu dftu. Vi~c lam ban mftu lam nay sinh di;icta thl!c
hi~n duQc, tuc la ban mftu ph\lc V\l nhu mQt bi€u di~n cha yell
cftu, chung co th€ duQc ki€m chung va phan tfch them nii'a. Phan

tfch huang d6i tuQng co th€ dftn d~n vi~c lam ban mftu ctfc ky
hi~u qua, d€ ti~n hanh dung d~n vi~c lam ban mftu, co th€ cftn Wi
nhii'ng cong C\lva ky thu~t d~c bi~t. MQt cach d€ lam ban mftu
nhanh la l~p rap, thay vi xay dtfng, ban mftu duQc lam bAngcach
dung l~i mQtt~p cac thanh phftn phftn m~m da co san. MQtthanh
phftn phftn m~m co th€ la mQtciu truc dii'li~u (hay co sa dii'li~u)
hay mQt thanh phftn ki€n truc phftn m~m (nhu chuang trinh) hay
mQtthanh phftn thli Wc (nhu mQtmo dun). Trang m8i truong hQp,
thanh phftn phftn m~m phai duQc thi~t ke-'thea cach thuc lam cha
chung co th€ duQc dung l~i ma khong cftn bi~t chi ti~t v~ cach
lam vi~c bell trang. Tuy nhien, vi~c lam ban mftu va dung l~i cac
thanh phftn phftn m~m chi ha~t dQng duQc'n€u h~ th6ng thu vi~n
da duQc phat tri€n saa cha cac thanh phftn thtfc t6n t~i co th€ duQc
dua vaa danh m\lc va tlm ki~m l~i. M~c du nguoi ta da t~a ra mQt
sO'cong C\ld~c bi~t d€ dap ling yell cftu nay, nhung vftn con nhi~u
h~n ch~ cha vi~c xay dtfng thu vi~n, va stf dung l~i chi a d~ng ma
ngu6n (mQt ciu truc dii' li~u hay mQt thanh phftn ki~n truc phftn
m~m, hay mQt thanh phftn thli t\lc). Vi th~, con nhi~u vi~c cftn
phai lam nii'a.
- Vi~c dung cac lOp, lOp can va k~ thua co tftm quail tn;mg chli ch6t
Trang 3
trong cong ngh~ ph~n m€m hi~n d~i. Tuy nhien, khong gi6ng cac
khai ni~m thie't ke' khac dQc l?p vai ligon ngii' l?p trinh, vi~c cai
d~t cho lOp,lOpcon va cac d6i tuQngthay d6i theo ligon ngii'l?p
trinh duQcdung. Bdi 19do nay, thao lu?n t6ng quat tru'ac day phai
duQc saa d6i trong hoan canh ligon ngii' l?p trinh chuyen dl;lng.
Ch~ng h~n, Ada cai d~t d6i tuQng nhu mQt goi (package) va d~t
duQc cac d6i tuQng thong qua vi~c dung cac truu tuQng va dinh
ki€u dii' li~u. Ngon ngii' l?p trinh Smalltalk m~t khac l~i cai d~t
tung khai ni~m duQcmo tit mQt cach tnjc tie'p, lam cho chung la

mQt ligon ngii' l?p trinh huang d6i tuQng dung nghla. VI the', st!
dung l~i d day phl;l thuQc vao ligon ngii' l?p trinh.
- Thu vi~n cac ph~n m€m sa dl;lng l~i da co trong cac ling dl;lng
thuong m~i, cac h~ th6ng va cong vi~c th(ji gian tht!c, cac va'n d€
cong ngh~ va khoa hQc.Tuy nhien st! dung l~i nay chI dung l~i d
ph~n m€m t~o ra chung, bell c~nh d6, con qua it cac ky thu?t h~
th6ng d€ b6 sung cho mQt thu vi~n, cac giao di~n chu§n cho ph~n
m€m dung l~i ra't kh6 tang cuong, -va'n°d€ cha't luQng va baa tri
v~n con chua duQc giai quye't, va mQt di€u quail trQng, nguoi phat
tri€n thuong khong bie't r~ng cac kh6i xay dt!ng ph~n m€m thich
hQpth?m chi da t6n t~i!
- Nguoi l?p ke"ho~ch ph~n m€m phai xem xet Wi hai "qui tdc" khi
ph~n m€m dung l~i duQcxac dinh nhu mQttai nguyen :
1. Ne'u ph~n m€m hi~n c6 dap ling duQc yell c~u thl chi phi d€ c6
duQCph~n m€m hi~n co g~n nhu baa gio cling it bon chi phi d€
Trang 4
pha t tritin ph~n m6m tuong duong.
2. Nhung n€u ph~n m6m hi~n co doi hoi "siIa d6i nao do" trudc
khi no co thti duQctich hQpdung dan vdi h~ thO"ngthl chi phi
dti siIa d6i cho ph~n m6m hi~n co doi khi co thti ldn hon ra't
nhi6u so vdi chi phi phat tritin ph~n m6m tuong duong.
Tli do, cac nha khoa hQc da dua ra mQt cach nhln .mdi theo hudng dO"i
tuQng dti "st! dung l';li" d';lt hi~u qua hall, vdi chi phi d muc tha'p nha't, va
cach nhln do co duQc d~t ten la cach ti€p c~n thanh to"[8]. Vdi cach ti€p
c~n thanh to":
- Cling ca'p cho chung ta mQtkha nang co thti lap rap va bitiu di~n
cac ldp cling vdi nhau khi cac qui lu~t rang buQc da duQc dinh
nghia r6 rang, VI v~y, chung ta co thti dung l';li chung d muc cao
hon ma ngu6n, nghIala d do ngoai ma ngu6n ra con co cac so d6
d~c ta va cac thi€t k€ chi ti€t.

- Cach ti€p c~n thanh to"v~n khong hac bo thu vi~n cac ldp ma
chung con dua ra cac ngon ngii' m~u (pattern languages) dti cQt
ch~t cac ldp l';li vdi nhau. M~t khac, cach ti€p c~n thanh to"con
dua ra khai ni~m v6 ph';lm vi ung dlJng cua mQt h~ th6ng dti
chung d';lt duQcst! dung l';lid muc dQcao nha't.
- Chi phi thich ung vdi cac yell c~u mdi se giam dang kti va it sai
sot VIcac siIa d6i duQct~p trung d mQtch6 do co ch€ qUailly va
d~c tinh dung l';li cua cach ti€p c~n thanh to".
Trang 5
Nhu the', slf dung l(;litheo cach tie'p c~n thanh to' khong don thuftn la
thu vi~n cac lOp dO'ituQng ma chung con baa g6m cac thanh phftn khac bon
nua va cac thanh phftn nay se duQcd~ c~p chi tie't trong chuang 2 cua lu~n
van.
Lu~n van baa g6m 5 chuang:
Chlidng 1 : Gidi thi~u v~ tinh dung l~i trong phan tich thie't ke' huang
dO'ituQng cling vai nhung h(;lnche' "dung l'.ti" cua chung va tu do tren n~n
tang huang dO'ituQng, cac nha khoa hQc dff dua ra cach ti€p c~n thanh to'
d€ giup cho "slf dung l(;li"d(;lthi~u qua to't bon.
Chlidng 2 : Khao sat cach tie'p c~n thanh to'trong qua trlnh Kay dlfng
va phat tri€n phftn m~m Qua do, chung ta tha'y duQc cach tie'p c~n nay
huang tai mlJc lieu : "xay dlfng mQt h~ thO'ngnhanh bon, dfty du bon vai
chi phi Kaydlfng va baa trl tha'p nha't"
Chlidng 3 : Trong chuang nay, lu~n van se trlnh bay ling dlJng cach
ti€p c~n thanh to' trong phan tich, thi€t ke' mQt h~ thO'ngthong tin va d€
minh hQa tinh kha thi cua cach ti€p c~n nay trong h~ thO'ngthong tin, h~
thO'ng qUail ly cac giao dich d~t truac se duQc chQn bai ly do sail :
Khi Kay dlfng ho~c phat tri€n cac h~ thO'ng thong tin, chung ta
thuong g~p cac yell cftu nhu la: khach d~t phong khach s(;lntrong h~ thO'ng
thong tin qUailly kha"chS(;lncua mQtCong Ty"X, sinh vien dang ky muQn
sach thu vi~n trong h~ thO'ng qUail ly thu vi~n cua mQt truong d(;lihQc Y

ho~c d~t mila hang cua mQt Cong Ty Z nhfi'ng va'n d~ nay tuy nam trong
cac h~ thO'ngling dlJng khac nhau nhung chung co cung mQtban cha't, do
chinh la nhfi'ng dich VlJd~t truac va bai loan chung duQc d~t ra la : Kay
Trang 6
dlfng mQth~ thO'ngthong tin qUailly cae dich vv d~t tnfac nay d~ co th~
dung l~i trong nhi~u l1nhvlfc li'ngdvng khac nhau. Va each liSp c~n thanh
to' r§t thich h<;5pd~ giai quySt bai loan nay.
Chu'dng 4 : Cai d~t mQt khung mftu cho h~ thO'ng qUail ly cae giao
dich d~t tnfac.
D~ Kay dlfng h~ thO'ngqUail ly cae giao dich d~t tnfac thanh mQt li'ng
dvng co th~ dung l~i vai d~y dtl cae chi liSt phan tich, thie't kS va cae so d6
minh hQa chung ta se sa dvng cong cv ph~n m~m Rational Rose 2000 d~
Kaydlfng mQtkhung mftu vai ten gQila "qlgd.mdl".
Chlidng 5 : Danh gia kSt qua thlfc hi~n va huang phat tri~n.
Trang 7
Chtidng 2
? "'" " '"
KHAO SAT CACH TIEP C~N THANH TO
Cach liSp c~n thanh to'd~ c~p dSn cach xay dlfng cac thanh ph~n d~
c6 th~ sa dlJng l~i ho~c slf dung l~i cac thanh ph~n da du<jcxay dlfng tu
nhung h~ th<5ngkhac nhau d~ tu d6 lam n~n tang cho qua trlnh xay dlfng
va phat tri~n cac h~ thO'ngling dlJng. Trong chuang nay, chung ta khao sat
cach liSp c~n thanh to' qua cac thanh ph~n ma cach tie'p c~n nay d~ c~p
,
dC'n,d6 la : thanh to', mftuva khung m~u.
Trong ph~n trlnh bay, cac thu~t ngu du<jc dich tu tiSng Anh sang
tiSng Vi~t d~ nguoi dQc d~ theo d6i, do d6 chung du<jcdich theo y nghla
cua vin d~ ma chung ma ta, khang nhit thie't dung dung tu dich ma tu di~n
cling ci p, dai khi khang phu h<jpvdi nghla dung trong lInh vlfc mdi me
nay.

2.1 Thanh to' (Components) [7]
Dinh nghia :
Thanh t<5la slf kSt h<jpeua mQthay nhi~u don vi cai d~t (interface)
cua cac ki~u du li~u truu tu<jng(ADTs
- Abstract Data Types) - mQtdon vi
cai d~t theo each tie'p c~n thanh to' d6 la slf eai d~t eua mQtWp dO'itu<jng
truu tu<jng.
? ?
(j mlie kie'n true, thanh to'tuong ling vdi mQt h~ thO'ngcon. (j mlie
thie't ke', thanh to' tuong ling vdi mQt hay mQt vai don vi cai d~t c6 rang
Trang 8
buQcvoi nhau d6 t~o thanh C,l"Cthanh ph~n co ynghla, C5 mli'c nay, thanh to'
co th6 duQcbi6u di~n bang mQtm~u thie't ke' (xem trlnh bay chi tie't trong
ffil;!C2.2). d mli'cma hoa, thanh to' co th6 la mQtlOpddn hay mQt t~p cac
lOpco quail h<%chi)t che voi nhau.
Cae thanh phfin eiia IDQtddn vi eai d:}t :
MQtddn vi cai di)t g6m ba ph~n. Ph~n thu' nhftt chli'a ten cua ddn vi
dti di)t, ph~n thli' hai chli'a thong tin tr~ng thai hoi)c cac thuQc Hnh hoi)c
ffiQtsd d6 di)c ta, ph~n thli' ba chli'a cac phudng thli'c ma ddn vi cai di)t cling
ca'p. Hlnh 1 mo telmQt ddn vi cai di)t.
Ten don vi dli di,lt
Cac thuQctinhl So d6 di,lcta
Cac phuong thti'c
Hinh 1.Mo ta IDQtdon vi dti di[tt
Cac ddn vi cai di)t co thS ke't hQpcling voi nhau d6 t~o thanh cac li'ng
dl;!ngd~y duoSail day la mQtVIdl;!minh hQa cach thie't ke' mQt ddn vi cai
d~t tUs1!ke't hQp cua cac ddn vi cai di)t da co san (hlnh 2)
Dvcd_nhapdondathang (ddn vi cai di)t nh~p ddn di)t hang) duQc thie't
ke' tu s1! ke't hQp chi)t che cua cac ddn vi cai di)t Dvcd_Khachhang,
Dvcd_ddh, Dvcd_ctddh da co san tu mQt hay nhi~u h<%tho'ng khac nhau.

Trang mo tel thie't ke' cua Dvcd_nhapdondathang mQt ph~n chli'a ten cua
Dvcd_nhapdondathang, mQt ph~n chli'a sd d6
di)c ta
thie't ke'
Trang 9
Dvcd_nhapdondathang, do 1a so d6 d~c ta cac don vi cai d~t du'Qcdung 1~i
trong thie"t ke" Dvcd_nhapdondathang cung voi cac n6i ke"t cua chung va
ph~n con 1~i 1a cac phu'ong thlic ma Dvcd_nhapdondathang cling d(p .
Ne"u mQt don vi cai d~t nao do sa dl;}ngDvcd_nhapdondathang va
don vi cai d~t nay mu6n truy xua't cac thong tin thl cac thong tin do se do
cac don vi cai d~t tu'ong ling cling ca'p, Dvcd _Nhapdondathang chi du'a ra
cac phuong thlic cua rieng chung chli khong du'a ra cac thong tin dff co
trong cac don vi cai d~t ma chung sa dl;}ng.
Hlnh 2. Sli'dl;lngcae don vi dli d~t co siin d~ thie't ke'Dvcd_nhapdondathang
MQt vi dl;}khac, chung ta co th~ Kay d1!ng thanh to' h6 trQ kinh doanh
bang cach Hip rap, tich hQp cac don vi cai d~t tu :
- H~ thO'ng ke"loan va
- H~ th6ng quan 1ycac don d~t hang.
Cach tie"pc~n thanh t6 cho phep chung ta Kay d1!ngdon vi cai d~t
Khachhang tu s1!tich h(fp cua hai don vi cai d~t 1a NguoiIToan (dff du'Qc
Dved Nhapdondathang
E>vcu_khachhang
E>vcu_ddh
Ten
Oiaehi
Sodienthoai
E>vcu_ctddh
ThemKH
TimKH


Xulyoonoathang (Dveo_khaehhang,Dveo_etddh, Dveo_ddh)
Themmotmathangchodoh (Dvco_ddh, Dvcd_ctddh)
LaytenKHO : string
Trang 10
Kay dtfng trong h~ thO'ng k€ loan) va Nguoidathang (da dU<;5cKay dtfng
trong h~ thO'ngtrong h~ thO'ngqUail 1y cac don d~t hang), day chlnh 1a di€rn
d~c trung trong cach ti€p c~n thanh to', cach ti€p c~n thanh to' da dua ra
khai ni~rn rn~u (xern trlnh bay chi ti€t trong rn\lc 2.2) d€ giai quye't va'n d€
nay. M~t khac cach tie'p c~n thanh to' cling cho phep chung ta dung 1:;licac
k€t nO'ida dU<;5cKay dtfng giil'a cac don vi cai d~t dU<;5cdung 1(;li.Hlnh 3
rninh h9a qua trlnh Kay dtfng thanh to' h6 tr<;5kinh doanh tu cac don vi cai
d~t da co trong cac ling d\lng khac nhau :
Thanh to'h6 trc;lkinh doanh
* I MATHANG
Hinh 3. Xfiy dvng thanh to'h6 trQkinh doanh tu cae don vi cai d~t dffco s5n
trong ht$th6ng ke' loan va ht$th6ng qUailly don d~t hang.
Trang 11
Cac ky hi~u tren so d6 :
Ky hi~u :

dung d~ chI st! dung l(;licac don vi dli d~t da duQc
xay dt!ng tli'mQth~ th6ng khac.
Ky hi~u :p> dung d~ chI st! dung l(;licac ke't n6i da duQc xay
dt!ng giua cac don vi cai d~t duQc dung l(;litli' mQt h~ th6ng khac.
Nhuthe', chung ta co th~ thie't ke' cac don vi cai d~t/thanh to'd~ dung
l(;likhi xay dt!ng cac ung d1;lng,nhung kh6ng Denthie't ke' cac don vi cai d~t
h6 trQcho vi~c dung l(;liqua IOnbdi VIchung se rfftphuc t(;lpva kho dung
l(;li.
Trong cach tie'p c~n thanh to', cac nha khoa hQcda dua ra mQtthanh
phfin kh6ng kern phfin quail trQngma thanh to'da d~ c~p de'n do la: mftu.

2.2 M~u (patterns)
Trong [1], khai ni~m mftu duQc dinh nghla nhu sail : "m6i m6u la mQt
quy tde 3 thanh phdn co lien hf vdi nhau do la mQt van d~ edn gidi quye't,
mQt phC;lmvi eua van d~ do, va mQt gidi philp el;tthi eho van d~ db". Tuy
nhien, vao thai do
y kie'n cua [1] v~ mftu kh6ng duQc chffp nh~n rQng di.
Mai de'n Dam 1987, khi mftu duQc d~ c~p mQt lfin nua t(;li hQi nghi
OOPSLA
(Conference
on
Object -oriented Programming System,
Languages and Applications) thl bffy gia moi co nhi~u nha khoa hQc quail
tam de'n "m6u" va nghien CUllv~ chung.
Cho de'n nay co nhi~u lo(;limftu da duQc xay dt!ng, nhung co hai
trong sO'cac mftu lien quail dang duQcd~ c~p nhi~u nhfft do la : mftu thie't
Trang 12
ke' (design pattern) [5] - la cac m~u h6 tr<jtrong qua trlnh thie't ke' h~
thO'ng,va m~u phan tich (Analysis pattern) [3]
- la cac m~u h6 tr<jtrong
qua trlnh phan tich h~ thO'ng.
~ Milu thiC'tkC'(design pattern) [5]
M~u thie't ke' dti<jcra ddi vao nam 1995, chung dti<jc Kay dlfng b~ng
cach ling dt;lng,md rQngva dtia cac ykie'n v~ m~u cua [1] dtn ph~n m~m
htidng dO'itti<jng.
M~u thie't ke' chlia nhung thie't ke' con tai di~n thtidng xuyen. Hay
noi cach khac, m~u thie't ke' la mQtt~p cac dO'itti<jngcQngtac vdi nhau d~
giai quye't mQt vf{nd~ nao do, va chung dti<jcm6 ta nhti mQt vi cf{utruc co
th~ dung l~i, trong [5] m~u thie't ke' dti<jcdinh nghla nhti sail :
Dinh nghia milu thiC'tkC':
"M~u thie't ke' la mQt giai phap chua'n cho mQt vf{nd~ xuf{t hi~n trd

l~i trong mQt ngu canh".
Van d~ : vf{nd~ thie't ke' phai dti<jcgiai quye't.
Gidi phdp : hanh dQng dti<jc dtia ra d~ giai quye't mQt vf{n d~ cho
trtidc trong ngu canh rieng cua vf{nd~ nay.
Ngfl cdnh : ma ta ph~m vi ma ddo vf{nd~ hi~n hUll va ma ta cac
ti~n di~uki~n ma m~unay dti<jcap dt;lng.
Cae thanh ph~n eua milu thiC'tkC':
Trong [5] mQt m~u thie't ke' dti<jcma ta qua cac ytu to' nhti sail:
Ten (name) : ten m~u phai co y nghla, chung ta dung mQt tu don
ho~c mQt Caliligan d~ d~t ten cho m~u. Dai khi mQtm~u co th~ co nhi~u
Trang 13
ten dung chung ho~c nhi~u ten d~ nh~n bie't trong ad li~u.
Ddn giai (intent) mQttrlnh bay ng~n tra Wi cho diu hoi "Thie't ke'
m~u nay d~ lam gl?".
Ten khdc (also Known as) mQtten khac cua m~u.
DQng ca (motivation) minh hQa va"nd~ thie't ke', ca"utruc cua lOp va
d6i tuQng trong m~u. DQng co nay se giup chung ta hi~u r6 hon slf mo ta
, ? ~
tnYutuQng cua mall.
Trz,{(jngdp dl;lng(applicability) la ngu canh ma (j"do m~u co th~
duQc ap d1;1ng(ngu canh la slf mo ta v~ moi truong ma (j do va"nd~ duQc
hi~n huu va slf mo ta cac ti~n di~u ki~n d~ m~u na"yduQcap d1;1ng).Thong
qua truong ling d1;1ngchung ta se tha"yduQc kha nang ling d1;1ngcua m~u.
Sa db leJp(structure) mQt slf bi~u diSn b~ng d6 hQa cac lOp trong
m~u dlfa tren mo hlnh OMT (Object Modeling Technique). Chung ta cling
co th~ sa d1;1ngcac so d6 tuong lac d~ bi~u diSn slf tu§n tlf cua cac yell c§u
va slf cQng lac cua cac d6i tuQng.
Thanh vien (participants) vai tro cua nhung IOp/ d6i tuQng trong
m~u thie't ke'.
Phz,{angthuc cQng tdc (collaborations) phuong thlic dQng cua cac

lOptuong lac trong m~u thie't ke'.
H(zu qua (consequences) trlnh bay lQi ich khi dung m~u thi€t ke'.
Cai dijt (implementation) gQi
y va ky thu~t d~ cai d~t m~u thie't ke'.
Mii minh hQa (sample code) cac do(;tnma minh hQa m~u thie't ke'.
Tham khao (known uses) nhung tham khao d€n cac h~ th6ng thlfc.
Mdu lien quan (related patterns) cac m~u co lien quail m~u thie't ke'.
Trang 14
Danh m\lc cac mftu thie't ke' :
Trong [5], mQt danh sach cac m~u thie't °ke'cho cac va'ri d~ dU<;fcl~p
l~i thudng xuyen da: dU<;fct6ng h<;fpva, phan thanh ba nh6m nhu sail :
. Mftu t~o d61hi<jng (creational patterns)
M~u t~o doi tU<;fngla sl! truu tu<;fngh6a qua trlnh t~o ra mQt doi
tu<;fng,m~u t~o doi tu<;fnggiup chung ta t~o mQth~ thong khong l~ thuQc
cac doi tu<;fngdU<;fct~o.
C6 hai va'n d~ chinh trong m~u t~o doi tu<;fngd6 la sl! d6ng g6i va sl!
che da'u thong tin. f)gu lien, la sl! d6ng g6i ta't ca tri thlic (bao g6m du li~u
va cac phuong thlic thao lac tren du li~u d6) VaGtr"ongcac d6i tu<;fngCl,lthe
ma h~ thong dung. Thli hai la che da'u cac doi tU<;fngdU<;fct~o VaG trong
mQt ldp doi tU<;fngtruu tu<;fngva h~ thong se nh?n bie't du<;fcnhung doi
tU<;fngtrong mQt ldp doi tU<;fngtruu tu<;fngnay.
Thong thudng m~u t~o doi tu<;fngcho chung ta thich ling voi nhung gl
du<;fct~o, ai t~o chung, va t~o khi naG. Chung cho phep chung ta dinh hlnh
mQth~ thong voi nhung doi tu<;fngdU<;fCt~o - dinh hlnh c6 the la tlnh (dinh
r6 t~i thdi gian dich) ho~c dQng (t~i thdi gian thl!c thi).
. Mftut~oca'utruc (structural patterns)
M~u t~o ca'utruc lien quail de'n Iihung ldp va nhung doi tu<;fngc6 ca'u
truc ldn.
M~u t~o ca'u truc dung tinh ke' thua de giai quye't va'n d~ thie't ke'
ho~c cai d~t thie't ke'. Ch~ng h~n, m~u t~o ca'u truc dua ra cach de trQn hai

hay nhi~u ldp doi tu<;fngphlic t~p VaG mQt ldp doi tu<;fng(dU<;fcgQi la ldp
cha) de chlia cac thuQc tinh chung cua nhung ldp nay, con cac thuQc tinh
Trang 15
rieng bi~t thl v~n chaa trong m6i ldp k€ thua.
. Mftu mo tahanh vi (behavioral patterns)
Hanh vi la sl! dinh nghla truu tuQng cua mQt thu~t giai, chung dinh
nghla thu~t giai tung buoc mQt. M6i buoc yell cftu mQt phuong thac truu
tuQng ho~c mQt phuong thac nguyen thuy.
M~u mo ta hanh vi lien quail d€n cac thu~t giai va sl! rang buQc giua
cac d6i tuQng. M~u mo tel h~lllhvi thong chi mo ta cac thu~t giai va sl!
rang buQccua cac d6i tuQnghay cac ldp d6i tuQngma con mo ta sl!truy~n
thong giua chung.
Lop d6i tuQngcua m~u mo ta hanh vi sa dvng sl!phan dip d6i tuQng
d€ phan ph6i hanh vi giua cac ldp d6i tuQng .
Cae ung d1)ng eua mftu thie't ke' :
Chung ta co th€ noi ding m~u thi€t k€ la cach d€ cho nhung nguoi
l~p trlnh hQct~p nhung thanh cong da:qua. MQtm~u thi€t k€ se mo ta giai
phap t6t nhftt cho mQtvftnd~ trong th€ gioi thl!c. M~u thi€t k€la giai phap
cua nhung nguoi co kinh nghi~m, cua nhung chuyen gia giai quy€t nhung
vftn d~ ki€u nay va day cling la cach nhanh nhftt d€ chung ta d~t duQctri
thac va kinh nghi~m cua cac chuyen gia.
Hon nua, qua cac m~u thi€t k€ cho phep nhung nguoi l~p trlnh co
mQt ligon ngu chung d€ sa dvng khi thao lu~n cac vftn d~ va dua ra cac
giai phap cho vftn d~ do, bang cach sa dvng tu ngu cua m~u thi€t k€, nguoi
l~p trlnh thong phai di~n giai l~p di l~p l~i
Y tudng cua hQ.
Hlnh 4 minh hQa ang dvng thl!C t€ cua m~u thi€t k€ da hQp
(Composite pattern) cua [5] cho vi~c thi€t k€ cac ldp d6i tuQng cftn thi€t
Trang 16
dung d~ cai d~t mQt h~ th6ng thlfc don trong bQ qmln 19h~ th6ng thlfc don.

Gamma [5] nh~n thiy m6i thlfc don co chli'a cac mlJc, m6i mlJc co
th~ la mQt thlfc don con. Ho~c la h~ th6ng quan 19 diy thti mlJc : m6i thti
mlJc co chli'a cac t~p tin hay cac thti mlJc con, ho~c mQt d6 thi co chli'a cac
nut, m6i nut co th~ la mQtd6 thi con Di~u nay dffdtia Gamma dtn mQt9
ttidng la co th~ t6ng quat hoa va t~ora mQtthitt kt chungd~ chung co th~
dtiQCsa dlJng l~i trong m6i trtiong hQp nhti tht, m~u thitt kt dtiQc d~t ten
la m~u thitt kt da hQp.
fI
o&
Cov'
!>m,.
Menu
Menu
Item
I SubMenuI I CallBack I
Hinh 4. Minh hQa li'ng d\lng th\l'c te' cua m~u thie't ke' da h<;5p(Composite pattern)
trong thie't ke' mQt h~ th6ng th\l'c don
CI-
:E:
C'p" l'ao"'OVbF.'m
F,od":b
C.p" Cba."" F.om
Sdl Cbooi
C.p" S"I.Sb=
c ,I"",b,
""","'.""'"",,,"""" CoI.oDO,.o ,
C.p" u."" I>
.L o&
P'o, 01 Do.DO.a,
Va,obIcD<foa" ,

";"';"""';';';';';'im!!H
Component


ThaotacO

Composite


Them(Component)
Xoa(Component)
Item


ThaotacO
Menu


Them(Item)
Xoa(Item)
Trang 17
Cac ky hi~u tren sd d6 :
Ky hi~u
Ky hi~u
bi€u di~n ban s6 cua m6i k€t hQp la loon.
. bi€u di~n stj k€t hQp li;li.
MQt vi dl:1khac : trd li;livi dl:1trong phfin 2.1 (hinh 3). Nhu dfi d~ c~p,
cach tie'p c~n thanh t6 dfi dua ra khai ni~m mftu, Cl:1th€ la mftu thi€t ke' d€
giai quye't vi~c "tich hQP" hai ddn vi cai d~t, ti;lOnen mQt ddn vi cai d~t
maio "Mftu ti;lodiu truc" [5] duQc dua ra d€ giai quye't vffn d~ nay, chung

dua ra cach d€ trQn hai ddn vi cai d~t la NguoiTToan (dfi duQc Kay dtjng
trong h~ th6ng k€ loan) va Nguoidathang (dfi duQcKaydtjng trong h~ th6ng
trong h~ th6ng qUailly cac ddn d~t hang) thanh mQtddn vi cai d~t mai, do
la ddn vi cai d~t Khachhang. Ne'u hai ddn vi cai d~t duQctrQn co cffu truc
lOn, philc ti;lPthi "mftu ti;lOcffu truc" dung tlnh k€ thua d€ giai quye't vffn d~
nay, nghla la, se co mQt lOp d6i tuQng (ddn vi cai d~t) Khachhang (duQc gQi
la lOp cha) d€ chila cac thuQctlnh chung cua nhung lOp nay (NguoiTToan,
Nguoidathang), con cac thuQctlnh rieng bi~t thi vftn chila trong m6i lOpk€
thua.
Mftu thi€t k€ la mQt ky thu~t dfiy hila hyn trong vi~c dung li;licac k€t
qua thie't ke' cua phfin m~m. Mftu thi€t ke'lttu gill cac cffu truc tInh va dQng
cua phfin m~m, bell ci;lnh do nho stj cQng lac cua mftu thie't ke' vai cac
thanh t6 ma cac vffn d~ se co duQc nhung giai phap thanh congo
Sail khi Gamma dua ra cac mftu thi€t k€, Martin Fowler [4] dfi nh~n
tha'y ding ngoai cac mftu thie't ke' cua Gamma con co nhi~u mftu phfin m~m
(software patterns) khac hi~n hall, ch~ng hi;ln nhu la : cac mftu l~p trinh
phan tan (distributed programming patterns), cac mftu man hinh lam vi~c
Trang 18
(user interface patterns) va ca nhung m~u t6 chlic cac nhom phat tri~n
ph~n m~m (patterns of organizing software development groups), va ang
cling nh~n thiy c~n co nhung m~u giup cho qua trlnh phan tich mQt ht%
th6ng huang d6i tuQng. VI tht ang da: dtta ra khai nit%mm~u phan Hch nhu
sau:
~ Mftu phan tich (analysis patterns)
" M~u phan tich duQc Kay dtfng tu mQt hay nhi~u d~ an thtfc tt
bang cach chat lQCra nhung di;ictrung n6i b~t nhit d~ dua vao m~u phan
tich. "
Martin Flower cho rang cac m~u phan tich chlia rit nhi~u nnh vtfc tri
thlic va co th~ duQc dung trong Hlt ca cac ling dvng kinh doanh. Cling
gi6ng nhu cac m~u thitt kt,. m~u phan tich duQc trail tuQng hoa d~ thich

ling vai cac yell c~u khac nhau cua ht%th6ng, chung khang la nhung giai
phap hi~n nhien cho cac vin d~ c~n giai quytt ma chung duQcrut trich tu
nhung kinh nghit%mthtfc tt trong nhung vin d~ ki~u nay.
M~u phan tich thuQc v~ quail nit%mbdi VIchung mieu ta cach ma
con nguoi nghi den d~ giai quytt mQtvin d~ hdn la cach ma mQtht%th6ng
may Hnh se duQc thitt kt nhu tht nao d~ giai quytt vin d~ do. Martin
Flower di;it m6i vin d~ c~n giai quytt trong mQtngu canh (ph~m vi ma vin
d~ do hit%nhall) va sail do dua ra mQtgiai phap cho ngu canh do, Dng da:
dua ra mQtbang cac m~u phan tich (phv lvc B cua [4]) d~ giup chung ta
nh~n bitt cac m~u phan tich thich hQp co th~ sa dvng l~i. Vi dV : ma hlnh
d6i tuQng quail sat (observation) va ma hlnh d6i tuQng do luong
Trang 19
(measurement) ma Martin Flower thie't ke' cho lInh vt!c cham sac sli'ckhoe
co th~ du<;jcdung l(;likhi phan tich mQtt6 chli'ctai chinh.
Cae lo~i mflu phan tieh :
Trong giai do(;lnkhdi d~u cua qua trlnh phat tri~n h~ th6ng, m~u
phan tich v~n con chua sa dl;lllgrQngrai, v§n d~ d ch6 la thie'u cac thu vi~n
cua cac m~u phan tich chu~n ho~c thie'u cac m~u phan tich thich h<;jp.D~
t(;lOdu<;jcmQt m~u phan tich co th~ li'ng dlJng trong mQt vai tlnh hu6ng khac
nhau chung ta hay co khuynh huang 'xay dt!ng mQt m~u kha t6ng quat va
chinh di~u nay da gay r§t nhi~u kho khan va phli'ct(;lpcho vi~c Kay dt!ng
m~u phan tich. Peter Coad, mQt chuyen gia hang d~u trong lInh vt!c Kay
dt!ng ma hlnh d6i tu<;jngda nh~n th§ y du<;jcv§n d~ nay, trong chuang 7 cua
[3], Peter Coad da dua ra 177 chie'n lu<;jcva 31 m~u - m~u du<;jcsa dlJng d
day chinh la cac m~u ma hlnh d6i tu<;jngnham giup cho nguoi phan tich
Kay dt!ng cac ma hlnh d6i tu<;jngmQtcach hi~u qua, con cac chie'n lu<;jc
cho ma hlnh huang d6i tu<;jngthl baa g6m : ph(;lmvi ho(;ltdQng va cac sa d6
lOp d6i tu<;jng,giup nguoi phan tich nh~n bie't mlJc lieu va cac d~c trung
cua h~ th6ng d~ It!a ch9n cac lOpd6i tu<;jngthich h<;jp,sail do nguoi phan
tich se thie't l~p cac bang rang buQc,cac ke' ho(;lchho(;ltdQng cho h~ th6ng

du<;jcphan tich.
Cac lo(;lim~u phan tich cho ma hlnh d6i tu<;jngdu<;jcPeter Coad d~
nghi la : mJu nJn tang, mJu xilly giao djeh, mJu t5ng h(lp e(l'u true, mJu
IcJpki hoCfehva mJu eae a(J'itU(lng tu(Jng tae.
M~u n~n tang (Fundamental pattern): m~u nay la m~u ma hlnh d6i
tu<;jngn~n tang, giup chung ta nh~n bie't cac d6i tu<;jng.
Trang 20
M~u giao dich (Transaction patterns): baa g6m cac m~u tC;lova xii'ly
giao dich.
M~u t6ng h<;lpca"utruc (Aggregate patterns) : baa g6m cac m~u thu
th~p ca"utruc d6i tu'<;lngdli li~Jl d~ tC;lonen mQt ki~u dli li~u maio
M~u l~p k€ hOC;lCh(Plan patterns) : baa g6m cac m~u l~p k€ hoC;lch
va thljc hi~n cac bu'ac k€ hOC;lChdu'a ra.
M~u cac d6i tu'<;lngtu'onglac (Interaction patterns): la nhling m~u ma
tit cac d6i tu'<;lngco lac dQngl~n nhau.
Vi dlJ : Peter Coad da Kay dljng mQt m~u l~p k€ hOC;lChnhu'sau :

Hinh 5. M§:u phan rich : ke' hOC;lCh- sv thvc hi~n ke' ho~ch.
Cac ky hi~u tren so d6 :
Ky hi~u 1
bi~u di~n ban so' cua m6i k€t h<;lpla 1.
bi~u di~n ban so' cua m6i k€t h<;lpla n.
Ky hi~u *
M~u nay du'<;lcPeter Coad Kay dljng tu cac d~ an thljc t€, ch~ng hC;ln
nhu' : cang vi~c va slj thljc hi~n cang vi~c, k€ hoC;lchcua mQt d~ an va slj
thljc hi~n d~ an do, ho~c la mQtthu tlJCva slj thi hanh thu tlJCdo.
M~u phan tich k€ hOC;lCh- slj thljc hi~n k€ hOC;lChdu'<;lCsii' dlJng khi
KEHOACH
Ten
Mota

Thuoctinhcanthiet
TinhtoankhoangTGTB
Xd_suthuchienKH
Tinhtoancanthiet
SUTHUCHIENKEHOACH
So
Thoigianbatdau
Thoigianketthuc
Thuoctinhcanthiet
TinhtoankhoangTG
Xd_hoanthanh
Tinhtoancanthiet
Trang 21
mQt ke' ho(;lchc6 th€ duQc thl!c hi~n nhi~u l~n va Peter Coad da: hill y : ne'u
ke' ho(;lchchI duQc thl!c hi~n mQt l~n thl chung ta khang lien pha vo diu
truc cua mftu ma chI c~n dua them cac rang buQcvao lOpKEHOACH.
Ung d\lng ciia mftu philo tich :
Mftu phan tich ma ta mQtvai ma hlnh c6 th€ giai quye't cac va'"nd~
trong phan tich h~ thO'ng.Mftu phan tich ma ta ph(;lmvi ho(;ltdQng va cac
ma hlnh thanh ph~n nham giup nguoi phan tich nh~n bie't ml:lclieu va cac
d~c trung cua h~ thO'ng.d€ ll!a chQn cac ldp dO'ituQng thich hQp, sail d6
nguoi phan tich se thie't l~p cac bang rang buQc, cac ke' ho(;lchho(;ltdQng
cho h~ thO'ngduQcphan tich.
Trd l(;liVIdl:l trong ph~n 2.1 (hlnh 3). Nhu da: d~ c~p, cach tie'p c~n
thanh to' da: dua ra khai ni~m mftu, cl:lth€ la mftu phan tich t6ng hQp ca'"u
truc, giup chung ta cach thlic d€ thu th~p (tich hr;p) ca'"utruc dO'ituQng du
li~u cua hai don vi cai d~t 'la NguoiTToan (da: duQc xay dl!ng trong h~
thO'ngke' loan) va Nguoidathang (da: duQc xay dl!ng trong h~ thO'ngtrong h~
thO'ng quail ly cac don d~t hang) d€ t(;lOlien mQt don vi cai d~t mdi, d6 la
don vi cai d~t Khachhang.

Nhln chung, cach tie'p c~n thanh to'da: cling ca'"pcac thanh ph~n d€
h6 trQcho qua trlnh phan tich, thie't ke' h~ thO'nghudng dO'ituQng vdi chi
phI tha'"pnha'"tva hi~u 9ua dung l(;licao nha'"t.Nhung ml:lclieu khang dung
l(;li d d6, cach tie'p c~n thanh to' con di xa hon nua d6 la t(;lOra mQt ling
dl:lng, ho~c mQt t~p cac mftu phan tich, mftu thie't ke' c6 th€ dung l(;li,va
chung duQcg6i trong mQtthanh ph~n c6 ten la : khung mftu.
Trang 22
2.3 Khung m~u (Frameworks) [9]
Dinh nghla khung m~u :
"Khung m~u la mQtg6i cac d~c ta phan tich va cac thie't ke' chi tie't,
chung c6 thS la mQtph~n cua ling d\lng ho~c la mQtling d\lng d~y du".
Khi Kaydlfng mQtkhung m~u, chung ta dua ra ph~m vi ling d\lng cua
khung m~u, thudng thl khung m~u baa g6m cac lOp dO"ituQng vdi cac ten
d~i di~n (ten lOp dO"ituQng, ten cac thuQc tinh, ten cac phuong thlic), cac
ten d~i di~n nay se duQc thay d6i khi khung m~u duQc ap d\lng trong mQt
lInh vlfc C\l thS dS phu hQp vdi cac yell c~u cua ling d\lng, bell c~nh d6
khung m~u con chlia cac nO"ike't giua cac lOp dO"ituQng, cac van ban d~c
ta, cac so d6 tuong tac, so d6 lOp va cac m~u thie't ke' ne'u c6.
Chinh VIthe' ma khai ni~m truu tuQng ra't quail tn;mg khi Kay dlfng
mQt khung m~u bC'5iVIchung dinh nghla ca'u truc cua mQt khung m~u, va
hai khai ni~m chinh cua slf cai d~t truu tuQng d6 la cac lOp truu tuQng va
cac nO"ike't truu tuQng giua cac lOp truu tuQng.
Cac khung m~u c6 th~ sli'd\lng 'cac lOp dO"ituQng va cac m6i ke't hQp
duQcdinh nghla trong cac khung m~u khac.
Sail day la mQtsO"khung m~u dfi duQcKaydlfng dS dung l~i :
Microsoft Foundation Classes (MFC) [6]:
MFC cling ca'p mQt khung m~u dS t~o cac ling d\lng khai thac tren
n~n Windows. Khung m~u nay chlia mQtt~p cac thanh to"duQcdung l~i dS
Kaydlfng ling d\lng, bell c~nh d6 khung m~u cling cling ca'p mQttu li~u ma
ta cac phuong thlic ma nhung thanh to"nay cling ca'p.

Vi d\l : thu vi~n MFC c6 chlia cac thanh to"cung lam vi~c vdi nhau

×