Phân tích và thiết kế hệ thống thông tin theo UML

pdf 64 trang ngocly 2400
Bạn đang xem 20 trang mẫu của tài liệu "Phân tích và thiết kế hệ thống thông tin theo UML", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfphan_tich_va_thiet_ke_he_thong_thong_tin_theo_uml.pdf

Nội dung text: Phân tích và thiết kế hệ thống thông tin theo UML

  1. TÀI LIU MÔN HC PHÂN TÍCH VÀ THIT K HTTT THEO UML (ây là tài liu su tm, tng hp) GING VIÊN PH TRÁCH: NGUY N  C C NG GING VIÊN: TÔN TH T HOÀ AN – D NG KIU HOA (Su tm tng hp) 1
  2. MC LC CH NG 1: TNG QUAN V PHÂN TÍCH THIT K H THNG 6 1.1. Dn nhp 6 1.1.1. Tính trc quan 6 1.1.2. Mô hình tru tng 6 1.1.3. Mô hình hóa trc quan 6 1.2. Mô t chu trình phát trin phn mm 7 1.2.1. Software Development – mt bài toán phc t p 7 1.2.2. Chu Trình Phát Tri n Phn M m (Software Development Life Cycle) 8 1.2.3. Các giai o n c a Chu Trình Phát Tri n Phn M m 9 1.3. Phng pháp hng chc nng và phng pháp hng i tng 13 1.4. u im ca mô hình hng i tng 13 1.4.1. Tính tái s dng (Reusable) 13 1.4.2. Các giai o n c a chu trình phát tri n phn m m vi mô hình hng i tng 14 1.5. Phn câu hi 16 CH NG 2: NGÔN NG MÔ HÌNH HÓA THNG NH T LÀ GÌ? 17 2.1. Gii thiu UML 17 2.1.1. Mô hình hóa h thng phn m m 17 2.1.2. Trc khi UML ra i 18 2.1.3. S ra i c a UML 18 2.1.4. UML (Unifield Modeling Language) 19 2.1.5. Phng pháp và các ngôn ng mô hình hoá 19 2.2. UML trong phân tích thi!t k! h thng 19 2.3. UML và các giai o"n phát trin h thng 20 2.4. Phn câu hi 21 CH NG 3: KHÁI QUÁT V UML 22 3.1. UML và các giai o"n ca chu trình phát trin phn mm 22 3.1.1. Giai o n nghiên cu s b 22 3.1.2. Giai o n phân tích 22 3.1.3. Giai o n thit k 22 3.1.4. Giai o n xây dng 22 3.1.5. Th nghim 23 3.2. Các thành phn ca ngôn ng# UML 23 3.3. Hng nhìn (View) 23 3.3.1. Hng nhìn Use case (Use case View) 25 3.3.2. Hng nhìn logic (Logical View) 25 3.3.3. Hng nhìn thành phn (Component View) 25 3.3.4. Hng nhìn song song (Concurrency View) 26 3.3.5. Hng nhìn tri n khai (Deployment View) 26 3.4. Biu $ (diagram) 26 3.4.1. Bi u  Use case (Use Case Diagram) 26 3.4.2. Bi u  lp (Class Diagram) 27 3.4.3. Bi u  i tng (Object Diagram) 28 3.4.4. Bi u  tr ng thái (State Diagram) 28 2
  3. 3.4.5. Bi u  trình t (Sequence Diagram) 29 3.4.6. Bi u  cng tác (Collaboration Diagram) 29 3.4.7. Bi u  ho t ng (Activity Diagram) 30 3.4.8. Bi u  thành phn (Component Diagram) 30 3.4.9. Bi u  tri n khai (Deployment Diagram) 31 3.5. Phn t% mô hình (model element) 32 3.6. C ch! chung (General Mechanism) 33 3.6.1. Trang trí (Adornment) 33 3.6.2. Ghi chú (Note) 34 3.6.3. c t (Specification) 34 3.7. M& r'ng UML 35 3.7.1. Khuôn mu (Stereotype) 35 3.7.2. Giá tr ính kèm (Tagged Value) 36 3.7.3. H n ch (Constraint) 36 3.8. Mô hình hóa vi UML 37 3.9. Công c( (Tool) 40 3.10. Tóm t)t v UML 41 3.11. Phn câu hi 42 CH NG 4: MÔ HÌNH HÓA USE CASE 43 4.1. Gii thiu Use Case 43 4.2. M't s ví d( Use Case 44 4.3. S* cn thi!t phi có Use Case 44 4.4. Mô hình hóa Use Case 45 4.5. Biu $ Use Case 46 4.5.1. H thng 47 4.5.2. Tác nhân 48 4.5.3. Tìm tác nhân 49 4.5.4. Bi u din tác nhân trong ngôn ng UML 49 4.5.5. Use Case 50 4.5.6. Tìm Use Case 51 4.5.7. Ví d tìm Use Case 52 4.6. Các bi!n th (Variations) trong m't Use Case 53 4.7. Quan h gi#a các Use Case 54 4.7.1. Quan h m rng 54 4.7.2. Quan h s dng 55 4.7.3. Quan h chung nhóm 56 4.8. Miêu t Use Case 57 4.9. Th% Use Case 60 4.10. Th*c hin các Use Case 61 4.11. Tóm t)t v Use Case 63 4.12. Phn câu hi 63 CH NG 5 : MÔ HÌNH I T +NG 65 5.1. Lp, i tng và quan h – các thành phn c bn ca mô hình 65 5.1.1. i tng (Object) 65 5.1.2. Tr ng thái, ng x và nhn din c a i tng 65 5.1.3. Lp (Class) 66 3
  4. 5.1.4. Bi u  lp (Class diagram) 67 5.2. Tìm lp 68 5.2.1. Phân tích ph m vi bài toán tìm lp 69 5.2.2. Các lp ng c viên 72 5.2.3. Lo i b các lp ng c viên không thích hp 73 5.3. Lp và i tng trong UML 74 5.3.1. Tên lp (class name) 74 5.3.2. Thuc tính (attribute) 74 5.3.3. Phng thc (method) 75 5.3.4. Kí hiu i tng 76 5.4. Quan h gi#a các lp 77 5.5. Liên h (Association) 78 5.5.1. Vai trò trong liên h 78 5.5.2. Liên h mt chi u (Uni-Directional Association) 79 5.5.3. S lng (Cardinality) trong liên h 79 5.5.4. Phát hin liên h 80 5.5.5. X lý các liên h không cn thit 80 5.5.6. Nâng c!p các mi liên h 81 5.6. Quan h k!t tp (Aggregation) 85 5.6.1. Khái nim kt tp 85 5.6.2. Kí hiu kt tp 86 5.6.3. Kt tp và liên h 87 5.7. Khái quát hóa và chuyên bit hóa (Generalization & Specialization) 87 5.7.1. Kí hiu khái quát hóa và chuyên bit hóa 88 5.7.2. Yu t phân bit (Discriminatior) 89 5.8. Quan h ph( thu'c và nâng c,p (Dependency & Refinement) 92 5.9. Nâng c,p mô hình qua các vòng l-p k! ti!p 94 5.10. Ch,t lng mô hình 95 5.10.1. Th nào là mt mô hình tt? 96 5.10.2. Ta có th giao tip vi mô hình? 96 5.10.3. Mô hình có phù hp vi mc ích c a nó không? 96 5.10.4. N"m b"t nhng i m tr#ng yu 97 5.10.5. Phi hp các mô hình 97 5.10.6.  phc t p c a mô hình 97 5.11. Tóm t)t v mô hình i tng 97 5.12. Phn câu hi 98 CH NG 6 : MÔ HÌNH HÓA .NG 100 6.1. S* cn thi!t có mô hình 'ng (Dynamic Model) 100 6.2. Các thành phn ca mô hình 'ng 100 6.3. u im ca mô hình 'ng 102 6.4. S* kin và thông ip (Event & Message) 103 6.4.1. S kin (Event) 103 6.4.2. Thông ip (Message) 105 6.5. Biu $ tun t* (Sequence Diagram) 106 6.6. Biu $ c'ng tác (Collaboration Diagram) 108 4
  5. 6.7. Biu $ tr"ng thái (State Diagram) 109 6.7.1. Tr ng thái và s bin i tr ng thái (State transition) 109 6.7.2. Bi u  tr ng thái 110 6.7.3. Nhn bit tr ng thái và s kin 111 6.7.4. Mt s li mách bo cho vic t o dng bi u  tr ng thái 112 6.8. Biu $ ho"t 'ng (Activity Diagram) 114 6.9. Vòng /i i tng (Object Lifecycle) 117 6.9.1. Vòng i sinh ra và cht i 118 6.9.2. Vòng i lp 118 6.10. Xem xét l"i mô hình 'ng 118 6.10.1. Th$m v!n bi u  tr ng thái 118 6.10.2. Phi hp s kin 119 6.10.3. Bao gi thì s dng bi u  nào 119 6.10.4. Lp con và bi u  tr ng thái 120 6.11. Phi hp mô hình i tng và mô hình 'ng 120 6.12. Tóm t)t v mô hình 'ng 121 6.13. Phn câu hi 121 5
  6. CH NG 1: TNG QUAN V PHÂN TÍCH THIT K H THNG 1.1. Dn nhp 1.1.1. Tính trc quan Chúng ta có th th!y r%ng: "Mt s tp hp d liu phc t p nh!t nh khi c trình bày b%ng  th s& truy n ti n ngi #c nhi u thông tin hn so vi các d liu thô". Vi phn m m c'ng vy, khi ngành Công nghip c a chúng ta ngày càng phát tri n, các h thng s& tr nên phc t p hn. Kh n(ng n"m b"t và ki m soát s phc t p ó c a chúng ta i kèm vi kh n(ng trình bày h thng mt cách toàn din - mt s trình bày vt ra ngoài gii h n c a nhng dòng lnh thô. S thành công trên th trng c a nhng ngôn ng nh Visual Basic và phn giao din trc quan c a C++, Java ã cho th!y s trình bày trc quan mang tính ct yu i vi quá trình phát tri n các h thng phc t p. 1.1.2. Mô hình tru tng Trc ây, có mt thi gian dài, ngành công nghip chúng ta ã phi nói ti mt "Cuc kh ng hong phn m m". Các cuc tranh lun u da trên thc t là ch)ng nhng nhi u  án phn m m không th sn sinh ra nhng h thng tho mãn òi h i và nhu cu c a khách hàng, mà còn vt quá ngân sách và thi h n. Các công ngh mi nh lp trình hng i tng, lp trình trc quan c'ng nh các môi trng phát tri n tiên tin có giúp chúng ta nâng cao n(ng su!t lao ng, nhng trong nhi u trng hp, chúng ch* hng ti tng th!p nh!t c a vic phát tri n phn m m: phn vit lnh (coding). Mt trong nhng v!n chính c a ngành phát tri n phn m m thi nay là có nhi u  án b"t tay vào lp trình quá sm và tp trung quá nhi u vào vic vit code. Lý do mt phn là do ban qun tr thiu hi u bit v quy trình phát tri n phn m m và h# ny lo âu khi th!y i quân lp trình c a h# không vit code. Và bn thân các lp trình viên c'ng cm th!y an tâm hn khi h# ngi vit code - vn là tác v mà h# quen thuc! – hn là khi xây dng các mô hình tru tng cho h thng mà h# phi t o nên. 1.1.3. Mô hình hóa trc quan Mô hình hoá trc quan là mt phng thc t duy v v!n s dng các mô hình c t chc xoay quanh các khái nim i thc. Mô hình giúp chúng ta hi u v!n , giao tip vi m#i ngi có liên quan n d án (khách hàng, chuyên gia l+nh vc thuc án, nhà phân tích, nhà thit k, ). Mô hình r!t hu dng trong vic mô hình hoá doanh nghip, so n tho tài liu, thit k chng trình c'ng nh ngân hàng d liu. Mô hình giúp hi u các òi h i c a h thng tt hn, t o các thit k rõ ràng hn và xây dng nên các h thng d bo trì hn. Mô hình là kt qu c a s tru tng hóa nh%m miêu t các thành phn ct yu c a mt v!n hay mt c!u trúc phc t p qua vic l#c bt các chi tit không quan tr#ng và làm cho v!n tr thành d hi u hn. Tru tng hóa là mt n(ng lc c(n bn c a con ngi, cho phép chúng ta gii quyt các v!n phc t p. Các k, s, ngh s+ và th th công ã xây dng mô hình t hàng ngàn n(m nay th nghim thit k trc khi thc hin. Phát tri n phn m m c'ng không là ngo i l.  xây dng các h thng phc t p, nhà phát tri n phi tru tng hóa nhi u hng nhìn khác nhau c a h thng, s dng ký hiu chính xác xây dng mô hình, ki m tra xem mô hình có th a mãn các òi h i c a h thng, và dn dn b sung thêm chi tit chuy n các mô hình thành thc hin. Chúng ta xây dng mô hình cho các h thng phc t p bi chúng ta không th hi u th!u áo nhng h thng nh th trong tr ng thái toàn v-n c a chúng. Kh n(ng th!u hi u và n"m b"t tính phc t p c a 6
  7. con ngi là có h n. i u này ta có th th!y rõ trong ví d c a ngành xây dng. Nu b n mun t o mt túp l u  góc vn, b n có th b"t tay vào xây ngay. Nu b n xây mt ngôi nhà, có l& b n s& cn ti bn v&, nhng nu b n mun xây mt toà nhà ch#c tri thì ch"c ch"n b n không th không cn bn v&. Th gii phn m m c a chúng ta c'ng th. Ch* tp trung vào các dòng code hay thm chí c phân tích Forms trong Visual Basic ch)ng cung c!p mt cái nhìn toàn cc v vic phát tri n  án. Xây dng mô hình cho phép nhà thit k tp trung vào bc tranh ln v s tng tác gia các thành phn trong  án, tránh b sa ly vào nhng chi tit riêng bit c a tng thành phn. Mt môi trng kinh doanh mang tính c nh tranh gay g"t và luôn luôn thay i dn n tính phc t p ngày càng t(ng cao, và tính phc t p này t ra nhng thách thc c trng cho các nhà phát tri n h thng. Mô hình giúp chúng ta t chc, trình bày trc quan, th!u hi u và t o nên các h thng phc t p. Chúng giúp chúng ta áp ng các thách thc c a vic phát tri n phn m m, hôm nay c'ng nh ngày mai. 1.2. Mô t chu trình phát trin phn mm 1.2.1. Software Development – mt bài toán phc tp Kinh nghim c a nhi u nhà thit k và phát tri n cho th!y phát tri n phn m m là mt bài toán phc t p. Xin nêu mt s các lý do thng c k n: Nhng ngi phát tri n phn m m r!t khó hi u cho úng nhng gì ngi dùng cn Yêu cu c a ngi dùng thng thay i trong thi gian phát tri n. Yêu cu thng c miêu t b%ng v(n bn, dài dòng, khó hi u, nhi u khi thm chí mâu thun. i quân phát tri n phn m m, vn là ngi "ngoài cuc", r!t khó nhn thc th!u áo các mi quan h ti m $n và phc t p cn c th hin chính xác trong các ng dng ln. Kh n(ng n"m b"t các d liu phc t p c a con ngi (t i cùng mt thi i m) là có h n. Khó nh lng chính xác hiu su!t c a thành ph$m và th a mãn chính xác s mong ch t phía ngi dùng. Ch#n la phn cng và phn m m thích hp cho gii pháp là mt trong nhng thách thc ln i vi Designer. Phn m m ngoài ra cn có kh n(ng thích ng và m rng. Phn m m c thit k tt là phn m m ng vng trc nhng bin i trong môi trng, dù t phía cng ng ngi dùng hay t phía công ngh. Ví d phn m m ã c phát tri n cho mt nhà b(ng cn có kh n(ng tái s dng cho mt nhà b(ng khác vi r!t ít sa i hoc hoàn toàn không cn sa i. Phn m m tho mãn các yêu cu ó c coi là phn m m có kh n(ng thích ng. Mt phn m m có kh n(ng m rng là phn m m c thit k sao cho d phát tri n theo yêu cu c a ngi dùng mà không cn sa cha nhi u. Chính vì vy, mt s các khim khuyt thng gp trong phát tri n phn m m là: 7
  8. Hi u không úng nhng gì ngi dùng cn Không th thích ng cho phù hp vi nhng thay i v yêu cu i vi h thng Các Module không khp vi nhau Phn m m khó bo trì và nâng c!p, m rng Phát hin tr các l. hng c a d án Ch!t lng phn m m kém Hiu n(ng c a phn m m th!p Các thành viên trong nhóm không bit c ai ã thay i cái gì, khi nào,  âu, t i sao phi thay i. 1.2.2. Chu Trình Phát Tri n Ph n M m (Software Development Life Cycle) Vì phát tri n phn m m là mt bài toán khó, nên có l& trc ht ta cn i m qua mt s các công vic c(n bn c a quá trình này. Thng ngi ta hay tp hp chúng theo tin trình thi gian mt cách tng i, xoay quanh chu trình c a mt phn m m, dn ti kt q a khái nim Chu Trình Phát Tri n Phn M m (Software Development Life Cycle - SDLC) nh sau: Chu Trình Phát Tri n Phn M m là mt chu.i các ho t ng c a nhà phân tích (Analyst), nhà thit k (Designer), ngi phát tri n (Developer) và ngi dùng (User) phát tri n và thc hin mt h thng thông tin. Nhng ho t ng này c thc hin trong nhi u giai #an khác nhau. Nhà phân tích (Analyst): là ngi nghiên cu yêu cu c a khách hàng/ngi dùng nh ngh+a mt ph m vi bài toán, nhn d ng nhu cu c a mt t chc, xác nh xem nhân lc, phng pháp và công ngh máy tính có th làm sao ci thin mt cách tt nh!t công tác c a t chc này. Nhà thi!t k! (Designer): thit k h thng theo hng c!u trúc c a database, screens, forms và reports – quyt nh các yêu cu v phn cng và phn m m cho h thng cn c phát tri n. Chuyên gia l0nh v*c (Domain Experts): là nhng ngi hi u thc ch!t v!n cùng t!t c nhng s phc t p c a h thng cn tin h#c hoá. H# không nh!t thit phi là nhà lp trình, nhng h# có th giúp nhà lp trình hi u yêu cu t ra i vi h thng cn phát tri n. Quá trình phát tri n phn m m s& có r!t nhi u thun li nu i ng' làm phn m m có c s tr giúp c a h#. Lp trình viên (Programmer): là nhng ngi da trên các phân tích và thit k vit chng trình (coding) cho h thng b%ng ngôn ng lp trình ã c thng nh!t. Ng/i dùng (User): là i tng phc v c a h thng cn c phát tri n.  cho rõ hn, xin l!y ví d v mt v!n n gin sau: Ngi bình thng chúng ta khi nhìn mt chic xe ô tô thng s& có mt bc tranh t bên ngoài nh sau: 8
  9. V,n  Hình 1.1: Nhìn v!n ô tô c a ngi bình thng Chuyên gia l+nh vc s& giúp nhà phân tích "trình bày l i" v!n nh sau: Hình 1.2: Nhìn v!n ô tô c a chuyên gia phân tích Chính vì s tr giúp c a chuyên gia l+nh vc có th óng vai trò r!t quan tr#ng nên trong nhng giai o n u c a quá trình phát tri n phn m m, kt qu phân tích nên c th hin sao cho d hi u i vi các chuyên gia l+nh vc. ây c'ng là môt trong r!t nhi u lý do khin cho phng pháp hng i tng c nhi u ngi hng ng. 1.2.3. Các giai on c a Chu Trình Phát Tri n Ph n M m Chu trình c a mt phn m m có th c chia thành các giai o n nh sau: Nghiên cu s b (Preliminary Investigation hay còn g#i là Feasibility Study) Phân tích yêu cu (Analysis) Thit k h thng (Design of the System) Xây dng phn m m (Software Construction) Th nghim h thng (System Testing) Thc hin, tri n khai (System Implementation) Bo trì, nâng c!p (System Maintenance) a) Nghiên cu s b': Câu h i quan tr#ng nh!t khi phát tri n mt h thng hoàn toàn không phi câu h i mang tính phng pháp lun. Mà c'ng ch)ng phi câu h i v k, thut. Nó là mt câu h i dng nh có v/ n gin, 9
  10. nhng tht ra c bit khó tr li: “ây có úng là mt h thng thc hin không?” áng bun là chính câu h i này trong thc t thng ch)ng h c t ra và l i càng không c tr li. Mc dù vic lm ln v phng pháp hay quyt nh sai lm v k, thut c'ng có th dn ti th!t b i, nhng thng thì d án có th c cu vãn nu có y tài nguyên cùng s c g"ng quên mình c a các nhân viên tài gi i. Nhng s& ch)ng mt ai và mt i u gì cu vãn cho mt h thng phn m m hoàn toàn ch)ng c cn ti hoc c g"ng t ng hóa mt quy trình lm l c. Trc khi b"t tay vào mt d án, b n phi có mt ý tng cho nó. Ý tng này i song song vi vic n"m b"t các yêu cu và xu!t hin trong giai o n khi u. Nó hoàn t!t mt phát bi u: "H thng mà chúng ta mong mun s& làm c nhng vic nh sau ". Trong sut giai o n này, chúng ta t o nên mt bc tranh v ý tng ó, r!t nhi u gi thuyt s& c công nhn hay lo i b . Các ho t ng trong thi gian này thng bao gm thu thp các ý tng, nhn bit r i ro, nhn bit các giao din bên ngoài, nhn bit các các chc n(ng chính mà h thng cn cung c!p, và có th t o mt vài nguyên mu dùng “minh chng các khái nim c a h thng”. Ý tng có th n t nhi u ngun khác nhau: khách hàng, chuyên gia l+nh vc, các nhà phát tri n khác, chuyên gia v k, ngh, các bn nghiên cu tính kh thi c'ng nh vic xem xét các h thng khác ang tn t i. Mt khía c nh cn nh"c ti là code vit trong thi k0 này thng s& b "b i”, bi chúng c vit nh%m mc ích th$m tra hay tr giúp các gi thuyt khác nhau, ch cha phi th code c vit theo kt qu phân tích và thit k th!u áo. Trong giai #an nghiên cu s b, nhóm phát tri n h thng cn xem xét các yêu cu c a doanh nghip (cn dùng h thng), nhng ngun tài nguyên có th s dng, công ngh c'ng nh cng ng ngi dùng cùng các ý tng c a h# i vi h thng mi. Có th thc hin tho lun, nghiên cu, xem xét khía c nh thng m i, phân tích kh n(ng li-l., phân tích các trng hp s dng và t o các nguyên mu xây dng nên mt khái nim cho h thng ích cùng vi các mc ích, quy n u tiên và ph m vi c a nó. Thng trong giai o n này ngi ta c'ng tin hành t o mt phiên bn thô c a lch trình và k ho ch s dng tài nguyên. Mt giai o n nghiên cu s b thích áng s& lp nên tp hp các yêu cu (dù  mc  khái quát cao) i vi mt h thng kh thi và c mong mun, k c v phng din k, thut ln xã hi. Mt giai o n nghiên cu s b không c thc hin tho áng s& dn ti các h thng không c mong mun, "t ti n, b!t kh thi và c nh ngh+a lm l c – nhng h thng thng ch)ng c hoàn t!t hay s dng. Kt qu c a giai o n nghiên cu s b là Báo Cáo Kt Qu Nghiên Cu Tính Kh Thi. Khi h thng tng lai c ch!p nhn da trên bn báo cáo này c'ng là lúc giai o n Phân tích b"t u. b) Phân tích yêu cu: Sau khi ã xem xét v tính kh thi c a h thng c'ng nh t o lp mt bc tranh s b c a d án, chúng ta bc sang giai o n thng c coi là quan tr#ng nh!t trong các công vic lp trình: hi u h thng cn xây dng. Ngi thc hin công vic này là nhà phân tích. Quá trình phân tích nhìn chung là h qu c a vic tr li câu h i "H thng cn phi làm gì?". Quá trình phân tích bao gm vic nghiên cu chi tit h thng doanh nghip hin thi, tìm cho ra nguyên lý ho t ng c a nó và nhng v trí có th c nâng cao, ci thin. Bên c nh ó là vic nghiên cu xem xét các chc n(ng mà h thng cn cung c!p và các mi quan h c a chúng, bên trong c'ng nh vi phía ngoài h thng. Trong toàn b giai o n này, nhà phân tích và ngi dùng cn cng tác mt thit vi nhau xác nh các yêu cu i vi h thng, tc là các tính n(ng mi cn phi c a vào h thng. 10
  11. Nhng mc tiêu c th c a giai o n phân tích là: Xác nh h thng cn phi làm gì. Nghiên cu th!u áo t!t c các chc n(ng cn cung c!p và nhng yu t liên quan Xây dng mt mô hình nêu bt bn ch!t v!n t mt hng nhìn có thc (trong i sng thc). Trao nh ngh+a v!n cho chuyên gia l+nh vc nhn s ánh giá, góp ý. Kt qu c a giai o n phân tích là bn c T Yêu Cu (Requirements Specifications). c) Thi!t k! h thng: Sau giai o n phân tích, khi các yêu cu c th i vi h thng ã c xác nh, giai o n tip theo là thit k cho các yêu cu mi. Công tác thit k xoay quanh câu h i chính: H thng làm cách nào th a mãn các yêu cu ã c nêu trong c T Yêu Cu? Mt s các công vic thng c thc hin trong giai o n thit k: Nhn bit form nhp liu tùy theo các thành phn d liu cn nhp. Nhn bit reports và nhng output mà h thng mi phi sn sinh Thit k forms (v& trên gi!y hay máy tính, s dng công c thit k) Nhn bit các thành phn d liu và bng t o database 1c tính các th tc gii thích quá trình x lý t input n output. Kt qu giai o n thit k là c T Thit K (Design Specifications). Bn c T Thit K Chi Tit s& c chuy n sang cho các lp trình viên thc hin giai o n xây dng phn m m. d) Xây d*ng phn mm: ây là giai o n vit lnh (code) thc s, t o h thng. Tng ngi vit code thc hin nhng yêu cu ã c nhà thit k nh s2n. C'ng chính ngi vit code chu trách nhim vit tài liu liên quan n chng trình, gii thích th tc (procedure) mà anh ta t o nên c vit nh th nào và lý do cho vic này.  m bo chng trình c vit nên phi tho mãn m#i yêu cu có ghi trc trong bn c T Thit K Chi Tit, ngi vit code c'ng ng thi phi tin hành th nghim phn chng trình c a mình. Phn th nghim trong giai o n này có th c chia thành hai bc chính: + Th% nghim n v1: Ngi vit code ch y th các phn chng trình c a mình vi d liu gi (test/dummy data). Vic này c thc hin theo mt k ho ch th, c'ng do chính ngi vit code so n ra. Mc ích chính trong giai o n th này là xem chng trình có cho ra nhng kt qu mong i. Giai o n th nghim n v nhi u khi c g#i là "Th hp tr"ng" (White Box Testing). + Th% nghim n v1 'c lp: Công vic này do mt thành viên khác trong nhóm m trách. Cn ch#n ngi không có liên quan trc tip n vic vit code c a n v chng trình cn th 11
  12. nghim m bo tính “ c lp”. Công vic th t này c'ng c thc hin da trên k ho ch th do ngi vit code so n nên. e) Th% nghim h thng: Sau khi các th tc ã c th nghim riêng, cn phi th nghim toàn b h thng. M#i th tc c tích hp và ch y th, ki m tra xem m#i chi tit ghi trong c T Yêu Cu và nhng mong ch c a ngi dùng có c tho mãn. D liu th cn c ch#n l#c c bit, kt qu cn c phân tích phát hin m#i lch l c so vi mong ch. f) Th*c hin, trin khai: Trong giai o n này, h thng va phát tri n s& c tri n khai sao cho phía ngi dùng. Trc khi ngi dùng tht s b"t tay vào s dng h thng, nhóm các nhà phát tri n cn t o các file d liu cn thit c'ng nh hu!n luyn cho ngi dùng, m bo h thng c s dng hu hiu nh!t. g) Bo trì, nâng c,p: Tùy theo các bin i trong môi trng s dng, h thng có th tr nên l.i thi hay cn phi c sa i nâng c!p s dng có hiu qu. Ho t ng bo trì h thng có th r!t khác bit tùy theo mc  sa i và nâng c!p cn thit. S $ tng quát các giai o"n ca Chu Trình Phát Trin Phn Mm: Hình 1.3: S  tng quát các giai o n c a Chu Trình Phát Tri n Phn M m 12
  13. 1.3. Phng pháp hng chc nng và phng pháp hng i tng 1.3.1. Phng pháp hng chc nng ây là li tip cn truy n thng c a ngành Công ngh phn m m. Theo li tip cn này, chúng ta quan tâm ch yu ti nhng thông tin mà h thng s& gi gìn. Chúng ta h i ngi dùng xem h# s& cn nhng thông tin nào, ri chúng ta thit k ngân hàng d liu cha nhng thông tin ó, cung c!p Forms nhp thông tin và in báo cáo trình bày các thông tin. Nói mt cách khác, chúng ta tp trung vào thông tin và không m!y ý n nhng gì có th xy ra vi nhng h thng ó và cách ho t ng (ng x) c a h thng là ra sao. ây là li tim cn xoay quanh d liu và ã c áp dng t o nên hàng ngàn h thng trong sut nhi u n(m tri. Li tip cn xoay quanh d liu là phng pháp tt cho vic thit k ngân hàng d liu và n"m b"t thông tin, nhng nu áp dng cho vic thit k ng dng l i có th khin phát sinh nhi u khó kh(n. Mt trong nhng thách thc ln là yêu cu i vi các h thng thng xuyên thay i. Mt h thng xoay quanh d liu có th d dàng x lý vic thay i ngân hàng d liu, nhng l i khó thc thi nhng thay i trong nguyên t"c nghip v hay cách ho t ng c a h thng. Phng pháp hng i tng ã c phát tri n tr li cho v!n ó. Vi li tip cn hng i tng, chúng ta tp trung vào c hai mt c a v!n : thông tin và cách ho t ng. 1.3.2. Phng pháp hng i tng Hng i tng là thut ng thông dng hin thi c a ngành công nghip phn m m. Các công ty ang nhanh chóng tìm cách áp dng và tích hp công ngh mi này vào các ng dng c a h#. Tht s là a phn các ng dng hin thi u mang tính hng i tng. Nhng hng i tng có ngh+a là gì? Li tip cn hng i tng là mt li t duy v v!n theo li ánh x các thành phn trong bài toán vào các i tng ngoài i thc. Vi li tip cn này, chúng ta chia ng dng thành các thành phn nh , g#i là các i tng, chúng tng i c lp vi nhau. Sau ó ta có th xây dng ng dng b%ng cách ch"p các i tng ó l i vi nhau. Hãy ngh+ n trò chi xây lâu ài b%ng các mu g Bc u tiên là t o hay mua mt vài lo i mu g. c(n bn, t ó t o nên các khi xây dng c(n bn c a mình. Mt khi ã có các khi xây dng ó, b n có th ch"p ráp chúng l i vi nhau t o lâu ài. Tng t nh vy mt khi ã xây dng mt s i tng c(n bn trong th gii máy tính, b n có th ch"p chúng l i vi nhau t o ng dng c a mình. Xin l!y mt ví d n gin: v!n rút ti n mt t i nhà b(ng. Các “mu g.“ thành phn  ây s& là ánh x c a các i tng ngoài i thc nh tài khon, nhân viên, khách hàng, Và ng dng s& c s& c nhn din c'ng nh gii áp xoay quanh các i tng ó. 1.4. u im ca mô hình hng i tng 1.4.1. Tính tái s dng (Reusable) Phng pháp phân tích và thit k hng i tng thc hin theo các thut ng và khái nim c a ph m vi l+nh vc ng dng (tc là c a doanh nghip hay n v mà h thng tng lai cn phc v), nên nó t o s tip cn tng ng gia h thng và v!n thc ngoài i. Trong ví d bán xe ô tô, m#i giai o n phân tích thit k và thc hin u xoay quanh các khái nim nh khách hàng, nhân viên bán hàng, xe ô tô, Vì quá trình phát tri n phn m m ng thi là quá trình cng tác c a khách 13
  14. hàng/ngi dùng, nhà phân tích, nhà thit k, nhà phát tri n, chuyên gia l+nh vc, chuyên gia k, thut, nên li tip cn này khin cho vic giao tip gia h# vi nhau c d dàng hn. Mt trong nhng u i m quan tr#ng bc nh!t c a phng pháp phân tích và thit k hng i tng là tính tái s dng: b n có th t o các thành phn ( i tng) mt ln và dùng chúng nhi u ln sau ó. Ging nh vic b n có th tái s dng các khi xây dng (hay bn sao c a nó ) trong mt toà lâu ài, mt ngôi nhà , mt con tàu v' tr, b n c'ng có th tái s dng các thành phn ( i tng) c(n bn trong các thit k hng i tng c'ng nh code c a mt h thng k toán, h thng ki m kê, hoc mt h thng t hàng. Vì các i tng ã c th nghim k, càng trong ln dùng trc ó, nên kh n(ng tái s dng i tng có tác dng gim thi u l.i và các khó kh(n trong vic bo trì, giúp t(ng tc  thit k và phát tri n phn m m. Phng pháp hng i tng giúp chúng ta x lý các v!n phc t p trong phát tri n phn m m và t o ra các th h phn m m có kh n(ng thích ng và b n ch"c. 1.4.2. Các giai on c a chu trình phát tri n ph n m m vi mô hình hng i tng Phân tích hng i tng (Object Oriented Analysis - OOA): Là giai #an phát tri n mt mô hình chính xác và súc tích c a v!n , có thành phn là các i tng và khái nim i thc, d hi u i vi ngi s dng. Trong giai o n OOA, v!n c trình bày b%ng các thut ng tng ng vi các i tng có thc. Thêm vào ó, h thng cn phi c nh ngh+a sao cho ngi không chuyên Tin h#c có th d dàng hi u c. Da trên mt v!n có s2n, nhà phân tích cn ánh x các i tng hay thc th có thc nh khách hàng, ô tô, ngi bán hàng, vào thit k t o ra c bn thit k gn cn vi tình hung thc. Mô hình thit k s& cha các thc th trong mt v!n có thc và gi nguyên các mu hình v c!u trúc, quan h c'ng nh hành vi c a chúng. Nói mt cách khác, s dng phng pháp hng i tng chúng ta có th mô hình hóa các thc th thuc mt v!n có thc mà vn gi c c!u trúc, quan h c'ng nh hành vi c a chúng. i vi ví d mt phòng bán ô tô, giai o n OOA s& nhn bit c các thc th nh: Khách hàng Ngi bán hàng Phiu t hàng Phiu (hoá n) thanh toán Xe ô tô Tng tác và quan h gia các i tng trên là: Ngi bán hàng dn khách hàng tham quan phòng trng bày xe. Khách hàng ch#n mt chic xe 14
  15. Khách hàng vit phiu t xe Khách hàng tr ti n xe Xe ô tô c giao n cho khách hàng i vi ví d nhà b(ng l/, giai o n OOA s& nhn bit c các thc th nh: Lo i tài khon: ATM (rút ti n t ng), Savings (tit kim), Current (bình thng), Fixed ( u t), Khách hàng Nhân viên Phòng máy tính. Tng tác và quan h gia các i tng trên: Mt khách hàng mi m mt tài khon tit kim Chuy n ti n t tài khon tit kim sang tài khon u t Chuy n ti n t tài khon tit kim sang tài khon ATM Xin chú ý là  ây, nh ã nói, ta chú ý n c hai khía c nh: thông tin và cách ho t ng c a h thng (tc là nhng gì có th xy ra vi nhng thông tin ó). Li phân tích b%ng ki u ánh x " i thc” vào máy tính nh th tht s là u i m ln c a phng pháp hng i tng. Thi!t k! hng i tng (Object Oriented Design - OOD): Là giai o n t chc chng trình thành các tp hp i tng cng tác, m.i i tng trong ó là thc th c a mt lp. Các lp là thành viên c a mt cây c!u trúc vi mi quan h tha k. Mc ích c a giai o n OOD là t o thit k da trên kt qu c a giai o n OOA, da trên nhng quy nh phi chc n(ng, nhng yêu cu v môi trng, nhng yêu cu v kh n(ng thc thi, OOD tp trung vào vic ci thin kt qu c a OOA, ti u hóa gii pháp ã c cung c!p trong khi vn m bo tho mãn t!t c các yêu cu ã c xác lp. Trong giai o n OOD, nhà thit k nh ngh+a các chc n(ng, th tc (operations), thuc tính (attributes) c'ng nh mi quan h c a mt hay nhi u lp (class) và quyt nh chúng cn phi c i u ch*nh sao cho phù hp vi môi trng phát tri n. ây c'ng là giai o n thit k ngân hàng d liu và áp dng các k, thut tiêu chu$n hóa. V cui giai o n OOD, nhà thit k a ra mt lo t các bi u  (diagram) khác nhau. Các bi u  này có th c chia thành hai nhóm chính là T+nh và ng. Các bi u  t+nh bi u th các lp và i tng, trong khi bi u  ng bi u th tng tác gia các lp và phng thc ho t ng chính xác c a chúng. Các lp ó sau này có th c nhóm thành các gói (Packages) tc là các n v thành phn nh hn c a ng dng. Lp trình hng i tng (Object Oriented Programming - OOP): 15
  16. Giai o n xây dng phn m m có th c thc hin s dng k, thut lp trình hng i tng. ó là phng thc thc hin thit k hng i tng qua vic s dng mt ngôn ng lp trình có h. tr các tính n(ng hng i tng. Mt vài ngôn ng hng i tng thng c nh"c ti là C++ và Java. Kt qu chung cuc c a giai o n này là mt lo t các code ch y c, nó ch* c a vào s dng sau khi ã tri qua nhi u vòng quay c a nhi u bc th nghim khác nhau. 1.5. Phn câu hi Hi: Mt s tp hp d liu phc t p nh!t nh khi c trình bày b%ng  th s& truy n ti n ngi #c nhi u thông tin hn so vi các d liu thô? áp: úng Hi: Mô hình giúp chúng ta t chc, trình bày trc quan, th!u hi u và t o nên các h thng phc t p. áp: úng Hi: 1u i m ln nh!t c a mô hình hng i tng là tính tái s dng (Reusable)? áp: úng. t ≤ u 16
  17. CH NG 2: NGÔN NG MÔ HÌNH HÓA THNG NH T LÀ GÌ? t & u 2.1. Gii thiu UML 2.1.1. Mô hình hóa h thng ph n m m Nh ã trình bày  phn trc, mc tiêu c a giai o n phân tích h thng là sn xu!t ra mt mô hình tng th c a h thng cn xây dng. Mô hình này cn phi c trình bày theo hng nhìn (View) c a khách hàng hay ngi s dng và làm sao h# hi u c. Mô hình này c'ng có th c s dng xác nh các yêu cu c a ngi dùng i vi h thng và qua ó giúp chúng ta ánh giá tính kh thi c a d án. Tm quan tr#ng c a mô hình ã c l+nh hi mt cách th!u áo trong hu nh t!t c các ngành khoa h#c k, thut t nhi u th k3 nay. B!t k0  âu, khi mun xây dng mt vt th nào ó, u tiên ngi ta ã t o nên các bn v& quyt nh c ngo i hình ln phng thc ho t ng c a nó. Ch)ng h n các bn v& k, thut thng gp là mt d ng mô hình quen thuc. Mô hình nhìn chung là mt cách mô t c a mt vt th nào ó. Vt ó có th tn t i trong mt s giai o n nh!t nh, dù ó là giai o n thit k hay giai o n xây dng hoc ch* là mt k ho ch. Nhà thit k cn phi t o ra các mô hình mô t t!t c các khía c nh khác nhau c a sn ph$m. Ngoài ra, mt mô hình có th c chia thành nhi u hng nhìn, m.i hng nhìn trong s chúng s& mô t mt khía c nh riêng bit c a sn ph$m hay h thng cn c xây dng. Mt mô hình c'ng có th c xây dng trong nhi u giai o n và  m.i giai o n, mô hình s& c b sung thêm mt s chi tit nh!t nh. Mô hình thng c mô t trong ngôn ng trc quan, i u ó có ngh+a là a phn các thông tin c th hin b%ng các ký hiu  h#a và các kt ni gia chúng, ch* khi cn thit mt s thông tin mi c bi u din  d ng v(n bn; Theo úng nh câu ng n ng "Mt bc tranh nói nhi u hn c ngàn t". T o mô hình cho các h thng phn m m trc khi thc s xây dng nên chúng, ã tr thành mt chu$n mc trong vic phát tri n phn m m và c ch!p nhn trong cng ng làm phn m m ging nh trong b!t k0 mt ngành khoa h#c k, thut nào khác. Vic bi u din mô hình phi thoã mãn các yu t sau: Chính xác (accurate): Mô t úng h thng cn xây dng. ng nh!t (consistent): Các view khác nhau không c mâu thu$n vi nhau. Có th hi u c (understandable): Cho nhng ngi xây dng ln s dng D thay i (changeable) D dàng liên l c vi các mô hình khác. Có th nói thêm r%ng mô hình là mt s n gin hoá hin thc. Mô hình c xây dng nên chúng ta d dàng hi u và hi u tt hn h thng cn xây dng. T o mô hình s& giúp cho chúng ta hi u th!u áo mt h thng phc t p trong s toàn th c a nó. Nói tóm l i, mô hình hóa mt h thng nh%m mc ích: Hình dung mt h thng theo thc t hay theo mong mun c a chúng ta . 17
  18. Ch* rõ c!u trúc hoc ng x c a h thng. T o mt khuôn mu hng dn nhà phát tri n trong sut quá trình xây dng h thng. Ghi l i các quyt nh c a nhà phát tri n s dng sau này. 2.1.2. Trc khi UML ra i u nhng n(m 1980, ngành công ngh phn m m ch* có duy nh!t mt ngôn ng hng i tng là Simula. Sang na sau c a thp k3 1980, các ngôn ng hng i tng nh Smalltalk và C++ xu!t hin. Cùng vi chúng, ny sinh nhu cu mô hình hoá các h thng phn m m theo hng i tng. Và mt vài trong s nhng ngôn ng mô hình hoá xu!t hin nhng n(m u thp k3 90 c nhi u ngi dùng là: Grady Booch’s Booch Modeling Methodology James Rambaugh’s Object Modeling Technique – OMT Ivar Jacobson’s OOSE Methodology Hewlett- Packard’s Fusion Coad and Yordon’s OOA and OOD M.i phng pháp lun và ngôn ng trên u có h thng ký hiu riêng, phng pháp x lý riêng và công c h. tr riêng, khin ny ra cuc tranh lun phng pháp nào là tt nh!t. ây là cuc tranh lun khó có câu tr li, bi t!t c các phng pháp trên u có nhng i m m nh và i m yu riêng. Vì th, các nhà phát tri n phn m m nhi u kinh nghim thng s dng phi hp các i m m nh c a m.i phng pháp cho ng dng c a mình. Trong thc t, s khác bit gia các phng pháp ó hu nh không áng k và theo cùng tin trình thi gian, t!t c nhng phng pháp trên ã tim cn l i và b sung ln cho nhau. Chính hin thc này ã c nhng ngi tiên phong trong l+nh vc mô hình hoá hng i tng nhn ra và h# quyt nh ngi l i cùng nhau tích hp nhng i m m nh c a m.i phng pháp và a ra mt mô hình thng nh!t cho l+nh vc công ngh phn m m. 2.1.3. S ra i c a UML Trong bi cnh trên, ngi ta nhn th!y cn thit phi cung c!p mt phng pháp tim cn c chu$n hoá và thng nh!t cho vic mô hình hoá hng i tng. Yêu cu c th là a ra mt tp hp chu$n hoá các ký hiu (Notation) và các bi u  (Diagram) n"m b"t các quyt nh v mt thit k mt cách rõ ràng, rành m ch. ã có ba công trình tiên phong nh"m ti mc tiêu ó, chúng c thc hin di s lãnh o c a James Rumbaugh, Grady Booch và Ivar Jacobson. Chính nhng c g"ng này dn n kt qu là xây dng c mt Ngôn Ng Mô Hình Hoá Thng Nh!t (Unifield Modeling Language – UML). UML là mt ngôn ng mô hình hoá thng nh!t có phn chính bao gm nhng ký hiu hình h#c, c các phng pháp hng i tng s dng th hin và miêu t các thit k c a mt h thng. Nó là mt ngôn ng c t, trc quan hoá, xây dng và làm su liu cho nhi u khía c nh khác nhau c a mt h thng có nng  phn m m cao. UML có th c s dng làm công c giao tip gia ngi dùng, nhà phân tích, nhà thit k và nhà phát tri n phn m m. 18
  19. Trong quá trình phát tri n có nhi u công ty ã h. tr và khuyn khích phát tri n UML có th k ti nh : Hewlett Packard, Microsoft, Oracle, IBM, Unisys. 2.1.4. UML (Unifield Modeling Language) Ngôn ng mô hình hóa thng nh!t (Unifield Modeling Language – UML) là mt ngôn ng bi u din mô hình theo hng i tng c xây dng bi ba tác gi trên vi ch ích là: Mô hình hoá các h thng s dng các khái nim hng i tng. Thit lp mt kt ni t nhn thc c a con ngi n các s kin cn mô hình hoá. Gii quyt v!n v mc  tha k trong các h thng phc t p, có nhi u ràng buc khác nhau. T o mt ngôn ng mô hình hoá có th s dng c bi ngi và máy. 2.1.5. Phng pháp và các ngôn ng mô hình hoá Phng pháp hay phng thc (method) là mt cách trc tip c!u trúc hoá s suy ngh+ và hành ng c a con ngi. Phng pháp cho ngi s dng bit phi làm gì, làm nh th nào, khi nào và t i sao (mc ích c a hành ng). Phng pháp cha các mô hình (model), các mô hình c dùng mô t nhng gì s dng cho vic truy n t kt qu trong quá trình s dng phng pháp. i m khác nhau chính gia mt phng pháp và mt ngôn ng mô hình hoá (modeling language) là ngôn ng mô hình hoá không có mt tin trình (process) hay các câu lnh (instruction) mô t nhng công vic ngi s dng cn làm. Mt mô hình c bi u din theo mt ngôn ng mô hình hoá. Ngôn ng mô hình hoá bao gm các ký hiu – nhng bi u tng c dùng trong mô hình – và mt tp các quy t"c ch* cách s dng chúng. Các quy t"c này bao gm: Syntactic (Cú pháp): cho bit hình d ng các bi u tng và cách kt hp chúng trong ngôn ng. Semantic (Ng ngh+a): cho bit ý ngh+a c a m.i bi u tng, chúng c hi u th nào khi n%m trong hoc không n%m trong ng cnh c a các bi u tng khác. Pragmatic : nh ngh+a ý ngh+a c a bi u tng sao cho mc ích c a mô hình c th hin và m#i ngi có th hi u c. 2.2. UML trong phân tích thi!t k! h thng UML có th c s dng trong nhi u giai o n, t phát tri n, thit k cho ti thc hin và bo trì. Vì mc ích chính c a ngôn ng này là dùng các bi u  hng i tng mô t h thng nên mi n ng dng c a UML bao gm nhi u lo i h thng khác nhau nh: H thng thng tin (Information System): C!t gi, l!y, bin i bi u din thông tin cho ngi s dng. X lý nhng khong d liu ln có các quan h phc t p , mà chúng c lu tr trong các c s d liu quan h hay hng i tng . 19
  20. H thng k2 thut (Technical System): X lý và i u khi n các thit b k, thut nh vin thông, h thng quân s, hay các quá trình công nghip. ây là lo i thit b phi x lý các giao tip c bit , không có phn m m chu$n và thng là các h thng thi gian thc (real time). H thng nhúng (Embeded System): Thc hin trên phn cng g"n vào các thit b nh in tho i di ng, i u khi n xe hi, i u này c thc hin b%ng vic lp trình mc th!p vi h. tr thi gian thc. Nhng h thng này thng không có các thit b nh màn hình +a cng, H thng phân b ( Distributed System): c phân b trên mt s máy cho phép truy n d liu t ni này n ni khác mt cách d dàng. Chúng òi h i các c ch liên l c ng b m bo toàn v-n d liu và thng c xây dng trên mt s các k, thut i tng nh CORBA, COM/DCOM, hay Java Beans/RMI. H thng Giao d1ch (Business System): Mô t mc ích, tài nguyên (con ngi, máy tính, ), các quy t"c (lut pháp, chin thut kinh doanh, c ch, ), và công vic ho t ng kinh doanh. Phn mm h thng (System Software): nh ngh+a c s h tng k, thut cho phn m m khác s dng, ch)ng h n nh h i u hành, c s d liu, giao din ngi s dng. 2.3. UML và các giai o"n phát trin h thng Preliminary Investigation: use cases th hin các yêu cu c a ngi dùng. Phn miêu t use case xác nh các yêu cu, phn diagram th hin mi quan h và giao tip vi h thng. Analysis: Mc ích chính c a giai #an này là tru tng hóa và tìm hi u các c c!u có trong ph m vi bài toán. Class diagrams trên bình din tru tng hóa các thc th ngoài i thc c s dng làm rõ s tn t i c'ng nh mi quan h c a chúng. Ch* nhng lp (class) n%m trong ph m vi bài toán mi áng quan tâm. Design: Kt qu phn analysis c phát tri n thành gii pháp k, thut. Các lp c mô hình hóa chi tit cung c!p h tng k, thut nh giao din, n n tng cho database, Kt qu phn Design là các c t chi tit cho giai o n xây dng phn m m. Development: Mô hình Design c chuy n thành code. Programmer s dng các UML diagrams trong giai o n Design hi u v!n và t o code. Testing: S dng các UML diagrams trong các giai o n trc. Có 4 hình thc ki m tra h thng: Unit testing (class diagrams & class specifications) : ki m tra tng n th , c dùng ki m tra các lp hay các nhóm n th . Integration testing (integration diagrams & collaboration diagrams) : ki m tra tích hp là ki m tra kt hp các component vi các lp xem chúng ho t ng vi nhau có úng không. System testing (use-case diagrams) : ki m tra xem h thng có áp ng c chc n(ng mà ngi s dng yêu cu hay không. 20
  21. Acceptance testing: Ki m tra tính ch!p nhn c c a h thng, thng c thc hin bi khách hàng, vic ki m tra này thc hin tng t nh ki m tra h thng. 2.4. Phn câu hi Hi: UML (Unifield Modeling Language) là gì? áp: Ngôn ng mô hình hóa thng nh!t – UML là mt ngôn ng bi u din mô hình theo hng i tng. Hi: i m khác nhau c bn gia phng pháp (method) và mt ngôn ng mô hình hoá (modeling language) là gì? áp: i m khác nhau c bn gia mt phng pháp và mt ngôn ng mô hình hoá là ngôn ng mô hình hoá không có mt tin trình (process) hay các câu lnh (instruction) mô t nhng công vic ngi s dng cn làm mà nó bao gm các ký hiu – nhng bi u tng c dùng trong mô hình – và mt tp các quy t"c ch* cách s dng chúng. t ≤ u 21
  22. CH NG 3: KHÁI QUÁT V UML t & u 3.1. UML và các giai o"n ca chu trình phát trin phn mm 3.1.1. Giai on nghiên cu s b UML a ra khái nim Use Case n"m b"t các yêu cu c a khách hàng (ngi s dng). UML s dng bi u  Use case (Use Case Diagram) nêu bt mi quan h c'ng nh s giao tip vi h thng. Qua phng pháp mô hình hóa Use case, các tác nhân (Actor) bên ngoài quan tâm n h thng s& c mô hình hóa song song vi chc n(ng mà h# òi h i t phía h thng (tc là Use case). Các tác nhân và các Use case c mô hình hóa cùng các mi quan h và c miêu t trong bi u  Use case c a UML. M.i mt Use case c mô t trong tài liu, và nó s& c t các yêu cu c a khách hàng: Anh ta hay ch ta ch i i u gì  phía h thng mà không h ý n vic chc n(ng này s& c thc thi ra sao. 3.1.2. Giai on phân tích Giai o n phân tích quan tâm n quá trình tru tng hóa u tiên (các lp và các i tng) c'ng nh c ch hin hu trong ph m vi v!n . Sau khi nhà phân tích ã nhn bit c các lp thành phn c a mô hình c'ng nh mi quan h gia chúng vi nhau, các lp cùng các mi quan h ó s& c miêu t b%ng công c bi u  lp (class diagram) c a UML. S cng tác gia các lp nh%m thc hin các Use case c'ng s& c miêu t nh vào các mô hình ng (dynamic models) c a UML. Trong giai o n phân tích, ch* duy nh!t các lp có tn t i trong ph m vi v!n (các khái nim i thc) là c mô hình hóa. Các lp k, thut nh ngh+a chi tit c'ng nh gii pháp trong h thng phn m m, ví d nh các lp cho giao din ngi dùng, cho ngân hàng d liu, cho s giao tip, trùng hp, v.v , cha phi là mi quan tâm c a giai o n này. 3.1.3. Giai on thit k Trong giai o n này, kt qu c a giai o n phân tích s& c m rng thành mt gii pháp k, thut. Các lp mi s& c b sung t o thành mt h tng c s k, thut: Giao din ngi dùng, các chc n(ng lu tr các i tng trong ngân hàng d liu, giao tip vi các h thng khác, giao din vi các thit b ngo i vi và các máy móc khác trong h thng, Các lp thuc ph m vi v!n có t giai o n phân tích s& c "nhúng" vào h tng c s k, thut này, t o ra kh n(ng thay i trong c hai phng din: Ph m vi v!n và h tng c s. Giai o n thit k s& a ra kt qu là bn c t chi tit cho giai o n xây dng h thng. 3.1.4. Giai on xây dng Trong giai o n xây dng (giai o n lp trình), các lp c a giai o n thit k s& c bin thành nhng dòng code c th trong mt ngôn ng lp trình hng i tng c th (không nên dùng mt ngôn ng lp trình hng chc n(ng!). Ph thuc vào kh n(ng c a ngôn ng c s dng, ây có th là mt công vic khó kh(n hay d dàng. Khi t o ra các mô hình phân tích và thit k trong UML, tt nh!t nên c g"ng né tránh vic ngay lp tc bin i các mô hình này thành các dòng code. Trong nhng giai o n trc, mô hình c s dng d hi u, d giao tip và t o nên c!u trúc c a h thng; vì vy, vi 22
  23. vàng a ra nhng kt lun v vic vit code có th s& thành mt tr ng i cho vic t o ra các mô hình chính xác và n gin. Giai o n xây dng là mt giai o n riêng bit, ni các mô hình c chuy n thành code. 3.1.5. Th nghim Nh ã trình bày trong phn Chu Trình Phát Tri n Phn M m, mt h thng phn m m thng c th nghim qua nhi u giai o n và vi nhi u nhóm th nghim khác nhau. Các nhóm s dng nhi u lo i bi u  UML khác nhau làm n n tng cho công vic c a mình: Th nghim n v s dng bi u  lp (class diagram) và c t lp, th nghim tích hp thng s dng bi u  thành phn (component diagram) và bi u  cng tác (collaboration diagram), và giai o n th nghim h thng s dng bi u  Use case (use case diagram) m bo h thng có phng thc ho t ng úng nh ã c nh ngh+a t ban u trong các bi u  này. 3.2. Các thành phn ca ngôn ng# UML Ngôn ng UML bao gm mt lo t các phn t  h#a (graphic element) có th c kp hp vi nhau t o ra các bi u . Bi ây là mt ngôn ng, nên UML c'ng có các nguyên t"c kt hp các phn t ó. Mt s nhng thành phn ch yu c a ngôn ng UML: Hng nhìn (view): Hng nhìn ch* ra nhng khía c nh khác nhau c a h thng cn phi c mô hình hóa. Mt hng nhìn không phi là mt bn v&, mà là mt s tru tng hóa bao gm mt lo t các bi u  khác nhau. Ch* qua vic nh ngh+a c a mt lo t các hng nhìn khác nhau, m.i hng nhìn ch* ra mt khía c nh riêng bit c a h thng, ngi ta mi có th t o dng nên mt bc tranh hoàn thin v h thng. C'ng chính các hng nhìn này ni kt ngôn ng mô hình hóa vi quy trình c ch#n cho giai o n phát tri n. Bi u  (diagram): Bi u  là các hình v& miêu t ni dung trong mt hng nhìn. UML có t!t c 9 lo i bi u  khác nhau c s dng trong nhng s kt hp khác nhau cung c!p t!t c các hng nhìn c a mt h thng. Ph n t mô hình hóa (model element): Các khái nim c s dng trong các bi u  c g#i là các phn t mô hình, th hin các khái nim hng i tng quen thuc. Ví d nh lp, i tng, thông ip c'ng nh các quan h gia các khái nim này, bao gm c liên kt, ph thuc, khái quát hóa. Mt phn t mô hình thng c s dng trong nhi u bi u  khác nhau, nhng nó luôn luôn có ch* mt ý ngh+a và mt kí hiu. C ch chung: C ch chung cung c!p thêm nhng li nhn xét b sung, các thông tin c'ng nh các quy t"c ng pháp chung v mt phn t mô hình; chúng còn cung c!p thêm các c ch có th m rng ngôn ng UML cho phù hp vi mt phng pháp xác nh (mt quy trình, mt t chc hoc mt ngi dùng). 3.3. Hng nhìn (View) Mô hình hóa mt h thng phc t p là mt vic làm khó kh(n. Lý tng nh!t là toàn b h thng c miêu t ch* trong mt bn v&, mt bn v& nh ngh+a mt cách rõ ràng và m ch l c toàn b h thng, mt bn v& ngoài ra l i còn d giao tip và d hi u. Mc dù vy, thng thì ây là chuyn b!t kh thi. Mt bn v& không th n"m b"t t!t c các thông tin cn thit miêu t mt h thng. Mt h thng cn 23
  24. phi c miêu t vi mt lo t các khía c nh khác nhau: V mt chc n(ng (c!u trúc t+nh c a nó c'ng nh các tng tác ng), v mt phi chc n(ng (yêu cu v thi gian, v  áng tin cy, v quá trình thc thi, v.v. và v.v.) c'ng nh v khía c nh t chc (t chc làm vic, ánh x nó vào các code module, ). Vì vy mt h thng thng c miêu t trong mt lo t các hng nhìn khác nhau, m.i hng nhìn s& th hin mt bc nh ánh x c a toàn b h thng và ch* ra mt khía c nh riêng c a h thng. Hình 3.1- Các View trong UML M.i mt hng nhìn c miêu t trong mt lo t các bi u , cha ng các thông tin nêu bt khía c nh c bit ó c a h thng. Trong thc t khi phân tích và thit k r!t d xy ra s trùng lp thông tin, cho nên mt bi u  trên tht t có th là thành phn c a nhi u hng nhìn khác nhau. Khi nhìn h thng t nhi u hng nhìn khác nhau, t i mt thi i m có th ngi ta ch* tp trung vào mt khía c nh c a h thng. Mt bi u  trong mt hng nhìn c th nào ó cn phi  n gin t o i u kin giao tip d dàng, dính li n vi các bi u  khác c'ng nh các hng nhìn khác, làm sao cho bc tranh toàn cnh c a h thng c miêu t b%ng s kt hp t!t c các thông tin t t!t c các hng nhìn. Mt bi u  cha các kí hiu hình h#c mô t các phn t mô hình c a h thng. UML có t!t c các hng nhìn sau: Hng nhìn Use case (use case view) : ây là hng nhìn ch* ra khía c nh chc n(ng c a mt h thng, nhìn t hng tác nhân bên ngoài. Hng nhìn logic (logical view): ch* ra chc n(ng s& c thit k bên trong h thng nh th nào, qua các khái nim v c!u trúc t+nh c'ng nh ng x ng c a h thng. Hng nhìn thành phn (component view): ch* ra khía c nh t chc c a các thành phn code. Hng nhìn song song (concurrency view): ch* ra s tn t i song song/ trùng hp trong h thng, hng n v!n giao tip và ng b hóa trong h thng. Hng nhìn tri n khai (deployment view): ch* ra khía c nh tri n khai h thng vào các kin trúc vt lý (các máy tính hay trang thit b c coi là tr m công tác). Khi b n ch#n công c v& bi u , hãy ch#n công c nào t o i u kin d dàng chuy n t hng nhìn này sang hng nhìn khác. Ngoài ra, cho mc ích quan sát mt chc n(ng s& c thit k nh th nào, công c này c'ng phi t o i u kin d dàng cho b n chuy n sang hng nhìn Use case ( xem chc n(ng này c miêu t nh th nào t phía tác nhân), hoc chuy n sang hng nhìn tri n khai ( xem chc n(ng này s& c phân b ra sao trong c!u trúc vt lý - Nói mt cách khác là nó có th n%m trong máy tính nào). 24
  25. Ngoài các hng nhìn k trên, ngành công nghip phn m m còn s dng c các hng nhìn khác, ví d hng nhìn t+nh- ng, hng nhìn logic-vt lý, quy trình nghip v (workflow) và các hng nhìn khác. UML không yêu cu chúng ta phi s dng các hng nhìn này, nhng ây c'ng chính là nhng hng nhìn mà các nhà thit k c a UML ã ngh+ ti, nên có kh n(ng nhi u công c s& da trên các hng nhìn ó. 3.3.1. Hng nhìn Use case (Use case View) Hng nhìn Use case miêu t chc n(ng c a h thng s& phi cung c!p do c tác nhân t bên ngoài mong i. Tác nhân là thc th tng tác vi h thng; ó có th là mt ngi s dng hoc là mt h thng khác. Hng nhìn Use case là hng nhìn dành cho khách hàng, nhà thit k, nhà phát tri n và ngi th nghim; nó c miêu t qua các bi u  Use case (use case diagram) và th*nh thong c'ng bao gm c các bi u  ho t ng (activity diagram). Cách s dng h thng nhìn chung s& c miêu t qua mt lo t các Use case trong hng nhìn Use case, ni m.i mt Use case là mt li miêu t mang tính c thù cho mt tính n(ng c a h thng (có ngh+a là mt chc n(ng c mong i). Hng nhìn Use case mang tính trung tâm, bi nó t ra ni dung thúc $y s phát tri n các hng nhìn khác. Mc tiêu chung c a h thng là cung c!p các chc n(ng miêu t trong hng nhìn này – cùng vi mt vài các thuc tính mang tính phi chc n(ng khác – vì th hng nhìn này có nh hng n t!t c các hng nhìn khác. Hng nhìn này c'ng c s dng th$m tra (verify) h thng qua vic th nghim xem hng nhìn Use case có úng vi mong i c a khách hàng (H i: "ây có phi là th b n mun") c'ng nh có úng vi h thng va c hoàn thành (H i: "H thng có ho t ng nh ã c t?”). 3.3.2. Hng nhìn logic (Logical View) Hng nhìn logic miêu t phng thc mà các chc n(ng c a h thng s& c cung c!p. Ch yu nó c s dng cho các nhà thit k và nhà phát tri n. Ngc l i vi hng nhìn Use case, hng nhìn logic nhìn vào phía bên trong c a h thng. Nó miêu t k c c!u trúc t+nh (lp, i tng, và quan h) c'ng nh s tng tác ng s& xy ra khi các i tng gi thông ip cho nhau cung c!p chc n(ng ã nh s2n. Hng nhìn logic nh ngh+a các thuc tính nh trng tn (persistency) hoc song song (concurrency), c'ng nh các giao din c'ng nh c!u trúc ni t i c a các lp. C!u trúc t+nh c miêu t b%ng các bi u  lp (class diagram) và bi u  i tng (object diagram). Quá trình mô hình hóa ng c miêu t trong các bi u  tr ng thái (state diagram), bi u  trình t (sequence diagram), bi u  tng tác (collaboration diagram) và bi u  ho t ng (activity diagram). 3.3.3. Hng nhìn thành ph n (Component View) Là mt li miêu t c a vic thc thi các modul c'ng nh s ph thuc gia chúng vi nhau. Nó thng c s dng cho nhà phát tri n và thng bao gm nhi u bi u  thành phn. Thành phn  ây là các modul lnh thuc nhi u lo i khác nhau, s& c ch* ra trong bi u  cùng vi c!u trúc c'ng nh s ph thuc c a chúng. Các thông tin b sung v các thành phn, ví d nh v trí c a tài nguyên (trách nhim i vi mt thành phn), hoc các thông tin qun tr khác, ví d nh mt bn báo cáo v tin trình c a công vic c'ng có th c b sung vào ây. 25
  26. 3.3.4. Hng nhìn song song (Concurrency View) Hng nhìn song song nh"m ti s chia h thng thành các qui trình (process) và các b x lý (processor). Khía c nh này, vn là mt thuc tính phi chc n(ng c a h thng, cho phép chúng ta s dng mt cách hu hiu các ngun tài nguyên, thc thi song song, c'ng nh x lý các s kin không ng b t môi trng. Bên c nh vic chia h thng thành các ti u trình có th c thc thi song song, hng nhìn này c'ng phi quan tâm n v!n giao tip và ng b hóa các ti u trình ó. Hng nhìn song song giành cho nhà phát tri n và ngi tích hp h thng, nó bao gm các bi u  ng (tr ng thái, trình t, tng tác và ho t ng) cùng các bi u  thc thi (bi u  thành phn và bi u  tri n khai). 3.3.5. Hng nhìn tri n khai (Deployment View) Cui cùng, hng nhìn tri n khai ch* cho chúng ta s  tri n khai v mt vt lý c a h thng, ví d nh các máy tính c'ng nh các máy móc và s liên kt gia chúng vi nhau. Hng nhìn tri n khai giành cho các nhà phát tri n, ngi tích hp c'ng nh ngi th nghim h thng và c th hin b%ng các bi u  tri n khai. Hng nhìn này c'ng bao gm s ánh x các thành phn c a h thng vào c!u trúc vt lý; ví d nh chng trình nào hay i tng nào s& c thc thi trên máy tính nào. 3.4. Biu $ (diagram) Bi u  là các hình v& bao gm các ký hiu phn t mô hình hóa c s"p xp minh h#a mt thành phn c th hay mt khía c nh c th c a h thng. Mt mô hình h thng thng có nhi u lo i bi u , m.i lo i có nhi u bi u  khác nhau. Mt bi u  là mt thành phn c a mt hng nhìn c th ; và khi c v& ra, nó thng thng c'ng c xp vào mt hng nhìn. Mt khác, mt s lo i bi u  có th là thành phn c a nhi u hng nhìn khác nhau, tùy thuc vào ni dung c a bi u . Phn sau miêu t các khái nim c(n bn n%m %ng sau m.i lo i bi u . T!t c các chi tit v bi u , ng cnh c a chúng, ý ngh+a chính xác c a chúng và s tng tác gia chúng vi nhau c miêu t chi tit trong các chng sau (mô hình i tng – mô hình ng). Các bi u  l!y làm ví d  ây c l!y ra t nhi u lo i h thng khác nhau ch* ra nét phong phú và kh n(ng áp dng rng kh"p c a ULM. 3.4.1. Bi u  Use case (Use Case Diagram) Mt bi u  Use case ch* ra mt s lng các tác nhân ngo i cnh và mi liên kt c a chúng i vi Use case mà h thng cung c!p (nhìn hình 3.2). Mt Use case là mt li miêu t c a mt chc n(ng mà h thng cung c!p. Li miêu t Use case thng là mt v(n bn tài liu, nhng kèm theo ó c'ng có th là mt bi u  ho t ng. Các Use case c miêu t duy nh!t theo hng nhìn t ngoài vào c a các tác nhân (hành vi c a h thng theo nh s mong i c a ngi s dng), không miêu t chc n(ng c cung c!p s& ho t ng ni b bên trong h thng ra sao. Các Use case nh ngh+a các yêu cu v mt chc n(ng i vi h thng. Các bi u  Use case s& c miêu t chi tit hn trong chng 4 (Use case). 26
  27. Hình 3.2- Bi u  use case c a mt công ty bo hi m 3.4.2. Bi u  lp (Class Diagram) Mt bi u  lp ch* ra c!u trúc t+nh c a các lp trong h thng (nhìn hình 3.3). Các lp là i din cho các “vt” c x lý trong h thng. Các lp có th quan h vi nhau trong nhi u d ng thc: liên kt (associated - c ni kt vi nhau), ph thuc (dependent - mt lp này ph thuc vào lp khác), chuyên bit hóa (specialized - mt lp này là mt kt qu chuyên bit hóa c a lp khác), hay óng gói ( packaged - hp vi nhau thành mt n v). T!t c các mi quan h ó u c th hin trong bi u  lp, i kèm vi c!u trúc bên trong c a các lp theo khái nim thuc tính (attribute) và th tc (operation). Bi u  c coi là bi u  t+nh theo phng din c!u trúc c miêu t  ây có hiu lc t i b!t k0 thi i m nào trong toàn b vòng i h thng. Mt h thng thng s& có mt lo t các bi u  lp – ch)ng phi bao gi t!t c các bi u  lp này c'ng c nhp vào mt bi u  lp tng th duy nh!t – và mt lp có th tham gia vào nhi u bi u  lp. Bi u  lp c miêu t chi tit trong chng sau. Hình 3.3 - Bi u  lp cho mt giao dch Tài chính 27
  28. 3.4.3. Bi u  i tng (Object Diagram) Bi u  i tng không quan tr#ng b%ng bi u  lp, chúng có th c s dng ví d hóa mt bi u  lp phc t p, ch* ra vi nhng thc th c th và nhng mi quan h nh th thì bc tranh toàn cnh s& ra sao. Mt bi u  i tng thng thng c s dng làm mt thành phn c a mt bi u  cng tác (collaboration), ch* ra li ng x ng gia mt lo t các i tng. Hình 3.4 - Bi u  lp và bi u  i tng th hin c a lp 3.4.4. Bi u  trng thái (State Diagram) Mt bi u  tr ng thái thng là mt s b sung cho li miêu t mt lp. Nó ch* ra t!t c các tr ng thái mà i tng c a lp này có th có, và nhng s kin (event) nào s& gây ra s thay i tr ng thái (hình 3.5). Mt s kin có th xy ra khi mt i tng t gi thông ip n cho nó - ví d nh thông báo r%ng mt khong thi gian c xác nh ã qua i – hay là mt s i u kin nào ó ã c th a mãn. Mt s thay i tr ng thái c g#i là mt s chuyn i trng thái (State Transition). Mt chuy n i tr ng thái c'ng có th có mt hành ng liên quan, xác nh i u gì phi c thc hin khi s chuy n i tr ng thái này din ra. Bi u  tr ng thái không c v& cho t!t c các lp, mà ch* riêng cho nhng lp có mt s lng các tr ng thái c nh ngh+a rõ ràng và hành vi c a lp b nh hng và thay i qua các tr ng thái khác nhau. Bi u  tr ng thái c'ng có th c v& cho h thng tng th . Bi u  tr ng thái c miêu t chi tit hn trong chng sau (Mô hình ng). Hình 3.5- Mt ví d v bi u  tr ng thái 28
  29. 3.4.5. Bi u  trình t (Sequence Diagram) Mt bi u  trình t ch* ra mt cng tác ng gia mt lo t các i tng (xem hình 3.6). Khía c nh quan tr#ng c a bi u  này là ch* ra trình t các thông ip (message) c gi gia các i tng. Nó c'ng ch* ra trình t tng tác gia các i tng, i u s& xy ra t i mt thi i m c th nào ó trong trình t thc thi c a h thng. Các bi u  trình t cha mt lo t các i tng c bi u din b%ng các ng th)ng ng. Trc thi gian có hng t trên xung di trong bi u , và bi u  ch* ra s trao i thông ip gia các i tng khi thi gian trôi qua. Các thông ip c bi u din b%ng các ng g ch ngang g"n li n vi m'i tên (bi u th thông ip) ni li n gia nhng ng th)ng ng th hin i tng. Trc thi gian cùng nhng li nhn xét khác thng s& c a vào phn l c a bi u . Hình 3.6 - Mt bi u  trình t cho Print Server 3.4.6. Bi u  cng tác (Collaboration Diagram) Mt bi u  cng tác ch* ra mt s cng tác ng, c'ng ging nh mt bi u  trình t. Thng ngi ta s& ch#n hoc dùng bi u  trình t hoc dùng bi u  cng tác. Bên c nh vic th hin s trao i thông ip ( c g#i là tng tác), bi u  cng tác ch* ra các i tng và quan h c a chúng (nhi u khi c g#i là ng cnh). Vic nên s dng bi u  trình t hay bi u  cng tác thng s& c quyt nh theo nguyên t"c chung sau: Nu thi gian hay trình t là yu t quan tr#ng nh!t cn phi nh!n m nh thì hãy ch#n bi u  trình t; nu ng cnh là yu t quan tr#ng hn, hãy ch#n bi u  cng tác. Trình t tng tác gia các i tng c th hin trong c hai lo i bi u  này. Bi u  cng tác c v& theo d ng mt bi u  i tng, ni mt lo t các i tng c ch* ra cùng vi mi quan h gia chúng vi nhau (s dng nhng ký hiu nh trong bi u  lp/ bi u  i tng). Các m'i tên c v& gia các i tng ch* ra dòng chy thông ip gia các i tng. Các thông ip thng c ính kèm theo các nhãn (label), mt trong nhng chc n(ng c a nhãn là ch* ra th t mà các thông ip c gi i. Nó c'ng có th ch* ra các i u kin, ch* ra nhng giá tr c tr v , v.v Khi ã làm quen vi cách vit nhãn, mt nhà phát tri n có th #c bi u  cng tác và tuân th theo dòng thc thi c'ng nh s trao i thông ip. Mt bi u  cng tác c'ng có th cha c các i tng tích cc (active objects), ho t ng song song vi các i tng tích cc khác (hình 3.7). Bi u  cng tác c miêu t chi tit trong chng sau. 29
  30. Hình 3.7 - Mt bi u  công tác c a mt printer server 3.4.7. Bi u  hot ng (Activity Diagram) Mt bi u  ho t ng ch* ra mt trình t ln lt c a các ho t ng (activity) (hình 3.8). Bi u  ho t ng thng c s dng miêu t các ho t ng c thc hin trong mt th tc, mc dù nó c'ng có th c s dng miêu t các dòng chy ho t ng khác, ví d nh trong mt Use case hay trong mt trình t tng tác. Bi u  ho t ng bao gm các tr ng thái hành ng, cha c t c a mt ho t ng cn phi c thc hin (mt hành ng - action). Mt tr ng thái hành ng s& qua i khi hành ng c thc hin xong (khác vi bi u  tr ng thái: mt tr ng thái ch* chuy n sang tr ng thái khác sau khi ã xy ra mt s kin rõ ràng !). Dòng i u khi n  ây ch y gia các tr ng thái hành ng liên kt vi nhau. Bi u  còn có th ch* ra các quyt nh, các i u kin, c'ng nh phn thc thi song song c a các tr ng thái hành ng. Bi u  ngoài ra còn có th cha các lo i c t cho các thông ip c gi i hoc c nhn v , trong t cách là thành phn c a hành ng c thc hin. Hình 3.8 - Mt bi u  ho t ng cho mt printer server 3.4.8. Bi u  thành ph n (Component Diagram) Mt bi u  thành phn ch* ra c!u trúc vt lý c a các dòng lnh (code) theo khái nim thành phn code. Mt thành phn code có th là mt tp tin source code, mt thành phn nh phân (binary) hay mt thành phn thc thi c (executable). Mt thành phn cha các thông tin v các lp logic hoc các lp 30
  31. mà nó thi hành, nh th có ngh+a là nó t o ra mt ánh x t hng nhìn logic vào hng nhìn thành phn. Bi u  thành phn c'ng ch* ra nhng s ph thuc gia các thành phn vi nhau, tr giúp cho công vic phân tích hiu ng mà mt thành phn c thay i s& gây ra i vi các thành phn khác. Thành phn c'ng có th c miêu t vi b!t k0 lo i giao din nào mà chúng bc l, ví d nh giao din OLE/COM; và chúng có th c nhóm góp l i vi nhau thành tng gói (package). Bi u  thành phn c s dng trong công vic lp trình c th (xem hình 3.9). Hình 3.9 - Mt bi u  thành phn ch* ra s ph thuc gia các thành phn mã 3.4.9. Bi u  tri n khai (Deployment Diagram) Bi u  tri n khai ch* ra kin trúc vt lý c a phn cng c'ng nh phn m m trong h thng. B n có th ch* ra tng máy tính c th và tng trang thit b c th (node) i kèm s ni kt gia chúng vi nhau, b n c'ng có th ch* ra lo i c a các mi ni kt ó. Bên trong các nút m ng (node), các thành phn thc thi c c'ng nh các i tng s& c xác nh v trí ch* ra nhng phn m m nào s& c thc thi t i nhng nút m ng nào. B n c'ng có th ch* ra s ph thuc gia các thành phn. Bi u  tri n khai ch* ra hng nhìn tri n khai, miêu t kin trúc vt lý tht s c a h thng. ây là mt hng nhìn r!t xa li miêu t duy chc n(ng c a hng nhìn Use case. Mc dù vy, trong mt mô hình tt, ngi ta có th ch* t!t c nhng con ng dn t mt nút m ng trong mt kin trúc vt lý cho ti nhng thành phn c a nó, cho ti lp mà nó thc thi, cho ti nhng tng tác mà các i tng c a lp này tham gia ri cui cùng, tin ti mt Use case. R!t nhi u hng nhìn khác nhau c a h thng c s dng ng thi t o ra mt li miêu t th!u áo i vi h thng trong s tng th c a nó. 31
  32. Hình 3.10 - Mt bi u  tri n khai ch* ra kin trúc vt lý c a h thng 3.5. Phn t% mô hình (model element) Các khái nim c s dng trong các bi u  c g#i là các phn t mô hình (model element). Mt phn t mô hình c nh ngh+a vi ng ngh+a (semantic), ó là mt nh ngh+a v bn ch!t phn t hay là mt xác nh ý ngh+a chính xác xem nó s& th hin i u gì trong nhng li kh)ng nh rõ ràng. M.i phn t mô hình còn có mt s miêu t trc quan, mt ký hiu hình h#c c s dng miêu t phn t này trong bi u . Mt phn t có th tn t i trong nhi u d ng bi u  khác nhau, nhng c'ng có nhng nguyên t"c xác nh lo i phn t nào có th c ch* ra trong lo i bi u  nào. Mt vài ví d cho phn t vô hình là lp, i tng, tr ng thái, nút m ng, gói, thành phn (hình 3.11). Hình 3.11- Các thành phn mô hình thng dùng Hình 3.12 ch* ra mt vài ví d c a mi quan h, ây c'ng là mt d ng phn t mô hình, chúng c s dng ni các phn t mô hình khác vi nhau. Mt vài lo i quan h áng chú ý: 32
  33. • Ni kt (Association) : ni các phn t và các thc th ni (link). • Khái quát hóa (Generalization): còn c g#i là tính tha k, có ý ngh+a r%ng mt phn t này có th là mt s chuyên bit hóa c a mt phn t khác. • S ph thu c (Dependency): ch* ra r%ng mt phn t này ph thuc trong mt phng thc nào ó vào mt phn t khác. • Kt t p (Aggregation): Mt d ng c a ni kt, trong ó mt phn t này cha các phn t khác. Ngoài ra còn có các phn t mô hình khác nh thông ip (Message), hành ng (action) và khuôn mu (stereotype). T!t c các phn t mô hình, ý ngh+a c a chúng c'ng nh nhng ng dng u c gii thích k, l4ng hn trong các chng sau. Hình 3.12 – các ví d v vài lo i quan h 3.6. C ch! chung (General Mechanism) UML th hin mt s các c ch chung trong t!t c các bi u  nh%m mc ích cung c!p thêm các thông tin b sung, thng ây là nhng thông tin không th c th hin qua các chc n(ng và kh n(ng c bn c a các phn t mô hình. 3.6.1. Trang trí (Adornment) Các s trang trí trc quan có th c s dng kèm thêm vào các phn t mô hình trong bi u . ng tác trang trí b sung thêm ng ngh+a cho phn t. Mt ví d là k, thut c s dng phân bit mt lo i thc th (lp) và mt thc th . Khi th hin mt lo i, tên phn t s& c in m. Khi c'ng chính phn t ó th hin ch* mt thc th c a lo i này, tên phn t s& c g ch di và có th c coi là c tên c a thc th ln tên c a lo i ó. Mt hình ch nht th hin lp vi tên c in m s& th hin mt lp và tên c g ch di s& th hin mt i tng, ây là mt ví d tiêu bi u c a adornment. C'ng nguyên t"c ó c áp dng cho các nút m ng, khi ký hiu nút c in m là th hin mt lo i nút, ví d nh máy in (Printer), khi ký hiu c g ch di là th hin mt thc th c a lp nút m ng này ví d John’s HP 5MP-printer. Các ki u trang trí khác là các li c t v s lng trong quan h (multiplicity), ni s lng là mt s hay mt khong s ch* ra bao nhiêu thc th c a các lo i thc th c ni vi nhau s& có th tham gia trong mt quan h. Kí hiu trang trí c vit gn phn t mô hình c mà nó b sung thông tin (hình 3.13). 33
  34. Hình 3.13 - Phân bit gia lp và i tng b%ng trang trí 3.6.2. Ghi chú (Note) Cho dù mt ngôn ng mô hình hóa có c m rng n bao nhiêu ch(ng na, nó c'ng không th nh ngh+a t!t c m#i vic. Nh%m t o i u kin b sung thêm cho mt mô hình nhng thông tin không th c th hin b%ng phn t mô hình, UML cung c!p kh n(ng kèm theo li ghi chú. Mt li ghi chú có th c b!t k0 ni nào trong b!t k0 bi u  nào, và nó có th cha b!t k0 lo i thông tin nào. D ng thông tin c a bn thân nó là chu.i ký t (string), không c UML din gii. Li ghi chú thng i kèm theo mt s các phn t mô hình trong bi u , c ni b%ng mt ng ch!m ch!m, ch* ra phn t mô hình nào c chi tit hóa hoc c gii thích (hình 3.14). Mt li ghi chú thng cha li nhn xét hoc các câu h i c a nhà t o mô hình, ví d li nh"c nh cn phi x lý v!n nào ó trong thi gian sau này. Li ghi chú c'ng có th cha các thông tin d ng khuôn mu (stereotype). Hình 3.14 - Mt ví d v ghi chú 3.6.3. c t (Specification) Các phn t mô hình có thuc tính (Property) cha các giá tr d liu v phn t này. Mt thuc tính c nh ngh+a vi mt tên và mt giá tr ính kèm (tagged value), thng chúng  trong mt d ng thông tin c xác nh trc, ví d nh s nguyên hay chu.i kí t. Có mt lo t thuc tính ã c nh ngh+a trc, ví d nh tài liu (docement), trách nhim (Responsibility), s trng tn (Persistence) và tính song song (Conccurency). Thuc tính c s dng thêm các c t b sung v mt phn t, nhng thông tin bình thng ra không c th hin trong bi u . Ví d tiêu bi u là mt lp s& c miêu t b%ng mt tài liu v(n bn nh!t nh, cung c!p nhi u thông tin hn v trách nhim c'ng nh kh n(ng c a lp này. Lo i c t này bình thng ra không c ch* ra trong các bi u , nhng thng thì trong a phn các công c mô hình hóa chúng s& có th c truy cp qua hành ng nh!p nút vào mt phn t nào ó, hiu qu là mt ca s cha c t vi t!t c các thuc tính s& c ch* ra (Hình 3.15). 34
  35. Hình 3.15- Mt ca s c t th hin các c tính c a class 3.7. M& r'ng UML UML có th c m rng hoc có th c sa i phù hp vi mt phng pháp c bit, mt t chc c th hay mt ngi dùng c th . Chúng ta s& bàn lun s qua n ba c ch m rng UML: khuôn mu (stereotype), giá tr ính kèm (tagged value) và h n ch (constraint). 3.7.1. Khuôn mu (Stereotype) C ch m rng khuôn mu nh ngh+a mt lo i phn t mô hình mi da trên mt phn t mô hình ã tn t i. Khuôn mu có th c coi là "tng t" nh mt phn t ã có s2n, cng thêm phn quy nh ng ngh+a (semantic) riêng bit không có trong phn t gc kia. Khuôn mu c a mt phn t có th c s dng trong cùng tình hung nh phn t c(n bn. Khuôn mu da trên t!t c các lo i phn t mô hình s2n có - lp, nút m ng, thành phn, c'ng nh các mi quan h nh liên kt, khái quát hóa, s ph thuc. Ngôn ng UML có cha mt s lng ln các khuôn mu c nh ngh+a s2n và chúng c s dng sa i các phn t mô hình s2n có, thay cho vic phi nh ngh+a hoàn toàn mi. C ch này giúp gìn gi tính n gin c a n n tng ngôn ng UML. Khuôn mu c miêu t qua vic a tên c a chúng vào trong mt cp ký t ngoc nh#n >, theo nh trong hình 3.16. Ký t ngoc nh#n này c g#i là guillements. Khuôn mu c'ng có th có kí hiu hình h#c riêng. Mt phn t c a mt lo i khuôn mu c th có th c th hin bi tên khuôn mu i kèm ký hiu hình h#c mô t phn t c(n bn, hay là s kt hp c a c hai yu t này. B!t k0 khi nào mt phn t mô hình c ni kt vi mt tên hoc kí hiu khuôn mu, ta s& #c " ây là mt lo i phn t thuc lo i khuôn mu ". Ví d, mt lp vi > s& c g#i là "mt lp trong d ng khuôn mu ca s", ý ngh+a c a nó là mt d ng lp ca s. Nhng thuc tính c th mà mt lp ca s cn phi có s& c nh ngh+a khi khuôn mu này c nh ngh+a. 35
  36. Nh ã nói, khuôn mu là mt c ch m rng xu!t s"c, là mt c ch ng(n cho ngôn ng UML không tr nên quá phc t p, mc dù vn cho phép thc hin s m rng và sa i cn thit. a phn các phn t mô hình mi mà b n cn n u có mt khuôn mu n n tng trong ngôn ng UML. Mt khuôn mu sau ó có th c s dng cng thêm các ng ngh+a cn thit, nh%m mc ích nh ngh+a nên các phn t mô hình còn thiu. Hình 3.16- Customer là mt lp khuôn mu > 3.7.2. Giá tr ính kèm (Tagged Value) Nh ã nói, các phn t mô hình có th có các thuc tính cha mt cp tên-giá tr v bn thân chúng (hình 3.17). Các thuc tính này c'ng còn c g#i là các gía tr ính kèm. UML có cha mt lo t các thuc tính c nh ngh+a trc, nhng k c ngi s dng c'ng có th nh ngh+a ra các thuc tính mi cha các thông tin b sung v các phn t mô hình. M#i hình d ng thông tin u có th c ính kèm vào phn t: các thông tin chuyên bit v phng pháp, các thông tin c a nhà qun tr v tin trình mô hình hóa, các thông tin c s dng bi các công c khác, ví d nh các công c t o code, hay b!t k0 mt lo i thông tin nào mà ngi s dng mun ính kèm vào phn t mô hình. Hình 3.17 - Mt ví d v Tagged Value 3.7.3. Hn ch (Constraint) Mt s h n ch là mt s gii h n v s s dng hoc ý ngh+a c a mt phn t. S h n ch hoc s& c khai báo trong công c và c s dng nhi u ln trong r!t nhi u bi u  khác nhau, hay c nh ngh+a và s dng trong ch* mt bi u , theo nh nhu cu. Hình 3.18 ch* ra mi quan h ni kt gia nhóm các công dân ln tui và lp con ngi, ch* ra r%ng nhóm công dân có th có nhi u ngi liên quan. Mc dù vy, miêu t r%ng ch* nhng ngi nào ln hn 60 tui mi có th tham gia vào nhóm này, ngi ta nh ngh+a mt s h n ch, h n h-p tiêu chu$n tham gia i vi ch* nhng ngi nào mà thuc tính tui tác có giá tr ln hn 60. nh ngh+a này s& h n ch s lng nhng ngi c s dng trong mi quan h. Nu không có nó, ngi ta r!t d hi u lm khi din t bi u . Trong trng hp ti t, nó có th dn n s thc thi sai trái c a h thng. 36
  37. Trong trng hp này, h n ch c nh ngh+a và ng dng trc tip trong chính bi u  mà nó c cn ti. Nhng nhìn chung thì h n ch c'ng có th c nh ngh+a vi tên cùng li c t riêng, ví d nh: "công dân già" và "ngi có tui ln hn 60", và h n ch này s& c s dng trong nhi u bi u  khác nhau. UML có cha mt lo t các h n ch c nh ngh+a s2n, chúng c miêu t chi tit trong các chng sau. Hình 3.18- Mt ràng buc h n ch i tng Person góp phn vào quan h kt hp 3.8. Mô hình hóa vi UML Khi xây dng h thng vi UML, ngi ta không ch* xây dng duy nh!t mt mô hình. S& có nhi u mô hình khác nhau trong nhng giai o n phát tri n khác nhau, nh"m n các mc ích khác nhau. Trong giai o n phân tích, mc ích c a mô hình là n"m b"t t!t c các yêu cu i vi h thng và mô hình hóa n n tng bao gm các lp và các cng tác " i thc". Trong giai o n thit k, mc ích c a mô hình là m rng mô hình phân tích, t o thành mt gii pháp k, thut kh thi, có chú ý n môi trng c a công vic xây dng (vit code). Trong giai o n xây dng code, mô hình chính là nhng dòng code ngun tht s, c vit nên và c dch thành các chng trình. Và cui cùng, trong giai o n tri n khai, mt li miêu t s& gii thích h thng cn c tri n khai ra sao trong kin trúc vt lý. Kh n(ng theo dõi xuyên sut nhi u giai o n và nhi u mô hình khác nhau c m bo qua các thuc tính hoc các mi quan h nâng cao (refinement). Mc dù ó là các mô hình khác nhau, nhng chúng u c xây dng nên m rng ni dung c a các mô hình  giai o n trc. Chính vì th, t!t c các mô hình u cn phi c gìn gi tt ngi ta có th d dàng i ngc l i, m rng ra hay tái thit lp mô hình phân tích khi u và ri dn dn tng bc a các s thay i vào mô hình thit k c'ng nh các mô hình xây dng (hình 3.19). Hình 3.19- Mt h thng c mô t trong nhi u mô hình 37
  38. Bn thân ngôn ng UML không ph thuc vào giai o n, có ngh+a là c'ng nhng nguyên t"c ngôn ng ó và c'ng nhng bi u  ó c s dng mô hình hóa nhng s vic khác nhau trong nhng giai o n khác nhau. Nhà thit k n"m quy n quyt nh xem mt mô hình s& phi thay i nh%m t c nhng mc ích nào và bao trùm nhng ph m vi nào. Ngôn ng mô hình hóa ch* cung c!p kh n(ng t o ra các mô hình trong mt phong cách m rng và nh!t quán. Khi mô hình hóa b%ng ngôn ng UML, toàn b công vic cn phi c thc hin theo mt phng pháp hay mt qui trình, xác nh rõ nhng bc công vic nào phi c tin hành và chúng phi c thc thi ra sao. Mt qui trình nh vy thng s& chia công vic ra thành các vòng lp k tip, m.i vòng lp bao gm các công vic: phân tích yêu cu/ phân tích/ thit k/ th c hin/ trin khai. Mc dù vy, c'ng có mt quy trình nh hn cp ti ni dung c a vic mô hình hóa. Bình thng ra, khi sn xu!t mt mô hình hoc sn xu!t ch* mt bi u  duy nh!t, công vic s& b"t u b%ng vic thu thp mt nhóm thích hp các cá nhân khác nhau, trình bày v!n và mc tiêu; h# cng tác cho mt giai o n hi tho khoa h#c và phác tho, trao i nhng sáng kin và ý tng v mô hình có th . Công c c s dng trong giai o n này là ht sc khác bit và mang tính ngu hng - thng là gi!y dán post it hay bng tr"ng. Công vic c quyt nh chng nào nhng ngi tham gia có cm giác h# ã có c mt n n tng thc tin cho mt mô hình (ging nh mt tiêu ). Kt qu sau ó s& c a vào mt công c, mô hình tiêu c t chc, và sau ó mt bi u  thc s s& c t o dng nên, phù hp vi nhng quy nh c a ngôn ng mô hình hóa. Sau ó, mô hình c chi tit hóa qua nhng công vic mang tính vòng lp, càng ngày càng có nhi u chi tit v gii pháp c phát hin, c d liu hóa và c b sung. Khi ã có nhi u thông tin hn c thu thp v v!n c'ng nh gii pháp c a nó, tiêu ban u dn dn tr thành mt li chu$n oán cho mt mô hình có kh n(ng s dng. Khi mô hình ã gn hoàn thin, mt s tích hp và th$m nh s& c thc hin, dn ti vic mô hình hoc bi u  s& c tích hp vi nhng mô hình và bi u  khác trong cùng d án m bo s nh!t quán. Mô hình sau ó c'ng c ki m tra l i ch"c ch"n nó ang gii quyt úng v!n cn gii quyt (hình 3.20). 38
  39. Hình 3.20 - Mt tin trình cho công vic mô hình hoá thc t Cui cùng, mô hình s& c thc thi và tri n khai thành mt lo t các nguyên mu (prototype), nguyên mu này s& c ki m tra tìm khim khuyt. Các khim khuyt bao gm k c các chc n(ng còn thiu, s thc hin ti t hay phí sn xu!t và phát tri n quá cao. Nhng khim khuyt thng s& ép nhà phát tri n rà i rà l i công vic c a mình kh"c phc chúng. Nu v!n là quá ln, nhà phát tri n có th s& i ngc l i t!t c các bc công vic c a mình cho ti tn giai o n s phác u tiên. Nu các v!n này không ln, nhà phát tri n có l& ch* cn thay i mt vài thành phn trong t chc hoc c t c a mô hình. Xin nh r%ng bc t o nguyên mu không th c thc hin ngay lp tc sau khi hoàn t!t bi u ; nó ch* nên c thc hin khi ã có mt s lng ln các bi u  liên quan. Nguyên mu sau này có th c vt i, có th c t o dng nên ch* nh%m mc ích ki m tra, hoc là nu bc t o nguyên mu này thành công, nó s& tr thành mt vòng lp trong quy trình phát tri n tht s. 39
  40. 3.9. Công c( (Tool) S dng mt ngôn ng mô hình hóa phc t p và rng m nh UML cn thit s tr giúp c a công c. Mc dù phác tho u tiên c a mt mô hình có th c thc hin b%ng bng tr"ng cùng gi!y và mc, nhng công vic bo trì, ng b hóa và m bo s nh!t quán trong mt lo t các bi u  khác nhau thng l i không th tr thành kh thi nu không có công c. Th trng công c mô hình hóa ã dng trong mc  s khi sut mt thi gian dài k t khi xu!t hin ý tng u tiên v các chng trình tr giúp cho vic t o chng trình. R!t nhi u công c trong thc t ch* thông minh hn các chng trình v& mt chút, s dng mt vài quy ch ki m tra tính nh!t quán hoc mt vài kin thc v phng pháp và ngôn ng mô hình hóa. Mc dù ã có mt vài bc tin nh!t nh và nhi u công c hôm nay ã ti gn sáng kin khi th y kia nhi u hn (Rational Rose), nhng th trng vn còn không ít công c cha c g#t gi'a, vn còn cha l.i hoc nhng nét k0 quc, k c nhng v!n n gin nh copy và dán. Nhng công c này còn h n ch  phng din r%ng t!t c b#n chúng u có ngôn ng mô hình hóa riêng, hay ít nh!t thì c'ng có nhng nh ngh+a riêng c a chúng v ngôn ng này. Cùng vi s ra i c a ngôn ng UML, các nhà cung c!p công c mô hình hóa gi ây có th dành nhi u thi gian hn cho vic nâng c!p công c, bi h# không cn phi dn tâm dn sc cho vic nh ngh+a các phng pháp mi c'ng nh các ngôn ng mi. Mt công c mô hình hóa hên i cn phi cung c!p các chc n(ng sau: V bi u : cn phi t o i u kin d dàng v& ra các bi u  trong ngôn ng mô hình hóa. Công c cn phi kh n(ng thông minh hi u mc ích c a các bi u  và bit c nhng ng ngh+a c'ng nh các quy t"c n gin, nó có th cnh báo hoc ng(n chn vic s dng không thích hp các phn t mô hình. Hot ng nh mt nhà kho (Repository): công c cn phi h. tr mt nhà kho trung tâm t!t c các thông tin v mô hình c lu tr trong cùng mt ch Nu ví d tên c a mt lp b thay i trong mt bi u , thì s thay i này cn phi xy ra trong t!t c các bi u  khác có s dng lp này. H tr nh hng (Navigation): công c cn phi t o i u kin d dàng cho ngi s dng nh hng và chuy n dch trong mô hình theo dõi mt phn t t bi u  này sang bi u  khác, hoc m rng li miêu t c a mt phn t. H tr nhi u ngi s dng (multiuser support): Công c cn h. tr cho nhi u ngi s dng, và t o i u kin cho h# cùng làm vic vi mt mô hình mà không ng(n chn hoc qu!y phá ln nhau. T ng to code (code generate): mt công c cao c!p cn phi có kh n(ng t o ra code, ni t!t c các thông tin trong mô hình c chuy n ti thành các khung code (code skeletons), c s dng làm n n tng cho giai o n xây dng chng trình. Tái to mô hình (Reserve engineer): Mt công c cao c!p cn phi có kh n(ng #c nhng thành phn code ang tn t i và t ó sn xu!t ra mô hình. T ó suy ra, mt mô hình có th c làm t nhng dòng code ã tn t i; hoc mt nhà phát tri n có th d dàng chuy n i chuy n v gia công vic mô hình hóa và công vic lp trình. Tích hp vi các công c khác: mt công c cn phi có kh n(ng tích hp vi nhng công c khác, vi c vic phát tri n môi trng, ví d nh các trình so n tho (editor), chng trình 40
  41. dch (compiler), chng trình tìm l.i (debugger) c'ng nh các công c c a doanh nghip khác nh công c qun tr c!u hình, h thng theo dõi các phiên bn. Bao quát mô hình  tt c các mc  tru tng hóa khác nhau: công c cn phi d chuy n ti t li miêu t  c!p tru tng hóa cao nh!t c a h thng (tc là  d ng mt lng các gói khác nhau) i xung cho ti c!p c a nhng dòng code tht s. Sau ó, truy xu!t nhng dòng lnh code cho mt th tc c th nào ó trong mt lp nào ó, b n có th ch* cn nh!p chut vào tên c a th tc ó trong mt bi u . Trao i mô hình: Mt mô hình hay mt bi u  c a mt mô hình nào ó cn phi có kh n(ng c xu!t ra t mt công c này ri nhp vào mt công c khác, ging nh nhng dòng lnh code c sn sinh trong mt công c này có th c s dng trong mt công c khác. Nguyên t"c trao i ó cn phi c áp dng cho các mô hình trong mt ngôn ng mô hình hóa c nh ngh+a chính xác. 3.10. Tóm t)t v UML UML t chc mt mô hình thành mt lo t các hng nhìn, th hin các khía c nh khác nhau c a h thng. Ch* khi kt hp t!t c các hng nhìn l i vi nhau, ngi ta mi co c mt bc tranh tr#n v-n v h thng. Mt hng nhìn không phi là mt hình v&, ni dung c a nó c miêu t qua các bi u , ây là nhng hình v& cha ng các phn t mô hình hóa. Mt bi u  bình thng ch* trình bày mt phn ni dung c a mt hng nhìn, và mt hng nhìn c nh ngh+a vi r!t nhi u bi u . Mt bi u  cha các phn t mô hình, ví d nh lp, i tng, nút m ng, thành phn và nhng mi quan h nh ni kt, khái quát hóa, ph thuc. Các phn t này có ý ngh+a (semantic) và các ký hiu hình h#c. Các lo i bi u  trong UML là: bi u  lp, bi u  i tng, bi u  Use case, bi u  tr ng thái, bi u  trình t, bi u  cng tác, bi u  hành ng, bi u  thành phn và bi u  tri n khai. Mc ích c a các lo i bi u  c'ng nh quy t"c v& chúng s& c miêu t chi tit trong chng sau. UML có mt s c ch chung b sung thông tin không th c th hin trong quá trình v& bi u . Nhng thông tin này bao gm ví d nhng thành phn trang trí, các li ghi chú có th cha b!t k0 lo i thông tin nào c'ng nh các thuc tính c t. Ngoài ra còn có các c ch m rng, bao gm giá tr ính kèm, h n ch i vi phn t, và khuôn mu, nh ngh+a mt lo i phn t mô hình mi da trên mt phn t s2n có. Mt h thng s& c miêu t trong nhi u lo i mô hình khác nhau, m.i lo i mô hình nh%m mt mc ích khác nhau. Mô hình phân tích miêu t nhng yêu cu v mt chc n(ng và mô hình hóa các lp ngoài i thc. Mô hình thit k chuy n ti kt qu phân tích thành mt gii pháp k, thut, theo khái nim c a mt thit k phn m m ho t ng hoàn ch*nh. Mô hình xây dng code th hin h thng qua vic tho chng cho nó trong mt ngôn ng lp trình hng i tng. Và cui cùng, mô hình tri n khai nh v chng trình va c t o nên trong mt kin trúc vt lý bao gm các máy tính và các trang thit b. Công vic c làm theo nhi u vòng lp khác nhau ch không phi ch* là mt chu.i thc hin mt ln.  s dng UML mt cách nghiêm ch*nh cho mt d án có tht ngoài i, b n cn công c. Mt công c tân tin có kh n(ng cho ngi dùng v& bi u , tr t!t c các thông tin vào mt kho chung, cho phép d dàng dch chuy n gia các hng nhìn và bi u  khác nhau trong mô hình, t o báo cáo và tài liu, t o khung code t mô hình, #c nhng dòng code s2n có ri sn sinh ra mô hình t ó, và d dàng tích hp vi các công c phát tri n khác. 41
  42. 3.11. Phn câu hi Hi: UML có công c nào giúp n"m b"t các yêu cu c a khách hàng (ngi s dng)? áp: Use Case Hi: Mt bi u  trong UML có bao cha các hng nhìn khác nhau. áp: Sai, mt hng nhìn bao gm mt lo i các bi u  khác nhau Hi: Hãy lit kê các thành phn ch yu c a ngôn ng UML áp: Hng nhìn( View), Bi u  (Diagram), Phn t mô hình, C ch chung. Hi: UML có công c nào phc v cho giai o n th nghim n v (Unit Testing)? áp: Bi u  lp và c t lp Hi: UML có công c nào phc v cho giai o n th nghim h thng (System Testing)? áp: Use case Diagram Hi: UML t o n n tng cho vic giao tip gia khách hàng, nhà phân tích, nhà thit k và lp trình viên. áp: úng t ≤ u 42
  43. CH NG 4: MÔ HÌNH HÓA USE CASE t & u 4.1. Gii thiu Use Case Trong giai o n phân tích, ngi s dng cng tác cùng nhóm phát tri n phn m m t o nên mt t hp thông tin quan tr#ng v yêu cu i vi h thng. Không ch* là ngi cung c!p thông tin, bn thân ngi s dng còn là mt thành phn ht sc quan tr#ng trong bc tranh toàn cnh ó và nhóm phát tri n cn phi ch* ra c phng thc ho t ng c a h thng tng lai theo hng nhìn c a ngi s dng. Hi u c i m quan tr#ng này là chìa khóa t o dng c nhng h thng va tho mãn các yêu cu t ra va d dàng s dng, thm chí t o ni m vui thích trong s dng. Nh vy công c giúp ta mô hình hoá h thng t hng nhìn c a ngi s dng g#i là Use Case. Và tr li rõ hn v Use Case ta xét mt trng hp sau: Gi s tôi quyt nh mua mt chic máy fax mi. Khi n ca hàng máy v(n phòng, tôi mi nhn ra là phi ch#n la trong mt danh sách máy móc r!t phong phú. Lo i máy nào s& c ch#n ây? Tôi t h i tht chính xác mình mun làm gì vi chic máy fax s& mua? Tôi mun có nhng tính n(ng nào? Tôi mun dùng b%ng gi!y thng hay gi!y thermal ? Tôi mun copy b%ng cái máy ó? Tôi mun ni nó vi máy tính c a mình? Tôi mun dùng nó va làm máy fax va làm scanner? Tôi có cn phi gi fax tht nhanh n mc  cn mt chc n(ng ch#n s t(ng tc? Liu tôi có mun s dng máy fax này phân bit gia mt cú in tho i g#i ti và mt bn fax gi ti ?. T!t c chúng ta u tri qua nhng kinh nghim nh vy khi quyt nh mua mt món hàng nào ó không phi vì ni m vui bc phát. Vic chúng ta s& làm trong nhng trng hp nh vy là mt d ng phân tích Use Case: Chúng ta t h i mình s& s dng sn ph$m (hay h thng) s"p b"t ta b ra mt khon ti n áng k ó ra sao? Tr li xong câu h i trên ta mi có kh n(ng ch#n ra sn ph$m tho mãn nhng òi h i c a mình. i u quan tr#ng  ây là phi bit nhng òi h i ó là gì. Lo i quy trình này óng vai trò r!t quan tr#ng i vi giai o n phân tích c a mt nhóm phát tri n h thng. Ngi dùng mun s dng h thng tng lai, h thng mà b n s"p thit k và xây dng, nh th nào? Use Case là mt công c tr giúp cho công vic c a nhà phân tích cùng ngi s dng quyt nh tính n(ng c a h thng. Mt tp hp các Use Case s& làm ni bt mt h thng theo phng din nhng ngi dùng nh làm gì vi h thng này.  làm rõ hn, ta hãy xét mt ví d nhà b(ng l/. H thng tng lai trong trng hp này s& só nhi u ngi s dng, m.i ngi s& giao tip vi h thng cho mt mc ích khác bit: Qun tr gia s dng h thng cho mc ích thng kê Nhân viên tip khách s dng h thng thc hin các dch v phc v khách hàng. Nhân viên phòng u t s dng h thng thc hin các giao dch liên quan n u t. Nhân viên th$m tra ch ký s dng h thng cho mc ích xác nhn ch ký và bo trì thông tin liên quan n khách hàng. 43
  44. Khách hàng giao tip vi h thng (nhà b(ng) cho các ho t ng s dng dch v nh m tài khon, gi ti n vào, rút ti n mt, Quá trình tng tác gia ngi s dng và h thng trong m.i mt tình hung k trên s& khác nhau và ph thuc vào chc n(ng mà ngi s dng mun thc thi cùng h thng. Nhóm phát tri n h thng cn phi xây dng nên mt kch bn nêu bt s tng tác cn thit gia ngi s dng và h thng trong m.i kh n(ng ho t ng. Ví d nh kch bn cho s tng tác gia nhân viên thu ngân và h thng c a b phn tit kim trong sut tin trình c a mt giao dch. Mt kch bn khác ví d là chu.i tng tác xy ra gia b phn tit kim và b phn u t trong mt giao dch chuy n ti n. Nhìn chung, có th coi mt Use case nh là tp hp c a mt lo t các cnh kch v vic s dng h thng. M.i cnh kch mô t mt chu.i các s kin. M.i mt chu.i này s& c kích ho t bi mt ngi nào ó, mt h thng khác hay là mt phn trang thit b nào ó, hoc là mt chu.i thi gian. Nhng thc th kích ho t nên các chu.i s kin nh th c g#i là các Tác Nhân (Actor). Kt qu c a chu.i này phi có giá tr s dng i vi hoc là tác nhân ã gây nên nó hoc là mt tác nhân khác. 4.2. M't s ví d( Use Case Trong ví d nhà b(ng l/  trên, mt s nhng Use Case d th!y nh!t là: Mt khách hàng m mt tài khon mi. Phòng u t tính toán ti n lãi cho các tài khon u t. Mt chng trình u t mi c a vào áp dng. Yêu cu chuy n ti n c a khách hàng c thc hin. Chuy n ti n theo k0 h n t mt tài khon u t sang mt tài khon tit kim. 4.3. S* cn thi!t phi có Use Case Use Case là mt công c xu!t s"c khuyn khích nhng ngi dùng ti m n(ng nói v h thng t hng nhìn c a h#. i vi ngi dùng, ch)ng phi bao gi vic th hin và mô t nhng ý nh trong vic s dng h thng c'ng là chuyn d dàng. Mt hin thc có tht là ngi s dng thng bit nhi u hn nhng gì mà h# có th din t ra: Công c Use Case s& giúp cho nhóm phát tri n b/ gãy "lp b(ng" ó, ngoài ra mt s trình bày trc quan c'ng cho phép b n kt hp các bi u  Use Case vi các lo i bi u  khác. Sáng kin ch o là lôi cun c ngi dùng tham gia vào nhng giai o n u tiên c a quá trình phân tích và thit k h thng. Vic này s& nâng cao xác su!t cho vic h thng chung cuc tr thành mt công c quen thuc i vi các ngi dùng mà nó d nh s& tr giúp – thay vì là mt tp hp khó hi u và ri r"m c a các khái nim máy tính mà ngi dùng trong gii doanh thng có cm giác không bao gi hi u c và không th làm vic cùng. Công tác lôi kéo ngi s dng tham gia tích cc vào quá trình phân tích là n n tng quan tr#ng cho vic t o dng mt mô hình "thành công", mt mô hình d c ngi s dng hi u và ch!p nhn sau khi ã th$m xác các nhim v c(n bn. Ngoài ra, Use Case còn giúp nhóm phát tri n quyt nh các lp mà h thng phi tri n khai. 44
  45. 4.4. Mô hình hóa Use Case Trng hp s dng là mt k, thut mô hình hóa c s dng mô t mt h thng mi s& phi làm gì hoc mt h thng ang tn t i làm gì. Mt mô hình Use Case c xây dng qua mt quá trình mang tính vòng lp (interative), trong ó nhng cuc hi tho bàn lun gia nhóm phát tri n h thng và khách hàng (hoc/và ngi s dng cui) s& dn ti mt c t yêu cu c t!t c m#i ngi ch!p nhn. Ngi cha tinh thn c a mô hình hóa Use Case là Ivar Jacobson, ông ã t o nên k, thut mô hình hóa da trên nhng kinh nghim thu thp c trong quá trình t o h thng AXE c a hãng Erisson. Use Case ã nhn c mt s quan tâm c bit ln lao t phía cng ng hng i tng và ã tác ng lên r!t nhi u phng pháp hng i tng khác nhau. Nhng thành phn quan tr#ng nh!t c a mt mô hình Use Case là Use Case, tác nhân và h thng. Ranh gii c a h thng c nh ngh+a qua chc n(ng tng th mà h thng s& thc thi. Chc n(ng tng th c th hin qua mt lo t các Use Case và m.i mt Use Case c t mt chc n(ng tr#n v-n, có ngh+a là Use Case phi thc thi toàn b chc n(ng ó, t s kin c kích ho t u tiên bi mt tác nhân ngo i cnh cho ti khi chc n(ng òi h i c thc hin hoàn t!t. Mt Use Case luôn luôn phi cung c!p mt giá tr nào ó cho mt tác nhân, giá tr này là nhng gì mà tác nhân mong mun t phía h thng. Tác nhân là b!t k0 mt thc th ngo i cnh nào mong mun tng tác vi h thng. Thng thng, ó là mt ngi s dng c a h thng, nhng nhi u khi c'ng có th là mt h thng khác hoc là mt d ng máy móc thit b phn cng nào ó cn tng tác vi h thng. Trong k, thut mô hình hóa Use Case, h thng s& có hình d ng c a mt "hp en" và cung c!p các Use Case. H thng làm i u ó nh th nào, các Use Case c thc thi ra sao, ó là nhng khía c nh cha c cp ti trong giai o n này. Trong thc t, nu mô hình hóa Use Case c thc hin trong nhng giai o n u c a d án thì thng nhà phát tri n s& không bit Use Case sau này s& c thc thi (tc là bin thành nhng dòng code tht s) nh th nào. Mc tiêu chính yu i vi các Use Case là:  quyt nh và mô t các yêu cu v mt chc n(ng c a h thng, ây là kt qu rút ra t s th a thun gia khách hàng (và/hoc ngi s dng cui) và nhóm phát tri n phn m m.  t o nên mt li mô t rõ ràng và nh!t quán v vic h thng cn phi làm gì, làm sao mô hình có th c s dng nh!t quán sut toàn b quá trình phát tri n, c s dng làm công c giao tip cho t!t c nhng ngi phát tri n nên các yêu cu này, và t o nên mt n n tng cho vic t o nên các mô hình thit k cung c!p các chc n(ng c yêu cu.  t o nên mt n n tng cho các bc th nghim h thng, m bo h thng th a mãn úng nhng yêu cu do ngi s dng a ra. Trong thc t thng là tr li câu h i: Liu h thng cui cùng có thc hin nhng chc n(ng mà khi u khách hàng ã ngh?  cung c!p kh n(ng theo dõi các yêu cu v mt chc n(ng c chuy n thành các lp c th c'ng nh các th tc c th trong h thng.  n gin hóa vic thay i và m rng h thng qua vic thay i và m rng mô hình Use Case, sau ó ch* theo dõi riêng nhng Use Case ã b thay i cùng nhng hiu ng c a chúng trong thit k h thng và xây dng h thng. 45
  46. Nhng công vic c th cn thit t o nên mt mô hình Use Case bao gm: 1. nh ngh+a h thng (xác nh ph m vi h thng) 2. Tìm ra các tác nhân c'ng nh các Use Case 3. Mô t Use Case 4. nh ngh+a mi quan h gia các Use Case 5. Ki m tra và phê chu$n mô hình. ây là mt công vic mang tính tng tác r!t cao, bao gm nhng cuc tho lun vi khách hàng và nhng ngi i din cho các lo i tác nhân. Mô hình Use Case bao gm các bi u  Use Case ch* ra các tác nhân, Use Case và mi quan h c a chúng vi nhau. Các bi u  này cho ta mt cái nhìn tng th v mô hình, nhng nhng li mô t thc s c a tng Use Case thng l i là v(n bn. Vì các mô hình trc quan không th cung c!p t!t c các thông tin cn thit, nên cn thit phi dùng c hai k, thut trình bày ó. Có r!t nhi u ngi quan tâm n vic s dng các mô hình Use Case. Khách hàng (và/hoc ngi s dng cui) quan tâm n chúng vì mô hình Use Case c t chc n(ng c a h thng và mô t xem h thng có th và s& c s dng ra sao. Các Use Case vì vy phi c mô t trong nhng thut ng và ngôn ng c a khách hàng/ngi s dng. Nhà phát tri n cn n các mô hình Use Case hi u h thng cn phi làm gì, và qua ó có c mt n n tng cho nhng công vic tng lai (các mô hình khác, các c!u trúc thit k và vic thc thi xây dng h thng b%ng code). Các nhóm chuyên gia th nghim tích hp và th nghim h thng cn n Use Case th nghim và ki m tra xem h thng có m bo s& thc hin úng chc n(ng ã c c t trong giai o n u. Và cui cùng, b!t k0 ngi nào liên quan n nhng ho t ng liên kt n chc n(ng c a h thng u có th quan tâm n các mô hình Use Case; ví d nh các nhóm tip th, bán hàng, h. tr khách hàng và các nhóm so n tho tài liu. Mô hình Use Case mô t hng nhìn Use Case c a h thng. Hng nhìn này là r!t quan tr#ng, bi nó nh hng n t!t c các hng nhìn khác c a h thng. C c!u trúc logic ln c!u trúc physic u chu nh hng t các Use Case, bi chc n(ng c c t trong mô hình này chính là nhng chc n(ng c thc thi trong các c!u trúc kia. Mc ích cui cùng là thit k ra mt gii pháp th a mãn các yêu cu ó. Mô hình hóa các Use Case ch)ng phi ch* c dùng n"m b"t các yêu cu c a h thng mi; nó c'ng còn c s dng h. tr cho vic phát tri n mt phiên bn mi c a h thng. Khi phát tri n mt phiên bn mi c a h thng ang tn t i, ngi ta s& b sung thêm các chc n(ng mi vào mô hình Use Case ã có b%ng cách thêm vào các tác nhân mi c'ng nh các Use Case mi, hoc là thay i c t c a các Use Case ã có. Khi b sung thêm vào mô hình Use Case ang tn t i, hãy chú ý không b ra b!t k0 mt chc n(ng nào vn còn c cn ti. 4.5. Biu $ Use Case Use Case c mô t trong ngôn ng UML qua bi u  Use Case (Use Case Diagram), và mt mô hình Use Case có th c chia thành mt s lng ln các bi u  nh th. Mt bi u  Use Case cha các 46
  47. phn t mô hình bi u th h thng, tác nhân c'ng nh Use Case và ch* ra các mi quan h gia các Use Case. Li mô t ni dung Use Case thng c cung c!p di d ng v(n bn. Trong UML, li mô t ó c coi là thuc tính "v(n bn" (document) c a Use Case. Li mô t này bao cha nhng thông tin quan tr#ng, nh ngh+a các yêu cu và chc n(ng c th . Thay cho vic mô t Use Case b%ng v(n bn, b n c'ng có th v& mt bi u  ho t ng (activity diagram). Mc du vy, nên nh r%ng mt Use Case cn phi c mô t sao cho d hi u và d giao tip i vi ngi s dng, mà nhng c!u trúc phc t p nh mt bi u  ho t ng có th gây cm giác xa l i vi nhng ngi không quen s dng. Tóm t"t: Mt bi u  Use Case th hin: H thng Tác nhân và Use Case. Ví d bi u  Use Case trong UML: Hình 4.1- Mt ví d bi u  Use case trong UML Trong ó : H thng c th hin qua hình ch nht vi tên h thng  bên trên Tác nhân c th hin qua kí hiu hình nhân Use Case c th hin qua hình ellipse 4.5.1. H thng Vì h thng là mt thành phn c a mô hình Use Case nên ranh gii c a h thng mà ta mun phát tri n cn phi c nh ngh+a rõ ràng. Xin nh r%ng mt h thng không phi bao gi c'ng nh!t thit là mt h thng phn m m; nó có th là mt chic máy, hoc là mt doanh nghip. nh ngh+a các ranh gii và trách nhim c a h thng không phi bao gi c'ng là vic d dàng, bi không phi bao gi ngi ta c'ng rõ ràng nhìn ra tác v nào có kh n(ng c t ng hóa tt nh!t  h thng này và tác v nào thì tt nh!t nên thc hin th công hoc dành cho các h thng khác. Mt khía c nh khác cn chú ý là h thng cn phi ln ti mc  nào trong phiên bn u tiên c a nó. C g"ng ti a cho phiên bn u tiên c a h thng thng là cách mà ngi ta hay thc hin, th nhng nhng mc tiêu quá tm nh vy có th khin cho h thng tr nên quá ln và thi gian cung c!p h thng quá lâu. Mt sáng kin tt hn là xác nhn cho rõ các chc n(ng c(n bn và tp trung vào vic nh ngh+a mt kin trúc h 47