
LÜnh vùc C«ng nghÖ th«ng tin
M¤ H×NH PH¸T TRIÓN THEO FRAMEWORK
CHO C¸C S¶N PHÈM PHÇN MÒM
KS. §Æng Xu©n ThÞnh
Trung t©m C«ng nghÖ th«ng tin
1. §Æt vÊn ®Ò
HiÖn nay trong níc, c¸c s¶n phÈm phÇn mÒm thêng ®îc viÕt theo d¹ng
c¸c lêi gäi hµm, híng cÊu tróc vµ híng ®èi tîng. Khi cã sù thay ®æi vÒ nghiÖp vô
hoÆc bæ sung thªm c¸c dÞch vô, tÝnh n¨ng míi, c¸c hÖ thèng nµy thêng ph¶i söa
®æi l¹i phÇn lín m· nguån. §iÒu nµy g©y nhiÒu khã kh¨n cho viÖc qu¶n lý, b¶o
hµnh, b¶o tr× vµ rÊt dÔ g©y lçi (lçi d©y chuyÒn). C¸c s¶n phÈm phÇn mÒm
khi ¸p dông m« h×nh framework sÏ kh¾c phôc ®îc c¸c nhîc ®iÓm nµy. Nã lµm
t¨ng tÝnh linh ho¹t, t¸i sö dông vµ kh¶ n¨ng ghÐp nèi cña hÖ thèng. Bµi viÕt bµy
giíi thiÖu tãm t¾t kh¶ n¨ng ¸p dông m« h×nh ph¸t triÓn theo framework cho c¸c
s¶n phÈm phÇn mÒm.
2. §Þnh nghÜa framework
Framework lµ mét ph¬ng ph¸p kü thuËt t¸i sö dông híng ®èi tîng. §Þnh
nghÜa vÒ framework còng cã nhiÒu c¸ch kh¸c nhau. §Þnh nghÜa thêng sö dông
lµ “ framework lµ mét thiÕt kÕ t¸i sö dông cña toµn bé hay mét phÇn hÖ thèng
®îc ®¹i diÖn bëi c¸c líp trõu tîng vµ c¸ch c¸c trêng hîp cña chóng t¬ng t¸c víi
nhau”. Mét ®Þnh nghÜa phæ biÕn kh¸c lµ “ framework lµ bé khung cña tr×nh
øng dông mµ cã thÓ ®îc tuú biÕn bëi c¸c nhµ ph¸t triÓn phÇn mÒm øng dông”.
§©y kh«ng ph¶i lµ nh÷ng ®Þnh nghÜa m©u thuÉn nhau; ®Þnh nghÜa thø
nhÊt miªu t¶ cÊu tróc cña framework trong khi ®Þnh nghÜa hai miªu t¶ môc
®Ých cña nã
3. C¸c u ®iÓm sö dông framework
TÝnh t¸i sö dông cña framework cã thÓ ®îc thóc ®Èy bëi nhiÒu nh©n tè.
Mé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µ ®Ó gi¶m thêi gian ®Õn thÞ tr êng. Nhng
hä nhËn thÊy r»ng tÝnh chÊt gièng nhau do c¸c framework mang tíi còng quan
träng. C¸c framework giao diÖn ngêi dïng ®å ho¹ ®a ra mét bé c¸c tr×nh øng
dông cã c¸ch nh×n vµ c¶m nhËn t¬ng tù nhau, vµ mét giao diÖn m¹ng t¸i sö
dông cã nghÜa lµ tÊt c¶ c¸c tr×nh øng dông sö dông nã theo c¸c giao thøc gièng
nhau. Hai lµ tÝnh gièng nhau lµm gi¶m chi phÝ b¶o tr×, tõ ®ã nh÷ng ngêi lËp
Häc viÖn C«ng nghÖ BCVT

Héi nghÞ Khoa häc lÇn thø 5
ch¬ng tr×nh b¶o tr× cã thÓ chuyÓn tõ tr×nh øng dông nµy sang tr×nh øng dông
tiÕp theo mµ kh«ng ph¶i häc thiÕt kÕ míi. Lý do cuèi cïng cho c¸c framework lµ
lµm cho c¸c kh¸ch hµng cã kh¶ n¨ng x©y dùng hÖ thèng më , v× thÕ hä cã thÓ
trén lÉn vµ lµm phï hîp c¸c thµnh phÇn tõ c¸c 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¶ n¨ng
m« ®un phÇn mÒm, kh¶ n¨ng t¸i sö dông, kh¶ n¨ng më réng, vµ sù ®¶o ngîc
®iÒu khiÓn chóng cung cÊp cho nhµ ph¸t triÓn nh miªu t¶ díi ®©y:
Kh¶ n¨ng m« ®un: Framework t¨ng cêng kh¶ n¨ng m« ®un phÇn mÒm b»ng c¸ch
gãi gän c¸c chi tiÕt thùc thi linh ®éng ®»ng sau c¸c giao diÖn æn ®Þnh. Kh¶
n¨ng m« ®un cña framework gióp c¶i thiÖn chÊt lîng phÇn mÒm nhê viÖc
khoanh vïng ¶nh hëng cña m« h×nh vµ nh÷ng thay ®æi vÒ thùc thi.
Kh¶ n¨ng t¸i sö dông: C¸c giao diÖn æn ®Þnh cung cÊp qua c¸c framework t¨ng
cêng kh¶ n¨ng t¸i sö dông theo ®Þnh nghÜa c¸c thµnh phÇn chung cã thÓ ®îc ¸p
dông l¹i ®Ó t¹o ra c¸c tr×nh øng dông míi. Kh¶ n¨ng t¸i sö dông framework tËn
dông ®îc sù ®Çu t trÝ tuÖ vµ nç lùc tr íc ®ã cña c¸c nhµ ph¸t triÓn giµu kinh
nghiÖm. Sö dông l¹i c¸c thµnh phÇn framework cã thÓ mang l¹i sù c¶i tiÕn ®¸ng
kÓ hiÖu suÊt cña lËp tr×nh viªn, còng nh lµ t¨ng cêng chÊt lîng, sù thùc thi,
tÝnh tin cËy, vµ thao t¸c gi÷a c¸c phÇn cña phÇn mÒm.
Kh¶ n¨ng më réng: Framework t¨ng cêng kh¶ n¨ng më réng nhê viÖc cung cÊp
c¸c ph¬ng ph¸p mãc nèi râ rµng cho phÐp c¸c tr×nh øng dông më réng c¸c giao
diÖn æn ®Þnh cña nã. C¸c ph¬ng ph¸p mãc nèi cã tÝnh hÖ thèng t¸ch riªng ra
c¸c giao diÖn vµ c¸c ®¸p øng æn ®Þnh cña mét lÜnh vùc øng dông. Kh¶ n¨ng më
réng framework lµ thiÕt thùc ®Ó ®¶m b¶o sù tuú biÕn hîp thêi cña c¸c dÞch vô
vµ tÝnh n¨ng øng dông míi.
Sù ®¶o ngîc ®iÒu khiÓn: KiÕn tróc runtime cña framework lµ ®Æc tr ng cña sù
®¶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Ó
hîp qui ®îc tuú biÕn qua c¸c ®èi tîng bé ®iÒu khiÓn sù kiÖn mµ ®îc kÝch ho¹t
qua c¬ chÕ göi ®i t¸c ®éng trë l¹i cña framework. Khi c¸c sù kiÖn x¶y ra, bé göi
®i cña framework t¸c ®éng trë l¹i qua viÖc kÝch ho¹t c¸c ph¬ng ph¸p mãc nèi
trªn c¸c ®èi tîng ®iÒu khiÓn ®¨ng kÝ tr íc, bé ®iÒu khiÓn nµy thùc hiÖn qu¸
tr×nh xö lý tr×nh øng dông ®Æc tr ng dùa trªn c¸c sù kiÖn. §¶o ngîc sù ®iÒu
khiÓn cho phÐp framework ®Þnh râ bé c¸c ph¬ng ph¸p tr×nh øng dông ®Æc tr -
ng nµo kÝch ho¹t ®¸p øng ®Õn c¸c sù kiÖn bªn ngoµi (vÝ dô nh c¸c tin nh¾n
window ®Õn tíi ngêi sö dông cuèi cïng hay c¸c gãi tin ®Õn tõ c¸c cæng th«ng tin).
4. C«ng cô ph¸t triÓn framework
Häc viÖn C«ng nghÖ BCVT

LÜnh vùc C«ng nghÖ th«ng tin
Tríc ®©y ®Ó ph¸t triÓn m« h×nh framework cho c¸c bµi to¸n øng dông th«ng th-
êng, ta cã thÓ kÓ ra mét sè ng«n ng÷ chÝnh Smalltalk, MFC, Java. Ngµy nay
cïng víi sù ph¸t triÓn cña Internet, c¸c øng dông ph¸t triÓn trªn m¹ng ngµy cµng
nhiÒu. Hai tËp ®oµn ph¸t triÓn hÖ thèng lín lµ Microsoft vµ Sun Microsystems
®· ®a 2 gi¶i ph¸p c«ng nghÖ chÝnh ®Ó ph¸t triÓn c¸c bµi to¸n framework lµ
Microsoft .NET framework vµ J2EE Framework. Microsoft .NET framework cña
Microsoft cã u ®iÓm lµ dÔ sö dông, th©n thiÖn víi c¸c øng dông truyÒn thèng
trªn flatform Window nh Visual Basic, Visual C++,... Tuy nhiªn ®Êy còng lµ nhîc
®iÓm cña Microsoft .NET framework. C«ng nghÖ nµy bÞ trãi buéc trªn nÒn
Window vµ ®Õn nay chØ cã Microsoft ph¸t triÓn. §iÒu nµy dÉn ®Õn c«ng nghÖ
kÐm tÝnh c¹nh tranh vµ s¶n phÈm hoµn toµn lÖ thuéc vµo mét nhµ s¶n xuÊt.
Tr¸i l¹i J2EE Framework cña Sun Microsystems lµ chuÈn chung ®îc nhiÒu tËp
®oµn phÇn mÒm lín ph¸t triÓn, kh«ng phô thuéc flatform vµ ®· ®îc kiÓm chøng
lµ ho¹t ®éng æn ®Þnh vµ hiÖu qu¶ qua nhiÒu n¨m.
Trªn thÕ giíi hiÖn nay, nhiÒu nhµ s¶n xuÊt phÇn mÒm øng dông ®Òu ¸p dông
c«ng nghÖ J2EE Framework. Trªn thÕ giíi, ta cã thÓ kÓ ra mét sè tªn tuæi lín
nh Bea, IBM, Oracle, Sun One, Fujitsu, Inprise, Macromedia, Sysbase, IONA
Technologies, SPSS, Isocra, MultiTEL,... V× vËy khi ph¸t triÓn c¸c bµi to¸n
phÇn mÒm øng dông theo m« h×nh framework, chóng ta nªn sö dông c«ng nghÖ
J2EE Framework vµ c¸c c«ng cô ph¸t 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èng cña framework
Qu¸ tr×nh x©y dùng vµ ph¸t triÓn framework lµ mét qu¸ tr×nh lÆp ®i, lÆp l¹i
cña ph¸t triÓn vµ øng dùng framework. Mét phÇn mÒm øng dông bao giê còng
xuÊt ph¸t tõ mé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 gi¶n. Sau qu¸ tr×nh øng dông thùc tÕ, nhiÒu yªu cÇu míi n¶y sinh
nh yªu cÇu vÒ tÝnh dÔ sö dông, linh ho¹t, yªu cÇu ®¸p øng c¸c dÞch vô míi,... V×
vËy m« h×nh cò cÇn ®îc ®a vµo ph¸t triÓn tiÕp ®Ó ngµy cµng hoµn thiÖn h¬n.
H×nh 1 lµ m« h×nh chu kú sèng cña framework.
Häc viÖn C«ng nghÖ BCVT

Héi nghÞ Khoa häc lÇn thø 5
H×nh 1: Chu kú sèng cña framework: øng dông vµ ph¸t triÓn
5.2. C¸c bíc thiÕt kÕ framework
Nh ®· tr×nh bµy ë trªn, khi ph¸t triÓn mét bµi to¸n ¸p dông m« h×nh framework,
ta thêng ®i tõ c¸c bµi to¸n ®¬n gi¶n, cô thÓ råi tõ ®ã míi ph¸t triÓn thµnh c¸c
bµi to¸n phøc t¹p, ®a d¹ng vµ trõu tîng.
Qu¸ tr×nh x©y dùng mét framework (h×nh 4) gåm 4 bíc sau:
- T¹o c¸c m« h×nh øng dông cè ®Þnh.
- Ph©n tÝch vµ m« t¶ hot-spot gåm ph©n tÝch møc cao hot-spot, vµ ph©n
tÝch vµ m« t¶ chi tiÕt hot-spot.
- ThiÕt kÕ møc cao hot-spot.
- Tæng hîp ho¸ sù chuyÓn ®æi.
Häc viÖn C«ng nghÖ BCVT
øng dông Ph¸t triÓn
S¶n phÈm
S¶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 vÒ kh¸i niÖm framework vµ c¸c u ®iÓm cña
mét bµi to¸n phÇn mÒm øng dông khi ¸p dông m« h×nh framework. Trong bµi
viÕt chóng t«i cò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 mét framework. M« h×nh nµy ®· ®îc chóng t«i ¸p
dông thµnh c«ng cho bµi to¸n b¸o c¸o thèng kª vµ in ho¸ ®¬n t¹i c¸c bu ®iÖn tØnh
thµnh phè. Vµ víi nh÷ng kÕt qu¶ mµ chóng t«i ®· ®¹t ®îc cho thÊy chóng ta
hoµn toµn cã thÓ ¸p dông réng r·i m« h×nh framework vµo c¸c s¶n phÈm phÇn
mÒm øng dông phôc vô c«ng t¸c qu¶n lý, s¶n xuÊt, kinh doanh cña c¸c c¬ quan,
xÝ nghiÖp.
Tµi liÖu tham kh¶o
[1] B¸o c¸o nghiÖm thu ®Ò tµi: X©y dùng m« h×nh ph¸t triÓn theo
framework cho c¸c bµi to¸n b¸o c¸o thèng 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 viÖn C«ng nghÖ BCVT

