T LU N
Trên ây là toàn b n i dung c a khóa lu n “Framework và ng d ng trong 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, các c m và 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 trong ch ng 1 – Gi i thi u chung v framework. Trong ch ng này ã nêu lên các nh ngh a khác nhau ho c ng t nhau v framework. Tuy nhiên, ph n l n các nh ngh a này u th ng nh t r ng, m t framework h ng i t ng là m t ki n trúc ph n m m có th s d ng l i, bao g m c thi t k và mã th c hi n.
làm rõ h n khái ni m v framework, trong ch ng này còn a ra các i m gi ng nhau và khác nhau gi a framework và các 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 và các thành ph n ph n m m. Trong các khái ni m này, c n chú ý nhi u n s khác nhau gi a khung làm vi c và 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 chuyên môn hóa ít h n.
tránh nh m l n framework v i các khái ni m trên, trong ch ng này còn nêu ra các 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 và s i chi u c a u khi n. Các khái ni m k trên 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 là kh n ng s d ng l i và kh n ng m r ng. Tuy nhiên, m t m u thi t k s không có các c m nh kh n ng mô un hóa và s i chi u c a u khi n.
N i dung cu i cùng c a ph n T ng quan v framework là 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, tuy nhiên trong ph n này ch nêu nh ng cách phân lo i quan trong nh t là: theo vùng v n , theo c u trúc n i b và theo cách s d ng. V i cách phân lo i theo vùng v n , có ba lo i là: các framework ng d ng, các framework mi n ng d ng và các framework h tr . V i cách phân lo i theo c u trúc n i b s có khá nhi u lo i nh phân t ng, ng và 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 là framewok h p tr ng, framework h p en và framework
Ph n ti p theo c a ch ng 1 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, tuy nhiên, trong khóa lu n ã ch n a ra ph ng pháp phát tri n framework theo cách t ng h p t các ng d ng c th ã có c a m t mi n ng d ng. Lý do ch n ph ng pháp này là ph ng pháp này t ng i d hi u và g n v i ph ng pháp phân tích và thi t k h ng i t ng. Trong p ng pháp này c ng có các c t ng ng nh khi xây d ng m t ng d ng c th 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 . Nh c m l n nh t c a ph ng pháp này là 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 này c ng òi h i nhi u th i gian và nhân l c.
Chính vì nh c m này mà khi xây d ng framework cho mi n ng d ng “Qu n lý l ch làm vi c”, tôi ã ch n m t ph ng pháp n gi n h n là xây d ng framework b ng cách s d ng các m u thi t k tr u t ng hóa các k t qu phân tích và thi t k c a bài toán “L p l ch và theo dõi ti n th c hi n d án”. u i m c a ph ng pháp này là có th phát tri n c framework trong th i gian ng n h n. n n a, theo ph ng pháp này thì c ng không yêu c u i phát tri n ph i n m ch c và hi u sâu v mi n ng d ng, vì các ki n th c này ã c thu th p trong quá trình phân tích và c t yêu c u c a bài toán.
Do v y, các ch ng ti p theo c a khóa lu n t p trung vào vi c mô t bài toán “L p l ch và theo dõi ti n th c hi n d án”, phân tích và thi t k h th ng. D a trên các 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ùng c a khóa lu n là gi i thi u v ch ng trình qu n lý d án. Ch ng trình này m i ch th c hi n các 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 và phân công th c hi n công vi c.
ng nghiên c u ti p theo c a tài này là 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 này ch a phù h p v i t t c các ng d ng c a mi n ng d ng Qu n lý l ch làm vi c. có th hoàn thi n c framework, công vi c ti p theo s là th nghi m vi c tri n khai framework trên 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, …
Ti ng Vi t
1. Nguy n V n V (2004), “Phân tích thi t k h th ng ph n m m theo h ng i ng”, Tr ng i h c Công ngh , i h c Qu c gia Hà N i.
Ti ng Anh
2. Gabriela B. Arevalo (2000), “Architectural description of Object-Oriented Frameworks”.
3. Maurice de Beijer (1997), “VFP-Frame”,
http://www.theproblemsolver.nl/vfp.htm.
4. J. van Gurp and J. Bosch (2001), “Design, implementation and evolution of object oriented frameworks: concept and guidelines”, University of Groningen.
5. 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.
6. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissades (1994), “Design patterns: Elements of Reusable Object-Oriented Software”, Reading, MA: Addsion – Wesley.
7. Ralph E. Johnson, Brian Foote (1991), “Design Reusable Classes”, Journal of Object-Oriented Programming.
8. Niklas Landin, Axel Niklasson (1995), “Development of Object-Oriented Frameworks” , Lund University, Lund, Sweden.
9. Graig Larman (1998), “Applying UML and Patterns: An introduction to Object- Oriented 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 CatalysisSM Approach”, Reading, Addison- Wesley.
C L C
U... 1
CH NG 1... 2
GI I THI U CHUNG V FRAMEWORK ... 2
1.1. ng quan v framework ... 2
1.1.1. Khái ni m v framework ... 2
1.1.1.1. nh ngh a v framework... 2
1.1.1.2. C u trúc c a m t framework ... 3
1.1.1.3. Phân bi t framework v i các khái ni m khác... 5
1.1.2. Các c m c a framework... 7
1.1.3. Phân lo i framework ... 8
1.1.3.1. Phân lo i framework theo vùng v n ... 8
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
1.2. Ph ng pháp phát tri n framework...13
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 và phân tích ...15
1.2.2.1. Thu th p yêu c u...16
1.2.2.2. Phân tích...21
1.2.2.3. Các k t qu và 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
1.2.3.3. Pha thi t k chi ti t...32
1.2.4. Tri n khai framework...32
1.2.5. Xác minh và 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
1.3. Các v n trong vi c phát tri n framework...36
1.3.1. Xác nh ph m vi c a mi n ng d ng...37
1.3.2. L p tài li u cho framework...38
1.3.3. Các v n v ph bi n framework...39
1.3.4. Xác nh n các ho t ng tr u t ng ...39
CH NG 2... 41
MÔ T BÀI TOÁN L P L CH VÀ THEO DÕI TI N TH 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.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 các 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 các ca s d ng ...50
2.2.4.1. Nh p các 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 3... 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 và 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
XÂY D NG FRAMEWORK QU N LÝ L CH LÀM VI C... 87
4.1. L a ch n các 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 các 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 cùng ...105
CH NG 5... 106
GI I THI U CH NG TRÌNH TH NGHI M ... 106
5.1. Môi tr ng h th ng và công c phát tri n...106
5.2. Các ch c n ng chính c a ch ng trình...106
5.3. M t s giao di n c a ch ng trình ...107
DANH C NG BI U, HÌNH
U... 1
CH NG 1... 2
GI I THI U CHUNG V FRAMEWORK ... 2
Hình 1.1. M i quan h gi a các thành ph n khác nhau trong m t framework [4]... 4
Hình 1.2. Quá trình phát tri n framework...13
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 ...16
Hình 1.4. Các ho t ng c a m t quá trình thu th p yêu c u ...17
Hình 1.5. S phân chia các yêu c u ...19
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 ...21
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 ng...26
Hình 1.8. Các ho t ng trong pha thi t k framework...27
Hình 1.9. Các ho t ng trong pha thi t k ki n trúc ...28
Hình 1.10. Nguyên t c nh ngh a các s công tác gi a các l p tr u t ng ...30
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 ..32
CH NG 2... 41
MÔ T BÀI TOÁN L P L CH VÀ THEO DÕI TI N TH C HI N D ÁN... 41
ng 2.1. T ng h p các ch c n ng h th ng ...43
Hình 2.2. Bi u mô hình l nh v c c a h th ng Qu n lý d án ...44
ng 2.3. T n thu t ng ...45
ng 2.4. Tác nhân trong h th ng ...46
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 3... 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 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” ...57
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.18. Bi u 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”
...70
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 án”...81
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