1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Framework và ứng dụng trong việc xây dựng phần mềm luận văn ths công nghệ thông tin 1 01 10

122 25 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 122
Dung lượng 7,55 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ng c nh rõ ràng... thông th ng.

Trang 1

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 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 2

Chng 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 4

Cá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 5

ng 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 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 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 7

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 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 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 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 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á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 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 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 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á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 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 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 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 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 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ê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 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 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 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á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 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 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 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 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 22

M 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 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

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 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á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 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 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 26

Hì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 27

Hì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 28

Vi 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 29

1.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 30

M 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 31

M 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 32

Hì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 33

o 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 34

1.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 35

Khi 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 36

Câ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 37

1.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 38

ph 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 39

thô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 40

n 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

Ngày đăng: 11/11/2020, 22:17

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w