ng c nh rõ ràng... thông th ng.
Trang 1Ngà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 ccá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 ngtrong 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ácframework 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
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 toá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
Trang 2Chng 1
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 uthi 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 ctrì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 unày có c m giác m t framework không là m t h th ng hoàn ch nh H th ng này có th c u
ch nh l i t o ra các ng d ng hoà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 acá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
“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 ”
Trang 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 ng cho các gi iphá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 o ra m t t p các áp ngcho m t ng d ng ho c m t vùng h th ng con”
“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 c c 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ânchia 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 tnhà 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, c d 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 nliên quan, cho phép t ng h p trong m t framework H n n a, các framework c bi u di nthà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
Trang 4Các tài li u
thi t k
ph n ánhCác giao di n
tri n khaiCác l p tr utri n khai
th a kCác thành ph n
là m t ph n c aCá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 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
® 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
Trang 5ng c nh rõ ràng M t thành ph n ph n m m có th c tri n khai không ph thu c và c t
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 ncung 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 acá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 minhtí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ácthà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 c s k t h 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 chuyên 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
Trang 6Cá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 ngtrì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 ã c d 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 ngtrong 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 frameworkcung 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 ngtù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 nhngh 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 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ácthà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ácthành ph n ActiveX c óng gói trong MFC framework M t ví d khác cho s ph thu c l nnhau
Trang 7V 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 ntrú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ó
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 nsà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 mnó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 ntrú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 aframework 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 ngphá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
Trang 8vi 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 aframework và framework c d 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 ctrì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 c chiatheo c u trúc n i b c a framework
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ácframework 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-grainedframework
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 racá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 monolithicframework 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
Trang 9nh 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ácframework này t c ki n th c và s tinh thông trong m t vùng v n c th Các frameworkcho 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ácframework 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
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 ncho 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ácframework 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 nthi t b m i
Trang 101.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 utrú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ácframework có tính ki n trúc ã c mô t là:
® Layered (Phân t ng), giúp cho c u trúc các ng d ng có th c phân rã thành cácnhóm c a các công vi c con v i m c tr u t ng khác nhau nh v
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 ngoài các ch c n ng con và c l p v i m i cái khác
® 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ó
® Microkernel, là phù h p cho các h th ng ph n m m c n cung c p các khung nhìnkhá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
® 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 ptác xây d ng các gi i pháp cho vi c gi i quy t các v n
Trang 11® 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 nhtrong 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 tframework 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 ichí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 nframework 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
a các thi t k h p en và h p tr ng, trong
Trang 12khi 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ácframework 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 ucho 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 thnào và c ng không c n bi t chúng th c hi n các i
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ácthà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 nnà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 ccá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 uhì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ácframework 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ácframework 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 utrúc n i b và th m chí, có th t o ra m t s bùng n các l p con
Trang 131.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 mxác áng trong m t mi n ng d ng Quá 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
® 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 c nêu trong ph n 1.2.1
c trình b y trong ph n 1.2.2
Trang 14® Thi t k framework Chi ti t v các ho t ng c a pha thi t k framework s
c nêu trong ph n 1.2.3
® Tri n khai framework ây là giai o n th c hi n các thi t k c a framework b ng m tngô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 n1.2.4
® Ki m th Ph n 1.2.5 s trình b y ng n g n v các ho t ng c n th c hi n trong giai o n này
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ìnhphá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ênmiê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ântí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 unà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
Trang 15l 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 ngoà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 có 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 ihoà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 yêu c u và mô hình phân tích Các mô hìnhyê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
Trang 16Hì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êncung c p Các yêu c u là các công c cho quá trình t o ra các mô hình phân tích chínhxá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 ttrong mô hình yê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 tquá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 yêu c u chínhxá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 songsong
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àmcho 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
c d nh phát tri n Các yêu c u không nh t quán, 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 yê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
Trang 17Tà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 yê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 yê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ìnhyê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:
® Nên ch rõ các ng x bên ngoài c a h th ng
® Nên ch rõ các ràng bu c i v i vi c th c hi n
® D dàng thay i
® Nên ph c v nh m t công c cho ng i b o trì h th ng
® Nên mô t các áp ng có th ch p nh n c i v i các s ki n không mong mu n
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 Quá 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 ng c a m t quá trình thu th p yêu c u
® 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 c s d ng trong vi c t o
ra các yêu c u theo nh d ng chu n
Trang 18® c t là quá trình ti p nh n các phát hi n ki n th c làm u vào t o ra m t mô hình chu ncho các yêu c u.
® 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ùngthì 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 Ngoà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 nframework, 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ácyê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 ctrong pha phân tích m b o có c m t c t yêu c u úng, hoà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
Trang 19Hì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ácyê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 na
Có ba l p khác nhau c a các yêu c u phi ch c n ng:
® 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
® Các yêu c u v quá trình phát tri n, nh các tiêu chu n, các quy c v t tên, …
® 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 yê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 uphi 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àothi t k h n so v i các yêu c u phi ch c n ng c a ng d ng Nguyên nhân là vì, cácframework có các ng i s d ng khác so v i các ng d ng
Trang 20thô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 tframework 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ácyê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 uphi 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 skhông nh t quán gi a các yêu c u, b i vì s không nh t quán n m trong m i quan h gi achú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ìnhphá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 acá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ântheo k ch b n chính c a quá trình phát tri n framework, quá trình mà t p trung vào cái
Trang 21b 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 quán 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àycò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 quá 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 quá trình phát tri n c mô t nh hình vsau
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
các ch c n ng S phân tích nên t p trung toà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ìnhphâ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 ntheo 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
Trang 22M t khi nhà phát tri n ã nh n d ng c v 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 c d 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
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 schú ý 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
Quá 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 nhó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 cxây d ng các mô hình phân tích
Trang 23Trong 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
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 nkhông ch trong phân tích framework
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 vi 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 s 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 gi i pháp hi n có Vi c ki m tra các gi ipháp ho c h th ng hi n có có th sinh ra ki 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 hi n c
Ti p theo, phân tích các c u trúc d li u và các thu t toá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 ytrong:
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áttri 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
Trang 24cù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ácframework l n nên c phân chia thành các framework nh h n và c t p trung h n Cácframework nh h n thì d s d ng h n.
1.2.2.2.2 Mô hình i t ng t nh
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 pcho 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 ng d ng thì nên c t cùng têntrong mô hình i t ng t nh Mô hình i t ng 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à còn trong pha b o trì Do v y, tên c a các i t ng và khái ni mtrong mô hình nên c th c hi n theo m t cách h t s c t nhiê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 c d nh t c
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ó thkhô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à
Trang 25khô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 nquan 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àngcà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 achú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 thng
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íchxem 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 quphâ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 soát trong su tpha phân tích
1.2.3.1 Quá 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
Trang 26Hình 1.7 M t framework là nh ng ph n chung c a các ng d ng trong m t mi n ng d ng
Giai o n thi t k c a quá trình phát tri n framework bao g m hai pha, là thi t k ki ntrúc và thi t k chi ti t Trong pha thi t k ki n trúc, i t ng và các s c ng tác c a chúng s cthay i, nh m t s cân nh c t i môi tr ng th c hi n Còn trong pha thi t k chi ti t, các i t ng
c nh n d ng trong pha thi t k ki n trúc s c mô t theo ngôn ng c d nh dùng th c hi nframework và n u c n thi t, các i t ng ó s c làm m n
Ti n trình c a pha thi t k c ch ra trong hình 1.8 Trong quá trình thi t k , các thi t
k c ánh giá liên t c và các gi i pháp thi t k xu t có th c ch ng minh b ng cách làm m u
Trang 27Hình 1.8 Các ho t ng trong pha thi t k framework
V n chính c a pha thi t k framework là cung c p m t n n t ng cho m t s th c thichung, mà s c áp d ng cho m t vài ng d ng c th Trong su t quá trình thi t k , nhi u s tr
u t ng s c nh n d ng và do v y, các thi t k ph i d dàng thay i
Ph n l n các khái ni m chung c a các ng d ng ã c nh n d ng trong pha phân tích
mi n ng d ng và pha phân tích Do v y các tr u t ng c tìm th y trong su t pha thi t k s h
u nh ch c ch n là t i m t m c th p h n S nh n d ng c a m t s tr u t ng m c cao trong su tpha thi t k có th ch là k t qu tr v c a pha phân tích
Trong th c t , các tr u t ng c tìm t “d i lên”, b ng cách nghiên c u các ví d c th , g
i ý ph i có m t thi t k tìm m t s tr u t ng Thi t k nên là m t t ng quan trong u c a cácnhà thi t k , m t thi t k m u ho c m t ng d ng c trong ó v n thi t k t ng t ã c gi i quy t
Bên c nh vi c tìm ra các s tr u t ng, trong pha thi t k còn ph i nh n d ng các gi ipháp thi t k chung S không có l i n u thi t k cùng m t v n hai l n, ho c làm hai thi t khoàn thi n gi i quy t hai v n t ng t nhau M t gi i pháp thi t k chung không ch gi i quy t
v n hi n t i mà còn s d ng c v i nh ng v n t ng t
Trang 28Vi c tìm ki m nh ng gi i pháp thi t k tr c c s d ng l i s gi i h n s c n thi t cho cácquy t nh thi t k ph c t p N u m t v n thi t k là t ng t , ho c gi ng h t nhau, thì v n này c
gi i quy t th c s , các gi i pháp thi t k tr c nên c s d ng l i
Các ki n th c có th có trong t ch c c ng nên c s d ng l i t i a Các m u thi t k là các
gi i pháp chung cho các v n mà th ng x y ra trong thi t k framework Các m u thi t k ã
c ng d ng cho nhi u thi t k và các gi i pháp mà chúng g i ý là nh ng ch ng minh t t Các
m u thi t k không nh ng giúp cho vi c trao i gi a các nhóm thi t k mà còn làm choframework c hi u d dàng
n
1.2.3.2 Pha thi t k ki n trúc
Trong su t pha thi t k ki n trúc, m t mô t m c cao c a framework và các ng d ng clàm d a trên các mô hình phân tích Các ho t ng sau nên là chung cho thi t k ki n trúctrong h u h t các ph ng pháp h ng i t ng
Hình 1.9 Các ho t ng trong pha thi t k ki n trúc
M c tiêu c a thi t k ki n trúc là nh n d ng các i t ng c c n th c hi n h th ng này vàcách mà các i t ng c ng tác Trong pha này, n u c n thi t, h th ng s c chia thành các h th
ng con
c miêu t trong ph n phân tích u ra c a pha thi t k ki n trúc là các mô hình theo d
ng c a m t mô hình i t ng t nh ho c các mô hình ng (các l c
ng tác, các bi u tr ng thái và các mô hình lu ng d li u) Các mô hình này s nh d ng
m t c s cho vi c nh n d ng cách th c hi n các l p
Trang 291.2.3.2.1 Làm m n mô hình i t ng phân tích
Trong ho t ng này, các i t ng m i, mà không c gi i thi u trong các mô hình phântích, có th c a ra u ch nh h th ng trong su t quá trình phát tri n M t phân tích c a môi tr
ng th c hi n c th c hi n song song v i vi c phân tích, ho c ít nh t tr c khi b t u pha thi t
k Các thay i khác có th là b , chia tách ho c sát nh p các i t ng có c t s phân tích Cácthay i này nên c ki m soát r t c n th n, vì chúng th ng có xu h ng làm gi m s c m nh c a
h th ng
Vi c hi u m t framework duy trì kh n ng l n v t gi a các mô hình phân tích và thi t
k là quan tr ng Nhi u i t ng thi t k có th c nh n d ng trong mô hình phân tích và tên c acác i t ng này nên gi ng nhau trong c hai mô hình
M t l p i di n cho m t s tr u t ng c a các i t ng mà c n d t nó N u m t l p có nhi utác v , nó có th ch a m t vài s tr u t ng khác nhau Tuy nhiên, m t l p không nên có nhi
u h n 25 tác v [7], b i vì các l p v i m t s
kh c ph c v n này, m t l p l n v i nhi u tác v nên c chia thành nhi u ph n M i ph n ó
s c ki m tra và c a ra i di n cho m t vài s tr u
ng Khi ó, các ph n này có thc chia s v i m t s ph n khác c a thi t k
1.2.3.2.2 Gán các trách nhi m h th ng t i các i t ng c th
Trách nhi m c a m t i t ng ho c m t h th ng c nh ngh a nh là “ki n th c duy trì vàcác ho t ng mà có th c th c hi n” Trong h th ng này, trách nhi m h th ng s c phân ph i t
i các i t ng mà ã c nh n d ng trong các pha s m h n
Trong su t quá trình nh n d ng các ho t ng mà m t i t ng ch u trách nhi m th c hi
n, và ki n th c gì v nó duy trì, m t cách chung di n t các trách nhi m t ng t nên c s d ng,
b i vì vi c này có th giúp vi c nh n d ng các tr u t ng Các trách nhi m nên c t t i l p mà
v lôgíc chúng thu c v Trong m t s tr ng h p bi t m t l p nào mà trách nhi m ó thu c v
là không rõ ràng Sau ó, ng i thi t k nên h ng t i m c cao nh t c a s tr u
ng N u m t trách nhi m có th thu c v m t vài l p t quan m c lôgic, thì trách nhi mnày nên c t trong l p mà nó cho phép ng i thi t k nh n d ng s tr u t ng m c cao h n
1.2.3.2.3 Phân tích các s c ng tác
Trang 30M t i t ng c ng tác v i m t i t ng khác n u nh nó c n n m t ho c nhi u các tác v c acác i t ng khác th c hi n y ch c n ng c a mình Trong su t ho t ng này, các s c ng tác gi
a các i t ng trong h th ng nên
c nh n d ng i v i m i i t ng và m i trách nhi m trong h th ng, s c ng tác nên c tìm ra
n u nh trách nhi m này ch có th c áp ng y n u có s c ng tác v i các i t ng khác
c t ng tác là m t công c h u d ng trong vi c xác nh các i t ng nên c c ng tác nh
th nào trong h th ng Các liên k t gi a các i t ng có th c thay i t s phân tích u này h u
nh ch c ch n s là thay i chung nh t t i mô hình phân tích S th c hi n th c t c a các liên k
t và s ng b gi a các quá trình là các ví d v các liên k t có th b thay i
cho thi t k có kh n ng m r ng, thì không nên có s tham chi u t i các l p c th C
Vi c dò tìm nh n d ng các s tr u t ng, s cung c p các c u trúc phân c p th a k sâu
và h p, b i vì thông tin c chia s b i các l p s c tr u t ng hóa thành các siêu l p Các ki ntrúc th a k r ng và không sâu ch ra r ng các s tr u ng v n c tìm th y trong ki n trúc này
Trang 31M t s quan tâm chính khi làm m n các c u trúc phân c p và các s c ng tác nên gicác ch c n ng chung và các tr u t ng ã c nh n d ng trong s phân tích S làm m n sâu h nkhông nên vi ph m các tr u t ng có tính khái ni m này.
M t cách b t u s làm m n là tìm các siêu l p mà th c hi n cùng m t tác v và c g ngchuy n tác v này vào m t siêu l p m i Cách ti p c n này có th tr v m t c u trúc phân c psâu h n và có th là khó hi u h n, b i vì các tác v c a nó s c tr i dài trong c u trúc này B t
k khi nào, s th a k nên c thay th b i t h p C g ng không m r ng c u trúc phân c p quá
xa, nh ng rút ra thu c tính vào m t l p c u trúc phân c p m i và s d ng các n d c a l p m inày nh các thành ph n trong các n d c a c u trúc phân c p l p u tiên
Các nhà thi t k nên tìm các l p ho c các tác v mà có các tên khác nhau, nh ngcung c p cùng ch c n ng t tên l i cho chúng là m t cách n gi n có th ch p nh n c, và slàm nó d dàng h n xem các m chung, nh ng yêu c u m t s công vi c v so n th o v n b n
Trang 32Hình 1.11 Các thu c tính chung c nh n d ng b ng cách i tên và s d ng tham s
Nói chung, vi c l p l i d ng nh là không th tránh kh i, nh vi c t t c các s tr u t ng d
ng nh không th c tìm th y trong l p u tiên i u này bu c các c u trúc phân c p l p s c c utrúc l i trong thi t k , và m t u ki n tiên quy t cho vi c c u trúc l i các c u trúc này là hi uchúng Kh n ng hi u c có th c thu th p ho c b i tài li u chính xác ho c b ng cách n gi nhóa ho c là m t s k t h p c a c hai
1.2.3.3 Pha thi t k chi ti t
c nh n d ng và c mô t , khi s d ng ngôn ng th c hi n d nh u vào là các i t ng và các
s c ng tác c nh n d ng trong thi t k ki n trúc, ã c miêu t trong mô hình i t ng t nh và các
mô hình ng, ví d các l c t ng tác và các bi u chuy n d ch tr ng thái
M t tác v v i m t s tham s , d ng nh là m t cách chung xây d ng m t l p h n là m ttác v v i quá nhi u tham s Các tác v có tham s nên c làm m n l i và có th c chia thànhnhi u tác v Tuy nhiên có m t ngo i l là các c u t kh i t o i t ng
M t tác v nên th c hi n nhi u h n m t nhi m v M t tác v mà th c hi n nhi u nhi m
v khác nhau nên c chia thành m t vài tác v , b i vì m t ph n c a tác v có th c chia s b i
m t vài l p, trong khi các ph n khác nhau là duy nh t c a m t l p
Các l p là s tr u t ng c a các i t ng c khái quát t nó Các l p có nhi u h n 25 tác v
mô t các s tr u t ng ph c t p, và có th ch a m t vài các s tr u t ng khác Các s tr u t ngnày nên có l p c a b n thân nó Viêc làm ph c t p các giao di n chung th m chí cànglàm cho framework khó hi u thêm
Các s tr u t ng m i có th c tìm th y trong su t quá trình thi t k chi ti t Các s tr u t
ng có th c a ra trong các mô hình mà chúng thu c v , duy trì c u trúc c a tài li u Các s
tr u t ng mang tính khái ni m thu c v s phân tích
nh n d ng c các l p sâu h n, các ký hi u tác v nên là th ng nh t, tính ch t ng d
ng nên c chú tr ng h n là tính c th
1.2.4 Tri n khai framework
Trang 33o n thi t k Vi c tri n khai này liên quan ch t ch n các yêu c u c a framework và ngôn
ng th c hi n d nh Do v y, trong ph n này, s không i sâu vào vi c th c hi n m tframework c th nào c , mà ch c p n k ch b n tri n khai và m t s tiêu chu n c n ph i áp ngtrong khi xây d ng m t framework
Khi tri n khai m t framework, m t cách ti p c n t trên xu ng nên là cách phù h p
nh t, b t u t các l p m c cao Các phát tri n này th c hi n ch c n ng chung c a các ng d
ng và ti p t c th c hi n các i t ng m c th p T t c các i t ng là không hi u l c t i th i m ki
m tra framework, do v y m t u ki n
thay th chúng ph i c tìm th y Ho c là các cu ng mã có th c cung c p, ho c g i t i các
i t ng m c th p có th c gi nh
c xác nh khi s d ng ngôn ng c d ki n Tuy nhiên, không có ranh gi i rõ ràng gi a thi
t k chi ti t, tri n khai và ki m th , b i vì các s không nh t quán s c phát hi n trong khi tri
n khai và s c ph n h i l i pha thi t k chi ti t Các thành ph n th m chí còn c ki m tratrong su t pha tri n khai
u vào c a pha tri n khai là m t mô t chi ti t c a các l p, các giao di n và các nhngh a bên ngoài c c th v i hình th c c a ngôn ng th c hi n u ra là m t t p các l p c th c hi
n, s n sàng c ki m tra i v i m i l p, vi c tri n khai g m hai b c sau:
® S tri n khai giao di n bên ngoài c a l p Giao di n này, c xác nh trong su t pha thi
t k chi ti t, c hoàn thành ch a nh ngh a bên trong c a l p này, ví d các thu c tính
và tác v c b o v hay riêng t
® S tri n khai các tác v , b t u v i m t tác v r ng (không ch a mã) v i ki u tr v úng.Các ng x n i b c xác nh b ng cách ki m tra các mô hình ng, ví d các l c t ng tác vàcác bi u chuy n d ch tr ng thái Các
c t ng tác th m chí ch a các mã gi (pseudocode), trên ó vi c th c hi n có th c d
ng lên ng x toàn b c a các tác v c th c hi n trong b c này
Các quy c tiêu chu n v th c hi n nên c nh ngh a ho c c s d ng l i Các quy c nàybao g m xác nh các c u trúc file, các quy c t tên và các quy t c cho các tham chi u, Khi có m t mã ngu n theo chu n, vi c c mã s
c d dàng Vi c có m t n mã mà d c s thu n l i cho vi c hi u framework, và ti t ki m
c th i gian cho ng i s d ng
Trang 341.2.5 Xác minh và th m nh tính h p l
N i dung chính s c trình b y bao g m ph n 1.2.5.1 là các khái ni m chung v vi c
ki m th ph n m m, và ph n 1.2.5.2, là các s ki m th dành riêng cho framework
M c ích c a vi c ki m th là ki m tra r ng h th ng ang c xây d ng áp ng c y các yêu
c u ã c nêu trong phân tích mi n ng d ng ho c trong pha phân tích M c ích c a vi c th
c giao trách nhi m cho n v này Ph ng pháp này không quan tâm t i c u trúc n
i b c a n v này, nó ch ki m th vi c n v áp ng t i các u vào xác nh nh th nào
Ki m th tích h p là vi c ki m th các n v ph n m m làm vi c v i nhau nh th nào T icùng m t th i m, m t ki m th tích h p có th là m t ki m th n v , m t n v có th ch a m t vàicác n v con Các bi u ca s d ng là các công c t t cho vi c th c hi n các ki m th tích h p
Trang 35Khi t t c các mô un c k t h p nh d ng h th ng cu i cùng, vi c ki m th tích h p cu icùng ôi khi c g i là ki m th h th ng Vi c ki m th h th ng này xác nh n là h th ng có th amãn các yêu c u hay không N u các yêu c u ã c vi t d i d ng các bi u ca s d ng, thì các
M t tri n khai th nghi m c s d ng mô ph ng th gi i xung quanh n v c ki m th Vi c
th , cái mà c thu nh n t các ca s d ng này
1.2.5.2 Các ki m th dành riêng cho framework
ây không có s khác nhau th c s gi a vi c ki m th các n v c a m t framework so
v i vi c ki m th các h th ng ph n m m thông th ng Tuy nhiên,
ây v n có m t s m khác bi t ph thu c vào vi c s d ng các k thu t h ng i t ng và th c t
Trang 36Câu h i th hai là li u framework này có áp ng y các ph n c a các yêu c u ng d nghay không Câu h i này c th m nh ch y u cùng v i các ho t ng c a vi c ki m th h th ng.
Jacobson kh ng nh r ng, tính a hình là m t công c t t trong quá trình ki m th N ucác thay i c làm trong m t l p con, còn g i là l p ph c v thì ây s không c n ki m th l pkhách (framework này) Nó s là hi u qu ki m th l p con, xác nh n r ng l p con này s áp
ng thích h p v i các l i g i t framework
Nh v y, n u các l p m i c th c thi t k c u hình framework thành m t ng d ng c ththì m i l p m i này ph i c ki m th n v , nh ng b n thân framework l i không ph i ki m th
nh m t thành ph n riêng l n a Tuy nhiên, framework này ph i c ki m th trong m t ki m
th tích h p ây là m t ki m th c a ng d ng hoàn ch nh xem các l p c th m i s t ng tác v iframework nh th nào
c s d ng tr c ây) thì có hai tr ng h p có th x y ra Tr ng h p th nh t s k t h p c a các l
p này và framework ã c s d ng và ki m th tr c ây, và nó s là không c n thi t ki m th l i s
k t h p này Tr ng h p th hai x y ra khi các l p c th ã c s d ng tr c v i nhau cùng v iframework này, nh ng l i không ph i trong s k t h p này Trong t ng h p này, khôngyêu c u các ki m th riêng cho m i l p c th , tuy nhiên, c n có m t ki m th cho ng d nghoàn ch nh
Trong th c t , không c n thi t ph i có m t ki m th n v cho m t framework c s d ng l
i M t framework c phát tri n y v i t t c các l p c th c n thi t có trong th vi n c aframework s gi m b t r t nhi u các n l c c a vi c ki m th c a m t ng d ng c th c xây d ng tframework này
Các framework ã c nh ngh a cho m t s l ng l n các mi n ng d ng u i m ã c kh ng
nh c a các framework là t ng c ng kh n ng s d ng l i và gi m th i gian ti p c n các ng d
ng Nh ng ây có các v n và các tr ng i i kèm v i các framework, mà có th xu t hi n tr ckhi chúng c s d ng trong các d án th t
Vi c s d ng l i m c các thành ph n l n là có th t o ra ph n l n h n c a h th ng và v i
nh ng khía c nh c u ch nh cho phù h p, ã không c ch ra b i b n thân các m u h ng i t ng.Cách hi u này ã d n t i vi c phát tri n
Trang 371.3.1 Xác nh ph m vi c a mi n ng d ng
Khi quy t nh phát tri n m t framework cho m t mi n ng d ng c th , s có v n v xác
nh chính xác kích th c c a mi n N u nh mi n ng d ng quá l n, thì các nhà phát tri n skhông th có kinh nghi m c a mi n ng d ng này H n n a, có th là khó kh n ch ng minhtính ti n ích và kh n ng ng d ng c a m t framework cho m t mi n ng d ng l n Th m chí,
u t tài chính cho m t framework l n có th là quá nhi u nên s r t khó có c các tài nguyên
c n thi t Và cu i cùng, d án có th s không có c các l i ích s d ng l i ã c d nh t c trong m
n là r t khó t c các gi i h n rõ ràng cho framework M t v n th hai là, m t cách r t tnhiên, xu h ng c a ng i dùng là t ng kích th c c a framework trong su t quá trình thi t
k , b i vì m t framework ã bao g m m t s các khía c nh khác d ng nh s ti n ích h n m tframework mà thi u các m t này
Ngoài các v n trên, vi c l a ch n kích th c c a l nh v c là m t v n khó M tframework không c quá chung chung n m c các thành ph n c a nó
t quá ng d ng d nh M t cách ti p c n “m t kích c h p cho t t c ” s a ra các r i rokhông c n thi t Framework phù h p nh t cho m t l nh v c c th s
Trang 38ph n ánh m t cách k càng, nh , t p trung trên m t v n c th hay m t nhóm các v n
1.3.2 p tài li u cho framework
ti p nh n vi c s d ng l i mã t t h n Tuy nhiên, m t tr ng i chính v n còn trên con ng c
a vi c s d ng r ng rãi chúng, ó là các framework có khuynh h ng tr nên l n và ch a các
m i t ng quan ph c t p gi a các i t ng Các nhà l p trình s ph i h c r t nhi u khi ti p c n v i
m t framework m i i v i ng i s d ng, m khác nhau ch y u gi a m t framework và m t l pcác th vi n là ki n th c c yêu c u s d ng chúng Nói chung, các framework là khó hi u h
n các l p th vi n, b i vì framework nh là m t b nh d ng v sau, s thu nh n nhi u thông tinthi t k h n
M c ích c a vi c làm tài li u framework g m hai ph n u tiên, thông tin v thi t k
framework và thông tin liên quan khác c n c trao i trong su t quá trình phát tri nframework Các thông tin trao i n gi n, không c u k là r t thu n l i m r ng ki n th c vframework c phát tri n M t nhóm thi t k nh th ng s d ng các k thu t tùy h ng khác nhautrao i thông tin gi a các thành viên trong nhóm V n là, các k thu t này r t không hi u
qu và th ng không m b o r ng thông tin úng ã c a n
Th hai, thông tin v cách s d ng framework nh th nào c n c chuy n t i ng i s d ng
framework Tr ng h p này quan tr ng h n, nh t là khi các kênh thông tin tiêu chu n làkhông hi u l c và t t c thông tin ph i c trao i theo m t cách nào ó có th phân phát cùng
Trang 39thông tin v cách s d ng framework nh th nào, m c ích c a các ví d ng d ng, và thi t k th
c t c a framework
i v i m t framework, h p tr ng hay h p en, u c n ng i dùng hi u c các nguyên t
c d i l p ho c ki n trúc c b n c a framework này M t khác, các quy t c và ràng bu c chi
n và làm tài li u v chúng V n
c t ra là, thông tin này c n c chuy n t i nh th nào theo m t d ng ng n g n và súc tích t i ng i s d ng framework
Ph bi n m t framework phát tri n ng d ng ph i c d a trên m t s nguyên t c quan tr
ng V n là c n có nh ngh a và m b o các nguyên t c này cho framework Frameworknày ph i có th c s d ng l i, có ch c ch n ch p nh n c trong l nh v c này và c làm tài li u tt
V n c a vi c nh ngh a ch c ch n trong l nh v c có ph c t p s b nhân ôi u tiên, b nthân l nh v c này tuy không ph i là ch c ch n, nh ng ph i không c thay i Th hai, v n c a
gi i h n l nh v c và các gi i h n th m chí làm ph c t p quy t nh v ph bi n framework này.Quy t nh framework này có
c làm tài li u t t và hi u qu hay không là khó, do không có ph ng pháp l p tài li uchung nào c ch p nh n mà bao trùm t t c các m t c a framework, th m chí r t khó kh n
nh ngh a tài li u này có là d hi u hay không i v i các ng i dùng d nh
Vi c ph bi n m t framework không y có th s mang l i các h u qu nghiêm tr ngtrong vi c duy trì và s d ng framework này c ng nh khi áp d ng cho các ng d ng c th
1.3.4 Xác nh n các ho t ng tr u t ng
Khi phát tri n m t framework, các k t qu ph i c ki m th Do m t framework có th c s d
ng theo nhi u cách khác nhau và không c bi t tr c, v n có th ch n gi n là không th c hi n
c vi c ki m th t t c các m t xác áng c a framework
Trang 40n n a, vi c ki m th framework cho các l i, s d ng ph ng pháp truy n th ng, nh các ph
n thi hành c a mã trong các l p ã c xác nh úng, s không làm vi c cho toàn bframework Cách t t nh t là các ph n c a framework có th c ki m th theo cách này, nh
ng khi framework d a trên ph n này c th c hi n b i ng i s d ng thì l i không th c ki m thhoàn toàn tr c khi framework c ph bi n Chúng th m chí liên quan t i v n v ki m th các
ph ng pháp tr u
ng Th t c ki m th tiêu chu n không cho phép vi c ki m th các thành ph n tr u t ng,
nh là các l p c s tr u t ng