Giáo trình Phân tích và thiết kế hệ thống theo UML - Chương 5: Mô hình đối tượng

pdf 58 trang ngocly 3130
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Phân tích và thiết kế hệ thống theo UML - Chương 5: Mô hình đối tượng", để 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:

  • pdfgiao_trinh_phan_tich_va_thiet_ke_he_thong_theo_uml_chuong_5.pdf

Nội dung text: Giáo trình Phân tích và thiết kế hệ thống theo UML - Chương 5: Mô hình đối tượng

  1. CH NG 5 : MÔ HÌNH I T +NG t & u 5.1. Lp, i tng và quan h – các thành phn c bn ca mô hình Trong mô hình hóa hng i tng, nhng phn t c!u thành c(n bn nh!t c a mô hình là lp, i tng và mi quan h gia chúng vi nhau. Lp và i tng s& mô hình hóa nhng gì có trong h thng mà chúng ta mun miêu t, các mi quan h s& bi u th c!u trúc. ng tác phân lp (classification) ã c s dng t hàng ngàn n(m nay n gin hóa vic miêu t các h thng phc t p. Khi loài ngi bit n vic lp trình hng i tng xây dng các h thng phn m m thì lp và các mi quan h c a chúng c chuy n thành các dòng code c th . 5.1.1. i tng (Object) Mt i tng là mt s tng trng cho mt thc th , hoc là thc th tn t i trong th gii i thc hoc thc th mang tính khái nim. Mt i tng có th tng trng cho cái gì ó c th , ví d nh mt chic xe ô tô ch hàng c a b n hoc chic máy tính c a tôi, hoc tng trng cho mt khái nim ví d nh mt quy trình hóa h#c, mt giao dch trong nhà b(ng, mt li t hàng, nhng thông tin trong quá trình s dng tín dng c a khách hàng hay mt t3 l ti n li. C'ng có nhng i tng (ví d nh các i tng thc thi mt trong h thng phn m m) không tht s tn t i  ngoài th gii thc, nhng là kt qu dn xu!t t quá trình nghiên cu c!u trúc và ng x c a các i tng ngoài th gii thc. Nhng i tng ó, dù là b%ng cách này hay cách khác, u liên quan n quan nim c a chúng ta v th gii thc. Mt i tng là mt khái nim, mt s tru tng hóa, hoc là mt  vt vi ranh gii và ý ngh+a c nh ngh+a rõ ràng cho mt ng dng nào ó. M.i i tng trong mt h thng u có ba c tính: tr ng thái, ng x và s nhn din. 5.1.2. Trng thái, ng x và nh#n din c a i tng Trng thái (state) c a mt i tng là mt trong nhng hoàn cnh ni i tng có th tn t i. Tr ng thái c a mt i tng thng s& thay i theo thi gian, và nó c nh ngh+a qua mt t hp các thuc tính, vi giá tr c a các thuc tính này c'ng nh mi quan h mà i tng có th có vi các i tng khác. Ví d mt danh sách ghi danh cho mt lp h#c trong h thng trng h#c có th có hai tr ng thái: tr ng thái óng và tr ng thái m. Nu danh sách sinh viên ghi danh cho lp h#c này còn nh hn s ti a cho phép (ví d là 10), thì tr ng thái c a bng ghi danh này là m. Mt khi ã 10 sinh viên ghi danh cho lp, danh sách s& chuy n sang tr ng thái óng. ng x (Behaviour) xác nh mt i tng s& phn ng nh th nào trc nhng yêu cu t các i tng khác, nó tiêu bi u cho nhng gì mà i tng này có th làm. 5ng x c thc thi qua lo t các Phng thc (operation) c a i tng. Trong ví d trng i h#c, mt i tng bng ghi danh lp h#c có th có ng x là b sung thêm mt sinh viên hay xóa i tên c a mt sinh viên khi sinh viên (ng ký h#c hay bãi b (ng ký. S nh n din (Identity) m bo r%ng m.i i tng là duy nh!t – dù tr ng thái c a nó có th ging vi tr ng thái c a các i tng khác. Ví d, khóa h#c i s 101 chng 1 và khóa h#c i s 101 chng 65
  2. 2 là hai i tng trong h thng ghi danh trng h#c. Mc dù c hai u thuc lo i bng ghi danh, m.i khóa h#c vn có s nhn d ng duy nh!t c a mình. 5.1.3. Lp (Class) Mt lp là mt li miêu t c a mt nhóm các i tng có chung thuc tính, chung phng thc (ng x), chung các mi quan h vi các i tng khác và chung ng ngh+a (semantic). Nói nh th có ngh+a lp là mt khuôn mu t o ra i tng. M.i i tng là mt thc th c a mt lp nào ó và mt i tng không th là kt qu thc th hóa c a nhi u hn mt lp. Chúng ta s dng khái nim lp bàn lun v các h thng và phân lo i các i tng mà chúng ta ã nhn d ng ra trong th gii thc. Mt lp tt s& n"m b"t mt và ch* mt s tru tng hóa - nó phi có mt ch chính. Ví d, mt lp va có kh n(ng gi t!t c các thông tin v mt sinh viên và thông tin v t!t c nhng lp h#c mà ngi sinh viên ó ã tri qua trong nhi u n(m trc không phi là mt lp tt, bi nó không có ch chính. Lp này cn phi c chia ra làm hai lp liên quan n nhau: lp sinh viên và lp lch s c a sinh viên. Hình 5.1- M.i thc th trong mô hình trên là mt lp Khi t o dng mô hình c'ng nh tht s xây dng các h thng doanh nghip, các h thng thông tin, máy móc hoc các l#ai h thng khác, chúng ta cn s dng các khái nim c a chính ph m vi v!n khin cho mô hình d hi u và d giao tip hn. Nu chúng ta xây dng h thng cho mt công ty bo hi m, mô hình cn phi da trên các khái nim c a ngành bo hi m. Nu chúng ta xây dng mt h thng cho quân i, thì các khái nim c a th gii quân s cn phi c s dng khi mô hình hóa h thng. Mt h thng da trên các khái nim chính c a mt ngành doanh nghip nào ó có th d c thit k l i cho phù hp vi nhng qui ch, chin lc và qui nh mi, bi chúng ta ch* cn cân b%ng và kh"c phc s chênh lch gia công vic c' và công vic mi. Khi các mô hình c xây dng da trên các khái nim l!y ra t cuc i thc và da trên các khái nim thuc ph m vi v!n , hng i tng s& là mt phng pháp r!t thích hp bi n n tng c a phng pháp hng i tng là các lp, i tng và mi quan h gia chúng. Mt lp là li miêu t cho mt d ng i tng trong b!t k0 mt h thng nào ó – h thng thông tin, h thng k, thut, h thng nhúng thi gian thc, h thng phân tán, h thng phn m m và h thng doanh thng. Các vt dng (artifact) trong mt doanh nghip, nhng thông tin cn c lu tr, phân tích hoc các vai trò mà mt tác nhân m nhn trong mt doanh nghip thng s& tr thành các lp trong các h thng doanh nghip và h thng thông tin. 66
  3. Ví d v các lp trong doanh nghip và các h thng thông tin: Khách hàng Bn thng thuyt Hóa n Món n Tài sn Bn công b giá c phiu Các lp trong mt h thng k, thut thng bao gm các i tng k, thut, ví d nh máy móc c s dng trong h thng: Sensor Màn hình I/O card ng c Nút b!m Lp i u khi n Các h thng phn m m thng có các lp i din cho các thc th phn m m trong mt h i u hành: File Chng trình ch y c Trang thit b Icon Ca s Thanh kéo 5.1.4. Bi u  lp (Class diagram) Mt bi u  lp là mt d ng mô hình t+nh. Mt bi u  lp miêu t hng nhìn t+nh c a mt h thng b%ng các khái nim lp và mi quan h gia chúng vi nhau. Mc dù nó c'ng có nhng nét tng t vi mt mô hình d liu, nhng nên nh r%ng các lp không phi ch* th hin c!u trúc thông tin mà còn miêu t c hình vi. Mt trong các mc ích c a bi u  lp là t o n n tng cho các bi u  khác, th hin các khía c nh khác c a h thng (ví d nh tr ng thái c a i tng hay cng tác ng gia các i tng, c ch* ra trong các bi u  ng). Mt lp trong mt bi u  lp có th c thc thi trc tip trong mt ngôn ng hng i tng có h. tr trc tip khái nim lp. Mt bi u  lp ch* ch* ra 67
  4. các lp, nhng bên c nh ó còn có mt bin t!u hi khác i mt chút ch* ra các i tng tht s là các thc th c a các lp này (bi u  i tng). Hình 5.2-Mô hình lp trong UML Hình 5.3- Mt lp c th vi các thuc tính  t o mt bi u  lp, u tiên ta phi nhn din và miêu t các lp. Mt khi ã có mt s lng các lp, ta s& xét n quan h gia các lp ó vi nhau. 5.2. Tìm lp Hu nh không có mt công thc chung cho vic phát hin ra các lp. i tìm các lp là mt công vic òi h i trí sáng t o và cn phi c thc thi vi s tr giúp c a chuyên gia ng dng. Vì qui trình phân tích và thit k mang tính vòng lp, nên danh sách các lp s& thay i theo thi gian. Tp hp ban u c a các lp tìm ra cha ch"c ã là tp hp cui cùng c a các lp sau này s& c thc thi và bin i thành code. Vì th, thng ngi ta hay s dng n khái nim các lp ng c viên (Candidate Class) miêu t tp hp nhng lp u tiên c tìm ra cho h thng. Nh ã nói trong phn 2.10 (Thc hin Trng hp s dng), trng hp s dng là nhng li miêu t chc n(ng c a h thng, còn trách nhim thc thi thuc v các i tng cng tác thc thi chc n(ng ó. Nói mt cách khác, chúng ta i tìm các lp là tin ti tìm gii pháp cung c!p nhng ng x hng ngo i ã c xác nh trong các trng hp s dng. Có nhi u phng pháp khác nhau thc hin công vic ó. Có phng pháp ngh tin hành phân tích ph m vi bài toán, ch* ra t!t c các lp thc th (thuc ph m vi bài toán) vi mi quan h c a chúng vi nhau. Sau ó nhà phát tri n s& phân tích tng trng hp s dng và phân b trách nhim cho các lp trong mô hình phân tích (analysis model), nhi u khi s& thay i chúng hoc b sung thêm các lp mi. Có phng pháp ngh nên l!y các trng hp s dng làm n n tng tìm các lp, làm sao trong quá trình phân b trách nhim thì mô hình phân tích c a ph m vi bài toán s& tng bc tng bc c thit lp. 68
  5. 5.2.1. Phân tích phm vi bài toán tìm lp Quá trình phân tích ph m vi bài toán thng c b"t u vi các khái nim then cht (Key Abstraction), mt công c thng c s dng nhn din và l#c ra các lp ng c viên (Candidate class). a) Khái nim then cht: Hãy l!y ví d mt nhà b(ng ABC, i u u tiên ta ngh+ ti là gì? Ti n! Bên c nh ó, ABC còn phi có nhng thc th liên quan ti ti n nh sau: Khách hàng Sn ph$m (các tài khon c coi là các sn ph$m c a mt nhà b(ng) Lc lng nhân viên Ban qun tr nhà b(ng Phòng máy tính trong nhà b(ng Nhng thc th này c g#i là các khái nim then cht cho nhng gì mà nhà b(ng có th có. Khái nim then cht hoc mang tính c!u trúc (structural) hoc mang tính chc n(ng (functional). Thc th mang tính c!u trúc là nhng thc th vt lý tng tác vi nhà b(ng, ví d khách hàng. Thc th mang tính chc n(ng là nhng chc n(ng mà nhà b(ng phi thc hin, ví d duy trì mt tài khon hoc chuy n ti n t tài khon này sang tài khon khác. Khái nim then cht là các thc th ta ý n u tiên. Chúng r!t quan tr#ng vì giúp ta: nh ngh+a ranh gii c a v!n Nh!n m nh n các thc th có liên quan n thit k c a h thng Lo i b thc th n%m ngoài ph m vi h thng Các khái nim then cht thng s& tr thành các lp trong mô hình phân tích Mt khái nim then cht tóm l i là mt lp hay i tng thuc chuyên ngành c a ph m vi bài toán. Khi trình bày vi ngi s dng, chúng có mt ánh x 1-1 gia vi nhng thc th liên quan ti ngi s dng nh hóa n, sec, gi!y ngh rút ti n, s tit kim, th/ rút ti n t ng, nhân viên thu ngân, nhân viên nhà b(ng, các phòng ban, . Mc ' tr4u tng: Khi phân tích ph m vi bài toán, cn chú ý r%ng mc  tru tng c a các khái nim then cht là r!t quan tr#ng, bi mc  tru tng quá cao hay quá th!p u r!t d gây nhm ln. Mc tru tng quá cao dn ti nhng nh ngh+a quá khái quát v mt thc th , t o nên mt cái nhìn v+ mô và thng không nh"m vào mt mc tiêu c th . Ví d trong mt nhà b(ng, ta không th ch#n khái nim then cht là "ngi", bi nó s& dn n li miêu t: "Mt ngi n nhà b(ng gi ti n vào, và s ti n ó c mt ngi khác tip nhn." – trong khi mt yêu cu quan tr#ng  ây là phi phân bit gia nhân viên vi khách hàng vì chc n(ng c a h# là khác h)n nhau. Tng t nh vy, mc tru tng quá th!p c'ng d gây hi u lm, bi nhng thông tin quá vn vt cha thích hp vi thi i m này. Ví d nhng quyt nh d ng: 69
  6. Form m tài khon òi h i t!t c 15 Entry. Nhng d liu trên Form này u phi c c(n phi. Không có nhi u ch. ghi a ch* c a khách hàng trên Form. nên c dành cho các giai o n sau. Vài im cn chú ý v khái nim then cht: Nhng thc th xu!t hin u tiên trong óc não chúng ta là nhng thc th d có kh n(ng tr thành khái nim then cht cho mt v!n nh trc. M.i ln tìm th!y mt khái nim then cht mi, cn xem xét nó theo cách nhìn c a v!n , có th h i các câu h i sau : Nhng chc n(ng nào có th c thc hin i vi thc th này? i u gì khin nhng thc th lo i này c t o ra? Nu không có câu tr li thích hp, cn phi suy ngh+ l i v thc th ó. M.i khái nim then cht mi cn phi c t tên cho thích hp, miêu t úng chc n(ng c a khái nim. b) Nhn d"ng lp và i tng: N"m vng khái nim lp, chúng ta có th tng i d dàng tìm th!y các lp và i tng trong ph m vi v!n . Mt nguyên t"c thô s thng c áp dng là danh t4 trong các li phát bi u bài toán thng là các ng c viên chuy n thành lp và i tng. Mt s gi ý thc t cho vic tìm lp trong ph m vi v!n : Bc u tiên là cn phi tp trung nghiên cu k,: Các danh t trong nhng li phát bi u bài toán Kin thc chuyên ngành thuc ph m vi bài toán Các Trng hp s dng Ví d trong li phát bi u "Có mt s tài khon mang l i ti n lãi", ta th!y có hai danh t là tài khon và tin lãi. Chúng có th là các lp ti m n(ng cho mô hình nhà b(ng l/. Th hai, chúng ta cn chú ý n các nhóm vt th trong h thng hin thi nh: Các thc th vt lý c a h thng: nhng vt th tng tác vi h thng, ví d khách hàng. Các vt th hu hình: các vt th vt lý mà ta có th nhìn và s th!y. Ví d nh công c giao thông, sách v, mt con ngi, mt ngôi nhà, . Trong mt nhà b(ng ABC, ó có th là tp sec, phiu ngh rút ti n, s tit kim, các lo i Form cn thit. 70
  7. Các s kin (Events): Mt chic xe b h ng, mt cái ca c m ra. Trong mt nhà b(ng là s áo h n mt tài khon u t, hin tng rút quá nhi u ti n mt trong mt tài khon bình thng. Các vai trò (Role): Ví d nh m-, khách hàng, ngi bán hàng, . Trong mt nhà b(ng, vai trò có th là nhân viên, nhà qun tr, khách hàng, Các s tng tác (Interactions): Ví d vic bán hàng là mt chu.i tng tác bao gm khách hàng, ngi bán hàng và sn ph$m. Trong mt nhà b(ng, vic m mt tài khon mi s& yêu cu mt chu.i tng tác gia nhân viên và khách hàng. V trí (Location): Mt  vt nào ó hoc mt ngi nào ó c gán cho mt v trí nào ó. Ví d: Ôtô i vi nhà xe. Trong mt nhà b(ng ta có th th!y nhân viên thu ngân luôn ng  ca s c a mình. n v t chc (Organisation Unit): Ví d các phòng ban, phòng trng bày sn ph$m, các b phn. Trong mt nhà b(ng có th có b phn tài khon bình thng, b phn tài khon tit kim, b phn tài khon u t. Bên c nh ó, còn nhi u câu h i khác giúp ta nhn d ng lp. Ví d nh : Ta có thông tin cn c lu tr hoc cn c phân tích không? Nu có thông tin cn phi c lu tr, bin i, phân tích hoc x lý trong mt phng thc nào ó thì ch"c ch"n ó s& là ng c viên cho lp. Nhng thông tin này có th là mt khái nim luôn cn phi c ghi trong h thng hoc là s kin, giao dch xy ra t i mt thi i m c th nào ó. Ta có các h thng ngo i vi không? Nu có, thng chúng c'ng áng c quan tâm ti khi t o dng mô hình. Các h thng bên ngoài có th c coi là các lp cha h thng c a chúng ta hoc tng tác vi h thng c a chúng ta. Chúng ta có các mu, th vin lp , thành phn và nhng th khác không? Nu chúng ta có mu, th vin, thành phn t các d án trc (xin c c a các b n ng nghip, mua c t các nhà cung c!p) thì chúng thng c'ng s& cha các ng c viên lp. Có thit b ngo i vi mà h thng c a chúng ta cn x lý không? M.i thit b k, thut c ni vi h thng c a chúng ta thng s& tr thành ng c viên cho lp x lý lo i thit b ngo i vi này. Chúng ta có phn công vic t chc không? Miêu t mt n v t chc là công vic c thc hin vi các lp, c bit là trong các mô hình doanh nghip. c) Tng k!t v các ngu$n thông tin cho vic tìm lp: Nhìn chung, các ngun thông tin chính cn c bit chú ý khi tìm lp là : Các li phát bi u yêu cu Các Trng hp s dng S tr giúp c a các chuyên gia ng dng Nghiên cu h thng hin thi 71
  8. Lo t các lp u tiên c nhn d ng qua ây thng c g#i là các lp ng c viên (Candidate Class). Ngoài ra, nghiên cu nhng h thng tng t c'ng có th s& mang l i cho ta các lp ng c viên khác: Khi nghiên cu h thng hin thi, hãy ý n các danh t và các khái nim then cht nhn ra lp ng c viên. Không nên a các lp ã c nhn din mt ln na vào mô hình ch* bi vì chúng c nh"c l i  âu ó theo mt tên g#i khác. Ví d, mt h thng nhà b(ng có th coi cùng mt khách hàng vi nhi u v trí khác nhau là nhi u khách hàng khác nhau. Cn chú ý khi phân tích nhng li miêu t nh th tránh dn n s trùng lp trong quá trình nhn din lp. Có nhi u ngun thông tin mà nhà thit k cn phi chú ý ti khi thit k lp và ch* khi làm nh vy, ta mi có th tin ch"c v kh n(ng t o dng mt mô hình tt. Hình sau tng kt các ngun thông tin k trên. Hình 5.4 - Ngun thông tin h. tr tìm lp Các trng hp s dng là ngun tt nh!t cho vic nhn din lp và i tng. Cn nghiên cu k, các Trng hp s dng tìm các thuc tính (attribute) báo trc s tn t i c a i tng hoc lp ti m n(ng. Ví d nu Trng hp s dng yêu cu phi a vào mt s tài khon (account-number) thì i u này tr ti s tn t i c a mt i tng tài khon. Mt ngun khác nhn ra lp/ i tng là các Input và Output c a h thng. Nu Input bao gm tên khách hàng thì ây là tín hiu cho bit s tn t i c a mt i tng khách hàng, bi nó là mt attribute c a khách hàng. Nói chuyn vi ngi s dng c'ng gi m n các khái nim then cht. Thng thì ngi s dng miêu t h thng theo li cn phi a vào nhng gì và mong ch kt qu gì. Thông tin a vào và kt qu theo li miêu t c a ngi s dng cn phi c tp hp l i vi nhau nhn d ng khái nim then cht. 5.2.2. Các lp ng c viên Theo các bc k trên trong phn u giai o n phân tích, ta ã miêu t c mt s lp khác nhau. Nhng lp này c g#i là các lp ng c viên, chúng th hin nhng lp có kh n(ng tn t i trong mt h thng cho trc. Mc dù vy, ây vn có th cha phi là kt qu chung cuc, mt s lp ng c viên có th s& b lo i b trong các bc sau vì không thích hp. Giai o n u khi nh ngh+a các lp ng c viên, ta cha nên c g"ng thanh l#c các lp, hãy tp trung cáo mc tiêu nghiên cu bao quát và toàn din t nhi u ngun thông tin khác nhau không b sót nhi u khía c nh cn x lý. Ví d trong nhà mt b(ng l/, các lp ng c viên có th là: 72
  9. Khách hàng Các lo i tài khon khác nhau Sec, s tit kim, n, . Phiu yêu cu m tài khon mi Th/ ATM Bn in thông tin v tài khon Gi!y chng nhn tài khon u t Th/ xp hàng (Token), s th t Nhân viên Nhân viên thu ngân 5.2.3. Loi b$ các lp ng c viên không thích hp Có r!t nhi u lo i lp ng c viên không thích hp cn phi c lo i b : Lp d, tha: Khi có hn mt lp nh ngh+a cùng mt thc th , nên gi l i lp tt nh!t và lo i b nhng lp khác. Ví d, trong mt nhà b(ng có hai lp ch tài khon và khách hàng. C hai lp bi u hin cùng mt thc th và vì th ch* cn gi l i mt. Lp không thích hp: Lp nh ngh+a ra nhng thc th không liên quan n v!n thc t i. M#i lp không xu!t phát t ph m vi ng dng cn phi c lo i b . Ví d, lp c a các máy m ti n bên casse trong mt nhà b(ng có th là mt ng c viên cho khái nim lp không thích hp. Lp không rõ ràng: Lp không có chc n(ng c th c g#i là các lp không rõ ràng. Lp tn t i và có giá tr s dng trong mt h thng là lp có mt chc n(ng ã c nhn din và xác nh rõ ràng. Các lp không rõ ràng cn phi c nh ngh+a l i hoc lo i b . Ví d quan sát nhi u b phn khác nhau trong mt nhà b(ng ABC. Mt trong nhng b phn ã c nhn din có th là b phn hành chính. Vì ph m vi cho quá trình vi tính hóa c a nhà b(ng hin thi cha bao gm mng hành chính nên lp này có th c coi là mt lp không rõ ràng (vì không có chc n(ng rõ ràng trong h thng cn xây dng trc m"t). Tng t, nhng thuc tính và phng thc không rõ ràng cn phi c lo i ra kh i danh sách các lp ng c viên. Chúng không cn phi b xoá h)n, nhng cn c a ra ngoài ta có th nhìn rõ các lp cn thit ã c nhn din. Các ng x ó sau này có th c gán cho các lp thích hp hn. Các lp ch* là vai trò (Role) i vi mt lp khác: Hãy lo i b t!t c các vai trò và gi l i lp chính. Ví d nhà qun tr, nhân viên thu ngân, ngi ch y gi!y r!t có th ch* là vai trò c a lp nhân viên. Hãy gi l i lp nhân viên và lo i b t!t c nhng lp khác ch* là vai trò. 73
  10. Mt lp không cung c!p ng x cn thit hoc thuc tính cn thit có th s& là lp không cn thit. Nhi u khi, có th có mt lp ch)ng cung c!p mt thuc tính hoc ng x nào mà ch* nh ngh+a mt tp hp các mi quan h. Nhng lp nh th cn phi c nghiên cu k, xác nh s liên quan vi h thng. Ví d mt khách hàng có th c nh ngh+a là khách hàng quan tr#ng hay khách hàng bình thng tùy theo mi quan h mà anh ta có vi nhà b(ng trong t cách ch nhân tài khon. T!t c nhng công c xây dng (Implementation constructs) ví d nh stack, arrays, link lists, cn phi c a ra kh i mô hình phân tích. Chúng s& c dùng ti trong giai o n xây dng phn m m. Mt lp có tên mang tính ng t có th n gin ch* là mt hàm ch không phi là mt lp. Ví d "rút ti n" không cn phi c coi là mt lp, nó có th là chc n(ng c a mt lp. Lp ch* có mt hàm hoc ch* là s miêu t vic thc hin mt chc n(ng nào ó có th n gin ch* là mt hàm, hoc quá trình tru tng hóa d liu (data abstraction)  ây cha c thc hin y . Lp không có hàm là mt thiu sót trong mô hình. V!n hàm thành phn (phng thc) c a lp này cha c suy ngh+ th!u áo. 5.3. Lp và i tng trong UML UML th hin lp b%ng hình ch nht có 3 phn. Phn th nh!t cha tên lp. Trong phn th hai là thuc tính và các d liu thành phn c a lp và trong phn th ba là các phng thc hay hàm thành phn c a lp. 5.3.1. Tên lp (class name) Tên lp c in m (bold) và c(n gia. Tên lp phi c dn xu!t t ph m vi v!n và rõ ràng nh có th . Vì th nó là danh t, ví d nh tài khon, nhân viên, 5.3.2. Thuc tính (attribute) Lp có thuc tính miêu t nhng c i m c a i tng. Giá tr c a thuc tính thng là nhng d ng d liu n gin c a phn các ngôn ng lp trình h. tr nh Integer, Boolean, Floats, Char, Thuc tính có th có nhi u mc  trông th!y c (visibility) khác nhau, miêu t liu thuc tính ó có th c truy xu!t t các lp khác, khác vi lp nh ngh+a ra nó. Nu thuc tính có tính trông th!y là công cng (public), thì nó có th c nhìn th!y và s dng ngoài lp ó. Nu thuc tính có tính trông th!y là riêng (private), b n s& không th truy cp nó t bên ngoài lp ó. Mt tính trông th!y khác là bo v (protected), c s dng chung vi công c khái quát hóa và chuyên bit hóa. Nó c'ng ging nh các thuc tính riêng nhng c thz k bi các lp dn xu!t. Trong UML, thuc tính công cng mang kí hiu "+" và thuc tính riêng mang d!u "-". Giá tr c gán cho thuc tính có th là mt cách miêu t tr ng thái c a i tng. M.i ln các giá tr này thay i là bi u hin cho th!y có th ã xy ra mt s thay i trong tr ng thái c a i tng. 74
  11. Lu ý: M#i c i m c a mt thc th là nhng thông tin cn lu tr u có th chuy n thành thuc tính c a lp miêu t lo i thc th ó. 5.3.3. Phng thc (method) Phng thc nh ngh+a các ho t ng mà lp có th thc hin. T!t c các i tng c t o t mt lp s& có chung thuc tính và phng thc. Phng thc c s dng x lý thay i các thuc tính c'ng nh thc hin các công vic khác. Phng thc thng c g#i là các hàm (function), nhng chúng n%m trong mt lp và ch* có th c áp dng cho các i tng c a lp này. Mt phng thc c miêu t qua tên, giá tr tr v và danh sách c a 0 cho ti nhi u tham s. Lúc thi hành, phng thc c g#i kèm theo mt i tng c a lp. Vì nhóm các phng thc miêu t nhng dch v mà lp có th cung c!p nên chúng c coi là giao din c a lp này. Ging nh thuc tính, phng thc c'ng có tính trông th!y c nh công cng, riêng và bo v. Hình 5.5- Mt lp vi các thuc tính tiêu bi u Hình 5.6- Mt lp vi các thuc tính chung và riêng Hình 5.7- Mt lp vi các thuc tính và gía tr mc nhiên 75
  12. Hình 5.8- Mt lp gm các thuc tính vi gía tr mc nhiên và thuc tính ph m vi lp Hình 5.9- Mt thuc tính vi lit kê gía tr (status) 5.3.4. Kí hiu i tng i tng là thc th c a các lp nên kí hiu dùng cho i tng c'ng là kí hiu dùng cho lp. Hình 5.10-Ký hiu i tng Hình trên c #c nh sau: CAH là i tng c a lp AccountHolder. Các thuc tính c gán giá tr, ây là các giá tr khi lp c thc th hóa. Chú ý r%ng kí hiu i tng không cha phn phng thc. 76
  13. Hình 5.11- Các d!u hiu hành ng Hình 5.12- Các giá tr mc nhiên c a tham s 5.4. Quan h gi#a các lp Bi u  lp th hin các lp và các mi quan h gia chúng. Quan h gia các lp gm có bn lo i: Liên h (Association) Khái quát hóa (Generalization) Ph thuc (Dependency) Nâng c!p (Refinement) Mt liên h là mt s ni kt gia các lp, c'ng có ngh+a là s ni kt gia các i tng c a các lp này. Trong UML, mt liên h c nh ngh+a là mt mi quan h miêu t mt tp hp các ni kt (links), trong khi ni kt c nh ngh+a là mt s liên quan v ng ngh+a (semantic connection) gia mt nhóm các i tng. Khái quát hóa là mi quan h gia mt yu t mang tính khái quát cao hn và mt yu t mang tính chuyên bit hn. Yu t mang tính chuyên bit hn có th cha ch* các thông tin b sung. Mt thc th (mt i tng là mt thc th c a mt lp) c a yu t mang tính chuyên bit hn có th c s dng  b!t c ni nào mà i tng mang tính khái quát hóa hn c phép. 77
  14. S ph thuc là mt mi quan h gia các yu t, gm mt yu mang tính c lp và mt yu t mang tính ph thuc. Mt s thay i trong yu t c lp s& nh hng n yu t ph thuc. Mt s nâng c!p là mi quan h gia hai li miêu t c a cùng mt s vt, nhng  nhng mc  tru tng hóa khác nhau. 5.5. Liên h (Association) Mt liên h là mt s ni kt gia các lp, mt liên quan v ng ngh+a gia các i tng c a các lp tham gia. Liên h thng thng mang tính hai chi u, có ngh+a khi mt i tng này có liên h vi mt i tng khác thì c hai i tng này nhn th!y nhau. Mt mi liên h bi u th b%ng các i tng c a hai lp có ni kt vi nhau, ví d r%ng "chúng bit v nhau", " c ni vi nhau", "c m.i X l i có mt Y", Lp và liên h gia các lp là nhng công c r!t m nh m& cho vic mô hình hóa các h thng phc t p, ví d nh c!u trúc sn ph$m, c!u trúc v(n bn và t!t c các c!u trúc thông tin khác. Mi liên kt c th hin trong bi u  UML b%ng mt ng th)ng ni hai lp (hình 4.18). Hình 5.13-Mt lp Author kt hp vi lp Computer 5.5.1. Vai trò trong liên h Mt liên h có th có các vai trò (Roles). Các vai trò c ni vi m.i lp bao cha trong quan h. Vai trò c a mt lp là chc n(ng mà nó m nhn nhìn t góc nhìn c a lp kia. Tên vai trò c vit kèm vi mt m'i tên ch* t hng lp ch nhân ra, th hin lp này óng vai trò nh th nào i vi lp mà m'i tên ch* n. Hình 5.14- Vai trò trong liên h gia Customer và Account Trong ví d trên: mt khách hàng có th là ch nhân c a mt tài khon và tài khon c chim gi bi khách hàng. ng th)ng th hin liên h gia hai lp. Mt s i m cn chú ý khi t tên vai trò : • Tên vai trò có th b i nu trùng vi tên lp • Tên vai trò phi là duy nh!t. • Tên vai trò phi khác vi các thuc tính c a lp. 78
  15. • Tên vai trò phi miêu t c chc n(ng mà lp này m nhn trong quan h, tc cn phi là các khái nim l!y ra t ph m vi v!n , ging nh tên các lp. 5.5.2. Liên h mt chi u (Uni-Directional Association) Ta c'ng có th s dng mi liên h mt chi u b%ng cách thêm mt m'i tên và mt u c a ng th)ng ni kt. M'i tên ch* ra r%ng s ni kt ch* có th c s dng duy nh!t theo chi u c a m'i tên. Hình 5.15- Liên h mt chi u gia Interest và Account Bi u  phn 5.15 th hin r%ng gia hai lp có liên h, nhng không h có thông tin v s lng các i tng trong quan h. Ta không th bit mt khách hàng có th có bao nhiêu tài khon và mt tài khon có th là c a chung cho bao nhiêu khách hàng. Trong UML, lo i thông tin nh th c g#i là s lng phn t (Cardinality) trong quan h. 5.5.3. S lng (Cardinality) trong liên h Hình 5.16- S lng trong liên h gia Customer và Account Bi u  trên nói rõ mt khách hàng có th m mt hoc nhi u tài khon và mt tài khon có th thuc v mt cho ti ba khách hàng. S lng c ghi  phía u ng th)ng th hin liên h, sát vào lp là mi n áp dng c a nó. Ph m vi c a s lng phn t trong liên h có th t 0-ti-1 (0 1), 0-ti-nhi u (0 * hay ), mt-ti-nhi u (1 ), hai (2), n(m-ti-mi mt (5 11). C'ng có th miêu t mt dãy s ví d (1,4,6, 8 12). Giá tr mc nh là 1. 79
  16. Hình 5.17- Mt s  lp tiêu bi u Hình trên là ví d cho mt bi u  lp tiêu bi u. Bi u  gii thích r%ng b phn dch v tài khon tit kim c a mt nhà b(ng có th có nhi u tài khon tit kim nhng t!t c nhng tài khon này u thuc v b phn ó. Mt tài khon tit kim v phn nó l i có th có nhi u tài liu, nhng nhng tài liu này ch* thuc v mt tài khon tit kim mà thôi. Mt tài khon tit kim có th thuc v t 1 cho ti nhi u nh!t là 3 khách hàng. M.i khách hàng có th có nhi u hn mt tài khon. 5.5.4. Phát hin liên h Thng s& có nhi u mi liên h gia các i tng trong mt h thng. Quyt nh liên h nào cn phi c thc thi là công vic thôc giai o n thit k. Có th tìm các mi liên h qua vic nghiên cu các li phát bi u v!n , các yêu cu. Ging nh danh t ã giúp chúng ta tìm lp, các 'ng t4  ây s& giúp ta tìm ra các mi quan h. Mt vài li mách bo khi tìm liên h : V trí v mt vt lý hoc s thay th, i din: M.i cm ng t xác nh hay bi u l mt v trí u là mt bi u hin ch"c ch"n cho liên h. Ví d: t i a i m, ngi trong, S bao cha: Cm ng t bi u l s bao cha, ví d nh : là thành phn c a Giao tip: Có nhi u cm ng t bi u l s giao tip, ví d truy n thông ip, nói chuyn vi, Quy n s hu: Ví d : thuc v , c a, Tho mãn mt i u kin: Nhng cm t nh : làm vic cho, là chng/v c a, qun tr, . 5.5.5. X lý các liên h không c n thit Sau khi tìm các mi liên h, bc tip theo ó là phân bic các liên h cn thit ra kh i các liên h không cn thit. Liên h không cn thit có th bao gm nhng liên h bao cha các lp ng c viên ã 80
  17. b lo i tr hoc các liên h không liên quan n h thng. Có nhng liên h c t o ra nh%m mc ích t(ng hiu qu. Nhng liên h nh th là ví d tiêu ti u c a các chi tit thc thi và không liên quan ti giai o n này. Cn chú ý phân bit gia hành ng và mi liên h. Ngi ta thng có xu hng miêu t hành ng nh là liên h, bi c liên h ln hành ng u c dn xu!t t nhng cm t mang tính ng t trong bn miêu t yêu cu. Các hành ng ã c th hin sai thành liên h c'ng cn phi c lo i b . Khi làm vic này, có th áp dng mt nguyên t"c: liên h là ni kt mang tính t+nh gia các i tng, trong khi hành ng ch* là thao tác xy ra mt ln. Hành ng vì vy nên c coi là Phng thc i vi mt i tng ch không phi quan h gia các lp. Ví d vi "Ban qun tr nhà b(ng ui vic mt nhân viên", ng t “ ui vic” th hin hành ng. Trong khi ó vi “Mt nhân viên làm vic cho hãng" thì ng t “làm vic" miêu t liên h gia hai lp nhân viên và hãng. Trong khi c g"ng lo i b các liên h d tha, b n s& th!y có mt s liên h d tha ã "l/n vào" mô hình c a chúng ta trong giai o n thit k. Hình sau ch* ra mt s lo i liên h d tha cn c bit chú tr#ng. Hình 5.18- Lo i b các liên h không cn thit 5.5.6. Nâng cp các mi liên h Mt khi các mi liên h cn thit ã c nhn d ng, bc tip theo là ngiên cu k, mô hình và nâng c!p các mi liên h ó. ng tác nâng c!p u tiên là xem xét l i tên liên h, tên vai trò, t l i cho úng vi bn ch!t quan h mà chúng th hin. M.i liên h cn phi c suy xét k, v phng din s lng thành phn tham gia (Cardinality). S h n nh (Qualification) cho liên h óng mt vai trò quan tr#ng  ây, b sung yu t h n nh có th giúp làm gim s lng. Nu cn thit, hãy b sung các liên h còn thiu. Nghiên cu k, các thuc tính, xem liu trong s chúng có thuc tính nào tht ra th hin liên h. Nu có, hãy chuy n chúng thành liên h. B sung các thông tin và i u kin cn thit c'ng nh xem xét các mi liên h trong mô hình tng th xác nh các d ng quan h gia chúng vi nhau. a) Liên h và y!u t h"n 1nh (Qualifier): 81
  18. Mt liên h c h n nh liên h hai lp và mt yu t h n nh (Qualifier) vi nhau. Yu t h n nh là mt thuc tính h n ch s lng thành phn tham gia trong mt mi liên h. Có th h n nh các mi liên h mt-ti nhi u và nhi u-ti-nhi u. Yu t h n nh giúp phân bit trong nhóm i tng c a u nhi u c a liên h. Ví d mt th mc có nhi u tp tin.Mt tp tin ch* thuc v mt th mc mà thôi. Trong mt th mc xác nh, tên c a tp tin s& xác nh duy nh!t tp tin mang tên ó. Th mc và Tp tin là hai lp, và tên tptin  ây óng vai trò yu t h n nh. Mt th mc và mt tên tp tin xác nh mt tp tin. Yu t h n nh  ây ã chuy n mt mi liên h mt-ti-nhi u thành liên h mt-ti-mt. Hình 5.19- Liên h c h n nh b) Liên h VÀ (AND Association): Nhà b(ng n# a ra quy nh: khách hàng khi mun m mt tài khon ATM phi là ch nhân c a ít nh!t mt tài khon u t. Trong mt trng hp nh th, mi liên h VÀ (AND) s& c th hin nh sau: Hình 5.20- Liên h VÀ (AND Association) Bi u  trên cho th!y mt khách hàng có th có nhi u hn mt tài khon u t có thi h n và ch* mt tài khon ATM. Trong bi u  có mt mi liên h VÀ ngm c áp dng gia nhóm tài khon u t và tài khon ATM mà mt khách hàng có th có. c) Liên h HO5C (OR Association): Ví d t i mt hãng bo hi m n#, cá nhân c'ng công ty u có th ký hp ng bo hi m, nhng cá nhân và công ty không c phép có cùng loi hp ng bo hi m nh nhau. Trong mt trng hp nh th, gii pháp là s dng liên h HO6C (OR Association). Mt liên h HO6C là mt s h n ch i vi mt nhóm hai hay nhi u liên h, xác nh r%ng i tng c a mt lp này t i mt thi i m ch* có th tham gia vào nhi u nh!t mt trong các mi liên h ó. 82
  19. Hình 5.21- Mt liên h OR mà bi u th ch* mt liên h là hp l t i m.i thi i m d) Liên h c s)p x!p (Ordered Association): Các mi ni kt (link) gia các i tng có mt trt t ngm nh. Giá tr mc nh c a trt t này là ngu nhiên. Mt liên h có trt t rõ ràng có th c hi u là mt liên h vi trt t* s)p x!p (sort order) trong nhóm các ni kt, nó s& c th hin nh sau: Hình 5.22- Tài khon tit kim c s"p xp theo khách hàng Nhãn {ordered} c ghi gn lp có i tng c s"p xp. Bi u  trên c #c là các tài khon tit kim c s"p xp theo khách hàng. e) Liên h tam nguyên (Ternary Association) Có th có nhi u hn hai lp ni kt vi nhau trong mt liên h tam nguyên. 83
  20. Hình 5.23- Liên h Tam nguyên Bi u  trên c #c nh sau: Mt khách hàng có th quan h vi b phn u t và mt b phn u t có th có mt hoc nhi u khách hàng. Mt gi!y chng nhn tài khon u t s& xu!t hin qua quan h gia khách hàng và b phn u t. f) Lp liên h (Association Class): Mt lp có th c ính kèm theo mt liên h, trong trng hp này nó s& c g#i là mt lp liên h. Mt lp liên h không c ni ti b!t k0 mt lp nào c a mi liên h, mà ti chính bn thân mi liên h. C'ng ging nh mt lp bình thng, lp liên h có th có thuc tính, Phng thc và các quan h khác. Lp liên h c s dng b sung thêm thông tin cho ni kt (link), ví d nh thi i m ni kt c thit lp. M.i ni kt c a liên h g"n li n vi mt i tng c a lp liên h. Ví d sau miêu t mt h thng thang máy. B phn i u khi n ch* huy bn thang máy. Cho m.i ni kt gia nhóm thang máy và b phn i u khi n có mt hàng xp (queue). M.i hàng lu tr nhng y u cu k c t phía b phn i u khi n ln t phía thang máy (nhng nút b!m bên trong thang). Khi b phn i u khi n ch#n mt thang máy thc hin mt li yêu cu n t mt hành khách ng ngoài thang máy (mt hành khách trên hành lang), nó s& #c các hàng và ch#n thang máy nào có hàng yêu cu ng"n nh!t. Hình 5.24- Lp liên h (Association class) 84
  21. g) Liên h  quy (Recursive Association): Có th liên kt mt lp vi bn thân nó trong mt mi liên h. Mi liên h  ây vn th hin mt s liên quan ng ngh+a, nhng các i tng c ni kt u thuc chung mt lp. Mt liên h c a mt lp vi chính bn thân nó c g#i là mt liên h  quy, và là n n tng cho r!t nhi u mô hình phc t p, s dng ví d miêu t các c!u trúc sn ph$m. Hình 5.25 ch* ra mt ví d c a liên h  quy và hình 5.26 là mt bi u  i tng cho bi u  lp trong hình 5.25. Hình 5.25- Mt m ng gm nhi u nút ni vi nhau. Hình 5.26- Mt bi u  i tng c a hình 5.25, vi tên c a các i tng 5.6. Quan h k!t tp (Aggregation) 5.6.1. Khái nim kt t#p Kt tp là mt trng hp c bit c a liên h. Kt tp bi u th r%ng quan h gia các lp da trên n n tng c a nguyên t"c "mt tng th c t o thành bi các b phn". Nó c s dng khi chúng ta mun t o nên mt thc th mi b%ng cách tp hp các thc th tn t i vi nhau. Mt ví d tiêu bi u c a kt tp là chic xe ô tô gm có bn bánh xe, mt ng c, mt khung gm, mt hp s, v.v 85
  22. Quá trình ghép các b phn l i vi nhau t o nên thc th cn thit c g#i là s kt tp. Trong quá trình tìm lp, kt tp s& c chú ý ti khi gp các lo i ng t “ c t o bi", "gm có", . Quan h kt tp không có tên riêng. Tên ngm cha trong nó là "bao gm các thành phn". 5.6.2. Kí hiu kt t#p Kí hiu UML cho kt tp là ng th)ng vi hình thoi (diamond) t sát lp bi u th s kt tp (tng th ). Mt lp tài khon c t o bi các lp chi tit v khách hàng, các lnh giao dch i vi tài khon c'ng nh các quy nh c a nhà b(ng. Quan h trên có th c trình bày nh sau: Hình 6.1- Quan h kt tp (1) M.i thành phn t o nên kt tp (tng th ) c g#i là mt b phn (aggregates). M.i b phn v phn nó l i có th c t o bi các b phn khác. Hình 6.2- Quan h kt tp (2) 86
  23. Trong trng hp tài khon k trên, mt trong các b phn c a nó là các chi tit v khách hàng. Các chi tit v khách hàng l i bao gm danh sách ch tài khon, danh sách a ch*, các quy nh v k0 h n c'ng nh các chi tit khác khi m tài khon. 5.6.3. Kt t#p và liên h Khái nim kt tp ny sinh trong tình hung mt thc th bao gm nhi u thành phn khác nhau. Liên h gia các lp mt khác là mi quan h gia các thc th . Quan sát hình sau: Hình 6.3- Kt tp và liên h Mt tài khon c t o bi các chi tit v khách hàng, các lnh giao dch i vi tài khon c'ng nh các quy nh c a nhà b(ng. Khách hàng không phi là là b phn c a tài khon, nhng có quan h vi tài khon. Nhìn chung, nu các lp c ni kt vi nhau mt cách cht ch& qua quan h "toàn th – b phn" thì ngi ta có th coi quan h là kt tp. Không có li hng dn ch"c ch"n và rõ ràng cho vic bao gi nên dùng kt tp và bao gi nên dùng liên h. Mt li tim cn nh!t quán i kèm vi nhng kin thc sâu s"c v ph m vi v!n s& giúp nhà phân tích ch#n gii pháp úng "n. 5.7. Khái quát hóa và chuyên bit hóa (Generalization & Specialization) Hãy quan sát c!u trúc lp trong bi u  sau: 87
  24. Hình 7.1- Chuyên bit hoá (Specialization) Trong hình trên, tài khon là khái nim chung c a các lo i tài khon khác nhau và cha nhng c t cn thit cho t!t c các lo i tài khon. Ví d nh nó có th cha s tài khon và tên ch tài khon. Ta có th có hai lo i tài khon c bit suy ra t d ng tài khon chung này, mt lo i mang tính k0 h n và mt lo i mang tính giao dch. Yu t chia cách hai lp này vi nhau là các quy nh chuyên ngành hay úng hn là phng thc ho t ng c a hai lo i tài khon. Tng t nh vy, tài khon u t trung h n và dài h n l i là nhng khái nim chuyên bit c a khái nim tài khon có k0 h n. Mt khác, tài khon bình thng và tài khon tit kim là nhng trng hp c bit c a lo i tài khon giao dch. Lo i c!u trúc lp nh th c g#i là mt c!u trúc hình cây hoc c!u trúc phân c!p. Khi chúng ta dch chuy n t i m xu!t phát c a cây xung di, chúng ta s& gp các khái nim càng ngày càng c chuyên bit hóa nhi u hn. Theo con ng i t tài khon n tài khon tit kim, ta s& phi i qua lp tài khon giao dch. Lp này tip tc phân lo i các lp chuyên bit hóa cao hn, tùy thuc vào chc n(ng c a chúng. 5.7.1. Kí hiu khái quát hóa và chuyên bit hóa Trong bi u  trên, các lp trong mt c!u trúc cây c ni vi nhau b%ng mt m'i tên r.ng , ch* t lp chuyên bit hn ti lp khái quát hn. Hình 7.2- Khái quát hóa 88
  25. Quá trình b"t u vi mt lp khái quát sn xu!t ra các lp mang tính chuyên bit cao hn c g#i là quá trình chuyên bit hoá (Specialization) Chuyên bit hóa: là quá trình tinh ch mt lp thành nhng lp chuyên bit hn. Chuyên bit hóa b sung thêm chi tit và c t cho lp kt qu. Lp mang tính khái quát c g#i là lp cha (superclass), kt qu chuyên bit hóa là vic t o ra các lp con (Subclass). Mt khác, nu chúng ta i d#c c!u trúc cây t di lên, ta s& gp các lp ngày càng mang tính khái quát cao hn - Ví d t lp tài khon tit kim lên ti lp tài khon. Con ng b"t u t mt lp chuyên bit và khin nó ngày càng mang tính khái quát cao hn c g#i là quá trình khái quát hóa (Generalization). Lp chuyên bit  ây c g#i là lp con, trong ví d trên là tài khon tit kim, trong khi lp khái quát kt qu c g#i là lp cha. Chuyên bit hóa và khái quát hóa là hai con ng khác nhau xem xét cùng mt mi quan h. Mt lp là lp con c a mt lp này có th óng vài trò là mt lp cha c a lp khác. 5.7.2. Yu t phân bit (Discriminatior)  t o mt c!u trúc phân c!p, cn phi có mt s thuc tính làm n n tng cho quá trình chuyên bit hóa. Thuc tính ó c g#i là y!u t phân bit (Discriminator). Vi m.i giá tr có th gán cho yu t phân bit trong lp cha, ta s& có mt lp con tng ng. Hình 7.3- Yu t phân bit (Discriminatior) Trong hình trên, yu t phân bit trong lp tài khon là "lo i tài khon". Chúng ta gi thit r%ng ch* có hai lo i tài khon, mt mang tính k0 h n và mt mang tính giao dch. Theo ó, ta phi t o ra hai lp con, mt cho các tài khon mang tính k0 h n và mt cho các tài khon mang tính giao dch. Trong mô hình i tng, không nh!t thit phi nêu bt yu t phân bit. Yu t phân bit luôn có mt trong mt c!u trúc phân c!p lp cha/ con, dù có c nh!n m nh trong mô hình i tng hay không. 89
  26. Mc du vy, m bo cho mt mô hình c nh ngh+a rõ ràng, trình bày yu t phân bit vn luôn là công vic nên thc hin. a) Lp tr4u tng: Quan sát c!u trúc trong hình trên, ta th!y lp tài khon s& không bao gi c thc th hóa, có ngh+a là h thng s& không bao gi t o ra các i tng thuc lp này. Nguyên nhân là vì lp tài khon mang tính khái quát cao n mc  vic khi t o lp này s& không có mt ý ngh+a nào áng k . Lp tài khon mc dù vy vn óng mt vai trò quan tr#ng trong vic khái quát hóa các thuc tính s& c cn n trong các lp dn xu!t t nó. Nhng lo i lp nh th c dùng cung c!p mt cây c!u trúc lp và không có s tn t i y ý ngh+a trong mt mô hình tht s ngoài i, chúng c g#i là lp tr4u trng (abstract class). b) T"o lp tr4u tng: Các lp tru trng là kt qu c a quá trình khái quát hóa. Hãy quan sát ví d c!u trúc lp sau ây. Lp tài khon ng u cây c!u trúc và c g#i là lp c(n bn. Lp c(n bn c a mt cây c!u trúc cha nhng thuc tính ã c khái quát hóa và có th c áp dng cho m#i lp dn xu!t t nó. Trong quá trình khái quát hóa, các thuc tính c dùng chung trong các lp chuyên bit c a lên lp cha. Lp cha v cui c t o bi các thuc tính chung c a t!t c các lp dn xu!t t nó. Nhng lp cha d ng nh vy trong r!t nhi u trng hp s& mang tính khái quát tuyt i và s& không theo ui mc ích khi t o, chúng có li ng x ging nh mt thùng cha (container) cho t!t c các thuc tính chung c a các lp dn xu!t. Nhng lp nh th trong trng hp chung thng là kt qu ánh x c a nhng danh t tru tng, là h qu c a phng pháp s dng các danh t nhn din lp . Hình 7.4- T o lp tru tng Bi u  trên cho ta mt ví d v khái quát hóa và các thuc tính chung, nó ch* ra nhi u lp chuyên bit. Chú ý r%ng c theo m.i mc chuyên bit hóa l i có thêm các thuc tính c b sung thêm cho các lp, khin chúng mang tính chuyên bit cao hn so vi các lp cha  mc tru tng bên trên. Ví d lp tài khon có thuc tính là s tài khon và tên khách hàng. ây là nhng thuc tính ht sc chung chung. T!t c các lp dn xu!t t nó, dù là trc tip hay gián tip ( các mc  tru tng th!p hn na), u có quy n s dng các thuc tính ó c a lp tài khon. Các lp tài khon có k0 h n và tài 90
  27. khon giao dch là hai lp chuyên bit dn xu!t t lp tài khon. Chúng có nhng thuc tính chuyên bit riêng c a chúng - ví d mc thi gian (duration) i vi lp tài khon có k0 h n và mc ti n ti thi u i vi lp tài khon giao dch – bên c nh hai thuc tính s tài khon và tên khách hàng mà chúng tha k t lp tài khon. C'ng tng t nh th vi tài khon u t ng"n h n và tài khon u t trung h n là các lo i lp thuc tài khon có k0 h n, tài khon tit kim và tài khon bình thng là các lo i lp thuc lp tài khon giao dch. c) Lp c( th (concrete class): Lp c th là nhng lp có th thc th hóa. Nh ã nói t trc, các lp c th khi thc th hóa c g#i là các i tng. Trong ví d trên, các lp tài khon u t ng"n h n và tài khon u t dài h n có th c thc th hóa thành i tng. Tng t i vi tài khon tit kim và tài khon bình thng. d) Tng k!t v phát trin cây c,u trúc: C ch dùng chung thuc tính và th tc s dng nguyên t"c khái quát hóa c g#i là tính th4a k! (inheritance). S dng tính tha k tinh ch (refine) các lp s& dn ti vic phát tri n mt cây c!u trúc. Nên phát hin nhng ng x (behaviour) chung trong mt lo t lp ri th hin nó thành mt lp cha. S khác bit trong ng x c a cùng mt lp s& dn ti vic t o ra các lp con. Khi phát tri n cây c!u trúc, hãy quan sát ng x c a các lp. Trong trng hp có mt liên h tn t i t mt lp c th n t!t c các lp con c a mt lp cha, nên dch chuy n liên h này lên lp cha. Nu tn t i mt liên h gia mt lp nào ó và mt lp cha, hãy chuyên bit hóa và nâng cao c!u trúc xác nh xem liu liên h này có c áp dng cho t!t c các lp con c a lp cha n# hay không. Nu có thì gán nó vào lp cha, nu không thì dch xung cho nhng lp con phù hp. Trong khi tin hành khái quát hóa, tr#ng tâm công vic là xác nh các ng x chung trong mt nhóm nhi u lp chuyên bit bc trung. Khi ã xây dng c mt th tc hoc mt thuc tính chung, nên ki m tra l i xem chúng có tht s là yu t chung c a t!t c các lp chuyên bit trong ph m vi này. Khái quát hóa c áp dng ch* khi chúng ta có mt tp hp các lp nh ngh+a mt lo i i tng riêng bit và có mt s lng ln các ng x chung. Tr#ng tâm  ây là t o nên lp cha cha các ng x chung ó. Khi chuyên bit hóa, ta i tìm các s khác bit trong ng x t o các lp con thích ng. Có ngh+a là ta xem xét mt lp tn t i, ki m tra xem có phi t!t c các ng x c a nó u có kh n(ng áp dng cho m#i i tng. Nu không, ta l#c ra ng x không phi lúc nào c'ng cn thit và chia trng hp nó ra thành các lp con. Tr#ng tâm c a chuyên bit hóa là t o các lp con. Vi c ch tha k, mt lp con s& k tha m#i thuc tính à th tc c a t!t c các lp cha c a nó. Hình sau làm rõ vic t o c!u trúc lp s dng tính khái quát. 91
  28. Hình 7.5- Phát tri n h thng lp (1) Thng xy ra trng hp t!t c các lp con cùng tham gia vào mt liên h hoc kt tp. Trong trng hp này nên t o lp cha nh ngh+a liên h /kt tp ó. Hình sau gii thích thêm i m này: Hình 7.6- Phát tri n h thng lp (2) 5.8. Quan h ph( thu'c và nâng c,p (Dependency & Refinement) Bên c nh liên h và khái quát hóa, UML còn nh ngh+a hai lo i quan h khác. Quan h ph( thu'c (Dependency) là mt s liên quan ng ngh+a gia hai phn t mô hình, mt mang tính c lp và mt mang tính ph thuc. M#i s thay i trong phn t c lp s& nh hng n phn t ph thuc. Phn t mô hình  ây có th là mt lp, mt gói (package), mt trng hp s dng, .v.v Có th nêu mt vài cí d cho s ph thuc nh: mt lp l!y tham s là i tng c a mt lp khác, mt lp truy nhp mt i tng toàn cc c a mt lp khác, mt lp g#i mt th tc thuc thuc mt lp khác. Trong t!t 92
  29. c các trng hp trên u có mt s ph thuc c a mt lp này vào mt lp kia, mc dù chúng không có liên h rõ ràng vi nhau. Quan h ph thuc c th hin b%ng ng th)ng g ch ri (dashed line) vi m'i tên (và có th thêm mt nhãn) gia các phn t mô hình. Nu s dng nhãn thì nó s& là mt khuôn mu (stereotype), xác nh lo i ph thuc. Hình sau ch* ra mt s ph thuc d ng "friend", có ngh+a r%ng mt phn t mô hình nhn c quy n truy cp c bit ti c!u trúc ni b c a phn t th hai (thm chí ti c nhng phn mang tính nhìn th!y là private). Hình 8.1- Mt quan h ph thuc gia các lp Nâng c,p (Refinement) là mt quan h gia hai li miêu t c a cùng mt s vt, nhng  nhng mc  tru tng hóa khác nhau. Nâng c!p có th là mi quan h gia mt lo i i tng và lp thc hin nó. Các nâng c!p thng gp khác là quan h gia mt lp phân tích (trong mô hình phân tích) và mt lp thit k (trong mô hình thit k) u mô hình hóa cùng mt th, quan h gia mt li miêu t có mc tru tng hóa cao và mt li miêu t có mc tru tng hóa th!p (ví d mt bc tranh khái quát c a mt s cng tác ng và mt bi u  chi tit c a c'ng cng tác ó). Quan h nâng c!p còn c s dng mô hình hóa nhi u mc thc thi c a cùng mt th (mt thc thi n gin và mt thc thi phc t p hn, hiu qu hn). Quan h nâng c!p c th hin b%ng ng th)ng g ch ri (dashed line) vi m'i tên r.ng. Hình 8.2- Quan h nâng c!p Quan h nâng c!p c s dng trong vic phi hp mô hình. Trong các d án ln, m#i mô hình u cn phi c phi hp vi nhau. Phi hp mô hình c s dng nh%m mc ích: Ch* ra mi liên quan gia các mô hình  nhi u mc  tru tng khác nhau. Ch* ra mi liên quan gia các mô hình  nhi u giai o n khác nhau (phân tích yêu cu, phân tích, thit k, thc thi, ) . H. tr vic qun tr c!u hình. H. tr vic theo dõi trong mô hình. 93
  30. 5.9. Nâng c,p mô hình qua các vòng l-p k! ti!p Cho ti thi i m này, chúng ta i qua các bc công vic phân tích c(n bn và t o nên phiên bn u tiên c a mô hình i tng. Mô hình này cn phi c l!y làm mc tiêu cho các vòng lp nâng c!p tip theo. Công vic nâng c!p có th c thc hin b%ng cách a mô hình qua t!t c các giai o n phát tri n mô hình i tng mt ln na. Ln này, nhng kin thc thu c trong vòng phát tri n u s& t ra r!t hu dng. Khi nâng c!p mô hình cn chú ý n các bc sau: a) Nghiên cu các lp tìm các thuc tính và th tc không ng d ng (dissimilar). Nu có, x/ lp thành các thành phn t o tính ng nh!t (harmony) trong lp . Ví d vi mt lp m nhn hai vai trò khác nhau, hãy x/ lp thành các lp kt qu vi nhng th tc c xác nh rõ ràng. b) Nu phát hin th!y mt chc n(ng không hng ti mt lp ích nào thì ó là triu chng thiu lp. Hãy b sung lp thiu và a th tc k trên vào lp ó. c) Khái quát hóa là còn cha  nu có các liên h trùng lp (nhi u liên h cùng nh ngh+a mt quan h). Trong trng hp này, cn t o lp cha kt hp các mi liên h ó. d) Nu mt vai trò mang mt ý ngh+a c bit quan tr#ng i vi h thng thì thng nó cn mt lp riêng. Mt la ch#n khác là bin liên h nh ngh+a vai trò này thành mt lp liên h. e) Nu mt lp thiu c thuc tính ln th tc và / hoc liên h thì r!t có th ây là mt lp không cn thit. Hãy lo i b nhng lp ó nu có th . f) Hãy rà sát toàn b h thng tìm nhng vai trò gia các lp còn cha c th hin. Nu có, ây là triu chng thiu liên h. g) Nu có mt liên h gia các i tng nhng l i ch)ng c th tc nào s dng ti thì r!t có th ây là mt liên h không cn thit. Ví d ta ã xác nh mt liên h gia nhân viên thu ngân và khách hàng nhng l i không có th tc nào c nh ngh+a gia hai ngi. Trong trng hp này, r!t có th liên h ó là không cn thit. M't s mách bo th*c t!: Nghiên cu hi u th!u áo v!n cn gii quyt: Khi xây dng mô hình i tng, không nên b"t u b%ng cách vit ra các c!u trúc lp, các mi liên h c'ng nh nhng mi quan h tha k l rõ trên b mt và p th)ng vào m"t chúng ta. Hãy dành thi gian nghiên cu k, bn ch!t v!n . Mô hình i tng phi c thit k phù hp vi gii pháp cho v!n mà chúng ta nh"m ti. C$n thn khi ch#n tên: Tên cn c ch#n mt cách c$n thn bi nó chng nhn s tn t i các thc th . Tên cn phi chính xác, ng"n g#n, tránh gây bàn cãi. Tên phi th hin tng th i tng ch không ch* nh"m ti mt khía c nh nào ó c a i tng. B!t c ni nào có th , hãy ch#n nhng tên nào bao cha các danh t chuyên ngành quen thuc i vi ngi s dng. Nhng tên t o ra nhng hình xa vi i vi ngi s dng, hoc các thc th c t tên mt cách ti t r!t d gây ra nhm ln. 94
  31. Cn gi cho mô hình i tng c n gin: Hãy kháng c l i xu hng t o ra các mô hình phc t p, chúng ch* mang l i s nhm ln, bi ri. Trong vòng u c a quy trình mô hình hóa i tng, hãy xác nh các mi liên h c(n bn và g t ra ngoài các chi tit, vic xem xét ti các s lng thành phn tham gia (Cardinality) trong quan h c dành cho giai o n sau; r!t có th là  vòng th hai. Tt nh!t là các chi tit phn ánh s lng các thành phn tham gian trong quan h ch* c b sung thêm vào trong vòng th hai hoc vòng th ba c a công vic mô hình hóa i tng. Thng thng, ngi ta th!y nhng phiên bn u tiên c a mô hình thng ch* cha các mi liên h vi s lng là t 0-ti-0; 0-ti-1, 1- ti-1; 1-ti-nhi u. Nên s dng các mi liên h h n nh b!t c khi nào có th . Tránh khái quát hóa quá nhi u. Thng ch* nên h n ch  ba tng khái quát. Hãy nghiên cu tht k, các mi liên h 1-ti-nhi u. Chúng thng có th c chuy n thành các quan h 1-ti-0 hoc 1-ti-1. T!t c các mô hình cn phi c l!y làm i tng cho vic tip tc nâng c!p. Nu không thc hin nhng vòng nâng c!p sau ó, r!t có th mô hình c a chúng ta s& thiu hoàn ch*nh. ng tác cho nhng ngi khác xem xét l i mô hình là r!t quan tr#ng. Thng s liên quan quá cn k vi mô hình s& khin chúng ta mù lòa, không nhn nhng ra khim khuyt c a nó. Mt cái nhìn vô t trong trng hp này là r!t cn thit. Không nên mô hình hóa các mi liên h thành thuc tính. Nu i u này xy ra, ta thng có th nhn th!y qua triu chng là mô hình thiu liên h. Thêm vào ó, ã có lúc ta b qua s cn thit c a mt yu t h n nh. Vic vit tài liu cho mô hình là vô cùng quan tr#ng. Các tài liu cn phi n"m b"t th!u áo nhng nguyên nhân n%m %ng sau mô hình và trình bày chúng chính xác nh có th . 5.10. Ch,t lng mô hình Làm sao bit c mô hình là tt hay cha tt? Mt ngôn ng mô hình hóa có th cung c!p ng pháp và ng ngh+a cho ta làm vic, nhng nó không cho ta bit liu mt mô hình va c t o dng nên là tt hay không. Yu t này m ra mt v!n quan tr#ng trong vic xác nh ch!t lng mô hình. i u ch cht khi chúng ta thit k mô hình là th chúng ta mun nói v hin thc. Mô hình mang l i s din gii cho nhng gì mà chúng ta nghiên cu (hin thc, mt vin cnh ). Trong mt mô hình, yu t quan tr#ng bt nh!t là phi n"m b"t c bn ch!t c a v!n . Trong mt h thng tài chính, chúng ta thng mô hình hóa các hóa n ch không phi các món n. Trong a phn doanh nghip, bn thân hóa n không tht s có tm quan tr#ng n nh vy, yu t quan tr#ng  ây là các món n. Mt hóa n ch* là mt s th hin c a mt món n, nhng ta cn phi mô hình hóa làm sao phn ánh i u ó. Mt khái nim khác là mt tài khon  nhà b(ng. Trong nhng n(m 70 và 80 ã có r!t nhi u mô hình th hin tài khon nhà b(ng. Khách hàng (ch nhân c a tài khon t i nhà b(ng) c coi là mt thành phn c a tài khon này (mt tài khon nhà b(ng c mô hình hóa nh là mt lp hoc là mt thc th và mt khách hàng là mt thuc tính). Khó kh(n u tiên xy ra là nhà b(ng không th x lý tài khon có nhi u ch . V!n th hai là nhà b(ng không th t o ra các chin lc 95
  32. maketing nh"m ti nhng khách hàng không có tài khon trong nhà b(ng ch* bi vì h# không có a ch*. Vì vy, mt trong nhng khía c nh c a ch!t lng mô hình là tính thích hp c a mô hình ó. Mt mô hình thích hp phi n"m b"t các khía c nh quan tr#ng c a i tng nghiên cu. Nhng khía c nh khác trong vic ánh giá ch!t lng là mô hình phi d giao tip, phi có mt mc tiêu c th , d bo qun, mang tính vng b n và có kh n(ng tích hp. Nhi u mô hình c a cùng mt h thng nhng có các mc ích khác nhau (hoc là hng nhìn khác nhau) phi có kh n(ng tích hp c vi nhau. Dù là s dng phng pháp nào hoc ngôn ng mô hình hóa nào, ta vn còn phi i mt vi các v!n khác. Khi t o dng mô hình, chúng ta tr thành mt phn c a doanh nghêp, có ngh+a là chúng ta cn phi quan sát hiu ng s can thip c a chúng ta vào doanh nghip. Yu t quan tr#ng là cn phi x lý t!t c các khía c nh c a s can thip ó ví d nh v chính sách, v(n hóa, c!u trúc xã hi và n(ng su!t. Nu không làm c i u này, r!t có th ta không có kh n(ng phát hin và n"m b"t t!t c nhng òi h i cn thit t phía khách hàng (cn chú ý r%ng nhng phát bi u yêu cu c a ra không phi bao gi c'ng chính xác là nhng gì khách hàng thc s cn). Hãy c bit chú ý n các v!n vi chính sách ni b, các mu hình xã hi, các c!u trúc không chính thc và các th lc bao quanh khách hàng. 5.10.1. Th nào là mt mô hình tt? Mt mô hình s& là mt mô hình tt nu ta có kh n(ng giao tip vi nó, nu nó phù hp vi các mc ích c a nó và nu chúng ta ã n"m b"t c nhng i m ct yu c a v!n . Mt mô hình tt òi h i thi gian xây dng; bình thng ra nó c t o bi mt nhóm phát tri n, c thành lp vi mt mc ích c th . Mt trong nhng mc ích này có th là huy ng toàn b lc lng phát hin ra các yêu cu c a mt c quan. Mt mc ích khác r!t có th là mô hình hóa mt c t yêu cu, thc hin mt giai o n phân tích, hay v& mt bn thit k k, thut cho mt h thng thông tin. Khi các cá nhân khác nhau c tp hp thành nhóm, ng tác này cn phi c thc hin tp trung vào mc tiêu nh trc. Các nhóm mô hình hóa mt doanh nghêp hoc là mt h thng thông tin r!t có th c t o bi khách hàng, chuyên gia mô hình hóa và chuyên gia ng dng. 5.10.2. Ta có th giao tip vi mô hình? T i sao mô hình l i phi là th d giao tip? T!t c các d án, dù ln hay nh , u cn phi c giao tip. Con ngi ta nói chuyn vi nhau. H# #c các tài liu c a nhau và tho lun các ni dung c a chúng. Sáng kin khi th y n%m %ng sau b!t k0 mt mô hình nào c'ng là t o ra kh n(ng giao tip vi chúng. Nu chúng ta t o ra các mô hình mà không ai #c ni, hi u ni, thì ó là vic làm vô ý ngh+a. Mô hình ch)ng phi c t o ra bi ngi dn u mt phng pháp hoc ngi dn u mt d án ra lnh. Mô hình c t o ra phc v cho vic giao tip và tp hp các c g"ng c a chúng ta t n n(ng su!t, hiu qu và ch!t lng cao nh có th . 5.10.3. Mô hình có phù hp vi mc ích c a nó không? Mt mô hình hình cn phi có mt mc ích rõ ràng, sao cho ai dùng nó c'ng nhn c ra. T!t c các mô hình u có mc ích, nhng thng mc ích này là ngm $n, và i u này khin cho vic s dng và hi u nó tr nên khó kh(n. Các mô hình phân tích và mô hình thit k có th là mô hình c a cùng mt h thng, nhng chúng vn là nhng mô hình khác nhau và tp trung vào các ch khác nhau (hay là chi tit khác nhau). Cn phi xác nh rõ ràng mc ích cho m.i mô hình có th ki m tra và 96
  33. phê duyt nó. Nu không có mc ích rõ ràng, chúng ta ví d r!t có th s& th$m tra mt mô hình hình phân tích nh th nó là mt mô hình thit k. 5.10.4. N%m b%t nhng i m tr&ng yu Nhi u mô hình ch* bao gm các tài liu c a doanh nghip – ví d nh các hóa n, nhng thông tin nhn c, các hp ng bo hi m. Nu mô hình ch* là s bao gm các tài liu thì i u gì s& xy ra nu doanh nghip thay i? ây là mt v!n r!t quan tr#ng trong thc t. Chúng ta cn thit phi n"m b"t bn ch!t c a doanh nghip (t o nên phn nhân) và mô hình xoay quanh các khái nim thit yu ó có kh n(ng x lý các thay i mt cách thích hp. Hãy mô hình hóa phn nhân c a doanh nghip và sau ó mi n mt mô hình din gii phn nhân ó. Mt khi phn nhân ã c mô hình hóa, nhng thay i nho nh trong doanh nghip có th c x lý qua vic sa i các lp din gii các lo i i tng thuc phn nhân (ví d nh các hóa n là mt s din gii c a các món n). 5.10.5. Phi hp các mô hình Các mô hình khác nhau c a cùng mt h thng phi có kh n(ng c kt hp và liên quan n nhau. Mt trong các khía c nh c a phi hp mô hình là s tích hp. Tích hp có ngh+a là mt nhóm các mô hình cùng chung mc ích và th hin cùng mt th (mc dù chúng có th có nhi u hng nhìn khác nhau, ví d nh mô hình ng, mô hình chc n(ng, mô hình t+nh), thì chúng phi có kh n(ng c ráp l i vi nhau mà không làm ny sinh mâu thun. Quan h gia các mô hình  nhng mc  tru tng khác nhau là mt khía c nh quan tr#ng khác. Nó là mt trong nhng chìa khóa dn n kh n(ng có th theo dõi bc phát tri n c a các phn t khác nhau, phc v cho công ngh lp trình. Quan h gia các mc  tru tng khác nhau có th c th hin b%ng quan h nâng c!p trong UML. i u ó có ngh+a là các mô hình s& c phi hp t i m.i mt mc  tru tng c'ng nh c phi hp gia các mc  tru tng khác nhau. 5.10.6.  phc tp c a mô hình Ngay c khi các mô hình c a chúng ta d dàng giao tip, có mt mc ích rõ ràng, n"m b"t c nhng i m tr#ng yu trong ph m vi v!n và có th c phi hp vi nhau, ta vn có th gp khó kh(n nu mô hình quá phc t p. Nhng mô hình cc k0 phc t p s& khó nghiên cu, khó th$m tra, khó phê duyt và khó bo trì. Sáng kin tt là hãy b"t u vi mt mô hình n gin, và sau ó chi tit hóa nhi u hn b%ng cách s dng vic phi hp mô hình. Nu bn ch!t ph m vi v!n c a chúng ta là phc t p, hãy x/ mô hình thành nhi u mô hình khác nhau (s dng các ti u mô hình – tc là các gói) và c g"ng qui trình này có th ki m soát c tình hung. 5.11. Tóm t)t v mô hình i tng Khi t o mô hình là chúng ta din gii các chi tit v nhng gì mà chúng ta nghiên cu, th nhng mt yu t r!t quan tr#ng là mô hình phi n"m b"t c nhng i m tr#ng yu c a i tng nghiên cu. Mt i tng là mt th gì ó mà chúng ta có th nói v và có th x lý trong mt s phng thc nào ó. Mt i tng tn t i trong th gii thc (hoc nói cho chính xác hn là trong s hi u bit c a chúng ta v th gii thc). Mt i tng có th là mt thành phn c a mt h thng nào ó trong th gii – mt chic máy, mt t chc, mt doanh nghêp. Mt lp là li miêu t t 0, 1 hoc nhi u i tng vi cùng li ng x. Lp và i tng c s dng bàn lun v các h thng. 97
  34. Khi chúng ta mô hình hóa, chúng ta s dng mt ngôn ng mô hình hóa ví d nh UML, cung c!p cho chúng ta ng pháp và ng ngh+a t o dng mô hình. Ngôn ng mô hình hóa mc dù vy không th cho chúng ta bit liu chúng ta ã t o ra mt mô hình tt hay không. Ch!t lng mô hình cn phi c chú ý riêng bit, i u ó có ngh+a là t!t c các mô hình cn phi có mt mc ích rõ ràng và chính xác và chúng phi n"m b"t c bn ch!t c a i tng nghiên cu. T!t c các mô hình cn phi c làm sao d giao tip, d th$m tra, phê duyt và bo trì. UML cung c!p mô hình t+nh, ng và theo chc n(ng. Mô hình t+nh c th hin qua các bi u  lp, bao gm các lp và mi quan h gia chúng. Quan h có th là liên h, khái quát hoá, ph thuc hoc là nâng c!p. Mt mi quan h liên h là mt s ni kt gia các lp, có ngh+a là s ni kt gia các i tng c a các lp này. Khái quát hóa là quan h gia mt phn t mang tính khái quát hn và mt phn t mang tính chuyên bit hn. Phn t mang tính chuyên bit hn có th ch* cha các thông tin b sung. Mt thc th (mt i tng là mt thc th c a mt lp) c a phn t chuyên bit hn có th c s dng b!t c ni nào mà thc th c a phn t khái quát hn c cho phép. Ph thuc là mi quan h gia hai phn t, mt mang tính c lp và mt mang tính ph thuc. M.i thay i trong phn t c lp s& gây tác ng n phn t ph thuc. Mt quan h nâng c!p là mt quan h gia hai li miêu t c a cùng mt th nhng  nhng mc  tru tng khác nhau. 5.12. Phn câu hi Hi: Khi t o dng mô hình, cn s dng các khái nim c a chính ph m vi v!n mô hình d hi u và d giao tip. áp: úng Hi: Các lp ch* th hin c!u trúc thông tin? áp: sai, các lp không phi ch* th hin c!u trúc thông tin mà còn mô t c hành vi. Hi: Các khái nim then cht thng s& tr thành các lp trong mô hình phân tích? áp: úng Hi: Thng các danh t trong các li phát bi u bài toán s& là ng c viên chuy n thành lp và i tng? áp: úng Hi: Quan h kt hp (Association) gia các lp nh ngh+a các mi liên quan có th tn t i gia các i tng? áp: úng, ví d mt mi quan h kt hp là mt s ni kt gia các lp, có ngh+a là s ni kt gia các i tng c a các lp này. Hi: Kt tp bi u th r%ng quan h gia các lp da trên n n tng c a nguyên t"c "mt tng th c t o thành bi các b phn" áp: úng, nó c s dng khi chúng ta mun t o nên mt thc th mi b%ng cách tp hp các thc th tn t i vi nhau Hi: Khái quát hoá c s dng t o các lp con? 98
  35. áp: Sai, khái quát hoá là quá trình b"t u t mt lp chuyên bit và khin nó ngày càng mang tính khái quát cao hn (lp cha) Hi: Chuyên bit hoá b sung thêm chi tit và c t cho lp kt q a? áp: úng, chuyên bit hoá là quá trình tinh ch mt lp thành nhng lp chuyên bit hn (lp con) t ≤ u 99
  36. CH NG 6 : MÔ HÌNH HÓA .NG t & u 6.1. S* cn thi!t có mô hình 'ng (Dynamic Model) Mô hình i tng và quá trình phát tri n nó là tr#ng tâm c a nhng cuc tho lun trong chng trc. Mô hình i tng nh ngh+a h thng theo khái nim các thành phn t+nh. Mô hình i tng miêu t ng x mang tính c!u trúc và chc n(ng c a các lp. Mc du vy, mô hình hóa s ho t ng tht s c a mt h thng và trình bày mt hng nhìn i vi h thng trong thi gian h thng ho t ng, chúng ta cn ti mô hình 'ng (dynamic model). Trong UML, mô hình ng cp ti các tr ng thái khác nhau trong vòng i c a mt i tng thuc h thng. Phng thc ng x c a mt h thng t i mt thi i m c th s& c miêu t b%ng các i u kin khác nhau !n nh cho s ho t ng c a nó. Mt yu t ht sc quan tr#ng là cn phi hi u cho c h thng s& áp l i nhng kích thích t phía bên ngoài ra sao, có ngh+a là chúng ta cn phi xác nh và nghiên cu nhng chu.i các th tc s& là h qu c a mt s kích thích t ngoài. Cho vic này, ta cn ti mô hình ng bi tr#ng tâm c a mô hình này là li ng x ph thuc vào thi gian c a các i tng trong h thng. Chúng ta cn ti mô hình ng bi chúng ta cn th hin s thay i xy ra trong h thng d#c theo thi gian ch y. Công c miêu t mô hình ng là không th thiu ví d trong trng hp các i tng tri qua nhi u giai o n khác nhau trong thi gian h thng ho t ng. i u ó có ngh+a là mc dù i tng c t o ra mt ln, nhng các thuc tính c a chúng ch* dn dn tng bc nhn c giá tr. Ví d nh mt tài khon u t có k0 h n c t o ra, nhng tng s ti n lãi cng dn c a nó ch* c t(ng lên dn dn theo thi gian. Các mô hình ng c'ng là yu t ht sc cn thit miêu t ng x c a mt i tng khi a ra các yêu cu hoc thc thi các tác v. C tác v ln dch v, theo nh ngh+a, u là các ho t ng ng và vì th mà ch* có th c bi u din qua mt mô hình ng. 6.2. Các thành phn ca mô hình 'ng i tng trong các h thng giao tip vi nhau, chúng gi thông ip (message) n nhau. Ví d mt i tng khách hàng là John gi mt thông ip mua hàng n ngi bán hàng là Bill làm mt vic gì ó. Mt thông ip thng là mt lnh g#i th tc mà mt i tng này g#i qua mt i tng kia. Các i tng giao tip vi nhau ra sao và hiu ng c a s giao tip nh th c g#i là khía c"nh 'ng c a mt h thng, ý ngh+a c a khái nim này là câu h i: các i tng cng tác vi nhau qua giao tip nh th nào và các i tng trong mt h thng thay i tr ng thái ra sao trong thi gian h thng ho t ng. S giao tip trong mt nhóm các i tng nh%m t o ra mt s các lnh g#i hàm c g#i là tng tác (interaction), tng tác có th c th hin qua ba lo i bi u : bi u  tun t (sequence Diagram), bi u  cng tác (collaboration Diagram) và bi u  ho t ng (activity Diagram). Trong chng này, chúng ta s& cp ti bn lo i bi u  ng c a UML: Biu $ tr"ng thái: miêu t mt i tng có th có nhng tr ng thái nào trong vòng i c a nó, ng x trong các tr ng thái ó c'ng nh các s kin nào gây ra s chuy n i tr ng thái, ví d, mt t hóa n có th c tr ti n (tr ng thái ã tr ti n) hoc là cha c tr ti n (tr ng thái cha tr ti n). 100
  37. Biu $ tun t*: miêu t các i tng tng tác và giao tip vi nhau ra sao. Tiêu i m trong các bi u  tun t là thi gian. Các bi u  tun t ch* ra chu.i c a các thông ip c gi và nhn gia mt nhóm các i tng, nh%m mc ích thc hin mt s chc n(ng. Biu $ c'ng tác: c'ng miêu t các i tng tng tác vi nhau ra sao, nhng tr#ng i m trong mt bi u  cng tác là s kin. Tp trung vào s kin có ngh+a là chú ý c bit n mi quan h (ni kt) gia các i tng, và vì th mà phi th hin chúng mt cách rõ ràng trong bi u . Biu $ ho"t 'ng: là mt con ng khác ch* ra tng tác, nhng chúng tp trung vào công vic. Khi các i tng tng tác vi nhau, các i tng c'ng thc hin các tác v, tc là các ho t ng. Nhng ho t ng này cùng th t c a chúng c miêu t trong bi u  ho t ng. Vì bi u  tun t, bi u  cng tác ln bi u  ho t ng u ch* ra tng tác nên thng b n s& phi ch#n nên s dng bi u  nào khi lp tài liu cho mt tng tác. Quyt nh c a b n s& ph thuc vào vic khía c nh nào c coi là quan tr#ng nh!t. Ngoài c!u trúc t+nh và ng x ng, hng nhìn chc n(ng c'ng có th c s dng miêu t h thng. Hng nhìn chc n(ng th hin các chc n(ng mà h thng s& cung c!p. Trng hp s dng chính là các li miêu t h thng theo chc n(ng; chúng miêu t các tác nhân có th s dng h thng ra sao. Nh ã cp t trc, trng hp s dng bình thng ra c mô hình hóa trong nhng giai o n u tiên c a quá trình phân tích, nh%m mc ích miêu t xem tác nhân có th mun s dng h thng nh th nào. Mô hình trng hp s dng ch* nên n"m b"t duy nh!t khía c nh tác nhân s dng h thng, không nên cp khía c nh h thng c xây dng bên trong ra sao. Lp và các tng tác trong h thng thc hin trng hp s dng. Tng tác c miêu t bi các bi u  tun t, bi u  cng tác và hoc/và bi u  ho t ng, tc là có mt s ni kt gia hng nhìn chc n(ng và hng nhìn ng c a h thng. Các lp c s dng trong vic thc thi các trng hp s dng c mô hình hóa và miêu t qua các bi u  lp và bi u  tr ng thái (mt bi u  tr ng thái s& c ính kèm cho mt lp, mt h thng con hoc là mt h thng). Trng hp s dng và các mi quan h c a chúng n tng tác ã c miêu t trong chng 3 (trng hp s dng). Nhìn chung, mt mô hình ng miêu t n(m khía c nh c(n bn khác nhau: Hình 6.1- Các thành phn c a mô hình ng Các thành phn k trên s& c cp chi tit hn trong các phn sau. 101
  38. Ngoài ra, mt mô hình ng c'ng còn c s dng xác nh các nguyên t"c chuyên ngành (business rule) cn phi c áp dng trong mô hình. Nó c'ng c s dng !n nh xem các nguyên t"c ó c a vào nhng v trí nào trong mô hình. Mt vài ví d cho nhng nguyên t"c chuyên ngành cn phi c th hin trong mô hình ng: Mt khách hàng không c quy n rút ti n ra nu không có mc ti n trong tài khon. Nhng món ti n u t có k0 h n không th chuy n sang mt tên khác trc khi áo h n. Gii h n cao nh!t trong mt ln rút ti n ra b%ng th/ ATM là 500 USD. 6.3. u im ca mô hình 'ng B!t c khi nào có nhng ng x ng cn phi c nghiên cu hoc th hin, chúng ta s& phi dùng n mô hình ng. Mô hình ng óng mt vai trò vô cùng quan tr#ng trong nhng trng hp nh: Các h thng mang tính tng tác cao H thng có s dng các trang thit b ngo i vi có th g#i nên các ng x c a h thng. Mô hình ng không t ra tht s hu hiu trong trng hp c a các h thng t+nh. Ví d mt h thng ch* nh%m mc ích nhp d liu lu tr vào mt ngân hàng d liu. Mt mô hình ng tp trung vào các chu.i tng tác (bi u  cng tác) và vào yu t thi gian c a các s kin (bi u  tun t). Mt mô hình ng có th c s dng cho mc ích th hin rõ ràng theo thi gian ho t ng c a h thng nu trong thi gian này có nhng i tng: c t o ra B xóa i c lu tr B h y Hãy quan sát trng hp rút ti n mt và tng tác c a khách hàng i vi nhà b(ng: Khách hàng i n t!t c các chi tit cn thit vào gi!y yêu cu rút ti n mt. Khách hàng a gi!y yêu cu ó cho mt nhân viên phát th/ xp hàng. Nhân viên phát th/ ghi s c a gi!y yêu cu rút ti n vào danh sách. ng tác ghi s c a gi!y yêu cu rút ti n c thc hin tun t, tng ng vi nhng s th/ tun t c phát ra. Mt t!m th/ xp hàng (token) c trao cho khách hàng. Khách hàng i vào hàng xp, ch nhân viên bên casse g#i úng s th/ c a mình. 102
  39. Song song vi quá trình ch c a khách hàng, gi!y yêu cu rút ti n c a anh ta tri qua nhi u giai o n trong ni b nhà b(ng. Ch ký c a khách hàng trên gi!y yêu cu rút ti n c th$m tra. Gi!y yêu cu c xem xét v phng din s tài khon và mc ti n trong tài khon. Nu mt trong hai i u kin trên không c th a mãn, quá trình rút ti n mt s& b chn l i hoc là c sa i và tip tc. Khi c hai i u kin nêu trên c th a mãn, gi!y yêu cu rút ti n mt s& c a n cho nhân viên ngi bên casse, ni khách hàng s& c g#i ti tun t d theo s th/ xp hàng. Nhân viên bên casse a ti n mt cho khách hàng. Li ng x trong vic rút ti n mt là mang tính ng. Sut quá trình rút ti n mt, tng tác và trình t c a quá trình ph thuc vào mt s các i u kin xác nh. Lo i ng x này không th c th hin qua mô hình i tng, ây là trng hp ta cn n mô hình ng. Mô hình ng c'ng t ra hu dng trong trng hp có nhng trang thit b tri qua tun t các bc trong mt vòng lp và tin trình ph thuc vào mt s i u kin nh!t nh. Ví d mt i tng mô hình hóa li ng x c a mt máy rút ti n mt t ng (ATM). Máy ATM ln lt i qua các bc c a mt vòng lp mang tính th tc (chc n(ng), b"t u t vic mt th/ ATM c út vào trong máy, x lý các yêu cu do khách hàng a ra, dng l i và ch yêu cu giao dch khác, ri sau ó quay tr l i tr ng thái ban u ( ng yên) sau khi th/ ATM ã c rút ra ngoài. Hình 6.2- Mô hình ng c a máy rút ti n ATM 6.4. S* kin và thông ip (Event & Message) 6.4.1. S kin (Event) Mt trong nhng thành phn quan tr#ng bc nh!t c a mt i tng là s kin. Mt s kin là mt s kích thích c gi t i tng này sang i tng khác. Mt s kin là mt vic s& xy ra và có th gây ra mt hành ng nào ó. Ví d nh khi b n b!m lên nút Play trên máy CD-Player, nó s& b"t u chi nh c (gi s r%ng CD-Player có in, trong máy có +a 103
  40. CD và nói chung là dàn CD-Player ho t ng tt). S kin  ây là b n nh!n lên nút Play, và hành ng  ây là b"t u chi nh c. Nu có mt s ni kt c nh ngh+a rõ ràng gia s kin và hành ng, ngi ta g#i nó là quan h nhân qu (Causality). Trong công ngh phn m m, chúng ta thng ch* mô hình hóa các h thng mang tính nhân qu, ni s kin và hành ng c ni kt vi nhau. Mt phn ví d c a quan h nhân qu: b n lái xe trên xa l vi tc  quá nhanh, cnh sát ng(n xe l i. ây không phi là nhân qu bi hành ng ng(n b n l i c a cnh sát không ch"c ch"n bao gi c'ng xy ra; vì th mà không có mt s ni kt c nh ngh+a rõ ràng gia s kin (lái xe quá nhanh) và hành ng (ng(n xe). Trong mô hình hóa, vy là ta quan tâm n s kin theo ngh+a là b!t k0 hành ng nào khin h thng phn ng theo mt cách nào ó. Quan sát ví d mt nhà b(ng l/, ta có mt vài ví d v s kin nh sau: i n mt t gi!y yêu cu rút ti n. S áo h n mt tài khon u t có k0 h n. Kt thúc mt hp ng trc k0 h n. i n mt gi!y yêu cu m tài khon. UML bit n t!t c bn lo i s kin: Mt i u kin tr thành c th a mãn (tr thành úng) Nhn c mt tín hiu ngo i t mt i tng khác Nhn c mt li g#i th tc t mt i tng khác (hay t chính i tng ó). Mt khong thi gian xác nh trc trôi qua. Xin chú ý r%ng c các l.i xy ra c'ng là s kin và có th mang tính hu dng r!t ln i vi mô hình. a) S kin c l#p và s kin ph thuc: Các s kin có th mang tính c lp hay liên quan n nhau. Có mt s s kin, theo bn ch!t, phi i trc hoc là xy ra sau các s kin khác. Ví d: i n các chi tit trong mt t yêu cu rút ti n mt s& dn ti vic nhn c mt s th/ xp hàng. S áo h n c a mt tài khon u t có k0 h n s& dn n ng tác gia h n hoc rút ti n mt. i n các chi tit trong mt gi!y yêu cu m tài khon s& dn ti vic phi np mt khon ti n ti thi u (theo quy nh) vào tài khon. Các s kin c lp là nhng s kin không c ni kt vi nhau trong b!t k0 mt phng din nào. Ví d: Rút ti n mt và a ti n vào tài khon là các s kin c lp vi nhau. M mt tài khon u t có k0 h n và m mt tài khon giao dch là c lp vi nhau. 104
  41. Kt thúc trc k0 h n mt tài khon u t và vic m mt tài khon u t có k0 h n khác là c lp vi nhau. Các s kin c lp còn có th c g#i là các s kin song song hay ng thi. Bi chúng không ph thuc vào nhau, nên các s kin này có th xy ra t i cùng mt thi i m. Trong nhi u trng hp, mt s kin riêng l/ trong ph m vi v!n s& c chuy n ti thành nhi u s kin trong h thng. Ví d: a gi!y yêu cu rút ti n mt cho nhân viên phát th/ xp hàng s& có kt qu là mt lo t các s kin ni tip. Có nhng tình hung ni mt s kin riêng l/ s& c nhn bi nhi u i tng khác nhau và khin cho chúng phn ng thích hp. Ví d nh mt li ngh ng(n mt t séc có th ng thi c gi n cho nhân viên thu ngân và nhân viên ki m tra séc. b) S* kin n'i (internal) và s* kin ngo"i (external): S kin ni là các s kin xy ra trong ni b h thng. ây là các s kin do mt i tng này gây ra i vi i tng khác. Ví d, tính toán ti n lãi cho mt tài khon u t có k0 h n s& c ni b h thng thc hin, tuân theo mt i tng quan sát ngày tháng. S kin ngo i là nhng s kin c kích nên t phía bên ngoài biên gii c a h thng, ví d nh s kt thúc trc k0 h n mt tài khon u t. c) S* kin và lp s* kin: Lp s kin i vi s kin c'ng nh lp i vi i tng bình thng. Li nh ngh+a xác nh mt lo i s kin c g#i là mt lp s kin. Lp s kin ngoài ra còn có th c phân lo i: Các tín hiu n gin: Lp s kin trong trng hp này s& c thc th hóa ch* ra mt s kin hoc là mt tín hiu c a mt s kin. Các s kin chuyn ti d liu: thng thì mt s kin có kh n(ng và chuy n ti d liu. T!t c các s kin cn phi "bit n” các i tng s& nhn c s kin này. Thông tin v ngi nhn s kin c g#i là thông tin nhn din. Nói mt cách khác, yu t nhn din xác nh các i tng s& nhn s kin. Bên c nh ó, còn có th có các d liu b sung thuc v các i tng khác, không nh!t thit phi là i tng gi hay nhn s kin. V mt nguyên t"c, các s kin thuc d ng phát tin (Broadcast) s& c truy n n cho t!t c các i tng. Nu s kin này là không quan tr#ng i vi i tng nào ó trong tr ng thái hin thi c a nó thì i tng s& b qua s kin. 6.4.2. Thông ip (Message) Trong lp trình hng i tng, mt tng tác gia hai i tng c thc thi di d ng thông ip c gi t i tng này sang i tng khác. Trong ng cnh này, yu t quan tr#ng là không nên hi u danh t "thông ip” quá chính xác theo ngh+a v(n h#c bình thng. Mt thông ip  ây thng c thc hin qua mt lnh g#i th tc n gin (mt i tng này g#i mt th tc c a mt i tng khác); khi th tc ã c thc hin xong, quy n i u khi n c trao tr v cho i tng g#i th tc cùng vi giá tr tr v . Mt thông ip mt khác c'ng có th là mt thông ip thc th c gi qua mt s c ch giao tip nào ó, hoc là qua m ng hoc là ni b trong mt máy tính, ây là 105
  42. i u thng xy ra trong các h thng thi gian thc. Thông ip c th hin trong t!t c các lo i bi u  ng (tun t, cng tác, ho t ng và tr ng thái) theo ý ngh+a là s giao tip gia các i tng. Mt thông ip c v& là mt c th)ng vi m'i tên ni gia i tng gi và i tng nhn thông ip. Lo i m'i tên s& ch* rõ lo i thông ip. Hình 6.3 ch* rõ các lo i thông ip c s dng trong UML. Hình 6.3- Các ký hiu c a các ki u thông ip Thông ip n gin (simple): Ch* miêu t n gin chi u i u khi n. Nó ch* ra quy n i u khi n c trao t i tng này sang cho i tng khác mà không kèm thêm li miêu t b!t k0 mt chi tit nào v s giao tip ó. Lo i thông ip này c s dng khi ngi ta không bit các chi tit v giao tip hoc coi chúng là không quan tr#ng i vi bi u . Thông ip ng b (synchronous): thng c thc thi là mt lnh g#i th tc. Th tc x lý thông ip này phi c hoàn t!t (bao gm b!t k0 nhng thông ip nào c lng vào trong, c gi nh là mt thành phn c a s x lý) trc khi i tng g#i tip tc thc thi. Quá trình tr v có th c ch* ra di d ng thông ip n gin. Thông ip không ng b (asynchronous): ây là d ng i u khi n trình t không ng b, ni không có mt s tr v i vi i tng g#i và ni i tng gi thông ip tip tc quá trình thc thi c a mình sau khi ã gi thông ip i, không ch cho ti khi nó c x lý xong. Lo i thông ip này thng c s dng trong các h thng thi gian thc, ni các i tng thc thi ng thi. Thông ip n gin và thông ip ng b có th c kt hp vi nhau trong ch* mt ng th)ng ch* thông ip vi m'i tên ch* thông ip ng b  mt phía và m'i tên ch* thông ip n gin  phía kia. i u này ch* rõ r%ng s tr v c xy ra hu nh ngay lp tc sau lnh g#i hàm. 6.5. Biu $ tun t* (Sequence Diagram) Bi u  tun t minh h#a các i tng tng tác vi nhau ra sao. Chúng tp trung vào các chu.i thông ip, có ngh+a là các thông ip c gi và nhn gia mt lo t các i tng nh th nào. Bi u  tun t có hai trc: trc n%m d#c ch* thi gian, trc n%m ngang ch* ra mt tp hp các i tng. Mt bi u  tun t c'ng nêu bt s tng tác trong mt cnh kch (scenario) – mt s tng tác s& xy ra t i mt thi i m nào ó trong quá trình thc thi c a h thng. T các hình ch nht bi u din i tng có các ng g ch ri (dashed line) th)ng ng bi u th ng i i tng, tc là s tn t i c a i tng trong chu.i tng tác. Trong khong thi gian này, i tng c thc th hóa, s2n sàng gi và nhn thông ip. Quá trình giao tip gia các i tng c th hin b%ng các ng th)ng thông ip n%m ngang ni các ng i i tng. M.i tên 106
  43.  u ng th)ng s& ch* ra lo i thông ip này mang tính ng b, không ng b hay n gin.  #c bi u  tun t, hãy b"t u t phía bên trên c a bi u  ri ch y d#c xung và quan sát s trao i thông ip gia các i tng xy ra d#c theo tin trình thi gian. Ví d hãy quan sát mt cnh kch rút ti n mt t i mt máy ATM c a mt nhà b(ng l/: Hình 6.4- Bi u  cnh kch rút ti n mt t i máy ATM Bi u  trên có th c din gii theo trình t thi gian nh sau: Có ba lp tham gia cnh kch này: khách hàng, máy ATM và tài khon. Khách hàng a yêu cu rút ti n vào máy ATM i tng máy ATM yêu cu khách hàng cung c!p mã s Mã s c gi cho h thng ki m tra tài khon i tng tài khon ki m tra mã s và báo kt qu ki m tra n cho ATM ATM gi kt qu ki m tra này n khách hàng Khách hàng nhp s ti n cn rút. 107
  44. ATM gi s ti n cn rút n cho tài khon i tng tài khon tr s ti n ó vào mc ti n trong tài khon. T i thi i m này, chúng ta th!y có mt m'i tên quay tr l i ch* vào i tng tài khon. Ý ngh+a c a nó là i tng tài khon x lý yêu cu này trong ni b i tng và không gi s kin ó ra ngoài. i tng tài khon tr v mc ti n mi trong tài khon cho máy ATM. i tng ATM tr v mc ti n mi trong tài khon cho khách hàng và d+ nhiên, c lng ti n khách hàng ã yêu cu c rút. i tng tài khon ch* b"t u c sinh ra khi i tng ATM cn ti nó ki m tra mã s và i tng tài khon tip tc sng cho ti khi giao dch c hoàn t!t. Sau ó, nó cht i. Bi khách hàng có th mun tip tc thc hin các giao dch khác nên i tng khách hàng và i tng máy ATM vn tip tc tn t i, i u này c ch* ra qua vic các ng i i tng c kéo vt quá ng th)ng th hin s kin cui cùng trong chu.i tng tác. Lo i tng tác này là r!t hu dng trong mt h thng có mt s lng nh các i tng vi mt s lng ln các s kin xy ra gia chúng. Mc dù vy, khi s lng các i tng trong mt h thng t(ng lên thì mô hình này s& không còn m!y thích hp.  có th v& bi u  tun t, u tiên hãy xác nh các i tng liên quan và th hin các s kin xy ra gia chúng. Khi v& bi u  tun t, cn chú ý: S kin c bi u din b%ng các ng th)ng n%m ngang. i tng b%ng các ng n%m d#c. Thi gian c th hin b%ng ng th)ng n%m d#c b"t u t trên bi u . i u ó có ngh+a là các s kin cn phi c th hin theo úng th t mà chúng xy ra, v& t trên xung di. 6.6. Biu $ c'ng tác (Collaboration Diagram) Mt bi u  cng tác miêu t tng tác gia các i tng c'ng ging nh bi u  tun t, nhng nó tp trung trc ht vào các s kin, tc là tp trung ch yu vào s tng tác gia các i tng. Trong mt bi u  cng tác, các i tng c bi u din b%ng kí hiu lp. Th t trong bi u  cng tác c th hin b%ng cách ánh s các thông ip. K, thut ánh s c coi là hi có phn khó hi u hn so vi k, thut m'i tên s dng trong bi u  tun t. Nhng u i m c a bi u  cng tác là nó có th ch* ra các chi tit v các lnh g#i hàm (th tc), yu t c né tránh trong bi u  tun t. Bi u  sau ây là mt ví d cho mt bi u  cng tác, c chu$n b c'ng cho mt cnh kch rút ti n mt nh trong bi u  tun t c a phn trc. Hãy quan sát các th t s trong bi u . u tiên th tc WithdrawalReq() c g#i t lp khách hàng. ó là lnh g#i s 1. Bc tip theo trong tun t là hàm AskForPin(), s 1.1, c g#i t lp ATM. Thông ip trong bi u  c vit di d ng pin:= AskForPin(), th hin r%ng "giá tr tr v " c a hàm này chính là mã s mà lp khách hàng s& cung c!p. 108
  45. Hình cung bên lp tài khon bi u th r%ng hàm ComputeNetBalance() c g#i trong ni b lp tài khon và nó x lý cc b. Thng thì nó s& là mt th tc riêng (private) c a lp. Hình 6.5- Mt bi u  cng tác c a kích cnh rút ti n  máy ATM 6.7. Biu $ tr"ng thái (State Diagram) Bi u  tr ng thái n"m b"t vòng i c a các i tng, các h thng con (Subsystem) và các h thng. Chúng cho ta bit các tr ng thái mà mt i tng có th có và các s kin (các thông ip nhn c, các khong thi gian ã qua i, các l.i xy ra, các i u kin c th a mãn) s& nh hng n nhng tr ng thái ó nh th nào d#c theo tin trình thi gian. Bi u  tr ng thái có th ính kèm vi t!t c các lp có nhng tr ng thái c nhn din rõ ràng và có li ng x phc t p. Bi u  tr ng thái xác nh ng x và miêu t nó s& khác bit ra sao ph thuc vào tr ng thái, ngoài ra nó c'ng còn miêu t rõ nhng s kin nào s& thay i tr ng thái c a các i tng c a mt lp. 6.7.1. Trng thái và s bin i trng thái (State transition) T!t c các i tng u có tr ng thái; tr ng thái là mt kt qu c a các ho t ng trc ó ã c i tng thc hin và nó thng c xác nh qua giá tr c a các thuc tính c'ng nh các ni kt c a i tng vi các i tng khác. Mt lp có th có mt thuc tính c bit xác nh tr ng thái, hoc tr ng thái c'ng có th c xác nh qua giá tr c a các thuc tính “bình thng" trong i tng. Ví d v các tr ng thái c a i tng: Hóa n ( i tng) ã c tr ti n (tr ng thái). Chic xe ô tô ( i tng) ang ng yên (tr ng thái). ng c ( i tng) ang ch y (tr ng thái). Jen ( i tng) ang óng vai trò ngi bán hàng (tr ng thái). 109
  46. Kate ( i tng) ã l!y chng (tr ng thái). Mt i tng s& thay i tr ng thái khi có mt vic nào ó xy ra, th c g#i là s kin; ví d có ai ó tr ti n cho hóa n, bt ng c xe ô tô hay là l!y chng l!y v. Khía c nh ng có hai chi u không gian: tng tác và s bin i tr ng thái ni b. Tng tác miêu t li ng x i ngo i c a các i tng và ch* ra i tng này s& tng tác vi các i tng khác ra sao (qua vic gi thông ip, ni kt hoc ch!m dt ni kt). S bin i tr ng thái ni b miêu t mt i tng s& thay i các tr ng thái ra sao – ví d giá tr các thuc tính ni b c a nó s& thay i nh th nào. Bi u  tr ng thái c s dng miêu t vic bn thân i tng phn ng ra sao trc các s kin và chúng thay i các tr ng thái ni b c a chúng nh th nào, ví d, mt hóa n s& chuy n t tr ng thái cha tr ti n sang tr ng thái ã tr ti n khi có ai ó tr ti n cho nó. Khi mt hóa n c t o ra, u tiên nó bc vào tr ng thái cha c tr ti n. 6.7.2. Bi u  trng thái Bi u  tr ng thái th hin nhng khía c nh mà ta quan tâm ti khi xem xét tr ng thái c a mt i tng: Tr ng thái ban u Mt s tr ng thái  gia Mt hoc nhi u tr ng thái kt thúc S bin i gia các tr ng thái Nhng s kin gây nên s bin i t mt tr ng thái này sang tr ng thái khác Hình sau s& ch* ra các kí hiu UML th hin tr ng thái b"t u và tr ng thái kt thúc, s kin c'ng nh các tr ng thái c a mt i tng. Hình 6.6- Các ký hiu UML th hin b"t u, kt thúc, s kin và tr ng thái c a mt i tng. Hình 6.7- Bi u  tr ng thái thc hin hoá n. Mt tr ng thái có th có ba thành phn, nh c ch* trong hình sau : 110
  47. Hình 6.8- Các ng(n Tên, Bin tr ng thái và hành ng Phn th nh!t ch* ra tên c a tr ng thái, ví d nh ch, ã c tr ti n hay ang chuy n ng. Phn th hai (không b"t buc) dành cho các bin tr ng thái. ây là nhng thuc tính c a lp c th hin qua bi u  tr ng thái; nhi u khi các bin t m thi c'ng t ra r!t hu dng trong tr ng thái, ví d nh các lo i bin m (counter). Phn th ba (không b"t buc) là phn dành cho ho t ng, ni các s kin và các hành ng có th c lit kê. Có ba lo i s kin chu$n hóa có th c s dng cho phn hành ng: entry (i vào), exit (i ra), và do (th c hin). Lo i s kin i vào c s dng xác nh các hành ng khi nhp tr ng thái, ví d gán giá tr cho mt thuc tính hoc gi i mt thông ip. S kin i ra có th c s dng xác nh hành ng khi ri b tr ng thái. S kin th c hin c s dng xác nh hành ng cn phi c thc hin trong tr ng thái, ví d nh gi mt thông ip, ch, hay tính toán. Ba lo i s kin chu$n này không th c s dng cho các mc ích khác. Mt s bin i tr ng thái thng có mt s kin i kèm vi nó, nhng không b"t buc. Nu có mt s kin i kèm, s thay i tr ng thái s& c thc hin khi s kin kia xy ra. Mt hành ng lo i th c hin trong tr ng thái có th là mt quá trình ang tip din (ví d ch, i u khi n các th tc, ) phi c thc hin trong khi i tng vn  nguyên trong tr ng thái này. Mt hành ng th c hin có th b ng"t bi các s kin t ngoài, có ngh+a là mt s kin kin gây nên mt s bin i tr ng thái có th ngng ng"t mt hành ng thc hin mang tính ni b ang tip din. Trong trng hp mt s bin i tr ng thái không có s kin i kèm thì tr ng thái s& thay i khi hành ng ni b trong tr ng thái ã c thc hin xong (hành ng ni b ki u i vào, i ra, thc hin hay các hành ng do ngi s dng nh ngh+a). Theo ó, khi t!t c các hành ng thuc tr ng thái ã c thc hin xong, mt s thay i tr ng thái s& t ng xy ra mà không cn s kin t ngoài. Hình 6.9- Bin i tr ng thái không có s kin t ngoài. S thay i tr ng thái xy ra khi các ho t ng trong m.i tr ng thái c thc hin xong. 6.7.3. Nh#n bit trng thái và s kin Quá trình phát hin s kin và tr ng thái v mt bn ch!t bao gm vic h i mt s các câu h i thích hp: Mt i tng có th có nhng tr ng thái nào?: Hãy lit kê ra t!t c nhng tr ng thái mà mt i tng có th có trong vòng i c a nó. 111
  48. Nhng s kin nào có th xy ra?: Bi s kin gây ra vic thay i tr ng thái nên nhn ra các s kin là mt bc quan tr#ng nhn din tr ng thái. Tr ng thái mi s& là gì?: Sau khi nhn din s kin, hãy xác nh tr ng thái khi s kin này xy ra và tr ng thái sau khi s kin này xy ra. Có nhng th tc nào s& c thc thi?: Hãy ý n các th tc nh hng n tr ng thái c a mt i tng. Chu.i tng tác gia các i tng là gì?: Tng tác gia các i tng c'ng có th nh hng n tr ng thái c a i tng. Qui nh nào s& c áp dng cho các phn ng c a các i tng vi nhau?: Các qui nh ki m t a phn ng i vi mt s kin s& xác nh rõ hn các tr ng thái. Nhng s kin và s chuy n ti nào là không th xy ra?: Nhi u khi có mt s s kin hoc s thay i tr ng thái không th xy ra. Ví d nh bán mt chic ô tô ã c bán ri. Cái gì khin cho mt i tng c t o ra?: i tng c t o ra tr li cho mt s kin. Ví d nh mt sinh viên ghi danh cho mt khóa h#c. Cái gì khin cho mt i tng b h y?: i tng s& b h y i khi chúng không c cn ti na. Ví d khi mt sinh viên kt thúc mt khóa h#c. Cái gì khin cho i tng cn phi c tái phân lo i (reclassfied)?: Nhng lo i s kin nh mt nhân viên c t(ng chc thành nhà qun tr s& khin cho ng tác tái phân lo i c a nhân viên ó c thc hin. 6.7.4. Mt s li mách bo cho vic to dng bi u  trng thái Chuy n bi u  tun t thành bi u  tr ng thái. Xác nh các vòng lp (loop) B sung thêm các i u kin biên và các i u kin c bit Trn ln các cnh kch khác vào trong bi u  tr ng thái. Mt khi mô hình ã c t o nên, hãy nêu ra các câu h i và ki m tra xem mô hình có kh n(ng cung c!p t!t c các câu tr li. Qui trình sau ây cn phi c nh"c l i cho m.i i tng. a) Chuyn biu $ tun t* thành biu $ tr"ng thái Hãy dõi theo mt chu.i các s kin c miêu t trong bi u , chu.i này phi mang tính tiêu bi u cho các tng tác trong h thng. Hãy quan sát các s kin nh hng n i tng mà ta ang nghiên cu. Hãy s"p xp các s kin thành mt ng dn, dán nhãn input (hoc entry) và output (exit) cho các s kin. Khong cách gia hai s kin này s& là mt tr ng thái. Nu cnh kch có th c nh"c i nh"c l i r!t nhi u ln (vô gii h n), hãy ni ng dn t tr ng thái cui cùng n tr ng thái u tiên. 112
  49. Bi u  sau ây ch* ra bi u  tr ng thái c a mt lp máy ATM, c chit su!t t bi u  tun t hoc bi u  cng tác ã c trình bày trong các phn trc. Hình 6.10- Chuy n mt bi u  tun t sang bi u  tr ng thái b) Nhn ra các vòng l-p (loop) Mt chu.i s kin có th c nh"c i nh"c l i vô s ln c g#i là vòng lp (loop). Hình 6.11- Bi u  lp Chú ý: Trong mt vòng lp, chu.i các s kin c nh"c i nh"c l i cn phi ng nh!t vi nhau. Nu có mt chu.i các s kin khác chu.i khác thì trng hp ó không có vòng lp. Lý tng nh!t là mt tr ng thái trong vòng lp s& có s kin kt thúc. ây là yu t quan tr#ng, nu không thì vòng lp s& không bao gi kt thúc. c) B sung thêm các iu kin biên và các iu kin -c bit Sau khi ã hoàn t!t bi u  tr ng thái cho m#i i tng cn thit trong h thng, ã n lúc chúng ta cn ki m tra, i chng chúng vi i u kin biên và các i u kin c bit khác, nhng i u kin r!t có th ã cha c quan tâm  trong thi gian t o dng bi u  tr ng thái. i u kin biên là nhng i u kin thao tác trên giá tr, ây là nhng giá tr n%m bên ranh gii c a mt i u kin quyt nh v tr ng thái c a i tng, ví d nh quy nh v k0 h n c a mt tài khon là 30 ngày thì ngày th 31 113
  50. i vi tài khon này s& là mt i u kin biên. Các i u kin c bit là nhng i u kin ngo i l, ví d ngày th 30 c a tháng 2 n(m 2000 (nu có mt i u kin tht s nh vy tn t i ngoài i thc). d) Tr'n ln các cnh k1ch khác vào trong biu $ tr"ng thái Mt khi bi u  tr ng thái cho mt i tng ã s2n sàng, chúng ta cn phi trn nhng chu.i s kin có nh hng n i tng này vào trong bi u  tr ng thái. i u này có ngh+a là chúng ta cn phi quan sát các hiu ng gián tip c a các s kin khác i vi i tng ang là ch chính c a bi u  tr ng thái. ây là vic quan tr#ng, bi các i tng trong mt h thng tng tác vi nhau và vì các i tng khác c'ng có kh n(ng gây nên s kin cho mt i tng nh trc, nên li ng x này c'ng cn phi c th hin trong bi u  tr ng thái. i m b"t u cho công vic này là: 7n nh mt i m b"t u chung cho t!t c các chu.i s kin b sung. Xác nh i m ni các ng x b"t u khác bit vi nhng ng x ã c mô hình hóa trong bi u  tr ng thái. B sung thêm s các bin i mi t tr ng thái này, trong t cách mt ng dn thay th. Cn ý n nhng ng dn có v/ ngoài ng nh!t nhng tht ra có khác bit trong mt tình hung nh!t nh nào ó. Hãy chú ý n các s kin xy ra trong nhng tình hung b!t tin. M.i s kin do khách hàng hay ngi s dng gây nên u có th sa vào tr ng thái c a các s kin b!t tin. H thng không n"m quy n i u khi n i vi ngi s dng và ngi s dng có th quyt nh làm ny ra mt s kin t i mt thi i m tin li i vi anh ta. Ví d nh khách hàng có th quyt nh kt thúc trc k0 h n mt tài khon u t. Mt trng hp khác c'ng cn phi c x lý là s kin do ngi s dng gây nên không th xy ra. Có mt lo t các lý do (ngi s dng thiu tp trung, bun nn, l ãng ) khin cho s kin lo i này không xy ra. C trng hp này c'ng phi c x lý th!u áo. Ví d mt khách hàng th!t b i trong vic báo cho nhà b(ng bit nhng mnh lnh c a anh ta v k0 h n c a tài khon, mt t!m séc c vit ra nhng l i không có kh n(ng gii t a mc ti n cn thit. Nhìn theo phng din các bi u  tr ng thái nh là mt thành phn c a mô hình ng, cn chú ý nhng i m sau: Bi u  tr ng thái ch* cn c t o dng nên cho các lp i tng có ng x ng quan tr#ng. Hãy th$m tra bi u  tr ng thái theo khía c nh tính nh!t quán i vi nhng s kin dùng chung cho toàn b mô hình ng c úng "n. Dùng các trng hp s dng h. tr cho quá trình t o dng bi u  tr ng thái. Khi nh ngh+a mt tr ng thái, hãy ch* ý n nhng thuc tính liên quan. 6.8. Biu $ ho"t 'ng (Activity Diagram) Bi u  ho t ng n"m b"t hành ng và các kt qu c a chúng. Bi u  ho t ng tp trung vào công vic c thc hin trong khi thc thi mt th tc (hàm), các ho t ng trong mt ln thc thi mt 114
  51. trng hp s dng hoc trong mt i tng. Bi u  ho t ng là mt bin th c a bi u  tr ng thái và có mt mc tiêu tng i khác, ó là n"m b"t hành ng (công vic và nhng ho t ng phi c thc hin) c'ng nh kt qu c a chúng theo s bin i tr ng thái. Các tr ng thái trong bi u  ho t ng ( c g#i là các tr ng thái hành ng) s& chuy n sang giai o n k tip khi hành ng trong tr ng thái này ã c thc hin xong (mà không xác nh b!t k0 mt s kin nào theo nh ni dung c a bi u  tr ng thái). Mt s i m phân bit khác gia bi u  ho t ng và bi u  tr ng thái là các hành ng c a nó c nh v trong các lung (swimlane). Mt lung s& gom nhóm các ho t ng, chú ý ti khái nim ngi chu trách nhim cho chúng hoc chúng n%m  âu trong mt t chc. Mt bi u  ho t ng là mt phng pháp b sung cho vic miêu t tng tác, i kèm vi trách nhim th hin rõ các hành ng xy ra nh th nào, chúng làm gì (thay i tr ng thái i tng), chúng xy ra khi nào (chu.i hành ng), và chúng xy ra  âu (lung hành ng). Bi u  ho t ng có th c s dng cho nhi u mc ích khác nhau, ví d nh:  n"m b"t công vic (hành ng) s& phi c thc thi khi mt th tc c thc hin. ây là tác dng thng gp nh!t và quan tr#ng nh!t c a bi u  ho t ng.  n"m b"t công vic ni b trong mt i tng.  ch* ra mt nhóm hành ng liên quan có th c thc thi ra sao, và chúng s& nh hng n nhng i tng n%m xung quanh chúng nh th nào.  ch* ra mt trng hp s dng có th c thc th hóa nh th nào, theo khái nim hành ng và các s bin i tr ng thái c a i tng.  ch* ra mt doanh nghip ho t ng nh th nào theo các khái nim công nhân (tác nhân), qui trình nghip v (workflow), hoc t chc và i tng (các khía c nh vt lý c'ng nh tri thc c s dng trong doanh nghip). Bi u  ho t ng có th c coi là mt lo i Flow chart. i m khác bit là Flow Chart bình thng ra ch* c áp dng i vi các qui trình tun t, bi u  ho t ng có th x lý c các các qui trình song song. Hành 'ng và s* thay i tr"ng thái Mt hành ng c thc hin sn sinh ra mt kt qu. Vic thc thi c a th tc có th c miêu t di d ng mt tp hp c a các hành ng liên quan, sau này chúng s& c chuy n thành các dòng code tht s. Theo nh nh ngh+a  phn trc, mt bi u  ho t ng ch* ra các hành ng cùng mi quan h gia chúng và có th có mt i m b"t u và mt i m kt thúc. Bi u  ho t ng s dng c'ng cùng nhng ký hiu nh trong bi u  tr ng thái bình thng. 115