LÜnh vùc C«ng nghÖ th«ng tin
M¤ H×NH PH¸T TRIÓN THEO FRAMEWORK
CHO C¸C SN PHÈM PHÇN MÒM
KS. §Æng Xu©n ThÞnh
Trung t©m C«ng nghÖ tng tin
1. §Æt vÊn ®Ò
HiÖn nay trong níc, c¸c n phÈm phÇn mÒm thêng ®îc viÕt theo d¹ng
ci gäim, híngu tróc híng ®èi tîng. Khi sù thay ®æi vÒ nghiÖp
hoÆc bæ sung thªmc dÞch vô, tÝnh n¨ng míi,c thèng nµy thêng phi söa
®æi l¹i pn lín ngn. §u nµy g©y nhiÒu khã kh¨n cho viÖc qun lý, o
hµnh, b¶o tr× rÊt dÔ g©y lçi (lçi d©y chuyÒn). C¸c n phÈm phÇn mÒm
khi ¸p dông m« h×nh framework sÏ kh¾c phôc ®îc c nhîc ®m nµy. Nã lµm
ng tÝnh linh ho¹t, i sö dông vµ kh ng ghÐp nèi cña hÖ thèng. Bµi viÕt bµy
giíi thiÖu m t¾t kh ng ¸p dông h×nh pt triÓn theo framework cho c
n pm phÇn mÒm.
2. §Þnh nghÜa framework
Framework lµ t ph¬ng pp kü thuËt t¸i dông híng ®èi tîng. §Þnh
nghÜa framework còng cã nhiÒuch kh¸c nhau. §Þnh nghÜa thêng sö dông
lµ framework lµ mét thiÕt kÕ i dông cña tn bé hay mét phÇn hÖ thèng
®îc ®¹i diÖn bëi c líp trõu tîng ch c¸c trêng hîp cña chóng t¬ng t¸c i
nhau. t ®Þnh nghÜa pbiÕn kh¸c lµ framework lµ khung a tr×nh
øng dông mµ thÓ ®îc tuú biÕn bëi c nhµ ph¸t triÓn phÇn mÒm øngng.
§©y kh«ng phi lµ nng ®Þnh nghÜa u thuÉn nhau; ®Þnh nghÜa t
nhÊt mu t cÊu tróc cña framework trong khi ®Þnh nghÜa hai mu t môc
®Ých cña nã
3.c u ®iÓm ng framework
TÝnh t¸i sö dông cña framework thÓ ®îc thóc ®Èy bëi nhiÒu nn tè.
t lµ ®Ó tiÕt kiÖm thêi gian vµ tiÒn b¹c cña trong suèt qua tr×nh ph¸t triÓn.
Môc ®Ých chÝnh cho nhiÒu c«ng ty lµ ®Ó gim thêi gian ®Õn thÞ tr êng. Nhng
nhËn thÊy r»ng tÝnh chÊt gièng nhau do c¸c framework mang tíi ng quan
träng. c framework giao diÖn ngêi dïng ®å ho¹ ®a ra t c tr×nh øng
dông ch nh×n vµ m nhËn t¬ng tù nhau, t giao dn ng t¸i sö
dông cã nghÜa lµ tÊt c tr×nh øng dông dông theo c giao tc gièng
nhau. Hai lµ tÝnh gng nhau lµm gim chi phÝ b¶o tr×, tõ ®ã nh÷ng ngêi lËp
Häc vn C«ng nghÖ BCVT
i nghÞ Khoa häcn thø 5
ch¬ng tr×nh b¶o tr× thÓ chuyÓn tr×nh øng dông nµy sang tr×nh øng dông
tiÕp theo mµ kh«ng phi häc thiÕt kÕ i. Lý do cuèi cïng cho c¸c framework lµ
lµm cho c¸c kh¸ch hµngkh ng y ng hÖ thèng , v× thÕ cã thÓ
trén lÉn vµ lµm phïp c¸c thµnh phÇnc nguån cung cÊp kh¸c nhau.
C¸c u ®iÓm chÝnh cña framework øng dông híng ®èi tîng xuÊt ph¸t tõ kh ng
m« ®un phÇn m, kh ng t¸i dông, kh n¨ng ng, vµ ®¶o ngîc
®u khiÓn chóng cung cÊp cho nhµ ph¸t triÓn nh miªu t díi ®©y:
Kh ng ®un: Framework t¨ng cêng kh n¨ng ®un phÇnm b»ngch
gãi gän c¸c chi tiÕt thùc thi linh ®éng ®»ng sau c¸c giao diÖn æn ®Þnh. Kh
ng m« ®un cña framework gióp i thiÖn chÊt lîng phÇn m n viÖc
khoanh vïngnh hëng cña m« h×nh vµ nh÷ng thay ®æi thùc thi.
Kh n¨ng i sö dông: C¸c giao diÖn æn ®Þnh cung p qua c framework t¨ng
cêng khng t¸i dông theo ®Þnh nghÜa c thµnh phÇn chung cã thÓ ®îc ¸p
dông l¹i ®Ó t¹o ra c tr×nh øng dông míi. Kh ng t¸i dông framework tËn
dông ®îc sù ®Çu t trÝ tuÖ vµ lùc tr íc ®ã cña c¸c nhµ ph¸t triÓn giµu kinh
nghiÖm. dông l¹ic thµnh phÇn framework thÓ mang i sù c¶i tiÕn ®¸ng
kÓ hiÖu suÊt cña lËp tr×nh vn, ng nh lµ t¨ng cêng chÊt lîng, thùc thi,
tÝnh tiny, thao t¸c gi÷ac phÇn cña pnm.
Kh ng réng: Framework t¨ng cêng kh ng réng n viÖc cung cÊp
c ph¬ng pp mãc i râ rµng cho phÐp c tr×nh øng dông réng c giao
diÖn æn ®Þnh cña . C¸c ph¬ng pp mãc nèi tÝnh thèng t¸ch riªng ra
c giao diÖn vµ c¸c ®¸p øng æn ®Þnh cña t lÜnh vùc øng dông. Kh ng
ng framework lµ thiÕt thùc ®Ó ®¶m b¶o tuú bn hîp ti cñac dÞch
vµ tÝnhng øng dông míi.
®¶o ngîc ®u khiÓn: KiÕn tróc runtime cña framework lµ ®Æc tr ng cña
®¶o ngîc ®iÒu khiÓn. KiÕn tróc nµy lµm cho c¸c bíc xö lý tr×nh øng dông cã thÓ
p qui ®îc tuú bn qua c ®èi tîng ®iÒu khiÓn kiÖn mµ ®îc kÝch ho¹t
qua c¬ chÕ göi ®i c ®éng trë l¹i cña framework. Khi c sù kiÖn xy ra, göi
®i cña framework t¸c ®éng trë l¹i qua viÖc kÝch ho¹t c ph¬ng pp mãc nèi
trªn c ®èi tîng ®iÒu khiÓn ®¨ng kÝ tr íc, ®u khiÓn nµy thùc hiÖn q
tr×nh lý tr×nh øng dông ®Æc tr ng dùa trªn c kiÖn. §¶o ngîc ®iÒu
khiÓn cho phÐp framework ®Þnh râ c¸c ph¬ng pp tr×nh øng dông ®Æc tr -
ng nµo kÝch ho¹t ®¸p øng ®Õn c¸c kiÖn bªn ngoµi (vÝ nh c tin nh¾n
window ®Õn tíi ngêi sö dông cuèi cïng hay c¸c gãi tin ®Õnc cæng tng tin).
4. C«ng cô ph¸t triÓn framework
Häc vn C«ng nghÖ BCVT
LÜnh vùc C«ng nghÖ th«ng tin
Tríc ®©y ®Ó ph¸t triÓn nh framework cho c¸c bµi tn øng dông th«ng th-
êng, ta thÓ kÓ ra t ng«n n chÝnh Smalltalk, MFC, Java. Ngµy nay
cïng víi ph¸t triÓn cña Internet, c øng dông ph¸t triÓn trªn m¹ng nyng
nhiÒu. Hai tËp ®oµn pt triÓn tng lín lµ Microsoft vµ Sun Microsystems
®· ®a 2 gii ph¸p c«ng nghÖ chÝnh ®Ó pt triÓn c i to¸n framework lµ
Microsoft .NET framework vµ J2EE Framework. Microsoft .NET framework cña
Microsoft u ®m lµ dông, th©n thiÖn víi c øng dông truyÒn thèng
trªn flatform Window nh Visual Basic, Visual C++,... Tuy nhiªn ®Êyng lµ nhîc
®m cña Microsoft .NET framework. C«ng nghÖ y trãi buéc trªn nÒn
Window vµ ®Õn nay chØ cã Microsoft ph¸t triÓn. §iÒu nµyn ®Õn c«ng nghÖ
kÐm tÝnh c¹nh tranh s¶n phÈm hoµn tn lÖ thuéc vµo t nhµ n xuÊt.
Tr¸i l¹i J2EE Framework cña Sun Microsystems lµ chn chung ®îc nhiÒu tËp
®oµn pnm lín ph¸t triÓn, kh«ng phô thuéc flatform vµ ®· ®îc kiÓm chøng
lµ ho¹t ®éng æn ®Þnh hiÖu qu qua nhiÒum.
Trªn thÕ giíi hiÖn nay, nhiÒu nhµ n xuÊt pn mÒm øng dông ®Òu ¸p dông
c«ng nghÖ J2EE Framework. Trªn thÕ giíi, ta thÓ ra t tªn ti lín
nh Bea, IBM, Oracle, Sun One, Fujitsu, Inprise, Macromedia, Sysbase, IONA
Technologies, SPSS, Isocra, MultiTEL,... V× vËy khi pt triÓn c bµi tn
phÇn m øng dông theo h×nh framework, chóng tan dông c«ng nghÖ
J2EE Framework vµ c c«ng pt triÓn theo dßng Java nh JavaBean, JSP,
Java Script.
5. Chu kú sèng vµ c¸c bíc thiÕt kÕ mét framework
5.1. Chu kú sènga framework
Qu¸ tr×nh x©y dùng vµ ph¸t triÓn framework lµ t q tr×nh lÆp ®i, lÆp i
cña ph¸t triÓn vµ øng dùng framework. Mét pn mÒm øng dông bao g còng
xuÊt pt t yªu cÇu thùc tÕ. C¸c s¶n phÈm ban ®Çu (s¶n phÈm mÉu) th-
êng lµ ®¬n gin. Sau qu¸ tr×nh øng dông thùc tÕ, nhiÒu yªu cÇu i ny sinh
nhu cÇu tÝnh dông, linh ho¹t, yªu cÇu ®¸p øng c dÞch vô míi,... V×
vËy m« nh cò cÇn ®îc ®a vµo ph¸t triÓn tiÕp ®Ó ngµy cµng hoµn thiÖn n.
H×nh 1 lµ m« nh chu kú sèng cña framework.
Häc vn C«ng nghÖ BCVT
i nghÞ Khoa häcn thø 5
H×nh 1: Chu kú sèng cña framework: øng dông vµ pt triÓn
5.2. C¸c bíc thiÕt kÕ framework
Nh ®· tr×nh bµy ë trªn, khi pt triÓn t bµi tn ¸p dông m« nh framework,
ta thêng ®i tõ c i tn ®¬n gin, thÓ råi tõ ®ã míi pt triÓn thµnh c
i tn phøc p, ®a d¹ng vµ trõu tîng.
Qu¸ tr×nhy dùngt framework (h×nh 4) gåm 4 bíc sau:
- T¹o c¸c h×nh øng dông cè ®Þnh.
- Ph©n tÝch vµ t hot-spot gåm pn tÝch c cao hot-spot, vµ ph©n
tÝch vµ m« t chi tiÕt hot-spot.
- ThiÕt kÕc cao hot-spot.
- Tæng hîp ho¸ sù chuyÓn ®æi.
Häc vn C«ng nghÖ BCVT
øng dông Ph¸t triÓn
n phÈm
n phÈm
mÉu
Framewor
k
T¹o c¸c m« h×nh øng dông cè
Ph©n tÝch møc cao hot-spot
n
...
2
BiÕn ®æi m« h×nh líp víi sù
tæng qu¸t
n
...
2
Ph©n tÝch vµ m« t chi tiÕt
n
...
2
ThiÕt kÕ møc cao hot-
LÜnh vùc C«ng nghÖ th«ng tin
H×nh 2: C¸c bíc thiÕt kÕ framework
6. KÕt luËn
Bµi viÕt nµy chØ nh»m giíi thiÖu kh¸i niÖm framework vµ c u ®iÓm cña
t bµi to¸n phÇn mÒm øng dông khi ¸p dông h×nh framework. Trong i
viÕt chóng t«i ng ®Ò cËp ®Õn híng lùa chän c«ng cô ph¸t triÓn còng nh quy
tr×nh tæng qu¸t ®Ó ph¸t triÓn t framework. M« h×nh y ®· ®îc chóng t«i ¸p
dông thµnh c«ng cho bµi tn b¸o o thèng kª vµ in ho¸ ®¬n t¹i c bu ®n tØnh
thµnh phè. Vµ víi nh÷ng kÕt q mµ chóng t«i ®· ®¹t ®îc cho thÊy chóng ta
hoµn tn thÓ ¸p dông ng r·i nh framework vµo c n phÈm pn
m øng dông phôc vô c«ng t¸c qun lý, n xuÊt, kinh doanh cña c¸c quan,
nghiÖp.
Tµi liÖu tham kho
[1] B¸o c¸o nghiÖm thu ®Ò tµi:y dùng m« h×nh pt triÓn theo
framework choc i to¸n b¸oo tng kª vµ in ho¸ ®¬n.
[2] Building Application Framework. Wiley.
[3] Domain-Specific Application Framework. Wiley.
[4] Implementing Application Framework. Wiley.
[5] Design Patterns Elements of Reusable Object-Oriented Software.
[6] Object-Oriented Frameworks. Michael Mattsson
[7] A Software Architecture For Structuring Complex Web Applications.
Rinton
Häc vn C«ng nghÖ BCVT