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

Framework và ứng dụng trong việc xây dựng phần mềm

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 (2.21 MB, 122 trang )

U
Ngày nay, m t trong nh ng v n
quan tr ng c a ngành công ngh ph n
m m là v n
s d ng l i. Ngay t th i k
u tiên, ng i ta ã c g ng s d ng
l i ph n m m b ng cách xây d ng tr c các th vi n l p. Trong các th vi n l p
này có ch a các hàm và th t c th ng hay
c s d ng trong các ng d ng ph n
m m. Tuy nhiên, cách s d ng l i này t ng i th
ng, vì ch có th s d ng l i
các o n mã có s n, mà không th s d ng các thi t k . Ý t ng s d ng l i các
thi t k có s n ã
c th hi n qua vi c s d ng các m u thi t k . M t m u thi t
k là m t mơ t có tên v m t c p v n và gi i pháp, nó có th
c áp d ng trong
nh ng hoàn c nh khác nhau. Tuy nhiên, các m u thi t k th ng khó s d ng vì có
m c
tr u t ng hóa cao. Do v y,
có th s d ng l i các thi t k có s n hi u
qu h n, ng i ta ã a ra khái ni m framework. Gi ng v i các m u thi t k , các
framework c ng
c s d ng l i d dàng b ng cách thu nh n l i các k ch b n phát
tri n ph n m m thành công. Tuy nhiên, khác v i m u thi t k , framework th ng
g n v i m t mi n ng d ng c th và bao g m c thi t k và mã th c hi n.
tài c a khóa lu n này là “Framework và ng d ng trong vi c xây d ng
ph n m m”. N i dung c a tài g m các ph n sau.
T ng quan v framework. Ph n này nêu ra khái ni m, các
lo i framework.

c



m và phân

Ph ng pháp phát tri n framework. Ph n này a ra m t ph ng pháp xây
d ng framework. Ph ng pháp này g m nhi u giai
n là: thu th p yêu c u và
phân tích, thi t k , tri n khai, xác minh và th m nh tính h p l .
Các v n
trong vi c phát tri n framework. Ph n này nêu lên các v n
g p
ph i trong khi phát tri n framework nh v n v ph m vi c a mi n ng d ng, v n
v l p tài li u cho framework, …
Mơ t bài tốn L p l ch và theo dõi ti n
th c hi n d án. Ph n này là các
phân tích, c t yêu c u c a ng d ng Qu n lý d án.
Phân tích và thi t k h th ng. Ph n này là các k t qu c a vi c phân tích và
thi t k h th ng L p l ch và theo dõi ti n
th c hi n d án.
Xây d ng framework Qu n lý l ch làm vi c. Ph n này a ra framework c a
mi n ng d ng Qu n lý l ch làm vi c, d a trên các k t qu c a vi c phân tích và
thi t k bài toán L p l ch và theo dõi ti n
th c hi n d án.


2

Ch

ng 1


GI I THI U CHUNG V FRAMEWORK
1.1. T ng quan v framework
Trong m t vài th p niên g n ây, vi c s d ng l i ph n m m ã và v n là m t
v n
quan tr ng cho các t ch c phát tri n ph n m m. u tiên, ph n m m
c
s d ng l i d i hình th c là các th vi n hàm API hay các th vi n l p. Ti p theo,
các nhà phát tri n nh n th y không ch c n s d ng l i các
n mã mà còn c n
ph i s d ng l i c các thi t k c a ph n m m. Do v y, ã xu t hi n khái ni m v
design pattern – m u thi t k và framework – khung làm vi c. Các m u thi t k là
m t mơ t có tên v m t c p v n
và gi i pháp. Các mô t chi ti t v m u thi t k
s
c trình b y trong m t ch
khác, còn n i dung c a ph n này s ch trình b y
v framework và ph m vi ng d ng c a nó.

1.1.1. Khái ni m v framework
1.1.1.1.

nh ngh a v framework

Thu t ng framework h ng i t ng có th
c nh ngh a theo nhi u
cách. M t framework
c nh ngh a nh là m t ph n c a thi t k và th c hi n,
cho m t ng d ng trong m t l nh v c.
u này có c m giác m t framework không
là m t h th ng hồn ch nh. H th ng này có th

c
u ch nh l i
t o ra các
ng d ng hồn ch nh. Các framework nói chung
c s d ng và
c phát tri n
khi c n phát tri n m t vài ng d ng t ng t . M t framework th c hi n các ph n
chung gi a các ng d ng này. Do v y, m t framework gi m công s c c n thi t
xây d ng các ng d ng.
Ph n l n các nh ngh a u nh t trí r ng, m t framework h ng i t ng là
m t ki n trúc ph n m m có th s d ng l i, bao g m c thi t k và mã th c hi n.
Tuy nhiên, l i khơng có nh ngh a nào
c th ng nh t chung v framework và các
thành ph n h p thành c a nó.
Sau ây là m t s các
c nêu trong [10]:

nh ngh a khác nhau ho c t

ng t nhau v framework

“M t framework ràng bu c các l a ch n chính xác v s phân chia tr ng thái
và lu ng
u khi n, ng i dùng hoàn thi n ho c m r ng framework t o ra m t
ng d ng th c t ”


3

“M t framework là m t t p các l p mà bao g m m t thi t k tr u t

các gi i pháp c a m t ho c các v n liên quan”
“M t framework là m t t p các i t ng mà c ng tác v i nhau
t p các áp ng cho m t ng d ng ho c m t vùng h th ng con”

ng cho

t o ra m t

“M t framework là m t t p các ký hi u c a các l p c ng tác mà t
cc
các m u ph m vi nh và các c ch ch y u th c hi n các yêu c u chung và thi t
k trong m t ph m vi ng d ng c th ”
“M t t p các l p c ng tác v i nhau mà t o ra m t thi t k có th s d ng l i
cho m t l p c th c a ph n m m. M t framework cung c p các h ng d n có tính
ki n trúc b ng cách phân chia thi t k thành các l p tr u t ng và nh ngh a các
áp ng và s c ng tác c a chúng. M t nhà phát tri n tùy bi n framework thành
m t ng d ng c th b ng cách t o ra các l p con và t o ra các phiên b n c a các
l p framework”
Nh v y, m t framework bao g m m t t p các l p mà các th hi n c a chúng
c ng tác v i nhau,
cd
nh
m r ng, s d ng l i cho các ng d ng c th
c a m t l nh v c. M t h các v n
liên quan, cho phép t ng h p trong m t
framework. H n n a, các framework
c bi u di n thành m t ngơn ng l p trình,
nh v y nó cung c p cho vi c s d ng l i c mã th c hi n và thi t k .

1.1.1.2.


u trúc c a m t framework

M t framework h

ng

it

ng bao g m các thành ph n sau:

fi Các tài li u thi t k
fi Các giao di n
fi Các l p tr u t

ng

fi Các thành ph n
fi Các l p
M i quan h gi a các thành ph n khác nhau trong m t framework
nh hình v sau:

c mơ t


4

Các tài li u
thi t k
ph n ánh

Các giao di n
tri n khai
tri n khai

Các l p tr u
ng
th a k
Các thành ph n
là m t ph n c a
Các l p

Hình 1.1. M i quan h gi a các thành ph n khác nhau trong m t framework [4]

Các thành ph n c a m t framework

c mô t nh sau:

fi Các tài li u thi t k : thi t k c a m t framework có th bao g m các l c
l p, vi t b ng v n b n ho c chí ít là m t ý t ng trong u c a nhà phát tri n.
fi Các giao di n: các giao di n miêu t áp ng bên ngoài c a các l p. Các giao
di n có th
c s d ng mơ hình các vai trị khác nhau trong h th ng, ví
d nh các vai trị trong m t m u thi t k . M t vai trò i di n cho m t nhóm
nh c a các ph ng pháp trong giao di n mà liên quan t i các ph ng pháp
khác.
fi Các l p tr u t ng: m t l p tr u t ng là m t s th c hi n ch a y
c a
m t ho c nhi u giao di n. Nó có th
c s d ng
nh ngh a cách i x

mà s là chung cho m t nhóm các thành ph n th c hi n m t nhóm các giao
di n.
fi Các thành ph n: Gi ng nh các l p, các thành ph n có th
c tích h p v i
các l p khác. Trong hình v , có m t m i tên “là m t ph n c a” gi a các l p và
các thành ph n. N u b n thân các l p có m t API
c nh ngh a y
thì
t p k t qu c a các l p s
c bi u hi n nh là m t t h p các thành ph n.
M t thành ph n
c nh ngh a nh sau: “M t thành ph n ph n m m là m t
n v k t c u v i các giao di n
c ghi rõ theo h p ng và các ph thu c


5

ng c nh rõ ràng. M t thành ph n ph n m m có th
thu c và
c t h p b ng các hãng th ba”

c tri n khai không ph

fi Các l p: M c th p nh t c a m t framework là các l p. Các l p ch khác v
các thành ph n là trong th c t , các API
c công khai c a nó khơng
a ra trong các giao di n c a m t framework. M t cách
n hình là các l
c s d ng b i các thành ph n

i di n cho ch c n ng, ví d m t ng
dùng framework th ng khơng nhìn th y các l p này tr khi anh ta làm vi
v i các thành ph n.

i
c
p
i
c

Cách th c làm vi c c a m t framework nh sau:
M t framework làm vi c b ng cách cung c p m t c t rõ ràng c a các t ng
tác
c mong i gi a các thành ph n. Ví d , m t thành ph n có th trơng ch
nh ng gì t các thành ph n khác và cái gì nên
c cung c p t i chúng? M t
framework nh ngh a các d ch v l a ch n, và cung c p m t gi i thích cho vi c
nh ngh a thành ph n nào là m t thành ph n cung c p. Nh th , m t thành ph n s
có kh n ng
c m r ng r t l n và các thành ph n m i có th t ng tác m nh m
v i nh ng cái ã có. Chúng c ng tác v i các chi ti t, khía c nh c th c a các v n
c cân nh c b i framework. Các thành ph n ng d ng có th v n cịn ch ng
minh tính t ng thích v i các v n
khác, nh ng ngh a c a d li u mà chúng
chuy n qua. Các b ph n ph thu c có th
c gi i thi u nh là các thành ph n
c a framework. S thi hành các thành ph n này có th cùng framework xác nh
m t d ch v và cung c p các d ch v này cho các thành ph n khác.

1.1.1.3. Phân bi t framework v i các khái ni m khác

M t m u thi t k khác v i m t framework ba m. Th nh t, m t m u thi t
k là tr u t ng h n m t framework, b i vì m t framework
c bao g m c mã,
trong khi ó ch có các ví d c a các m u thi t k m i
c mã hóa. Các m u thi t
k th m chí mơ t m c ích, vi c cân b ng các y u t khác
t
cs k th p
t t nh t và các k t qu c a m t thi t k .
u này không là m t tr ng h p cho các
framework. Th hai, các m u thi t k là nh ng ki n trúc nh h n so v i các
framework. Do v y, m t framework có th ch a m t s các m u thi t k , nh ng
i u ng c l i là không th . Do v y, các m u thi t k khơng có nh h ng l n t i
ki n trúc c a ng d ng. Cu i cùng, các framework
c chun mơn hóa h n so
v i các m u thi t k . Các framework luôn luôn liên quan n m t mi n ng d ng c
th , trong khi ó các m u thi t k là chung và có th
c ng d ng trong b t k
mi n ng d ng nào.


6

Các ngôn ng m u khác v i framework theo cách mà m t ngôn ng m u miêu
t : làm nh th nào
t o ra m t thi t k . Trong khi ó, m t framework h ng i
ng là m t thi t k . Các ngôn ng m u b sung cho m t framework, do chúng có
th h ng d n các k s ph n m m s d ng framework nh th nào, và mơ t t i
sao nó l i
c thi t k nh v y.

M t ng d ng h ng i t ng khác v i m t framework ch , m t ng d ng
mô t m t ch ng trình th c hi n ph c t p mà th a mãn m t yêu c u c th .
Framework t
c các tính n ng c a m t ng d ng nh ng nó khơng th thi hành
b i vì nó khơng bao g m các t ng tác trong tr ng h p ng d ng c th .
Các framework khác v i các th vi n l p ch : chúng nh m t i các mi n ng
d ng c th . Trong khi ó, các th vi n l p cung c p cho ng i s d ng các s th c
hi n tr c c a thu t toán. Các th vi n l p là th
ng, ng i s d ng g i các
ph ng pháp trong th vi n l p
th c hi n m t s ho t ng. Trong khi ó các
framework nh ngh a khung cho m t ng d ng th c t và i u khi n lu ng
u
khi n trong ng d ng. Các framework có th khác so v i th vi n l p, nh ng chúng
có th s d ng các th vi n l p ã có s n
th c hi n các thu t toán chung và các
c u trúc d li u.
Các thành ph n ph n m m ban u ã
cd
nh là các thành ph n ch c
ng riêng l mà có th
c u t t nhà cung c p và tích h p vào trong các ng
d ng. Các framework d ng nh là nh ng thành ph n mà có th
c u t t nh
cung c p và nhi u h n m t framework có th
c s d ng trong m t ng d ng.
Tuy nhiên, m t m khác d nh n th y gi a chúng là các framework cung c p m t
b r ng h n các d ch v so v i các thành ph n ph n m m. Chúng có kh n ng tùy
bi n nhi u h n, có các giao di n ph c t p h n và i u quan tr ng h n là chúng th c
s

nh ngh a cho m t h ng d ng ho c m t di n r ng c a các ng d ng. Do v y,
các framework là khó h c h n i v i các nhà phát tri n, nh ng m t khi ã hi u
c h t framework thì s có
c s linh ng cao h n và v i m t framework
c thi t k t t thì có th gi m
c các n l c c n b ra
xây d ng m t ng
d ng ã
c tùy bi n rõ r t h n.
Trong khi các framework và các thành ph n là các k thu t khác nhau, chúng
nên
c xem và
c s d ng nh các k thu t c ng tác v i nhau. V i các
framework có th s d ng các thành ph n và các ng d ng
c phát tri n s d ng
các framework th m chí có th ti n d ng h n các thành ph n. Ví d , m t ng d ng
Visual C++
c t o v i MFC framework, th m chí có th s d ng các thành ph n
ActiveX trong giao di n c a nó gi ng nh vi c trao i v i các thành ph n ActiveX
c óng gói trong MFC framework. M t ví d khác cho s ph thu c l n nhau


7

gi a các framework và thành ph n là vi c s d ng các framework
t o các thành
ph n m i, ví d , framework Active Template Library (ATL) c a Microsoft
cs
d ng r ng rãi trong vi c t o các thành ph n ActiveX.


1.1.2. Các

c

M t framework h

m c a framework
ng

it

ng có b n

c

m chính sau [5]:

fi Kh n ng mơ un hóa
fi Kh n ng s d ng l i
fi Kh n ng m r ng
fi S

i chi u c a

u khi n

V
c
m th nh t, các framework t ng c ng kh n ng mô un hóa b ng cách
óng gói các chi ti t th c hi n không ch c ch n ng sau các giao di n ch c ch n.

Kh n ng này giúp cho vi c t ng c ng ch t l ng c a ph n m m b ng cách c c b
hóa các tác ng c a nh ng thay i v ki n trúc và s th c hi n. S c c b hóa
này gi m các n l c
c yêu c u hi u và duy trì ph n m m hi n có.
M t khác, các giao di n ch c ch n
c cung c p b i các framework còn t ng
ng kh n ng s d ng l i b ng cách nh ngh a các thành ph n chung mà có th
c áp d ng
t o ra các ng d ng m i. Kh n ng s d ng l i c a framework
thúc y ki n th c c a mi n ng d ng và u tiên n l c c a các nhà phát tri n kinh
nghi m
tránh vi c t o và làm h p l l i các gi i pháp chung cho các yêu c u c a
ng d ng l p l i và các thách th c trong thi t k ph n m m. Vi c s d ng l i các
thành ph n thi t k có th là m t s c i ti n áng k trong s n xu t ch ng trình,
c ng nh t t cho vi c nâng cao ch t l ng, tính hi u qu ,
tin c y và tính s n
sàng c a ph n m m.
V kh n ng m r ng, m t framework t ng c ng kh n ng m r ng b ng cách
cung c p các
m nóng t ng minh mà cho phép các ng d ng m r ng các giao
di n ch c ch n và cách ng x c a vùng ng d ng v i các s thay i
c yêu c u
b i các tr ng h p c a ng d ng trong m t ng c nh c th . Kh n ng m r ng c a
framework là c n thi t
m b o các s
u ch nh có tính th i gian c a các d ch
v và tính n ng ng d ng m i.
Cu i cùng, c
m c a ki n trúc th i gian ch y c a m t framework là s
i

chi u c a
u khi n, th ng
c g i là “Nguyên t c Hollywood”ng g i cho
chúng tôi, chúng tôi s g i cho b n. Ki n trúc này cho phép ng d ng h p v i các
quy t c tiêu chu n b ng cách
u ch nh t ng b c x lý, b ng các i t ng qu n
lý s ki n mà
c vi n d n thơng qua c ch g i kích h at l i c a framework. Khi
các s ki n x y ra, framework g i l i kích ho t b ng cách vi n d n ph ng pháp
móc n i trên các i t ng qu n lý s ki n ã
c ng ký tr c, cái mà th c hi n


8

vi c x lý ng d ng c th trên các s ki n.
i chi u
u khi n cho phép
framework nh ngh a m t t p các ph ng pháp ng d ng c th
áp ng v i các
s ki n bên ngoài.

1.1.3. Phân lo i framework
Các framework h ng i t ng có th
c phân lo i theo nhi u chi u khác
nhau, trong ó nh ng chi u quan tr ng nh t là vùng v n
mà framework tr t i,
c u trúc n i b c a framework và framework
cd
nh s d ng nh th nào.

V cách phân lo i th nh t, ng i ta chia các framework thành các framework
ng d ng, các framework mi n ng d ng và các framework h tr . Các lo i
framework này s
c trình b y chi ti t trong ph n 1.1.3.1.
Ph n 1.1.3.2. s trình b y các framework c u trúc và các lo i framework
chia theo c u trúc n i b c a framework.

c

Và cu i cùng, n u phân lo i theo cách th c d
nh s d ng framework, thì s
có các framework h p en, các framework h p tr ng và các framaework h p xám.
Chi ti t v các lo i framework này s
c mô t trong ph n 1.1.3.3.

1.1.3.1. Phân lo i framework theo vùng v n
Tr c khi i vào chi ti t c a các lo i framework
c phân theo vùng v n
mà framework ó tr t i, ta s
c p t i hai khái ni m là các monolithic framework
và fine-grained framework.
Các tài li u hi n có [10] v các framework miêu t các kinh nghi m thu
c
t vi c s d ng các monolithic framework, ví d nh các ki n trúc ph n m m
ng i t ng cho m t s l nh v c c th . Tuy nhiên, cịn có m t cách ti p c n
khác là tìm ra các framework fine-grained nh và c ng tác l n nhau. M t ng d ng
có th
c “t ng h p” t m t s các framework fine-grained này.
S phát tri n c a các fine-grained c ng t ng t nh vi c phát tri n các
monolithic framework. i m khác nhau ch y u là framework fine-grained ph i

c thi t k cho s tích h p b i vì ph m vi bao hàm c a framework không ph i là
m t l nh v c hoàn ch nh.
Vi c phân lo i theo vùng v n
chia các framework thành ba lo i là các
framework ng d ng, các framework mi n ng d ng và các framework h tr . Các
framework ng d ng và mi n ng d ng th ng là các monolithic framework, còn
các framework h tr là nh ng tr ng h p n hình c a fine-grained framework.
M t framework ng d ng là m t t p c a các thành ph n v i m t thi t k ng
d ng có th
c s d ng l i.
u này có ngh a r ng, ng i dùng không nh ng


9

nh n
c m t t p con mã ch c n ng mà còn b t u v i c m t thi t k v cách
mà chúng làm vi c nh th nào. i u này c ng có ngh a là, m t framework ng
d ng có th cung c p nhi u tính n ng h n các th vi n hàm, vì v c b n các th
vi n hàm là không ph thu c vào nhau.
i v i m t nhà phát tri n, vi c s d ng m t framework ng d ng khác v i
vi c s d ng m t th vi n cách mà ng d ng
c vi t. V i m t th vi n, nhà
phát tri n vi t mã g i các hàm có trong th vi n.
u này có ngh a là, anh ta s
ph i ch u trách nhi m cho cách mà các thành ph n khác t ng tác v i nhau. Còn khi
s d ng m t framework ng d ng, nhà phát tri n vi t mã mà s
c framework
ng d ng g i.
u này có ngh a là, framework ng d ng ch u trách nhi m cho s

ng tác gi a các thành ph n. Trong khi u ki n này d ng nh không là m t l i
ích l n nh ng th c s ây l i là m t k t qu r t có ý ngh a thu
c t cách ti p c n
này. Framework ng d ng
c s d ng l i trong nhi u ng d ng b i nhi u nhà
phát tri n khác nhau.
u này có ngh a là, framework ng d ng là m t khái ni m
c xác th c và vi c s d ng nó s thu
c m t ng d ng t t h n. Các ví d c a
framework ng d ng là framework cho các giao di n ng i dùng [3].
Lo i th hai là phân lo i framework theo vùng v n c a m t mi n ng d ng.
Các framework này t
c ki n th c và s tinh thông trong m t vùng v n
c
th . Các framework cho
u khi n s n xu t và a ph ng ti n là các ví d c a
framework mi n ng d ng. Các framework mi n ng d ng có th ti n d ng khi
th c hi n các ch ng trình cho m t mi n ng d ng xác nh. Nó th ng xuyên
c
u ch nh cho v a v i các công ty ho c
c phát tri n t
u. Framework
này gi m s l ng công vi c mà c n
th c hi n ng d ng và nó a ra m t ph n
m m có ch t l ng cao h n cho mi n ng d ng này. M t ví d c th c a các
framework thu c lo i này là nh Java Media Framework (JMF). Framework này
nhúng các ch c n ng c n thi t cho vi c phát tri n các ng d ng v x lý các file
audio và video (d n kênh, tách kênh, mã hóa, các b l c hi u ng), các
u khi n
v trình di n và các ph ng ti n t

c các khóa cho s
ng b c a các ph ng
ti n khác nhau nh
u vào ti ng và u vào hình.
Lo i cu i cùng theo cách phân lo i này là các framework h tr . Các
framework h tr là các framework mà ph c v cho các d ch v m c th p c a h
th ng nh các trình i u khi n cho các thi t b và b
u khi n truy nh p file. Nhà
phát tri n ng d ng s d ng các framework h tr tr c ti p ho c s d ng các s
i u ch nh
c t o ra b i các trình cung c p c a h th ng. Các framework h tr
có th
c tùy bi n, ví d khi phát tri n m t h th ng m i ho c trình i u khi n
thi t b m i.


10

1.1.3.2. Phân lo i framework theo c u trúc n i b
N u nh c u trúc n i t i c a framework
c miêu t thì nó có th làm cho
vi c hi u cách ng x c a framework d dàng h n. C u trúc n i t i c a m t
framework liên quan t i các khái ni m v các ki n trúc ph n m m. Nh ng ki n trúc
này
c g i là “các framework ki n trúc”, do chúng
c thi t k theo cách
t
c c u trúc chính c a m t ki n trúc ph n m m h ng i t ng. Nguyên t c t ng
th cho c u trúc n i t i c a m t framework
c mơ t b i framework có tính ki n

trúc c a nó. Các framework có tính ki n trúc ã
c mô t là:
fi Layered (Phân t ng), giúp cho c u trúc các ng d ng có th
thành các nhóm c a các cơng vi c con v i m c tr u t
t ng khác nhau.

c phân rã

ng khác nhau

nh v

fi Pipes and Filters ( ng và b l c), có th
c dùng
c u trúc các ng d ng
mà có th
c chia thành m t vài các cơng vi c con hoàn toàn c l p,
c
th c hi n theo trình t n i ti p ho c song song ã
ràng.
fi Model-View-Controller (MVC),

c xác

nh m t cách rõ

nh ngh a m t ki n trúc cho các ng d ng có

tính t ng tác, chia tách gi a giao di n c a ng d ng v i các ch c n ng ch
y u c a nó.

fi Presentation-Abstraction-Controller (Trình di n-Tr u t ng- i u khi n), ki n
trúc này là thích h p
c u trúc các h th ng ph n m m mà có tính t ng tác
cao v i ng i s d ng, cho phép nh ng
u khi n và trình b y c a các mơ
hình tr u t ng c a h th ng có th
c t o bên ngồi các ch c n ng con và
c l p v i m i cái khác.
fi Reflective (Ph n ánh), có kh n ng áp d ng cho các ng d ng mà c n ph i cân
nh c v m t s thích nghi trong t ng lai do s thay i môi tr ng, công
ngh và các yêu c u, mà khơng c n có ph i thay i v ki n trúc và cách th c
hi n c a nó.
fi Microkernel, là phù h p cho các h th ng ph n m m c n cung c p các khung
nhìn khác nhau d a trên các ch c n ng c a chúng và ph i thích nghi v i các
yêu c u c a h th ng. Ví d c a microkernel là các h
u hành.
fi Blackboard (B ng en), giúp
c u trúc các ng d ng ph c t p mà liên quan
t i m t vài h th ng con chuyên bi t cho các l nh v c khác nhau. Các h th ng
con này ph i h p tác xây d ng các gi i pháp cho vi c gi i quy t các v n .


11

fi Broker (Môi gi i), c u trúc các h th ng ph n m m phân tán, trong ó các
thành ph n t ng tác khác nhau giao ti p v i nhau khi v n hành thông qua
truy n thơng nh trong m t mơ hình ch khách.
Vi c s d ng các ki n trúc này nh là m t nguyên t c thi t k ch y u cho
m t framework.
u ó có ngh a là, các ki n trúc này là các ng c viên t t cho

vi c ng d ng các m u thi t k h ng i t ng c ng nh cho vi c phát tri n
framework.

1.1.3.3. Phân lo i framework theo cách s d ng
D a trên cách s d ng framework, các framework h ng i t ng
c chia
thành hai lo i chính là các framework h p tr ng và các framework h p en. Nh ng
ph n l n các ng d ng d ng nh là m t t h p c a c hai lo i framework này và
c g i là các framework h p xám.
Trong m t framework h p tr ng, ki n trúc c a framework
c bi t nh là các
thành ph n và ng d ng c a nhà phát tri n s xây d ng trên nó. Thi t k hoàn toàn
ph i
c vi t thành tài li u, b i vì, các ki n trúc này c n
thay i framework
cho phù h p v i m t ng d ng c th . Do v y, ng i s d ng ph i có ki n th c và
n m v ng ki n trúc c a framework
tùy bi n framework thành m t ng d ng c
th .
Ng c l i, các framework h p en d u c u trúc n i t i c a chúng. Ng i s
d ng ch c n bi t các
m nóng (hot spot) c a h th ng và m t miêu t chung v
cách s d ng framework h n là ph i có ki n th c toàn di n v ki n trúc c a
framework. C ch này th ng
c s d ng
cung c p tính linh ho t là s t ng
h p. Trong khi các m nóng c a h th ng c n ph i
c làm rõ ràng, thì n l c
xây d ng m t framework h p tr ng, th ng
c làm b ng cách t ng quát hóa t

m t s ng d ng hồn ch nh, có th t ng i nh . B t l i c a lo i framework h p
tr ng là ng i s d ng cu i s d ng c n ph i n m, hi u các ki n th c v ki n trúc
t ng th .
u này d n n m t quá trình h c lâu và s r i ro v l i cao. Ng c l i
v i các h th ng h p tr ng, vi c s d ng framework h p en d dàng h n, b i vì
ng i dùng ch c n bi t các ki n th c v các ph n t có th thay i
c và i m
b n c a h th ng. Tuy nhiên, các framework h p en là khó xây d ng h n các
framework h p tr ng.
Framework h p en và h p tr ng nh d ng
ng bao ngoài c a thi t k
framework và các nguyên t c s d ng. Ph n l n các framework có th
trong vùng
gi a hai thái c c này, và
c coi nh là m t framework h p xám. Các framework
h p xám c g ng th c hi n các l i ích c a các thi t k h p en và h p tr ng, trong


12

khi c g ng lo i b các gi i h n nh n bi t
c c a hai lo i framework này. Tuy
nhiên, các framework h p xám d ng nh là m t lý thuy t không ai mu n th c
hi n, b i vì m i ng i u cho r ng m t framework h p en ã là .
Vi c s d ng framework h p tr ng là t ng ph n v i vi c s d ng framework
h p en. Khi s d ng l i framework h p en, ng i s d ng không c n bi t ph n
m m
c th c hi n nh th nào và c ng không c n bi t chúng th c hi n các i
ng mà có th
c s d ng l i trong t h p các i t ng nh th nào.

Framework h p tr ng
c s d ng t o ra các l p c th . M t s các l p c
th này là các thành ph n, b i vì chúng th c hi n các giao di n t framework h p
tr ng. Các thành ph n này cùng v i các l p c ng tác
c g i là framework h p
en.
i u khác nhau ch y u gi a m t framework h p en và m t framework h p
tr ng là khi s d ng m t framework h p tr ng, ng i s d ng ph i m r ng các l p
và th c hi n các giao di n. Ng c l i, m t framework h p en bao g m các thành
ph n và các l p mà có th t o
c các th hi n và
c c u hình b i ng i s
d ng. Các thành ph n và các l p trong các framework h p en th ng là các th
hi n c a các ph n t trong các framework h p tr ng. B t h p và c u hình c a các
thành ph n trong framework h p en có th
c h tr b i các công c và s d
dàng h n cho nhà phát tri n so v i vi c s d ng các ph n c a m t framework h p
tr ng. Các framework h p en là d dàng
c
u ch nh do ch c n bi t các giao
di n c a các
m nóng. Các framework h p tr ng th ng có kh n ng s d ng l i
nhi u h n nh ng l i khó
hi u chi ti t c u trúc n i b và th m chí, có th t o ra
m t s bùng n các l p con.


13

1.2. Ph


ng pháp phát tri n framework

Vi c phát tri n framework có m t s
m khác so v i vi c phát tri n m t ng d ng
chu n bình th ng.
m khác bi t quan tr ng là framework ph i
c xây d ng
bao
c t t c các khái ni m xác áng trong m t mi n ng d ng. Q trình phát
tri n framework
c mơ t nh hình 1.2.

Hình 1.2. Quá trình phát tri n framework

Nh v y, m t quá trình phát tri n framework s bao g m các pha sau:
fi Phân tích mi n

ng d ng.

ây là giai

o n chu n b cho vi c phát tri n

framework. N i dung chi ti t c a ph n này s
fi Thu th p các yêu c u và phân tích. Các ho t
c trình b y trong ph n 1.2.2.

c nêu trong ph n 1.2.1.
ng chính c a giai


n này s


14

fi Thi t k framework. Chi ti t v các ho t
c nêu trong ph n 1.2.3.

ng c a pha thi t k framework s

fi Tri n khai framework. ây là giai o n th c hi n các thi t k c a framework
b ng m t ngôn ng l p trình h ng i t ng c th . N i dung c a ph n này
s
c trình b y trong ph n 1.2.4.
fi Ki m th . Ph n 1.2.5. s trình b y ng n g n v các ho t
trong giai o n này.

ng c n th c hi n

1.2.1. Chu n b cho vi c phát tri n framework
Ph n này a ra m t gi i thi u ng n v các ho t ng
c th c hi n tr c
khi b t u quá trình phát tri n framework và xác nh các u vào nào s là c n
thi t
b t u quá trình phát tri n.
xây d ng
c m t framework, các nhà
phát tri n c n ph i có
c các ki n th c b sung v mi n ng d ng mà framework

d
nh t
c. Do v y, m t phân tích mi n ng d ng ng n g n nên
c th c
hi n tr c ho c nh là m t s kh i u c a m t quá trình phát tri n framework.
Vi c phân tích mi n ng d ng là s nh n d ng các l p và các i t ng mà là
chung cho t t c các ng d ng trong cùng mi n ng d ng ang phân tích. Mơ hình
mi n ng d ng nên ch t p trung vào các ch tác chính c a mi n mà không c n i
vào các chi ti t. M t mơ hình mi n ng d ng là m t công c t t khi b t u phát
tri n m t khung nhìn lơgíc c a h th ng. Nó nên miêu t các khái ni m mà m t
ng i dùng trong mi n ng d ng th ng s d ng và k t qu phân tích mi n
c
dùng nh m t cơng c giao ti p v i nh ng ng i liên quan t i vi c phát tri n h
th ng. Mơ hình mi n ng d ng không nên miêu t l nh v c t góc nhìn c a nhà phát
tri n, vì i u này s c n tr vi c trao i và làm n y sinh các r i ro. Không nên a
ra các chi ti t thi t k quá s m trong quá trình phát tri n framework.
M t phân tích mi n ng d ng th m chí cịn cung c p s h tr t t khi xác nh
rõ các ca s d ng. Nên có ít nh t hai tài li u là k t qu c a vi c phân tích mi n ng
d ng là ph m vi c a mi n ng d ng và mơ hình t nh ch a các i t ng và l p quan
tr ng trong mi n ng d ng này.
i u quan tr ng trong giai
n này là ph i xác nh m t ph m vi rõ ràng c a
mi n ng d ng. Vi c a ra m t framework bao trùm toàn b các l nh v c s là m t
i u không t ng. Ph m vi này s
c s d ng nhi u trong vi c thu th p các yêu
c u c a quá trình phát tri n. H n n a, ph m vi này làm cho vi c thu th p yêu c u rõ
ràng h n. N u m t yêu c u là trong mi n ng d ng thì yêu c u này s là h p l , và
ng c l i, n u yêu c u này ngoài mi n ng d ng thì yêu c u này s là không h p



15

l . Ph m vi c a mi n ng d ng th m chí cịn óng vai trị nh m t công c cho vi c
s d ng l i m t framework, khi ng i s d ng ph i quy t nh m t framework có là
phù h p s d ng cho m t ng d ng
c yêu c u hay không ?
Vi c xác nh ph m vi c a mi n ng d ng th ng là khó kh n, c ng khó nh
vi c quy t nh nh ng gì n m ngồi mi n, và nh ng gì mi n nên có. Vi c phát tri n
m t framework cho m t vùng h p d h n cho m t l nh v c r ng. Do v y, c n ph i

th i gian cho h at ng quan tr ng này.
Bên c nh vi c xác nh ph m vi c a mi n ng d ng, trong giai
n này, còn
c n ph i làm m t tài li u n a là mơ hình t nh. Mơ hình t nh này nên ch a các i
ng và các l p quan tr ng nh t c a mi n ng d ng. Chúng nên là các i t ng
trong th gi i th c hay các i t ng t th gi i c a ng d ng này. Các i t ng
và các l p nên
c t tên theo cách hi u c a ng i s d ng vì mơ hình này s là
m t cơng c cho vi c trao i gi a các nhà phát tri n và ng i s d ng c a các ng
d ng t ng lai.
Các k t qu c a giai
n phân tích mi n ng d ng s là u vào cho m t quá
trình phát tri n framework. T t nhiên, quá trình phát tri n framework luôn cung c p
l i các ph n h i hồn thi n h n các phân tích mi n ng d ng.

1.2.2. Thu th p yêu c u và phân tích
M c tiêu c a pha này là
thu nh n t t c các yêu c u h p l v mi n ng
d ng và phác th o ý t ng v m t h th ng s áp ng y các yêu c u này. Pha
này g m hai ho t ng chính là: Thu th p yêu c u và Phân tích. Tuy hai ho t ng

này
c phân chia nh ng th c ra chúng ch là m t, do v y chúng c n
c th c
hi n song song.
Các k t qu c a pha này là mơ hình u c u và mơ hình phân tích. Các mơ
hình u c u s xác nh các yêu c u mà h th ng ph i áp ng và các mơ hình
phân tích s phác th o các khái ni m chính c a h th ng này.


16

Hình 1.3. Các quá trình con và s n ph m c a pha Thu th p yêu c u và Phân tích

M t yêu c u xác nh m t ràng bu c trên h th ng ho c m t d ch v mà h
th ng nên cung c p. Các yêu c u là các công c cho q trình t o ra các mơ hình
phân tích chính xác. Trong khi phân tích, các yêu c u m i s
c nh n d ng và các
i m khơng th ng nh t trong mơ hình u c u s
c tìm ra. Khơng th tìm ra t t
c các yêu c u và m b o tính nh t quán c a các yêu c u trong l n thu th p u
tiên; c ng ch a th có ngay các u c u chính xác
làm u vào cho mơ hình
phân tích. Do v y hai ho t ng này ph i
c th c hi n song song.
M t phân tích mi n ng d ng cùng v i m t danh sách các yêu c u nên
c
cung c p nh
u vào cho pha phân tích và c n có ít nh t hai ng d ng cùng v i các
yêu c u trong t ng lai c a framework. Vi c cung c p các yêu c u c a framework
trên m t c p ng d ng s làm cho vi c tìm ra các i m chung d dàng h n.


1.2.2.1. Thu th p yêu c u
M c tiêu c a ho t ng này là
tìm ra t t c các yêu c u c a h th ng s
cd
nh phát tri n. Các yêu c u khơng nh t qn, có m u thu n ho c trùng l p
c ng có th
c tìm th y và
c gi i quy t.
Danh sách các yêu c u c b n
c l y t quá trình thu th p các u c u. Mơ
hình mi n là m t công c cho vi c trao i và nó cung c p m t thu t ng chung
gi m thi u các l i do vi c hi u nh m trong các th o lu n và các ph n
c quan
tâm.


17

Tài li u u ra c a ho t ng này là c t yêu c u chi ti t và Mơ hình ca s
d ng. Hai mơ hình này k t h p v i nhau
t o thành Mô hình u c u. Chúng là
m t cơng c
vi c trao i gi a các nhà phát tri n, ng i t v n bán hàng và
ng i s d ng. Do v y, chúng nên
c d hi u cho t t c các ph n liên quan. Các
yêu c u này nên
c nh d ng t góc nhìn c a ng i s d ng ho c c a khách
hàng h n là t góc nhìn c a nhà phát tri n.
Các mơ hình u c u này th m chí c ng là m t nh d ng c s cho pha ki m

th và th m nh. Ngoài hai tài li u
c xu t này, các tài li u khác có th
c
thêm vào trong Mơ hình u c u. Các tài li u yêu c u nên th a mãn 6 yêu c u sau:
fi Nên ch rõ các ng x bên ngoài c a h th ng
fi Nên ch rõ các ràng bu c
fi D dàng thay

i v i vi c th c hi n

i

fi Nên ph c v nh m t công c cho ng
fi Nên ghi l i các d

nh v vòng

i b o trì h th ng

i c a h th ng

fi Nên mơ t các áp ng có th ch p nh n
mu n

c

i v i các s ki n không mong

1.2.2.1.1. Quá trình thu th p yêu c u
M c tiêu c a quá trình này là tìm t t c các yêu c u h p l trên h th ng. Q

trình này có th
c xem nh m t vịng l p c a ba ho t ng: Làm l ra, c t và
Th m tra.

Hình 1.4. Các ho t

Ba ho t

ng này

c

ng c a m t quá trình thu th p yêu c u

nh ngh a nh sau:

fi Làm l ra là quá trình nh n bi t
c t t c các ki n th c c n thi t s
d ng trong vi c t o ra các yêu c u theo nh d ng chu n.

cs


18



c t là quá trình ti p nh n các phát hi n ki n th c làm
mơ hình chu n cho các yêu c u.


u vào

t o ra m t

fi Th m tra là quá trình c g ng ánh giá và ki m nh n xem mơ hình các yêu c u
chu n
c t o ra ã th a mãn v i các yêu c u c a ng i dùng hay ch a.
Thông tin trên
c thu th p t t t c các ng i liên quan, nh ng s d ng
khác nhau s có các yêu c u khác nhau i v i h th ng. M t h th ng ch d a trên
quan i m c a m t ng i dùng thì s không th áp ng
c y
t t c các yêu
c u c n có c a h th ng. Ngồi ra, thơng tin cịn có th tìm
c trong các s n
ph m c nh các c t , phân tích, thi t k , mã, các ca ki m th , …
Ti n trình xác nh yêu c u là m t pha quan tr ng trong quá trình phát tri n
framework, b i vì n u có l i trong vi c tìm ra t t c các yêu c u, và trong vi c tìm
ra các yêu c u úng s d n t i các thay i v sau trong các pha ti p theo. Chi phí
ph i tr cho vi c s a l i do các thay i trong yêu c u s r t cao do c n ph i vi t l i
các thi t k và mã. Chi phí này s t ng lên qua m i pha khi các l i không
c phát
hi n k p th i. Do v y, c n nhi u n l c trong pha phân tích
m b o có
cm t
c t u c u úng, hồn thi n và nh t quán.
1.2.2.1.2.

c t yêu c u


Các yêu c u nên
c chia thành hai nhóm: các yêu c u c a framework và các
yêu c u c a ng d ng c th . Sau ó chúng ti p t c
c chia thành các yêu c u
ch c n ng và các yêu c u phi ch c n ng.
u này là phù h p vì vi c phân chia các
yêu c u nh v y s làm cho vi c nh n d ng các thu c tính và các i m chung trong
các yêu c u c a các ng d ng nhanh h n.


19

Hình 1.5. S phân chia các yêu c u

Các yêu c u ch c n ng xác nh các ch c n ng và d ch v mà h th ng s
cung c p. Các yêu c u phi ch c n ng xác nh các ràng bu c mà h th ng ph i tuân
theo khi phát tri n và m r ng. Các ràng bu c yêu c u ng i dùng này có th t ng
lên do các chính sách c a cơng ty, các tiêu chu n, các ràng bu c
c d a trên các
h th ng có liên quan và nhi u cái khác n a.
Có ba l p khác nhau c a các yêu c u phi ch c n ng:
fi Các yêu c u v s n ph m, nh tính hi u qu , kích th

c và tính kh chuy n

fi Các yêu c u v quá trình phát tri n, nh các tiêu chu n, các quy

cv

t


tên, …
fi Các yêu c u t bên ngoài, các ch c n ng bao trùm t t c các yêu c u phi ch c
ng khác nh các yêu c u v chi phí, các yêu c u t các h th ng khác và các
u c u khơng th
c a vào hai nhóm k trên.
Các yêu c u phi ch c n ng c a m t framework nói chung là khác so v i các
yêu c u phi ch c n ng c a các ng d ng. Các yêu c u phi ch c n ng c a các
framework h ng vào thi t k h n so v i các yêu c u phi ch c n ng c a ng d ng.
Ngun nhân là vì, các framework có các ng i s d ng khác so v i các ng d ng


20

thông th ng. Ng i s d ng các framework l i chính là nh ng nhà phát tri n ng
d ng. M t framework
c s d ng
phát tri n m t ng d ng mà s
c xây
d ng
th a mãn các yêu c u c a ng i dùng. Trong h u h t các tr ng h p,
nh ng ng i phát tri n ng d ng s là ng i thi t l p các yêu c u cho framework.
Các yêu c u ch c n ng th ng xuyên
c ki m th và th m nh, nh t là các
yêu c u ch c n ng ã
c nh d ng v i các ca s d ng. Các yêu c u phi ch c
ng khó ki m tra h n. Các yêu c u phi ch c n ng c ng có th khó
c xác nh
b ng cách s d ng m t ngôn ng t nhiên, b i vì chúng có xu h ng là r t ph c
t p. Vi c s d ng các ngơn ng t nhiên r t khó kh n

phát hi n s không nh t
quán gi a các yêu c u, b i vì s khơng nh t qn n m trong m i quan h gi a
chúng. Ngôn ng t nhiên có th gây ra nh m l n gi a nh ng ng i liên quan trong
quá trình phát tri n b i vì nh ng ng i khác nhau s d ng các thu t ng khác nhau
cho cùng m t khái ni m.
1.2.2.1.3. Mơ hình Ca s d ng
M t mơ hình Ca s d ng ch a các tác nhân và các ca s d ng. M t ca s d ng
nh ngh a cách mà h th ng s
c s d ng và cách th c mà nó áp ng l i m t
yêu c u c th . M i ca s d ng là m t cách c th
s d ng h th ng. Theo nh
ngh a c a Jacobson, thì “M i ca s d ng thi t l p m t quá trình c a các s ki n
c b t u b i m t tác nhân và nó ch rõ t ng tác gi a m t tác nhân và h
th ng”.
Các ca s d ng c ng nên
c phân chia nh các yêu c u, thành các ng x
chung và các ng x c th . S phân chia này làm cho nó d dàng nh n d ng cái
gì là chung gi a các ng d ng khác nhau và ng x nào ch là riêng c a m i ng
d ng. S phân chia c a các yêu c u tuân theo k ch b n chính c a q trình phát
tri n framework, quá trình mà t p trung vào cái gì là i m chung và cái gì là c th
gi a các ng d ng nh n
c.
M t tác nhân là m t khái ni m mơ hình hóa c a các ng i s d ng ho c các
h th ng khác và nó là m t s tr giúp
nh ngh a nh ng gì t n t i ngồi h
th ng này. Các tác nhân có nh ng th hi n c th , ó là các ng i s d ng, mà th c
hi n m t t p các thao tác trên h th ng.
Các yêu c u ch c n ng n u có th nên
c nh d ng b ng các ca s d ng.
Các ca s d ng s h u d ng h n cho vi c tìm các i m chung gi a các ng d ng,

các ng x chung mà nên
c a vào trong framework.
Ngồi ra, mơ hình Ca s d ng còn là m t ph ng ti n trao i thông tin t t
gi a nh ng ng i s d ng và các nhà phát tri n, b i vì, các ca s d ng
c trình


21

b y theo nh ng khái ni m mà g n g i v i ng i s d ng. M t mơ hình Ca s d ng
th m chí cịn là m t cơng c t t cho vi c tìm ra các i m khơng nh t qn gi a các
yêu c u khác nhau, b i vì các ca s d ng có tính chu n hóa cao h n ngơn ng thơng
th ng. Tính chu n hóa này cịn làm cho vi c nh n d ng các quan h gi a các yêu
c u d dàng h n.
M t mơ hình Ca s d ng th m chí cịn là c s cho q trình ki m th . N u
nh các yêu c u
c chu n hóa b i các ca s d ng và các ki m th
c thi t k
theo các ca s d ng này thì s có m t quan h tr c ti p gi a vi c v t qua các ki m
th và vi c áp ng y
c các yêu c u. M i quan h gi a mơ hình Ca s
d ng và các mơ hình khác c a q trình phát tri n
c mơ t nh hình v sau.

Hình 1.6. M i quan h gi a mơ hình Ca s d ng và các mơ hình khác c a quá trình phát
tri n h th ng

1.2.2.2. Phân tích
M c tiêu c a phân tích là phác th o m t mơ hình c a h th ng mà áp ng y
các ch c n ng. S phân tích nên t p trung tồn b vào v n

và ph i
c th c
hi n xong mà không c n có s cân nh c n mơi tr ng thi hành. Lý do cho cách
ti p c n này là mơ hình phân tích nên gi
c tính t ng thích ngay c khi mơi
tr ng th c hi n thay i. M t lý do khác là, các chi ti t th c hi n d
y các nhà
phát tri n t p trung vào các v n
c a vi c th c hi n theo m t môi tr ng thi hành
nào ó, và do v y, s làm cho v n
mà h th ng d
nh gi i quy t n m ngoài
tr ng tâm c a vi c phát tri n.


22

M t khi nhà phát tri n ã nh n d ng
cv n
c a mi n ng d ng và các
yêu c u ã nh ngh a, nh ng ph n nào c a mi n ng d ng mà framework ho c h
th ng
cd
nh t
c, h th ng này ph i
c phác th o và các framework
cùng v i h th ng này nên
c nh n d ng.
Mơ hình phân tích bao g m m t mơ hình i t ng t nh. Các i t ng này
c xây d ng t các i t ng c a th gi i th c gi ng nh vi c phân tích mi n

ng d ng. Các i t ng có c
trong mơ hình mi n ng d ng và mơ hình phân
tích nên
c t cùng tên
m b o có th theo dõi và gi m các l i phát sinh do
s hi u nh m.
Ý t ng v i m t mơ hình là
t
c các khái ni m quan tr ng và l c ra
nh ng cái nào là không quan tr ng. T t c s tr u t ng là các t p con c a th c t
c ch n l a cho m t m c ích c bi t.
u này làm cho các nhà phát tri n t p
trung vào v n
d dàng h n mà không quan tâm t i các chi ti t ng sau v n
này. T t c mơ hình nên có m c ích c th c a nó. Các mơ hình h tr vi c phát
tri n framework nên có kh n ng t p trung s chú ý c a nhà phát tri n vào cái gì s
là t ng t gi a các ng d ng và cái gì là khơng.
1.2.2.2.1. Th c hi n vi c phân tích
Q trình t o ra mơ hình phân tích là l p l i m t cách t nhiên và m t mơ hình
phù h p nh m t n n t ng cho pha thi t k , t
c b ng cách làm m n và t ng
m c
c a vi c chu n hóa. Khơng có ranh gi i rõ ràng gi a vi c phân tích và thi t
k . M t s các ho t ng bình th ng thu c v pha thi t k nh ng l i
c th c
hi n xong trong su t pha phân tích, v i m c ích là tìm ra t t c các l p và các m i
quan h quan tr ng trong các mô hình phân tích.
Phác th o tr ng thái và v n , miêu t chúng t góc nhìn c a ng i s d ng.
M t khi các tr ng thái và v n
này

c phác th o, nó có th nh n d ng các s
tr u t ng c n thi t và b t u vi c xây d ng các mơ hình phân tích.
Q trình phân tích nên g m các b

c sau:

fi Phác th o tr ng thái và v n
fi Ki m tra các gi i pháp hi n có
fi Nh n d ng các s tr u t

ng chính

fi Nh n d ng các s tr u t

ng m c cao

fi Nh n d ng nh ng ph n nào c a v n
fi Yêu c u

mà framework s làm vi c

u vào t các khách hàng và thay

i cách ti p c n


23

Trong quá trình làm m n, các l p t mơ hình mi n ng d ng khơng c n thi t b
xóa b . Các l p m i nên

c a ra càng nhi u càng t t, khi có th , chúng s là
các m c cao h n c a s tr u t ng. Vi c a ra các m c cao h n c a s tr u t ng
s d n t i vi c t ng các
m chung c a h th ng. B ng cách a ra các s tr u
ng m c cao, nhi u
m t ng ng gi a các ng d ng
c tìm th y, các s
ng ng này s
c a vào trong framework.
Các s tr u t ng m c cao làm cho các thành ph n này b n v ng h n tr c
các thay i trong các yêu c u. M t thành ph n v i m t ki n trúc ch a các tr u
ng m c cao có th
c thay i mà không c n c u trúc l i ki n trúc c a nó. Các
thay i c n thi t
c a vào b ng cách t o ra s chuyên bi t hóa c a s tr u
ng m c cao. Các yêu c u s luôn luôn thay i b i vì th gi i xung quanh ph n
m m h th ng là luôn luôn thay i. S thay i ó s ph n ánh b ng các thay i
c áp t cho h th ng. Do v y, vi c tìm ra các i m chung là m t v n
quan
tr ng l n không ch trong phân tích framework.
vi
s
gi
ki
hi

Vi c tìm ra các l p chung này là b c u tiên trong ho t ng phân tích c a
c nh n d ng các framework trong h th ng. Cách d dàng nh t nh n d ng các
tr u t ng là m t ti p c n t d i lên. B t u s nh n d ng t vi c ki m tra các
i pháp hi n có. Vi c ki m tra các gi i pháp ho c h th ng hi n có có th sinh ra

n trúc h u d ng và cung c p thông tin quan tr ng v các framework có th th c
n
c.

Ti p theo, phân tích các c u trúc d li u và các thu t tốn, sau ó t ch c các
s tr u t ng hóa. Th ng xuyên nh n d ng các i t ng tr c khi b n s p t s
l p có c u trúc và các s ph thu c. Nh n d ng các gi i pháp nào có i m chung
và cái gì là duy nh t t i m i ch ng trình. M t g i ý là các framework ti m n ng có
th
c tìm th y trong:
fi Các mơ hình th gi i th c
fi Các ho t

ng

c th c hi n b i ng

i s d ng cu i

fi Mã ngu n cho gi i pháp ph n m m hi n t i
M t s các m chung
c nh n d ng có th
c a vào trong framework
t ng c ng các
m chung c a framework phù h p v i các yêu c u t ng lai.
Các tr u t ng có th t n t i trong các ng d ng ã
c phát tri n. Tuy nhiên,
th ng là khó kh n
quy t nh m t
m chung nào là c n thi t hay không? M t

i m chung làm t ng s ph c t p và có th t ng chi phí cho vi c phát tri n và s
d ng l i. Do v y, nó ph i
c cân nh c gi a
m chung và
ph c t p c a
framework. Gi ng nh m t quy t c, s tr u t ng m c cao
c a vào nên trong


24

cùng ph m vi c a framework. Các quy t nh v các
m chung nên
c làm tài
li u, nh t là trong các tr ng h p không rõ ràng. H n n a, framework không nên
quá l n. Các framework l n nên
c phân chia thành các framework nh h n và
c t p trung h n. Các framework nh h n thì d s d ng h n.
1.2.2.2.2. Mơ hình

it

ng t nh

M c tiêu c a mơ hình này là mô t các i t ng, các quan h gi a các i
ng và các khái ni m khác c a th gi i th c mà chúng là quan tr ng i v i h
th ng nh xây d ng. Mơ hình i t ng t nh cung c p m t bi u di n
h a
c
hi u m t cách d dàng và phù h p cho s trao i, không nh ng gi a các nhà phát

tri n mà còn gi a các nhà phát tri n và các ng i s d ng.
Mơ hình i t ng t nh không nên ch a b t k c u trúc máy tính nào tr khi
v n
ang
c gi i quy t là m t v n
v máy tính. Vi c t tên cho các i
ng và các khái ni m trong mơ hình này nên
c th c hi n t góc nhìn c a
ng i s d ng.
Nh ã
c p trên, m i i t ng ã
c a ra trong mơ hình mi n
d ng thì nên
c t cùng tên trong mơ hình i t ng t nh. Mơ hình i t
t nh là m t tài li u tham kh o, không ch xuyên su t quá trình phát tri n mà
trong pha b o trì. Do v y, tên c a các i t ng và khái ni m trong mơ hình
c th c hi n theo m t cách h t s c t nhiên..

ng
ng
cịn
nên

Mơ hình i t ng t nh nên bao g m các i t ng phân tích và các liên k t
gi a các i t ng. Các quan h k t h p không ph i là m t u quan tr ng nh ng
n u chúng
c tìm th y thì nên
c a vào trong mơ hình. Các c u trúc th a k
phù h p nên
c tìm th y và chú ý nên tìm các c u trúc và các i t ng chung

c a nhi u h n m t trong các ng d ng mà framework
cd
nh t
c.
Vi c phát tri n m t mơ hình i t ng t nh cho m i ng d ng là phù h p.
Vi c phát tri n này nên
c th c hi n cho t t c các ng d ng m t cách song song.
Khi tìm th y các s tr u t ng chung, chúng nên
c a vào trong mơ hình i
ng t nh c a framework.

1.2.2.3. Các k t qu và mơ hình b sung
Các mơ hình
c gi i thi u trên ơi khi là các mơ hình khơng ti n d ng mà
cịn có th không phù h p cho m i t ch c. Tuy nhiên, các mơ hình này là th ng
là chung cho ph n l n các ph ng pháp phát tri n, nh ng m i s phân tích l i yêu
c u m t t p các mô hình c th . ơi khi, khơng ph i m i mơ hình
c gi i thi u
trên là c n thi t, và ôi khi chúng là không . N u vi c s d ng các mơ hình mà


25

không bao trùm t t c các yêu c u ho c các mơ hình
c s d ng khơng làm n i
b t
c các v n quan tr ng, thì th ng s d ng m t mơ hình b sung.
Mơ hình nên h tr s nh n d ng các khái ni m chung, có th
c hi u m t
cách d dàng càng t t. Các ghi chú

c s d ng
duy trì tính n gi n và tránh
c s hi u nh m. Trong tr ng h p này, các mơ hình
h a là t t nh t. M t ví
d có th là, s d ng các m u khác nhau trong mơ hình i t ng
di n t các
khái ni m, các quan h và nhi u h n th n a. M t mơ hình d hi u s làm gi m các
l i do vi c hi u nh m và là c n thi t cho vi c s d ng l i m t cách hi u qu . Ng i
s d ng l i s hi u mơ hình nhanh chóng và d dàng n.

1.2.3. Thi t k framework
Pha thi t k bao g m thi t k ki n trúc, mà
ó xác nh các i t ng và s
c ng tác gi a chúng, và thi t k chi ti t, mà
ó các l p và các ph ng pháp c a nó
c mơ t chi ti t h n. u ra t pha thi t k là m t mô hình i t ng t nh và các
mơ hình ng mơ t các s c ng tác. Các mơ hình này nên t o thành m t n n t ng
y cho s th c hi n h th ng.
Lý do cho vi c có pha thi t k , mà không b t u vi t mã tr c ti p sau khi
phân tích là vì: mơ hình phân tích khơng thích h p
chuy n thành mã ngu n. Các
mơ hình phân tích xem xét h th ng t quan
m mang tính khái ni m, mà khơng
c p n môi tr ng th c hi n.
cung c p m t n n t ng v ng ch c cho s th c
hi n, các i t ng ph i
c làm m n, và các mơ hình ph i
c m r ng. Các i
ng và mơ hình này ph i
c nh ngh a các ho t ng nào nên

c cung c p
và chính xác nh ng gì
c trao i gi a các i t ng. Pha thi t k th m chí s
ph c v cho vi c th m nh các k t qu phân tích và các i u ch a rõ ràng s
c
khám phá.
Các mơ hình phân tích có th
c thay i theo nhi u cách
thích nghi v i
môi tr ng th c hi n. Các thay i này nên
c ki m soát m t cách c n th n. Các
thay i nên th c hi n là thêm ho c thay i các ch c n ng liên quan t i môi tr ng
th c hi n. Các thay i liên quan n các ch c n ng khác thu c v mơ hình lơgíc và
mang tính khái ni m thì ã
c ki m sốt trong su t pha phân tích.

1.2.3.1. Q trình thi t k framework
M t thi t k framework là m t thi t k ph n m m mà khi
c tri n khai s
cung c p các ch c n ng chung và tr u t ng ã
c nh n d ng trong vi c phân
tích. Framework s là m t s th c hi n c a các ph n chung c a các ng d ng trong
mi n ng d ng.


×