Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 122 trang
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
Nội dung
U Ngày nay, m t nh ng v n quan tr ng c a ngành công ngh ph n m m v n s d ng l i Ngay t th i k u tiên, ng i ta ã c g ng s d ng l i ph n m m b ng cách xây d ng tr c th vi n l p Trong th vi n l p có ch a hàm th t c th ng hay c s d ng ng d ng ph n m m Tuy nhiên, cách s d ng l i t ng i th ng, ch có th s d ng l i o n mã có s n, mà không th s d ng thi t k Ý t ng s d ng l i thi t k có s n ã c th hi n qua vi c s d ng m u thi t k M t m u thi t k m t mơ t có tên v m t c p v n gi i pháp, có th c áp d ng nh ng hồn c nh khác Tuy nhiên, m u thi t k th ng khó s d ng có m c tr u t ng hóa cao Do v y, có th s d ng l i thi t k có s n hi u qu h n, ng i ta ã a khái ni m framework Gi ng v i m u thi t k , framework c ng c s d ng l i d dàng b ng cách thu nh n l i k ch b n phát tri n ph n m m thành công Tuy nhiên, khác v i m u thi t k , framework th ng g n v i m t mi n ng d ng c th bao g m c thi t k mã th c hi n tài c a khóa lu n “Framework ng d ng vi c xây d ng ph n m m” N i dung c a tài g m ph n sau T ng quan v framework Ph n nêu khái ni m, c m phân lo i framework Ph ng pháp phát tri n framework Ph n a m t ph ng pháp xây d ng framework Ph ng pháp g m nhi u giai n là: thu th p yêu c u phân tích, thi t k , tri n khai, xác minh th m nh tính h p l Các v n vi c phát tri n framework Ph n nêu lên v n g p ph i 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 tốn L p l ch theo dõi ti n th c hi n d án Ph n phân tích, c t yêu c u c a ng d ng Qu n lý d án Phân tích thi t k h th ng Ph n k t qu c a vi c phân tích thi t k h th ng L p l ch 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 a framework c a mi n ng d ng Qu n lý l ch làm vi c, d a k t qu c a vi c phân tích thi t k toán L p l ch theo dõi ti n th c hi n d án Chng GI I THI U CHUNG V 1.1 T ng quan v FRAMEWORK framework Trong m t vài th p niên g n ây, vi c s d ng l i ph n m m ã v n m t v n quan tr ng cho 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 th vi n hàm API hay th vi n l p Ti p theo, nhà phát tri n nh n th y không ch c n s d ng l i n mã mà c n ph i s d ng l i 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 framework – khung làm vi c Các m u thi t k m t mơ t có tên v m t c p v n gi i pháp Các mô t chi ti t v m u thi t k s c trình b y m t ch khác, cịn n i dung c a ph n s ch trình b y v framework ph m vi ng d ng c a 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 m t ph n c a thi t k th c hi n, cho m t ng d ng m t l nh v c u có c m giác m t framework khơng m t h th ng hồn ch nh H th ng có th c u ch nh l i t o ng d ng hồn ch nh Các framework nói chung c s d ng c phát tri n c n phát tri n m t vài ng d ng t ng t M t framework th c hi n ph n chung gi a ng d ng Do v y, m t framework gi m công s c c n thi t xây d ng ng d ng Ph n l n nh ngh a u nh t trí r ng, m t framework h ng i t ng m t ki n trúc ph n m m có th s d ng l i, bao g m c thi t k mã th c hi n Tuy nhiên, l i khơng có nh ngh a c th ng nh t chung v framework thành ph n h p thành c a Sau ây m t s nh ngh a khác ho c t ng t v framework c nêu [10]: “M t framework ràng bu c l a ch n xác v s phân chia tr ng thái lu ng u n, ng i dùng hoàn thi n ho c m r ng framework t o m t ng d ng th c t ” “M t framework m t t p l p mà bao g m m t thi t k tr u t ng cho gi i pháp c a m t ho c v n liên quan” “M t framework m t t p i t ng mà c ng tác v i t o m t t p áp ng cho m t ng d ng ho c m t vùng h th ng con” “M t framework m t t p ký hi u c a l p c ng tác mà t c c m u ph m vi nh c ch ch y u th c hi n yêu c u chung thi t k m t ph m vi ng d ng c th ” “M t t p l p c ng tác v i mà t o 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 h ng d n có tính ki n trúc b ng cách phân chia thi t k thành l p tr u t ng nh ngh a áp ng s c ng tác c a chúng M t nhà phát tri n tùy bi n framework thành m t ng d ng c th b ng cách t o l p t o phiên b n c a l p framework” Nh v y, m t framework bao g m m t t p l p mà 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 ng d ng c th c a m t l nh v c M t h v n liên quan, cho phép t ng h p m t framework H n n a, framework c bi u di n thành m t ngơn ng l p trình, nh v y cung c p cho vi c s d ng l i c mã th c hi n thi t k 1.1.1.2 u trúc c a m t framework M t framework h ng it ng bao g m thành ph n sau: ® Các tài li u thi t k ® Các giao di n ® Các l p tr u t ng ® Các thành ph n ® Các l p M i quan h gi a thành ph n khác m t framework c mơ t nh hình v sau: Các tài li u thi t k ph n ánh Các giao di n tri n khai Các l p tr u tri n khai th a k Các thành ph n m t ph n c a Các l p Hình 1.1 M i quan h gi a thành ph n khác m t framework [4] Các thành ph n c a m t framework c mơ t nh sau: ® Các tài li u thi t k : thi t k c a m t framework có th bao g m l c l p, vi t b ng v n b n ho c chí m t ý t ng u c a nhà phát tri n ® Các giao di n: giao di n miêu t áp ng bên c a l p Các giao di n có th c s d ng mơ hình vai trị khác h th ng, ví d nh vai trị m t m u thi t k M t vai trò i di n cho m t nhóm nh c a ph ng pháp giao di n mà liên quan t i ph ng pháp khác ® Các l p tr u t ng: m t l p tr u t ng m t s th c hi n ch a y c a m t ho c nhi u giao di n Nó có th c s d ng nh ngh a cách i x mà s chung cho m t nhóm thành ph n th c hi n m t nhóm giao di n ® Các thành ph n: Gi ng nh l p, thành ph n có th c tích h p v i l p khác Trong hình v , có m t m i tên “là m t ph n c a” gi a l p thành ph n N u b n thân l p có m t API c nh ngh a y t p k t qu c a l p s c bi u hi n nh m t t h p thành ph n M t thành ph n c nh ngh a nh sau: “M t thành ph n ph n m m m t n v k t c u v i giao di n c ghi rõ theo h p ng ph thu c 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 c t h p b ng hãng th ba” ® Các l p: M c th p nh t c a m t framework l p Các l p ch khác v i thành ph n th c t , API c cơng khai c a khơng c a giao di n c a m t framework M t cách n hình l p c s d ng b i thành ph n i di n cho ch c n ng, ví d m t ng i dùng framework th ng khơng nhìn th y l p tr làm vi c v i thành ph n Cách th c làm vi c c a m t framework nh sau: M t framework làm vi c b ng cách cung c p m t c t rõ ràng c a t ng tác c mong i gi a thành ph n Ví d , m t thành ph n có th trơng ch nh ng t thành ph n khác nên c cung c p t i chúng? M t framework nh ngh a d ch v l a ch n, cung c p m t gi i thích cho vi c nh ngh a thành ph n m t thành ph n cung c p Nh th , m t thành ph n s có kh n ng c m r ng r t l n thành ph n m i có th t ng tác m nh m v i nh ng ã có Chúng c ng tác v i chi ti t, khía c nh c th c a v n c cân nh c b i framework Các thành ph n ng d ng có th v n cịn ch ng minh tính t ng thích v i 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 thành ph n c a framework S thi hành thành ph n có th framework xác nh m t d ch v cung c p d ch v cho thành ph n khác 1.1.1.3 Phân bi t framework v i 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 tr u t ng h n m t framework, b i m t framework c bao g m c mã, ó ch có ví d c a 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 y u t khác t c s k t h p t t nh t k t qu c a m t thi t k u không m t tr ng h p cho framework Th hai, m u thi t k nh ng ki n trúc nh h n so v i framework Do v y, m t framework có th ch a m t s m u thi t k , nh ng i u ng c l i không th Do v y, m u thi t k nh h ng l n t i ki n trúc c a ng d ng Cu i cùng, framework c chun mơn hóa h n so v i m u thi t k Các framework luôn liên quan n m t mi n ng d ng c th , ó m u thi t k chung có th c ng d ng b t k mi n ng d ng 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 t o m t thi t k Trong ó, m t framework h ng i ng m t thi t k Các ngôn ng m u b sung cho m t framework, chúng có th h ng d n k s ph n m m s d ng framework nh th nào, mô t t i l i c thi t k nh v y M t ng d ng h ng i t ng khác v i m t framework ch , m t ng d ng mô t m t ch ng trình th c hi n ph c t p mà th a mãn m t yêu c u c th Framework t c tính n ng c a m t ng d ng nh ng khơng th thi hành b i khơng bao g m t ng tác tr ng h p ng d ng c th Các framework khác v i th vi n l p ch : chúng nh m t i mi n ng d ng c th Trong ó, th vi n l p cung c p cho ng i s d ng s th c hi n tr c c a thu t toán Các th vi n l p th ng, ng i s d ng g i ph ng pháp th vi n l p th c hi n m t s ho t ng Trong ó framework nh ngh a khung cho m t ng d ng th c t i u n lu ng u n 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 th vi n l p ã có s n th c hi n thu t toán chung c u trúc d li u Các thành ph n ph n m m ban u ã c d nh thành ph n ch c ng riêng l mà có th c u t t nhà cung c p tích h p vào ng d ng Các framework d ng nh nh ng thành ph n mà có th c u t t nh cung c p nhi u h n m t framework có th c s d ng m t ng d ng Tuy nhiên, m t m khác d nh n th y gi a chúng framework cung c p m t b r ng h n d ch v so v i thành ph n ph n m m Chúng có kh n ng tùy bi n nhi u h n, có giao di n ph c t p h n i u quan tr ng h n chúng th c s nh ngh a cho m t h ng d ng ho c m t di n r ng c a ng d ng Do v y, framework khó h c h n i v i nhà phát tri n, nh ng m t ã hi u c h t framework s có cs linh ng cao h n v i m t framework c thi t k t t có th gi m c n l c c n b xây d ng m t ng d ng ã c tùy bi n rõ r t h n Trong framework thành ph n k thu t khác nhau, chúng nên c xem c s d ng nh k thu t c ng tác v i V i framework có th s d ng thành ph n ng d ng c phát tri n s d ng framework th m chí có th ti n d ng h n 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 thành ph n ActiveX giao di n c a gi ng nh vi c trao i v i thành ph n ActiveX c óng gói MFC framework M t ví d khác cho s ph thu c l n gi a framework thành ph n vi c s d ng framework t o thành ph n m i, ví d , framework Active Template Library (ATL) c a Microsoft c s d ng r ng rãi vi c t o thành ph n ActiveX 1.1.2 Các c M t framework h m c a framework ng it ng có b n c m sau [5]: ® Kh n ng mơ un hóa ® Kh n ng s d ng l i ® Kh n ng m r ng ® Si chi u c au n V c m th nh t, framework t ng c ng kh n ng mơ un hóa b ng cách óng gói chi ti t th c hi n không ch c ch n ng sau giao di n ch c ch n Kh n ng 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 tác ng c a nh ng thay i v ki n trúc s th c hi n S c c b hóa gi m n l c c yêu c u hi u trì ph n m m hi n có M t khác, giao di n ch c ch n c cung c p b i framework t ng ng kh n ng s d ng l i b ng cách nh ngh a thành ph n chung mà có th c áp d ng t o 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 u tiên n l c c a nhà phát tri n kinh nghi m tránh vi c t o làm h p l l i gi i pháp chung cho yêu c u c a ng d ng l p l i thách th c thi t k ph n m m Vi c s d ng l i thành ph n thi t k có th m t s c i ti n k 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 tính s n sàng c a ph n m m V kh n ng m r ng, m t framework t ng c ng kh n ng m r ng b ng cách cung c p m nóng t ng minh mà cho phép ng d ng m r ng giao di n ch c ch n cách ng x c a vùng ng d ng v i s thay i c yêu c u b i tr ng h p c a ng d ng m t ng c nh c th Kh n ng m r ng c a framework c n thi t m b o s u ch nh có tính th i gian c a d ch 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 s i chi u c a u n, th ng c g i “Nguyên t c Hollywood”- ng g i cho chúng tôi, s g i cho b n Ki n trúc cho phép ng d ng h p v i quy t c tiêu chu n b ng cách u ch nh t ng b c x lý, b ng i t ng qu n lý s ki n mà c vi n d n thông qua c ch g i kích h at l i c a framework Khi s ki n x y ra, framework g i l i kích ho t b ng cách vi n d n ph ng pháp móc n i i t ng qu n lý s ki n ã c ng ký tr c, mà th c hi n vi c x lý ng d ng c th s ki n i chi u u n cho phép framework nh ngh a m t t p ph ng pháp ng d ng c th áp ng v i s ki n bên 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, ó nh ng chi u quan tr ng nh t vùng v n mà framework tr t i, c u trúc n i b c a framework framework c d nh s d ng nh th V cách phân lo i th nh t, ng i ta chia framework thành framework ng d ng, framework mi n ng d ng framework h tr Các lo i framework s c trình b y chi ti t ph n 1.1.3.1 Ph n 1.1.3.2 s trình b y framework c u trúc lo i framework c chia theo 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, s có framework h p en, framework h p tr ng framaework h p xám Chi ti t v lo i framework s c mô t ph n 1.1.3.3 1.1.3.1 Phân lo i framework theo vùng v n Tr c i vào chi ti t c a 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 monolithic framework fine-grained framework Các tài li u hi n có [10] v framework miêu t kinh nghi m thu c t vi c s d ng monolithic framework, ví d nh 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 tìm framework fine-grained nh c ng tác l n M t ng d ng có th c “t ng h p” t m t s framework fine-grained S phát tri n c a fine-grained c ng t ng t nh vi c phát tri n monolithic framework i m khác ch y u framework fine-grained ph i c thi t k cho s tích h p b i ph m vi bao hàm c a framework khơng ph i m t l nh v c hoàn ch nh Vi c phân lo i theo vùng v n chia framework thành ba lo i framework ng d ng, framework mi n ng d ng framework h tr Các framework ng d ng mi n ng d ng th ng monolithic framework, framework h tr nh ng tr ng h p n hình c a fine-grained framework M t framework ng d ng m t t p c a thành ph n v i m t thi t k ng d ng có th c s d ng l i u có ngh a r ng, ng i dùng không nh ng nh n c m t t p mã ch c n ng mà b t u v i c m t thi t k v cách mà chúng làm vi c nh th i u 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 th vi n hàm, v c b n th vi n hàm không ph thu c vào 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 hàm có th vi n u có ngh a là, s ph i ch u trách nhi m cho cách mà thành ph n khác t ng tác v i Còn 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 có ngh a là, framework ng d ng ch u trách nhi m cho s ng tác gi a thành ph n Trong u ki n d ng nh khơng m t l i ích l n nh ng th c s ây l i m t k t qu r t có ý ngh a thu c t cách ti p c n Framework ng d ng c s d ng l i nhi u ng d ng b i nhi u nhà phát tri n khác u có ngh a là, framework ng d ng m t khái ni m c xác th c vi c s d ng s thu c m t ng d ng t t h n Các ví d c a framework ng d ng framework cho giao di n ng i dùng [3] Lo i th hai phân lo i framework theo vùng v n c a m t mi n ng d ng Các framework t c ki n th c s tinh thông m t vùng v n c th Các framework cho u n s n xu t a ph ng ti n ví d c a framework mi n ng d ng Các framework mi n ng d ng có th ti n d ng th c hi n ch ng trình cho m t mi n ng d ng xác nh Nó th ng xuyên c u ch nh cho v a v i công ty ho c c phát tri n t u Framework gi m s l ng công vi c mà c n th c hi n ng d ng a m t ph n m m có ch t l ng cao h n cho mi n ng d ng M t ví d c th c a framework thu c lo i nh Java Media Framework (JMF) Framework nhúng ch c n ng c n thi t cho vi c phát tri n ng d ng v x lý file audio video (d n kênh, tách kênh, mã hóa, b l c hi u ng), u n v trình di n ph ng ti n t c khóa cho s ng b c a ph ng ti n khác nh u vào ti ng u vào hình Lo i cu i theo cách phân lo i framework h tr Các framework h tr framework mà ph c v cho d ch v m c th p c a h th ng nh trình i u n cho thi t b b u n truy nh p file Nhà phát tri n ng d ng s d ng framework h tr tr c ti p ho c s d ng s i u ch nh c t o b i trình cung c p c a h th ng Các framework h tr có th c tùy bi n, ví d phát tri n m t h th ng m i ho c trình i u n thi t b m i 10 1.1.3.2 Phân lo i framework theo c u trúc n i b N u nh c u trúc n i t i c a framework c miêu t 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 khái ni m v ki n trúc ph n m m Nh ng ki n trúc c g i “các framework ki n trúc”, chúng c thi t k theo cách t c c u trúc c a m t ki n trúc ph n m m h ng i t ng Nguyên t c t ng th cho c u trúc n i t i c a m t framework c mô t b i framework có tính ki n trúc c a Các framework có tính ki n trúc ã c mơ t là: ® Layered (Phân t ng), giúp cho c u trúc ng d ng có th c phân rã thành nhóm c a cơng vi c v i m c tr u t ng khác nh v t ng khác ® Pipes and Filters ( ng b l c), có th c dùng c u trúc ng d ng mà có th c chia thành m t vài cơng vi c hồn tồn c l p, c th c hi n theo trình t n i ti p ho c song song ã c xác nh m t cách rõ ràng ® Model-View-Controller (MVC), nh ngh a m t ki n trúc cho ng d ng có tính t ng tác, chia tách gi a giao di n c a ng d ng v i ch c n ng ch y u c a ® Presentation-Abstraction-Controller (Trình di n-Tr u t ng- i u n), ki n trúc thích h p c u trúc h th ng ph n m m mà có tính t ng tác cao v i ng i s d ng, cho phép nh ng u n trình b y c a mơ hình tr u t ng c a h th ng có th c t o bên ngồi ch c n ng c l p v i m i khác ® Reflective (Ph n ánh), có kh n ng áp d ng cho ng d ng mà c n ph i cân nh c v m t s thích nghi t ng lai s thay i môi tr ng, công ngh yêu c u, mà khơng c n có ph i thay i v ki n trúc cách th c hi n c a ® Microkernel, phù h p cho h th ng ph n m m c n cung c p khung nhìn khác d a ch c n ng c a chúng ph i thích nghi v i yêu c u c a h th ng Ví d c a microkernel h u hành ® Blackboard (B ng en), giúp c u trúc ng d ng ph c t p mà liên quan t i m t vài h th ng chuyên bi t cho l nh v c khác Các h th ng ph i h p tác xây d ng gi i pháp cho vi c gi i quy t v n 108 ® C p nh t d án Hình 5.2 Giao di n c p nh t d án 109 ® C p nh t thành viên c a d án Hình 5.3 Giao di n c p nh t thành viên d án 110 ® Tìm ki m cơng vi c Hình 5.4 Giao di n tìm ki m cơng vi c 111 ® C p nh t cơng vi c Hình 5.5 Giao di n c p nh t công vi c 112 ® Phân công th c hi n công vi c Hình 5.6 Giao di n phân cơng th c hi n công vi c 113 T LU N Trên ây tồn b n i dung c a khóa lu n “Framework ng d ng vi c xây d ng ph n m m” N i dung c a khóa lu n t p trung vào m y v n sau: ® nh ngh a, c u trúc, cm phân lo i framework ® Ph ng pháp phát tri n framework ® Xây d ng framework cho mi n ng d ng “Qu n lý l ch làm vi c” Hai v n u tiên ã c trình b y chi ti t ch ng – Gi i thi u chung v framework Trong ch ng ã nêu lên nh ngh a khác ho c ng t v framework Tuy nhiên, ph n l n nh ngh a u th ng nh t r ng, m t framework h ng i t ng m t ki n trúc ph n m m có th s d ng l i, bao g m c thi t k mã th c hi n làm rõ h n khái ni m v framework, ch ng a i m gi ng khác gi a framework khái ni m khác là: m u thi t k , ngôn ng m u, ng d ng h ng i t ng, th vi n l p thành ph n ph n m m Trong khái ni m này, c n ý nhi u n s khác gi a khung làm vi c m u thi t k M t m u thi t k khác v i m t khung làm vi c ba m: tr u ng h n, ki n trúc nh h n vàc chun mơn hóa h n tránh nh m l n framework v i khái ni m trên, ch ng nêu c tr ng c a framework là: kh n ng mô un hóa, kh n ng s d ng l i, kh n ng m r ng s i chi u c a u n Các khái ni m k s ch gi ng v i framework m t vài c m, ví d nh m u thi t k c ng có c m kh n ng s d ng l i kh n ng m r ng Tuy nhiên, m t m u thi t k s khơng có c m nh kh n ng mơ un hóa s i chi u c a u n N i dung cu i c a ph n T ng quan v framework 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, nhiên ph n ch nêu nh ng cách phân lo i quan nh t là: theo vùng v n , theo c u trúc n i b theo cách s d ng V i cách phân lo i theo vùng v n , có ba lo i là: framework ng d ng, framework mi n ng d ng framework h tr V i cách phân lo i theo c u trúc n i b s có nhi u lo i nh phân t ng, ng l c, MVC, môi gi i, … V i cách phân lo i theo cách s d ng, có ba lo i framewok h p tr ng, framework h p en framework h p xám 114 Ph n ti p theo c a ch ng c p n v n ph ng pháp phát tri n framework Hi n t i, c ng có m t s ph ng pháp phát tri n framework khác nhau, nhiên, khóa lu n ã ch n a ph ng pháp phát tri n framework theo cách t ng h p t ng d ng c th ã có c a m t mi n ng d ng Lý ch n ph ng pháp ph ng pháp t ng i d hi u g n v i ph ng pháp phân tích thi t k h ng i t ng Trong p ng pháp c ng có c t ng ng nh xây d ng m t ng d ng c th là: thu th p yêu c u phân tích; thi t k ; tri n khai; xác minh th m nh tính h p l Nh c m l n nh t c a ph ng pháp yêu c u i phát tri n ph i r t tinh thông v mi n ng d ng mà d nh phát tri n framework H n n a, vi c phát tri n framework theo ph ng pháp c ng òi h i nhi u th i gian nhân l c Chính nh c m mà xây d ng framework cho mi n ng d ng “Qu n lý l ch làm vi c”, ã ch n m t ph ng pháp n gi n h n xây d ng framework b ng cách s d ng m u thi t k tr u t ng hóa k t qu phân tích thi t k c a tốn “L p l ch theo dõi ti n th c hi n d án” u i m c a ph ng pháp có th phát tri n c framework th i gian ng n h n n n a, theo ph ng pháp c ng không yêu c u i phát tri n ph i n m ch c hi u sâu v mi n ng d ng, ki n th c ã c thu th p trình phân tích c t yêu c u c a toán Do v y, ch ng ti p theo c a khóa lu n t p trung vào vi c mơ t tốn “L p l ch theo dõi ti n th c hi n d án”, phân tích thi t k h th ng D a k t qu này, ch ng ti p theo ã trình b y cách th c xây d ng framework Qu n lý l ch làm vi c Ch ng cu i c a khóa lu n gi i thi u v ch ng trình qu n lý d án Ch ng trình m i ch th c hi n ch c n ng ch y u c a h th ng qu n lý l ch làm vi c nh c p nh t d án, c p nh t thành viên d án, c p nh t công vi c phân công th c hi n công vi c ng nghiên c u ti p theo c a tài ti p t c hoàn thi n framework Do framework m i ch c xây d ng t m t ng d ng c th nên r t có th framework ch a phù h p v i t t c ng d ng c a mi n ng d ng Qu n lý l ch làm vi c có th hồn thi n c framework, cơng vi c ti p theo s th nghi m vi c tri n khai framework m t s ví d c a mi n ng d ng, nh l p th i khóa bi u, qu n lý công vi c c a m t d án xây d ng, … TÀI LI U THAM KH O Ti ng Vi t Nguy n V n V (2004), “Phân tích thi t k h th ng ph n m m theo h ng ng”, Tr ngi h c Công ngh ,i h c Qu c gia Hà N i i Ti ng Anh Gabriela B Arevalo (2000), “Architectural description of Object-Oriented Frameworks” Maurice de Beijer (1997), “VFP-Frame”, http://www.theproblemsolver.nl/vfp.htm J van Gurp and J Bosch (2001), “Design, implementation and evolution of object oriented frameworks: concept and guidelines”, University of Groningen Fayad M E., D C Schmidt, R E Johnson (1999), “Building Application Frameworks: Object-Oriented Foundations of Framework Design”, NY: John Wiley and Sons, New York Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissades (1994), “Design patterns: Elements of Reusable Object-Oriented Software”, Reading, MA: Addsion – Wesley Ralph E Johnson, Brian Foote (1991), “Design Reusable Classes”, Journal of Object-Oriented Programming Niklas Landin, Axel Niklasson (1995), “Development of Object-Oriented Frameworks” , Lund University, Lund, Sweden Graig Larman (1998), “Applying UML and Patterns: An introduction to ObjectOriented Analysis and Design” 10 Michael Mattsson (1996), “Object-Oriented frameworks, A survey of methodological issues”, Lund, Sweden 11 Desmond Francis D’Souza (1999), Alan Cameron Wills, “Objects, Components, and Frameworks with UML: The Catalysis SM Approach”, Reading, AddisonWesley CL C U CH NG GI I THI U CHUNG V FRAMEWORK 1.1 ng quan v framework 1.1.1 Khái ni m v framework 1.1.1.1.nh ngh a v framework 1.1.1.2 C u trúc c a m t framework 1.1.1.3 Phân bi t framework v i khái ni m khác 1.1.2 Các cm c a framework 1.1.3 Phân lo i framework 1.1.3.1 Phân lo i framework theo vùng v n 1.1.3.2 Phân lo i framework theo c u trúc n i b 10 1.1.3.3 Phân lo i framework theo cách s d ng 11 Ph ng pháp phát tri n framework 13 1.2 1.2.1 Chu n b cho vi c phát tri n framework 14 1.2.2 Thu th p yêu c u phân tích 15 Thu th p yêu c u 16 1.2.2.1 1.2.2.2 Phân tích 21 1.2.2.3 Các k t qu mơ hình b sung 24 1.2.3 Thi t k framework 25 1.2.3.1 Quá trình thi t k framework 25 1.2.3.2 Pha thi t k ki n trúc 28 Pha thi t k chi ti t 32 1.2.3.3 1.2.4 Tri n khai framework 32 1.2.5 Xác minh th m nh tính h p l 34 1.2.5.1 Các khái ni m v ki m th ph n m m 34 1.2.5.2 Các ki m th dành riêng cho framework 35 Các v n vi c phát tri n framework 36 1.3 1.3.1 Xác nh ph m vi c a mi n ng d ng 1.3.2 L p tài li u cho framework 1.3.3 Các v nv ph bi n framework 1.3.4 Xác nh n ho t ng tr u t ng CH NG 37 38 39 39 41 MƠ T BÀI TỐN L P L CH VÀ THEO DÕI TI NTH C HI N D ÁN 41 2.1 Mô t ho t ng nghi p v 41 2.1.1 Yêu c u chung v qu n lý d án 41 2.2.2.T ng h p ch c n ng h th ng 42 2.1.3 Bi u khái ni m l nh v c nghi p v 44 2.1.4 T n thu t ng 44 2.2 Phát tri n mơ hình ca s d ng 45 2.2.1 Xác nh tác nhân 45 2.2.2 Xác nh ca s d ng 46 2.2.3 Mơ hình ca s d ng 47 2.2.3.1 Mơ hình ca s d ng m c g p 47 2.2.3.2 Mô hình ca s d ng C p nh t d án 47 2.2.3.3 Mơ hình ca s d ng Qu n lý l ch làm vi c 49 2.2.3.4 Mơ hình ca s d ng Theo dõi th c hi n công vi c 50 2.2.4 Mô t chi ti t ca s d ng 50 2.2.4.1 Nh p d án m i 50 2.2.4.2 C p nh t thông tin chung c a d án 51 2.2.4.3 C p nh t thành viên c a d án 52 2.2.4.4 C p nh t công vi c 53 2.2.4.5 Phân công th c hi n công vi c 53 2.2.4.6 C p nh t ti n th c hi n công vi c 54 2.2.4.7 C p nh t tr ng thái c a công vi c 55 CH NG 56 PHÂN TÍCH VÀ THI T K H TH NG 56 3.1 Phân tích h th ng 56 3.1.1 Phân tích t ng ca s d ng 56 3.1.1.1 Ca s d ng “C p nh t thông tin chung c a d án” 56 3.1.1.2 Ca s d ng “C p nh t thành viên c a d án” 61 3.1.1.3 Ca s d ng “C p nh t công vi c” 64 3.1.1.4 Ca s d ng “Phân công th c hi n công vi c” 69 3.1.1.5 Ca s d ng “Theo dõi th c hi n công vi c” 72 3.1.2 T n d li u 74 3.2 Công c phát tri n môi tr ng ng d ng 77 3.3 Thi t k h th ng 78 3.3.1 Thi t k cho t ng ca s d ng 78 3.3.1.1 Ca s d ng “Tìm ki m d án” 78 3.3.1.2 Ca s d ng “C p nh t thông tin chung c a d án” 79 3.3.1.3 Ca s d ng “C p nh t thành viên c a d án” 80 3.3.1.4 Ca s d ng “Tìm ki m cơng vi c” 82 3.3.1.5 Ca s d ng “C p nh t công vi c” 82 3.3.1.6 Ca s d ng “Phân công th c hi n công vi c” 84 3.3.1.7 Ca s d ng “Theo dõi th c hi n công vi c” 85 3.3.2 Bi u l p 86 CH NG 87 XÂY D NG FRAMEWORK QU N LÝ L CH LÀM VI C 87 4.1 L a ch n m u 87 4.1.1 M u Chi n l c 88 4.1.2 M u y quy n 89 4.2 Áp d ng m u vào s l p 91 4.2.1 Áp d ng m u Strategy cho l p Project 91 4.2.2 Áp d ng m u Proxy cho l p Project 100 4.2.3 Áp d ng m u Proxy cho l p Task 102 4.2.4 Bi u l p cu i 105 CH NG 106 GI I THI U CH NG TRÌNH TH NGHI M 106 5.1 Môi tr ng h th ng công c phát tri n 106 5.2 Các ch c n ng c a ch 5.3 M t s giao di n c a ch T LU ng trình 106 ng trình 107 N 113 DANH C NG BI U, HÌNH U CH NG GI I THI U CHUNG V FRAMEWORK Hình 1.1 M i quan h gi a thành ph n khác m t framework [4] .4 Hình 1.2 Quá trình phát tri n framework 13 Hình 1.3 Các trình s n ph m c a pha Thu th p yêu c u Phân tích .16 Hình 1.4 Các ho t ng c a m t trình thu th p yêu c u 17 Hình 1.5 S phân chia yêu c u 19 Hình 1.6 M i quan h gi a mơ hình Ca s d ng mơ hình khác c a trình phát tri n h th ng 21 Hình 1.7 M t framework nh ng ph n chung c a ng d ng m t mi n ng ng 26 Hình 1.8 Các ho t ng pha thi t k framework 27 Hình 1.9 Các ho t ng pha thi t k ki n trúc 28 Hình 1.10 Nguyên t c nh ngh a s công tác gi a l p tr u t Hình 1.11 Các thu c tính chung CH c nh n d ng b ng cách ng 30 i tên s d ng tham s 32 NG 41 MƠ T BÀI TỐN L P L CH VÀ THEO DÕI TI N ng 2.1 T ng h p ch c n ng h Hình 2.2 Bi u ng 2.3 T TH C HI N D ÁN .41 th ng 43 mơ hình l nh v c c a h th ng Qu n lý d án 44 n thu t ng 45 ng 2.4 Tác nhân h th ng 46 Hình 2.5 Ca s d ng m c t ng th c a h th ng Qu n lý d án 47 Hình 2.6 Ca s d ng “C p nh t d án” 47 Hình 2.7 Ca s d ng “C p nh t thông tin chung c a d án” 48 Hình 2.8 Ca s d ng “C p nh t thành viên c a d án” 48 Hình 2.9 Ca s d ng “Qu n lý l ch làm vi c” 49 Hình 2.10 Ca s d ng “C p nh t công vi c” 49 Hình 2.11 Ca s d ng “Phân công th c hi n công vi c” 50 Hình 2.12 Ca s d ng “Theo dõi th c hi n công vi c” 50 CH NG 56 PHÂN TÍCH VÀ THI T K H TH NG 56 Hình 3.1 Bi u tu n t h th ng “C p nh t thông tin chung c a d án” 56 Hình 3.2 Bi u 57 l p phân tích th c thi ca s d ng “C p nh t thông tin chung c a d án” Hình 3.3 Bi u tu n t phân tích th c thi ca s d ng “Tìm ki m d án” .57 Hình 3.4 Bi u tu n t phân tích th c thi ca s d ng “C p nh t thông tin chung c a d án” 58 Hình 3.5 Giao di n c p nh t thông tin chung c a d án 59 Hình 3.6 Bi u tu n t h th ng “C p nh t thành viên c a d án” 61 Hình 3.7 Bi u l p phân tích th c thi ca s d ng “C p nh t thành viên c a d án” .62 Hình 3.8 Bi u tu n t phân tích th c thi ca s d ng “C p nh t thành viên c a d án”.62 Hình 3.9 Giao di n c p nh t thành viên c a d án 63 Hình 3.10 Bi u tu n t h th ng “C p nh t công vi c” 64 Hình 3.11 Bi u l p phân tích th c thi ca s d ng “C p nh t công vi c” 65 Hình 3.12 Bi u tu n t phân tích th c thi ca s d ng “Tìm ki m cơng vi c” 65 Hình 3.13 Bi u tu n t phân tích th c thi ca s d ng “C p nh t công vi c” 66 Hình 3.14 Giao di n tìm ki m công vi c 67 Hình 3.15 Giao di n c p nh t công vi c 68 Hình 3.16 Bi u tu n t h th ng “Phân công th c hi n công vi c” 69 Hình 3.17 Bi u l p phân tích th c thi ca s d ng “Phân công th c hi n công vi c” 70 Hình 3.18 Bi u 70 tu n t phân tích th c thi ca s d ng “Phân công th c hi n cơng vi c” Hình 3.19 Giao di n phân công th c hi n công vi c 71 Hình 3.20 Bi u tu n t h th ng “Theo dõi th c hi n công vi c” 72 Hình 3.21 Bi u l p phân tích th c thi ca s d ng “Theo dõi th c hi n cơng vi c” .73 Hình 3.22 Bi u tu n t phân tích th c thi ca s d ng “Theo dõi th c hi n công vi c” 73 ng 3.23 T n d li u 77 Hình 3.24 Bi u tu n t th c thi ca s d ng “Tìm ki m d án” 78 Hình 3.25 Bi u tu n t th c thi ca s d ng “C p nh t thông tin chung c a d án” 80 Hình 3.26 Bi u tu n t th c thi ca s d ng “C p nh t thành viên c a d Hình 3.27 Bi u tu n t th c thi ca s d ng “Tìm ki m cơng vi c” 82 Hình 3.28 Bi u tu n t th c thi ca s d ng “C p nh t công vi c” 83 Hình 3.29 Bi u tu n t th c thi ca s d ng “Phân công th c hi n cơng vi c” .84 Hình 3.30 Bi u tu n t th c thi ca s d ng “Theo dõi th c hi n công vi c” 85 Hình 3.31 Bi u l p thi t k c a h th ng Qu n lý d CH án” .81 án 86 NG 87 XÂY D NG FRAMEWORK QU N LÝ L CH LÀM VI C 87 Hình 4.1 Bi u l p c a m u Chi n l Hình 4.2 Bi u l pcamu c 89 y quy n 90 Hình 4.3 Áp d ng m u Strategy cho l p Project 91 Hình 4.4 Áp d ng m u Proxy cho l p Project 100 Hình 4.5 Áp d ng m u Proxy cho l p Task 102 Hình 4.6 Bi u CH l p thi t k sau áp d ng m u 105 NG 106 GI I THI U CH NG TRÌNH TH NGHI M 106 Hình 5.1 Giao di n tìm ki m d án 107 Hình 5.2 Giao di n c p nh t d án 108 Hình 5.3 Giao di n c p nh t thành viên d án 109 Hình 5.4 Giao di n tìm ki m cơng vi c 110 Hình 5.5 Giao di n c p nh t cơng vi c 111 Hình 5.6 Giao di n phân công th c hi n công vi c 112 T LU N 113 ... ng R1 C p nh t d án R1 .1 C p nh t thông tin chung c a d án R1 .1. 1 T o m i m t d án R1 .1. 2 S a m t d án R1 .1. 3 Xóa m t d án R1.2 C p nh t thành viên c a d án R1.2 .1 Thêm nhân viên vào d án R1.2.2... R2 .1 C p nh t công vi c 43 Tham chi u Ch c n ng R2 .1. 1 T o m i m t công vi c R2 .1. 2 S a m t công vi c R2 .1. 3 Xóa m t cơng vi c R2 .1. 4 T m d ng công vi c R2 .1. 5 H y b m t công vi c R2.2 Phân công. .. y v framework ph m vi ng d ng c a 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 m t ph n