Bài giảng Công nghệ phần mềm - Chương 7: Thiết kế hướng đối tượng Sử dụng UML - Nguyễn Thanh Bình

pdf 77 trang hoanguyen 4000
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm - Chương 7: Thiết kế hướng đối tượng Sử dụng UML - Nguyễn Thanh Bình", để 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:

  • pdfbai_giang_cong_nghe_phan_mem_chuong_7_thiet_ke_huong_doi_tuo.pdf

Nội dung text: Bài giảng Công nghệ phần mềm - Chương 7: Thiết kế hướng đối tượng Sử dụng UML - Nguyễn Thanh Bình

  1. Thi t k hưng đi tưng - S dng UML (7) Nguy n Thanh Bình Khoa Cơng ngh Thơngtin Tr ưng ði h c Bách khoa ði h c ðà Nng Ni dung  Khái ni m c ơ b n h ưng đi t ưng  Bi u đ ca s dng  Thi t k cu trúc t ĩnh  Thi t k cu trúc đng  Sinh mã 2 1
  2. Hưng ch c n ăng  Da vào các ch c n ăng c a h th ng  H th ng là tp h p các ch c n ăng  Chia nh các ch c n ăng và làm m n d n  H th ng g m các h th ng con  Làm ch đ ph c t p  Các ch c n ăng trao đi v i nhau b ng truy n tham s ho c d li u (ch ng h n bi n tồn c c) dùng chung 3 Hưng ch c n ăng  Phân c p ch c n ăng H th ng Ch c n ăng 1 Ch c n ăng 2 Ch c n ăng 1.1 Ch c n ăng 1.2 Ch c n ăng 2.1 Ch c n ăng 2.2 4 2
  3. Hưng ch c n ăng  Ưu đim  Phân tích đưc các ch c n ăng c a h th ng  ðư a l i k t qu mongđi  Nh ưc đim  Ch c n ăng  cu trúc  Thay đi v ch c n ăng khĩkhănthayđi c u trúc  Tính m ca h th ng th p  Khĩ tái s dng  Chi phí sa ch a l i l n 5 Hưng đi t ưng  Ly đi t ưng làm trung tâm  H th ng = t p h p các đi t ưng + quan h gi a các đi t ưng  Các đi t ưng trao đi b ng thơng đip (message)  Khơng s dng bi n tồn c c  ðĩng gĩi  Th a k 6 3
  4. Hưng đi t ưng  Phân bi t  Lp trình c u trúc • Thu t tốn + c u trúc d li u = chương trình  Lp trình H ðT • Σđi t ưng = ch ươ ng trình • đi t ưng = thu t tốn + c u trúc d li u 7 Hưng đi t ưng  Ưu đim chính  Gn g ũi v i th gi i th c  Tái s dng d dàng  ðĩng gĩi, che d u thơng tin làm cho h th ng tin c y h ơn  Th a k làm gi m chi phí, h th ng cĩ tính m caohơn  Xây d ng h th ng l n và ph c t p 8 4
  5. ði t ưng  ði t ưng (object) là khái ni m cho phép mơ t các s vt/th c th trong th gi i th c  Các đi t ưng duy trì các quan h gi a chúng  Nguy n V ăn A là mt đi t ưng 9 ði t ưng  Các tính ch t c a đi t ưng  ði t ưng = tr ng thái + hành vi + đnh danh • Tr ng thái là các đc tính c a đi t ưng ti m t th i đim • Hành vi th hi n các ch c n ăng c a đi tưng • ðnh danh th hi n s tn t i duy nh t ca đi t ưng 10 5
  6. ði t ưng : tr ng thái  Tr ng thái = t p h p các thu c tính  Mi thu c tính mơ t mt đc tính  Ti m t th i đim c th , các thu c tính mang các giá tr trong mi n xác đnh  Ví d • Mt chi c xe máy: màu xanh, 110 cm3, dream, 12000km, đng yên, 11 ði t ưng : hành vi  Hành vi = t p h p các ph ươ ng th c  Ph ươ ng th c: là mt thao tác ho c đưc th c hi n b i chính nĩ, ho c th c hi n khi cĩ yêu c u t mơi tr ưng (thơng đip t đi t ưng khác)  Hành vi ph thu c vào tr ng thái  Ví d: • mt xe máy cĩ các hành vi: kh i đng, ch y, 12 6
  7. Giao ti p gi a các đi t ưng  Các đi t ưng giao ti p v i nhau  Gi thơng đip (message) cho nhau Thơng đip ði t ưng A ði t ưng B  Các lo i thơng đip • hàm d ng (constructor) • hàm h y (destructor) • hàm ch n l a (get) • hàm s a đi (set) • các hàm ch c n ăng khác 13 ði t ưng  Gi a các đi t ưng cĩ mi liên k t (link) v i nhau  Ví d Nguy n V ăn A Hc ði h c ðà Nng 14 7
  8. Lp  Lp là khái ni m dùng đ mơ t mt tp h p các đi t ưng cĩ cùng m t cu trúc, cùng hành vi và cĩ cùng nh ng m i quan h vi các đi t ưng khác  Lp = các thu c tính + các ph ươ ng th c 15 Lp  Lp là mt b ưc tr u t ưng hĩa  Tìm ki m các đim gi ng nhau, b qua các đim khác nhau c a đi t ưng Person Name Age changeAge  Tr u t ưng hĩa làm gi m đ ph c t p 16 8
  9. Lp  Quan h gi a các l p: k t h p  Mt k t h p là mt t p h p các m i liên k t gi a các đi t ưng Sinh viên hc ði h c 17 Lp & ði t ưng  ði t ưng là th hi n (instance) c a l p  Giá tr là th hi n c a thu c tính  Liên k t là th hi n c a k t h p  Lp ði t ưng  Thu c tính Giátr  Kt h p Liên k t 18 9
  10. Các tính ch t c a H ðT  Tính đĩng gĩi (encapsulation)  d li u + x lý d li u = đi t ưng  thu c tính + ph ươ ng th c = l p  Ưu đim  Hn ch nh h ưng khi cĩ sthayđi c p nh t  Ng ăn c n s truy c p thơng tin t bên ngồi  Che d u thơng tin 19 Các tính ch t c a H ðT  Tính th a k (inheritance)  Mt l p đưc xây d ng t mt ho c nhi u lp khác b ng vi c chia s các thu c tính và ph ươ ng th c  Lp con th a k các thu c tính vàphương th c t lp cha  Tng quát hĩa/chuyên bi t hĩa • Tng quát hĩa (generalization): đt các tính ch t chung c a các l p khác nhau vào m t l p cha • Chuyên bi t hĩa (specialization): t o ra m t l p con cĩ các tính ch t riêng t lp cha 20 10
  11. Các tính ch t c a H ðT  ðơ n th a k : mt l p con ch th a k t mt l p cha duy nh t Chuyên bi Chuyên XeƠtơ T ng quát hĩa ng quát t hĩa t XeKh ách XeT i  Lp tr u t ưng hay l p chung: XeƠtơ  Lp c th hay l p chuyên bi t: XeKhách  Lp chuyên bi t cĩ th thay th lp chung trong t t c các ng d ng. Ví d: Ơtơ t i là mt ơtơ. 21 Các tính ch t c aHðT  ða th a k : mt l p con th a k t nhi u l p cha khác nhau Person Personnel Student Reseacher Teacher Phd candidate 22 11
  12. Các tính ch t c a H ðT  ða th a k  ðng đ tên các thu c tính X Y a a Z a c a X a c a Y  ða th a k khơngđưc ch p nh n b i m t s ngơn ng : Java 23 Các tính ch t c a H ðT  Ưu đim c a th a k  Phân lo i các l p: các l p đưc phân lo i, s p x p theo m t th bc đ d qu n lí  Xây d ng các l p: các l p con đưc xây d ng t các l p cha  Tit ki m th i gian xây d ng, tránh lp l i thơng tin 24 12
  13. Các tính ch t c a H ðT  Tính đa hình (polymorphism): ca ph ươ ng th c, t c là kh năngc ác ph ươ ng th c khác nhau đưc th c hi n đ tr li cùng m t yêu c u  Mi l p con th a k đc t các ph ươ ng th c t lp cha, và các ph ươ ng th c này cĩ th đưc s a đi trong l p con đ th c hi n các ch c n ăng riêng trong l p đĩ  Mt ph ươ ng th c (cùng m t tên ph ươ ng th c) cĩ nhi u d ng (đnh ngh ĩa) khác nhau trong các l p khác nhau 25 Các tính ch t c a H ðT  Ví d tính đa hình ðaGiác dienTich() HìnhVuơng HìnhTamGiác dienTich() dienTich() 26 13
  14. Ni dung  Khái ni m c ơ b n h ưng đi t ưng  Bi u đ ca s dng  Thi t k cu trúc t ĩnh  Thi t k cu trúc đng  Sinh mã 27 Ca s dng (Use case)  Bưc đu tiên ca phân tích yêu cu là xác đnh các ca s dng ca h th ng  Mt ca s dng là mt tươ ng tác gi a h th ng và mơi tr ưng  Tp hp các ca s dng là mơ t tồn b h th ng cn xây dng 28 14
  15. Ca s dng  Ví d: phát tri n mt ph n mm th o văn bn  Các ca s dng cĩ th :  Nh p văn bn mi  Sa văn bn đã tn ti  To mc lc  Chép đon văn bn  29 Ca s dng  Mt ca s dng tươ ng ng vi mt ch c năng ca h th ng dưi gĩc nhìn ca ng ưi s dng  Mt ca s dng cĩ th ln ho c nh  Mt ca s dng ch ra làm th nào mt mc tiêu ca ng ưi s dng đưc th a mãn bi h th ng 30 15
  16. Ca s dng  Cn phân bi t các mc tiêu ca ng ưi s dng và các tươ ng tác ca h vi h th ng  Mc tiêu: cái mà ng ưi s dng mong đi  Tươ ng tác: k thu t cho phép đáp ng mc tiêu  Ví d  Mc tiêu: cĩ đưc mt văn bn trình bày đp  Tươ ng tác: ch n đnh dng trang, ch n font ch , đnh ngh ĩa các ki u tiêu đ (heading),  Th c t, chúng ta xác đnh các mc tiêu tr ưc, sau đĩ ch n tp hp các tươ ng tác đáp ng các mc tiêu đĩ 31 Ca s dng  Ví d: cn xây dng mt h th ng ATM cho phép rút ti n  Cĩ th cĩ vài tươ ng tác chung trong mt kch bn sau:  ðư a th vào  Nh p mã PIN  Ch n s ti n rút  Kh ng đnh s ti n rút  Ly th ra  Ly ti n  Ly phi u rút ti n  Các tươ ng tác trên cĩ là các ca s dng khơng ? 32 16
  17. Ca s dng  Câu tr li: khơng.  Ti sao ?  Vì ch ng hn “Nh p mã PIN” khơng đáp ng mt mc tiêu nào ca ng ưi s dng.  Mc tiêu ca ng ưi s dng là “Rút ti n”, vy đĩ nên là mt ca s dng. 33 Tác nhân (Actor)  Tác nhân đĩng vai trị mt ng ưi s dng ho c mt th c th bên ngồi tươ ng tác vi h th ng  Ví d: Cn phát tri n h th ng tính ti n siêu th  Các tác nhân cĩ th là: Khách hàng , Ng ưi bán hàng, Ng ưi qu n lý, Kho hàng  Cn phân bi t: tác nhân (actor) và ng ưi s dng (user)  Nhi u ng ưi s dng cĩ th tươ ng ng mt tác nhân: nhi u ng ưi bán hàng khác nhau đĩng cùng vai trị đi vi h th ng  Mt ng ưi s dng cĩ th tươ ng ng vi nhi u tác nhân khác nhau: cùng mt ng ưi cĩ th đng th i đĩng hai vai trị là ng ưi bán hàng và ng ưi qu n lý 34 17
  18. Tác nhân  Tác nhân khơng nh t thi t luơn luơn là con ng ưi  Tác nhân cĩ th là mơi tr ưng, h th ng khác, th c th bên ngồi tươ ng tác vi h th ng  Ví d  Kho hàng là cĩ th mt cơ s d li u 35 ðc t ca s dng  ðc t đin hình ca mt ca s dng:  Ca s dng: tên ca s dng th ưng bt đu bi mt đng t  Các tác nhân: danh sách các tác nhân liên quan  Mơ t: tĩm tt các x lý cn th c hi n  Ví d  Ca s dng : Mua hàng  Các tác nhân : Khách hàng , Ng ưi bán hàng  Mơ t: Mt khách hàng sau khi đã ch n các mt hàng, mang gi hàng đn qu y thu ti n. Ng ưi bán hàng ghi nh n các mt hàng, thơng báo tng s ti n, thu ti n và tr ti n cịn li cho khách hàng. Khách hàng mang hàng đi. 36 18
  19. ðc t ca s dng  ðc t ca s dng cĩ th thêm:  Tham chi u (reference) đn mc liên quan trong đc t yêu cu  ðiu ki n tr ưc và điu ki n sau khi th c hi n ca s dng  Ví d  Ca s dng : Mua hàng  Các tác nhân : Khách hàng , Ng ưi bán hàng  Tham chi u: R1.2, R2.3  ðiu ki n tr ưc: Ng ưi bán hàng đã đă ng nh p thành cơng.  ðiu ki n sau : Các mt hàng bán đã đưc ghi nh n và đã ghi nh n thanh tốn ti n.  Mơ t: Mt khách hàng sau khi đã ch n các mt hàng, mang gi hàng đn qu y thu ti n. Ng ưi bán hàng ghi nh n các mt hàng, thơng báo tng s ti n, thu ti n và tr ti n cịn li cho khách hàng. Khách hàng mang hàng đi. 37 ðc t ca s dng  Ngồi ra, đi vi mi ca s dng ta cĩ th xây dng mt kch bn (scenario) hành đng mơ t các s ki n xy ra  Kch bn: gm các s ki n chính và các s ki n ngo i l  Các s ki n chia làm hai lu ng  Lu ng tươ ng ng vi các tác nhân  Lu ng tươ ng ng vi h th ng 38 19
  20. ðc t ca s dng  Các s ki n chính Hành đng c a tác nhân Hành đng c a h th ng 1. Mt khách hàng đưa hàng đã ch n mua đn qu y tính ti n. 2. Ng ưi bán hàng ghi nh n 3. Xác đnh m t hàng, hi n th tng m t hàng. các thơng tin và giá mt hàng. Nu m t m t hàng cĩ s S này đưc hi n th . lưng nhi u h ơn m t thì ng ưi bán hàng cĩ th nh p vào m t s . 39 ðc t ca s dng  Các s ki n chính (ti p) Hành đng c a tác nhân Hành đng c a h th ng 4. Sau khi đã ghi nh n tt 5. Tính và hi n th tng s c các mt hàng, ng ưi bán ti n. hàng báo hi u kt thúc vi c ghi nh n hàng. 6. Ng ưi bán hàng thơng báo tng s ti n ph i tr cho khách hàng . 7. Khách hàng tr ti n cho ng ưi bán hàng . 40 20
  21. ðc t ca s dng  Các s ki n chính (ti p) Hành đng c a tác nhân Hành đng c a h th ng 8. Ng ưi bán hàng nh p s 9. Hi n th ti n dư và in phi u ti n khách hàng tr . bán hàng 10. Ng ưi bán hàng xác 11. Ghi nh n phiên bán hàng. nh n s tr ti n, ly ti n dư tr cho khách hàng và đư a cho khách hàng phi u bán hàng. 12. Khách hàng ri qu y thu ti n vi túi hàng 41 ðc t ca s dng  Các s ki n ph Hành đng c a tác nhân Hành đng c a h th ng 3. S xác nh n mt hàng khơng đúng. Hi n th li. 7. Khách hàng khơng cĩ đ ti n. Ng ưi bán hàng hy b vi c bán. Lưu ý: đnh dng đc t các ca s dng khơng cn thi t ph i ch t ch . 42 21
  22. Ca s dng giai đon Elaboration  Xác đnh càng nhi u ca s dng mt cách cĩ th  Khơng đi vào quá chi ti t, nh m gi m đ ph c tp  Mt mơ t ng n gn v mi ca s dng là đ, cĩ th b qua ph n kch bn, tham chi u đn đc t yêu cu, điu ki n tr ưc và điu ki n sau .  Bo đm rng các ca s dng bao quát ht các yêu cu ca h th ng 43 Bi u đ ca s dng  Bi u đ ca s dng mơ t quan h gi a các tác nhân và các ca s dng ca mt h th ng.  Kí hi u Use case Tác nhân Kt hp ch s tham gia ca tác nhân vào ca s dng Gi i hn ca h th ng 44 22
  23. Bi u đ ca s dng  Ví d Ghi nh n Mua hàng Ng ưi bán hàng Tr hàng Khách hàng Ng ưi qu n lý Kh i đng 45 Bi u đ ca s dng  Các tác nhân cĩ th cĩ quan h th a k  Ví d Khách hàng Cá nhân Cơng ty 46 23
  24. Quan h m rng  Cĩ th xy ra tr ưng hp: mt ca s dng tươ ng t vi mt ca s dng khác, tuy nhiên nĩ gm thêm mt s hành đng  Ví d  Ca s dng : Mua hàng bng th tín dng  Các tác nhân : Khách hàng , Ng ưi bán hàng  Mơ t: Mt khách hàng sau khi đã ch n các mt hàng, mang gi hàng đn qu y thu ti n. Ng ưi bán hàng ghi nh n các mt hàng, thơng báo tng s ti n. Khách hàng đư a th vào máy và nh p mã PIN. Khách hàng nh n phi u bán hàng và mang hàng đi. 47 Quan h m rng  Ca s dng này là mt bi n th ca ca s dng “mua hàng”, tuy nhiên thêm vào các hành đng liên quan đn tr ti n bng th  Ca s dng “mua hàng bng th tín dng” là mt s m rng ca ca s dng “mua hàng” 48 24
  25. Quan h m rng  Kí hi u Mua hàng > Mua hàng bng th Quan h m rng  Nu mt ca s dng kt hp vi mt tác nhân, thì tt c các ca s dng m rng đu kt hp vi tác nhân đĩ 49 Quan h s dng  Tr ưng hp nhi u ca s dng chia s cùng mt dãy các hành đng . Nu ph n chung là quan tr ng và hưng ti mt mc tiêu rõ ràng, nh ư th ta cĩ th xây dng mt ca s dng riêng  Ví d: chúng ta mu n ch p nh n mua hàng tr ti n mt ln và mua hàng tr gĩp  Hai ca s dng “mua hàng tr ti n mt ln” và “mua hàng tr gĩp” th c hi n mt dãy các hành đng mà cĩ th đưc mơ t bi ca s dng “ghi nh n các mt hàng ” 50 25
  26. Quan h s dng  ðc t ca ca s dng “ghi nh n các mt hàng ”  Ca s dng: ghi nh n các mt hàng  Các tác nhân: ng ưi bán hàng, khách hàng  Mơ t: Khách hàng mang các mt hàng đn qu y tính ti n. Ng ưi bán hàng ghi nh n các mt hàng và thơng báo tng s ti n ph i tr . 51 Quan h s dng  Kí hi u Mua hàng tr > mt ln Ghi nh n > các mt hàng Mua hàng tr gĩp Quan h s dng Ng ưc vi quan h m rng, các ca s dng trong quan h s dng khơng nh t thi t kt hp vi cùng tác nhân. 52 26
  27. Cách xác đnh các ca s dng  Ph ươ ng pháp ph ng vn  Khĩ kh ăn, vì hai ng ưi khác nhau đưc ph ng vn cĩ th đư a ra ý ki n khác nhau  Ph ươ ng pháp hi th o (workshop)  Tp hp tt c nh ng ai liên quan đn h th ng đ th o lu n: các nhà tin hc và khách hàng (ng ưi s dng)  Mi ng ưi đu đư a ra ý ki n 53 Cách xác đnh các ca s dng  Cách ti n hành hi th o  Li t kê tt c các tác nhân cĩ th  Li t kê tt c các ca s dng cĩ th  Phân tích, bi n ch ng mi ca s dng bng cách vi t ra mt mơ t đơ n gi n  Mơ hình hĩa các ca s dng và tác nhân 54 27
  28. Cách xác đnh các ca s dng  Khuy n khích  Khơng nên c gng tìm mi ca s dng, • Trong quá trình phát tri n các ca s dng s l di n dn  Nu khơng th bi n ch ng cho mt ca s dng • Cĩ th đĩ khơng ph i là ca s dng 55 Sp xp các ca s dng  Khi tt c các ca s dng đã đưc xác đnh  Ti n trình phát tri n gm nhi u bưc lp  Mi bưc lp th c hi n thi t k, mã hĩa và ki m th ch mt vài ca s dng  Làm sao chia các ca s dng vào các bưc lp? 56 28
  29. Sp xp các ca s dng Lp 1 Lp 2 Lp 3 A B D C Các ca s dng 57 Sp xp các ca s dng  Các ca s dng nên đưc th c hi n tr ưc  Các ca s dng ch a các ri ro/nguy cơ  Các ca s dng ki n trúc chính  Các ca s dng địi hi nghiên cu mi, cơng ngh mi  Các ca s dng mà khách hàng quan tâm hơn 58 29
  30. Bài tp 1  Máy rút ti n ATM cĩ các ch c năng chính nh ư sau:  Cp phát ti n cho nh ng ai cĩ th ngân hàng (cho phép rút mt s lưng ti n bi h th ng thơng tin ca ngân hàng) và nh ng ai cĩ th VISA (cho phép t xa bi h th ng VISA)  Cho xem ki m tra s ti n tài kho n và b ti n vào tài kho n bng ti n mt ho c ngân phi u đi vi nh ng ai cĩ th ngân hàng  Tt c các giao tác đu đưc ki m tra an tồn  Ki m tra mã PIN  Mã PIN nh p sai 3 ln thì th s b “nu t”  Cn ph i th ưng xuyên np ti n vào máy, ly ngân phi u và các th b nu t ra  Xác đnh các tác nhân, các ca s dng và v bi u đ ca s dng 59 Bài tp 1  Các tác nhân  Ng ưi cĩ th ngân hàng (bankcard)  Ng ưi cĩ th VISA (VISAcard)  Ng ưi vn hành máy (operator)  H th ng VISA (VISA)  H th ng thơng tin ngân hàng (bank) 60 30
  31. Bài tp 1  Các ca s dng  Rút ti n vi th ngân hàng (withdraw by bankcard)  Rút ti n vi th VISA (withdraw by VISAcard)  Ki m tra mã PIN (identify)  Xem s ti n cịn trong tài kho n (balance)  B ti n vào tài kho n bng ngân phi u ho c ti n mt (deposit)  Np ti n vào máy (put money)  Ly th b nu t trong máy (get cards)  Ly ngân phi u trong máy (get cheques) 61 Bài tp 1 withdraw with VISA card VISAcard VISA withdraw with bank card balance bank bankcard deposit > > identify deposit by cheque deposit by cash 62 31
  32. Bài tp 1 put cash get cards operator get cheques 63 Bài tp 2  Qu n lý đào to nhân viên : Mt cơng ty mu n mơ t bng UML vi c đào to nhân viên đ tin hc hĩa mt s cơng vi c. Vi c đào to đưc bt đu khi ng ưi qu n lý đào to nh n đưc yêu cu đào to ca mt nhân viên. Nhân viên này cĩ th xem danh mc các chuyên đ đào to ca các đơ n v đào to ký kt vi cơng ty. Yêu cu ca nhân viên đưc xem xét bi ng ưi qu n lý đào to và ng ưi qu n lý s tr li là ch p nh n hay t ch i đ ngh đĩ. Trong tr ưng hp ch p nh n, ng ưi qu n lý s xác đnh chuyên đ phù hp trong danh mc các chuyên đ, sau đĩ gi cho nhân viên ni dung ca chuyên đ và danh sách các khĩa đào to. Nhân viên s ch n khĩa đào to và ng ưi qu n lý s đă ng ký khĩa hc vi đơ n v đào to cho nhân viên. Trong tr ưng hp mu n hy b đă ng ký khĩa đào to, nhân viên ph i thơng báo sm cho ng ưi qu n lý bi t đ ng ưi qu n lý th c hi n hy b. Cu i khĩa đào to, nhân viên chuy n phi u đánh giá kt qu hc v cho cơng ty. Ng ưi qu n lý s ki m tra hĩa đơ n thanh tốn ti n ca đơ n v đào to.  Xây dng bi u đ ca s dng. 64 32
  33. Ni dung  Khái ni m c ơ b n h ưng đi t ưng  Bi u đ ca s dng  Thi t k cu trúc t ĩnh  Thi t k cu trúc đng  Sinh mã 65 Cu trúc t ĩnh  Mơ hình khái ni m  Bi u đ lp  Bi u đđi t ưng 66 33
  34. Mơ hình khái ni m  Xác đnh các “khái ni m” quan tr ng trong h th ng  Mơ hình khái ni m (conceptual model) mơ t các khái ni m trong các quan h ca chúng  UML khơng cung cp mơ hình khái ni m, tuy nhiên cung cp kí hi u và cú pháp đ bi u di n mơ hình đĩ chính là bi u đ lp  giai đon này, mơ hình khái ni m cịn đưc gi bi u đ lp phân tích (analysis class diagram) – lưu ý, khác vi bi u đ lp thi t k (design class diagram)  Ngồi ra, mơ hình khái ni m cũng cịn đưc gi là mơ hình lĩnh vc (domain model) 67 Mơ hình khái ni m  Mơ hình khái ni m gm:  Các khái ni m ca lĩnh vc nghiên cu  Các thu c tính và các thao tác ca các khái ni m này  Các quan h ca các khái ni m này  Mt khái ni m là bi u di n mc cao (tr u tưng) v mt s vt  Mt khái ni m là mt ph n t ca lĩnh vc nghiên cu, ch khơng ph i mt ph n t ca ph n mm hay h th ng 68 34
  35. Mơ hình khái ni m  Trong mơ hình khái ni m, chúng ta s nm bt các khái ni m nh n bi t bi khách hàng  Ví d các khái ni m đúng: khái ni m gn li n vi vn đ  Thang máy trong h th ng điu khi n thang máy  Vé máy bay trong h th ng đt vé máy may  ðt hàng trong h th ng mua bán hàng qua mng  Ví d ti v khái ni m: khái ni m gn li n vi gi i pháp  DanhSachKhachHang – bng các khách hàng  EventTrigger – ti n trình th c hi n duy t h th ng 10 phút mt ln 69 Mơ hình khái ni m  Làm sao bi t đưc mt khái ni m là đúng hay khơng?  Nguyên tc: “Nu khách hàng khơng hi u khái ni m, rt cĩ th đĩ khơng ph i là khái ni m”  Mơ hình khái ni m s đưc chuy n dn sang bi u đ lp thi t k trong giai đon xây dng 70 35
  36. Xác đnh các khái ni m  ð xác đnh các khái ni m, da vào đc t yêu cu, mà c th hơn là da vào các ca s dng  Ví d: ca s dng “mua hàng ”  Các khái ni m cĩ th : KháchHàng, Ng ưiBánHàng, TínhTi n, MuaHàng, MtHàng, 71 Xác đnh các khái ni m  Mt s ng c viên ca khái ni m t đc t ho c ca s dng:  Các đi tưng vt lý (xe ơtơ)  Các v trí, đa đim (nhà ga)  Các giao tác (thanh tốn)  Các vai trị ca con ng ưi (ng ưi bán)  Các h th ng khác bên ngồi (cơ s d li u t xa)  Danh t tr u tưng (s khát, ăn ung)  Các t ch c (đi hc)  Các s ki n (cp cu)  Nguyên tc/chính sách 72 36
  37. Xác đnh các khái ni m  Cách khác đ xác đnh các khái ni m  Các danh t và cm danh t trong đc t yêu cu ho c đc t ca s dng cĩ th là các khái ni m  Da vào hi u bi t và kinh nghi m lo i b các danh t và cm danh t khơng là các khái ni m  Ví d: da vào kch bn ca s dng “mua hàng ”  Gch chân các danh t và cm danh t 73 Xác đnh các khái ni m  Ví d Hành đng c a tác nhân Hành đng c a h th ng 1. Mt khách hàng đưa hàng đã ch nmuađn qu y tính ti n. 2. Ng ưi bán hàng ghi nh n 3. Xác đnh mt hàng , hi n th tng mt hàng . các thơng tin và giá mt hàng . Nu m t mt hàng cĩ s S này đưc hi n th . lưng nhi u h ơn m t thì ng ưi bán hàng cĩ th nh p vào mt s . 74 37
  38. Xác đnh các khái ni m  Ví d Hành đng c a tác nhân Hành đng c a h th ng 4. Sau khi đã ghi nh n tt 5. Tính và hi n th tng s c các mt hàng , ng ưi bán ti n. hàng báo hi u kt thúc vi c ghi nh n hàng . 6. Ng ưi bán hàng thơng báo tng s ti n ph i tr cho khách hàng . 7. Khách hàng tr ti n cho ng ưi bán hàng . 75 Xác đnh các khái ni m  Ví d Hành đng c a tác nhân Hành đng c a h th ng 8. Ng ưi bán hàng nh p s 9. Hi n th ti n dư và in phi u ti n khách hàng tr . bán hàng 10. Ng ưi bán hàng xác 11. Ghi nh n phiên bán hàng . nh n s tr ti n, ly ti n dư tr cho khách hàng và đư a cho khách hàng phi u bán hàng . 12. Khách hàng ri qu y thu ti n vi túi hàng 76 38
  39. Xác đnh các khái ni m  Phân bi t gi a khái ni m (concept) và thu c tính (attribut)  Nu mt ph n t ca lĩnh vc nghiên cu khơng là mt con s ho c mt chu i kí t thì cĩ th đĩ là mt khái ni m  Ví d: Cn xây dng ph n mm qu n lý các chuy n bay. ðích ca mt chuy n bay là thu c tính ca mt chuy n bay hay là mt khái ni m khác ?  Tr li: đích mt chuy n bay là mt sân bay, khơng ph i là mt con s hay văn bn, đĩ là mt khái ni m 77 Xác đnh các khái ni m  Lp “MơT ”  Lp MơT là lp ch a thơng tin mơ t các đi tưng khác • Ví d: Lp MtHàng ch a các thơng tin v Mt Hàng MtHàng mãMH tênMH: text giá sXêri màuS c Ph ươ ng án 1 (ch ưa tt) 78 39
  40. Xác đnh các khái ni m  Lp “MơT ” MtHàng MơT MtHàng ðưc mơ t * 1 mãMH sXêri tênMH: text màuS c giá Ph ươ ng án 2 (tt hơn) 79 Xác đnh các khái ni m  Lp “MơT ”  Khi nào s dng lp “MơT ” • Khi cn gi m bt s dư th a, trùng lp thơng tin • Khi cn mơ t v đi tưng đc lp vi các đi tưng c th • Khi cn cn duy trì thơng tin v đi tưng cho dù các đi tưng c th b xĩa 80 40
  41. Xác đnh các khái ni m  Lp “MơT ”  Ví d: trong lĩnh vc hàng khơng, cn mơ t quan h gi a các chuy n bay và các sân bay Chuy nBay SânBay Bay đn 1 ngày * tên gi sHi u Ph ươ ng án 1 81 Xác đnh các khái ni m  Lp “MơT ” MơT Chuy nBay SânBay Bay đn * 1 tên sHi u 1 * Chuy nBay Ph ươ ng án 2 ngày gi 82 41
  42. Bi u di n khái ni m  S dng kí hi u ca bi u đ lp Mơt MtHàng Khái ni m Các thu c tính Các thao tác (ch ưa xét đn giai đon này) 83 Thu c tính  Các thu c tính (attribut) ca mt khái ni m bi u di n d li u cn thi t cho các th hi n (instance) ca khái ni m  Ví d Mơt MtHàng Khái ni m mã Các thu c tính tên: text Ki u (khơng bt bu c) 84 42
  43. Thu c tính  Mt thu c tính ch đi di n cho các d li u liên quan đn khái ni m s hu thu c tính đĩ  Ví d Ng ưiBánHàng tên Sai sQu y Ng ưiBánHàng Qu y ðúng tên s 85 Thu c tính  Cách xác đnh các thu c tính  Các con s và chu i kí t là các thu c tính  Nu mt tính ch t ca mt khái ni m khơng th làm đưc điu gì thì rt cĩ th đĩ là thu c tính  Nu nghi ng mt thu c tính là khái ni m, thì đơ n gi n hãy coi đĩ là khái ni m • Ví d: lươ ng là thu c tính hay khái ni m so vi khái ni m cơng nhân ? • Nu nghi ng đĩ là khái ni m thì coi nh ư lươ ng và cơng nhân là hai khái ni m tách ri 86 43
  44. Thao tác  Khái ni m cĩ th cĩ các thao tác (operation)  Thao tác ca khái ni m chính là kh năng th c hi n ca mt th hi n ca khái ni m  Ví d MtHàngBán Khái ni m ngày Các thu c tính gi Btðu: Time tngTi n(): Integer Thao tác 87 Thao tác  giai đon elaboration, mơ hình khái ni m cĩ th khơng nh t thi t ph i mơ t các thao tác ca khái ni m  Giai đon construction s th c hi n cơng vi c này mt cách chi ti t và đy đ 88 44
  45. Kt hp  Kt hp (association) bi u di n quan h gi a các th hi n ca các khái ni m  Ví d: kt hp ch a gi a khái ni m ca hàng và khái ni m mt hàng  Kí hi u CaHàng Ch a > MtHàng Kt hp 89 Kt hp  Cĩ th tn ti kt hp ca nhi u hơn hai khái ni m  Ví d Profession function Person work employ Company 90 45
  46. Kt hp  Bi s (multiplicity) ca vai trị ch ra s th hi n cĩ th ca quan h tham gia vào quan h  Các bi s cĩ th  1: ch đúng mt  1 *: t mt đn nhi u  *: t 0 đn nhi u  m n: t m đn n  Ví d 1 * CaHàng Ch a > MtHàng 91 Hn ch kt hp (qualificator)  Gi m s th hi n tham gia vào mt kt hp  Kí hi u A key B qualificator  Mi th hi n A vi giá tr key xác đnh mt tp con các th hi n B tham gia vào kt hp 92 46
  47. Hn ch kt hp (qualificator)  Ví d  Phân bi t các sinh viên hc ti mt đi hc da vào mã s sinh viên ðiH c No sinh viên SinhViên  Phân bi t các mt hàng thu c vào mt danh mc mt hàng da vào mã s mt hàng DanhM cM tHàng ID MtHàng 93 Chuyên bi t hĩa  Mt khái ni m cĩ th v cơ bn gi ng vi mt khái ni m khác, ch cĩ mt vài s khác nhau trên mt s tính ch t (thu c tính, thao tác, các kt hp)  Khái ni m th nh t đưc gi là chuyên bi t hĩa (specialization) ca khái ni m th hai  Khái ni m th nh t đưc gi là khái ni m chuyên bi t hĩa (specialized concept), khái ni m th hai đưc gi là khái ni m chung (general concept) 94 47
  48. Chuyên bi t hĩa  Kí hi u general concept specialized concept specialized concept 95 Th a k  Khái ni m chuyên bi t hĩa th a k (inheritance) tt c các tính ch t ca ca khái ni m chung. Các tính ch t này bao gm:  Các thu c tính  Các thao tác  Các kt hp vi khái ni m khác 96 48
  49. Th a k  Ví d ThanhTốn 1thanh tốn > 1 PhiênBánHàng tng: Integer ThanhTốnB ngTi nM t ThanhTốnB ngTh  Các khái ni m “ThanhTốnB ngTi nM t” và “ThanhTốnB ngTh ” đu cĩ thu c tính “tng ” và kt hp “thanh tốn” vi khái ni m “PhiênBánHàng” 97 Khái ni m tr u tưng  Tươ ng t nh ư lp, khái ni m tr u tưng khơng cĩ các th hi n ThanhTốn 1thanh tốn > 1 PhiênBánHàng Khái ni m tr u tưng đưc vi t in nghiêng tng: Integer ThanhTốnB ngTi nM t ThanhTốnB ngTh  Lưu ý, trong tài li u vi t tay cĩ th vi t {abstract} dưi tên khái ni m tr u tưng 98 49
  50. Quan h hp thành và quan h kt tp  Quan h hp thành (composition) và quan h kt tp (agregation) là hai kt hp đc bi t ch s s hu  Quan h hp thành: mt khái ni m thành ph n ch thu c vào mt khái ni m tồn ph n TồnPh n MtPh n  Quan h kt tp: mt khái ni m thành ph n cĩ th thu c vào nhi u khái ni m tồn ph n TồnPh n MtPh n 99 Quan h hp thành và quan h kt tp 3 Point 1  Ví d Triangle Circle 1 Style 1 radius color isFilled  Mt th hi n ca “Point” khơng th đng th i thu c vào mt th hi n ca “Triangle” và mt th hi n ca “Circle” 100 50
  51. Quan h hp thành và quan h kt tp  Quan h hp thành nh n mnh s s hu: nu khái ni m tồn ph n b hy b thì khái ni m thành ph n cũng b hy b theo  Trong tr ưng hp, th t ca các khái ni m thành ph n là quan tr ng, thì thêm vào kt hp điu ki n {ordered}  Ví d {ordered} Point Polygon 3 * 101 Khái ni m kt hp  Cĩ th mơ t các tính ch t ca mt kt hp gi a hai khái ni m bi mt khái ni m kt hp (association concept)  Ví d work employ Person 1 * * Company Employment Khái ni m kt hp begin, end: Date 102 51
  52. Bài tp 1  Xây dng mơ hình khái ni m ca h th ng/ph n mm bán hàng ti siêu th  Ph n mm bán hàng s dng ti siêu th nh m giúp ghi nh n ho t đng bán hàng, x lý các thanh tốn vi khách hàng. Ph n mm đưc s dng bi ng ưi bán hàng và đưc qu n lý bi ng ưi qu n lý siêu th . Ph n mm nh m t đng hĩa cơng vi c ca ng ưi bán hàng ti qu y thu ti n. 103 Bài tp 1 1 MatHang * DongHang * 1 MoTaMatHang 1 * * * 1 1 1 1 * 1 * 1 PhienBanHang CuaHang DanhMucMatHang 1 1 * 1 1 * 1 1 1 * HeThongBanHang 1 1 QuayTinhTien 1 ThanhToan KháchHàng 1 1 1 NguoiQuanLy Ng ưiBán NhânViên 104 52
  53. Bài tp 2  Qu n lý đào to trung tâm tin hc: Mt cơng ty mu n mơ t bng UML vi c đào to nhân viên đ tin hc hĩa mt s cơng vi c. Vi c đào to đưc bt đu khi ng ưi qu n lý đào to nh n đưc yêu cu đào to ca mt nhân viên. Nhân viên này cĩ th xem danh mc các chuyên đ đào to ca các đơ n v đào to ký kt vi cơng ty. Yêu cu ca nhân viên đưc xem xét bi ng ưi qu n lý đào to và ng ưi qu n lý s tr li là ch p nh n hay t ch i đ ngh đĩ. Trong tr ưng hp ch p nh n, ng ưi qu n lý s xác đnh chuyên đ phù hp trong danh mc các chuyên đ, sau đĩ gi cho nhân viên ni dung ca chuyên đ và danh sách các khĩa đào to. Nhân viên s ch n khĩa đào to và ng ưi qu n lý s đă ng ký khĩa hc vi đơ n v đào to cho nhân viên. Trong tr ưng hp mu n hy b đă ng ký khĩa đào to, nhân viên ph i thơng báo sm cho ng ưi qu n lý bi t đ ng ưi qu n lý th c hi n hy b. Cu i khĩa đào to, nhân viên chuy n phi u đánh giá kt qu hc v cho cơng ty. Ng ưi qu n lý s ki m tra hĩa đơ n thanh tốn ti n ca đơ n v đào to.  Xây dng bi u mơ hình khái ni m. 105 Bi u đ lp  Bi u đ lp đnh ngh ĩa:  Các lp (class) • Các thu c tính (attribut) ca lp: các bi n và ki u ca chúng • Các thao tác (operation) ca lp: các ph ươ ng th c (method), các tham đi và cĩ th giá tr tr v  Các quan h gi a các lp 106 53
  54. Bi u đ lp  Bi u đ lp cĩ cùng quy tc cú pháp vi mơ hình khái ni m  Th c ra, mơ hình khái ni m s dng các cú pháp ca bi u đ lp trong UML  Tt c các kí hi u và quy tc (đã trình bày) đi vi mơ hình khái ni m đu đưc s dng đ xây dng bi u đ lp  Bi u đ lp đưc xây dng da trên mơ hình khái ni m  Các lp cĩ th ch yu là các khái ni m ho c các thành ph n khác  Bi u đ lp s là nn tng cho bưc mã hĩa 107 Bi u đ lp  ði vi bi u đ lp, mi thu c tính hay mi ph ươ ng th c cĩ th cĩ thêm mc kh ki n – kh năng nhìn th y (visibility)  Kí hi u  “–” mc riêng (priviate), thu c tính hay ph ươ ng th c ch đưc nhìn th y bi đi tưng ca lp đĩ  “#” mc bo v (protected), thu c tính hay ph ươ ng th c ch đưc nhìn th y bi đi tưng ca lp đĩ và đi tưng ca các lp th a k lp đĩ  “+” mc chung (public), thu c tính hay ph ươ ng th c ch đưc nhìn th y bi đi tưng ca tt c các lp 108 54
  55. Bi u đ lp  Ví d Tên lp Shape Thu c tính – origin : Point + setOrigin(p : Point) Ph ươ ng th c + getOrigin() : Point) + move(p : Point) + resize(s : Scale) + display() # pointInShape(p : Point) : Boolean 109 Bi u đ lp  Thu c tính dn xu t (derived attribut) là các thu c tính ca bi u đ lp mà cĩ th suy ra t các thu c tính khác.  Kí hi u: thu c tính dn xu t bt đu bi “/”, mt ràng bu c cĩ th đi kèm đ gi i thích s dn xu t  Ví d Person Ràng bu c name Thu c tính dn xu t birthDate {age = CurrentDate – birthDate} / age 110 55
  56. Bi u đ lp  Các quan h gi a các lp  Quan h kt hp (association)  Quan h chuyên bi t hĩa/t ng quát hĩa (specialization/generalization)  Quan h hp thành (composition)  Quan h kt tp (agregation)  Quan h ph thu c (dependence) 111 Bi u đ lp  Quan h kt hp (association) Quan h kt hp 1 * Qu yHàng Ch a > MtHàng  Quan h chuyên bi t hĩa/t ng quát hĩa (specialization/generalization) NhânViên Quan h tng quát hĩa Ng ưiBánHàng Ng ưiQu nLý 112 56
  57. Bi u đ lp  Quan h kt tp (agregation) Quan h 0 * Company * Person  Quan h hp thành (composition) Quan h DanhM cM tHàng 1 * MtHàng 113 Bi u đ lp  Quan h ph thu c (dependence): mơ t mt lp ph thu c vào lp khác  Ví d Quan h ph th c Circle Point center : Point 114 57
  58. Bi u đ lp  Ví d: chuy n đi mơ hình khái ni m thành bi u đ lp  Gi s mơ hình khái ni m ThanhTốn 1thanh tốn > 1 PhiênBánHàng ThanhTốnB ngTi nM t ThanhTốnB ngTh 115 Bi u đ lp  Chi ti t các thu c tính ThanhTốn 1thanh tốn > 1 PhiênBánHàng tng : Integer ThanhTốnB ngTi nM t ThanhTốnB ngTh 116 58
  59. Bi u đ lp  Chi ti t các ph ươ ng th c ThanhTốn 1thanh tốn > 1 PhiênBánHàng tng : Integer tínhT ng() : Integer ThanhTốnB ngTi nM t ThanhTốnB ngTh nh nTi n() tr VàoTh () 117 Bi u đ lp  Xác đnh các mc kh ki n ThanhTốn 1thanh tốn > 1 PhiênBánHàng # tng : Integer + tínhT ng() : Integer ThanhTốnB ngTi nM t ThanhTốnB ngTh + nh nTi n() + tr VàoTh () 118 59
  60. Ni dung  Khái ni m c ơ b n h ưng đi t ưng  Bi u đ ca s dng  Thi t k cu trúc t ĩnh  Thi t k cu trúc đng  Sinh mã 119 Cu trúc đng  Bi u đtươngt ác  Bi u đ tu n t  Bi u đ cng tác 120 60
  61. Bi u đ tươ ng tác  Bi u đ tươ ng tác mơ t hành vi ca h th ng  Mi bi u đ tươ ng tác tươ ng ng mt tác v đưc th c hi n bi mt s các đi tưng  Bi u đ tươ ng tác xây dng da trên nn tng ca bi u đ ho t đng và bi u đ tr ng thái  Bi u đ tươ ng tác mơ t các hành đng ca các đi tưng đ th c hi n mt tác v. Các hành đng ca đi tưng bao gm:  gi các thơng đip (message) gi a các đi tưng  to (create) và hy (destroy) các đi tưng 121 Bi u đ tu n t  Biu đ tu n t (sequence diagram) bi u di n s tươngt ác gi a các đi t ưng b ng vi c nh n m nh th ttraođi thơng đip gi a các đi t ưng  Bi u đ tu n t gm:  các đi tưng  các thơng đip trao đi gi a các đi tưng 122 61
  62. Bi u đ tu n t  Mi đi tưng cĩ mt đưng sinh tn (lifeline) bi u di n th i gian tn ti ca nĩ.  Kí hi u ði tưng object object:Class :Class ðưng sinh tn 123 Bi u đ tu n t  Th i gian ho t đng (activation) là th i gian mà đi tưng đang th c hi n mt thao tác  Kí hi u object Th i gian ho t đng 124 62
  63. Bi u đ tu n t  Mt thơng đip đc t trao đi gi a các đi tưng  Các lo i thơng đip  Gi (call)  Tr v (return)  Gi (send)  To (create)  Hy (destroy) 125 Bi u đ tu n t  Thơng đip gi gi mt ph ươ ng th c/thao tác trên đi tưng  ði tưng gi ph i đi thơng đip đưc th c hi n kt thúc mi cĩ th th c hi n cơng vi c khác (thơng đip đng b)  Mt đi tưng cĩ th gi thơng đip cho chính nĩ  Kí hi u object A object B object message() Gi thơng đip gi Gi cho chính nĩ 126 63
  64. Bi u đ tu n t  Thơng đip tr v tr v mt giá tr cho đi tưng gi  Kí hi u Object A Object B message() value Thơng đip tr v 127 Bi u đ tu n t  Thơng đip gi gi mt tín hi u đn mt đi tưng  Khác vi thơng đip gi, khi đi tươ ng gi thơng đip gi nĩ khơng ch đi, mà ti p tc th c hi n cơng vi c khác (thơng đip khơng đng b)  Kí hi u object A object B message() Thơng đip gi 128 64
  65. Bi u đ tu n t  Thơng đip to gi ph ươ ng th c to mt đi tưng  Thơng đip hy gi ph ươ ng th c hy mt đi tưng  Kí hi u Thơng đip to object A > object B > Thơng đip hy 129 Bi u đ tu n t  Ví d public class A { :A private B objB; public void msg1() msg1 > { :B objB = new B(); objB.msg2(); msg2 objB.msg3(); } } msg3 public class B { public void msg2() { } public void msg3() { } } 130 65
  66. Bi u đ tu n t  Mt thơng đip cĩ th đưc gi lp nhi u ln  Kí hi u Gi lp thơng đip 10 ln object A object B *[1 10] message() for(i = 1; i<= 10; i++) { objectB.message() } 131 Bi u đ tu n t  Mt thơng đip cĩ th đưc gi lp nhi u ln ph thu c vào mt điu ki n  Kí hi u Gi lp thơng đip trong khi C đúng object A object B *[C] message() while(C) { objectB.message() } 132 66
  67. Bi u đ tu n t  Mt thơng đip cĩ th đưc gi ph thu c vào điu ki n r nhánh  Kí hi u object A object B object C [C]message() if(C) objectB.message(); else [not C]message() objectC.message(); 133 Bi u đ tu n t  Mt thơng đip cĩ th đưc gi đ quy  Kí hi u Thơng đip đ quy :BinaryTree print() print() 134 67
  68. Bi u đ tu n t  Ví d :TàiLi u :MáyFax :Dây ðinTho i gi() nh cMáy() âmM i bmS (s ) đãK tN i đãK tN i gi(trang) chuy n(trang) 135 Bi u đ tu n t  Ví d :Ng ưiBán :MáyTínhTi n :PhiênBánHàng thanhTốn(s Ti n) thanhTốn(s Ti n) > :ThanhTốn thanhTốn(s Ti n) ti nD ư ti nD ư tr Ti nD ư() > 136 68
  69. Bi u đ tu n t  Gi a bi u đ tươ ng tác và bi u đ lp và cĩ mi quan h ch t ch vi nhau  Ví d MáyTínhTi n PhiênBánHàng mThanhTốn() thanhTốn() :MáyTínhTi n :PhiênBánHàng mThanhTốn(s Ti n) thanhTốn(s Ti n) 137 Bi u đ cng tác  Bi u đ cng tác (collaboration diagram) mơ t s tươ ng tác gi a các đi t ưng b ng vi c nh n m nh cu trúc k t h p gi a các đi t ưng và nh ng thơng đip trao đi gi a chúng  Bi u đ cng tác là s m rng c a bi u đđi t ưng  Bi u đ cng tác ch ra  th t gi các thơng đip: mi thơng đip đưc gán mt s tu n t  điu ki n g i các thơng đip 138 69
  70. Bi u đ cng tác  Cu trúc thơng đip đưc mơ t dng tng quát nh ư sau: precondition / condition sequence * *|| iteration : result := message (parameters )  “precondition / ”: danh sách s tu n t ca các thơng đip tr ưc thơng đip c n g i. Thơng đip ch đưc g i đi khi t t c các thơng đip tr ưc nĩđãđưc g i đi.  “condition”: thơng đip ch đưc g i đi khi điu ki n đưc th a mãn.  “sequence ”: s tu n t ca thơng đip c n g i. Ví d, vi c g i thơng đip 1.3.5 theo sau vi c g i thơng đip 1.3.4, c haithơng đip này n m trong lu ng 1.3.  “*”: ch rathơngđip đưc g i đi nhi u l n m t cách tu n t .  “*||”: ch rathơngđip đưc g i đi nhi u l n m t cách đng th i.  “iteration”: ch ra s ln g i thơng đip m t cách tu n t ho c đng th i  “result ”: ch ra giá tr tr v ca thơng đip.  “message ”: tên thơng đip  “parameters ”: danh sách các tham s ca thơng đip. 139 Bi u đ cng tác  Ví d  4 : hello() : thơng đip cĩ s tu n t là 4.  [time = 12h] 1 : lunch() : thơng đip này ch đưc g i đi n u là lúc 12h.  1.3.5 * call() : thơng đip này đưc g i đi nhi u l n.  3 / *|| [i:= 1 5] 1.2 : close() : thơng đip này đưc g i đi n ăm l n m t cách đng th i và sau thơng đip s 3.  1.2, 2.3 / [t < 10] 3.1 name = getName() : thơng đip này đưc g i đi sau các thơng đip 1.2, 2.3 và vi điu ki n t<10. 140 70
  71. Bi u đ cng tác  Ví d bi u đ cng tác :Ng ưiBán :ThanhTốn 1 : thanhTốn(s Ti n) 1.1.1 : > 2 : tr Ti nD ư() 1.1.3 : ti nD ư() 1.1.2 : thanhTốn(s Ti n) 1.1.4 : > 1.2 ti nD ư() :HTh ng :PhiênBánHàng 1.1 : thanhTốn(s Ti n) 141 Bi u đ tươ ng tác  Bài tp 1: Máy rút ti n ATM  Xây dng bi u đ tu n t cho ca s dng rút ti n trong tr ưng hp thành cơng  Xây dng bi u đ tu n t cho ca s dng xem s ti n dư trong tài kho n 142 71
  72. Ni dung  Khái ni m c ơ b n h ưng đi t ưng  Bi u đ ca s dng  Thi t k cu trúc t ĩnh  Thi t k cu trúc đng  Sinh mã 143 Sinh mã  Chuy n các mơ hình thi t k sang mã ch ươ ng trình (C++, Java, )  Mã ch ươ ng trình hưng đi tưng  ðnh ngh ĩa các lp và giao di n  ðnh ngh ĩa các ph ươ ng th c  Các bi u đ lp s đưc chuy n sang mã ch ươ ng trình đnh ngh ĩa các lp tươ ng ng  Các bi u đ tươ ng tác s đưc chuy n thành mã ch ươ ng trình đnh ngh ĩa các ph ươ ng th c  Các bi u đ khác s h tr cho quá trình mã hĩa 144 72
  73. Sinh mã  Ví d: bi u đ lp orderListe OneOrder contains > 1 * * − quantity: Integer 1 1 ListOfOrders AirPlane + subtotal() : double − datePlaced − price : float − clientID + total() : double + getPrice() : float 145 Sinh mã  Mã lp OneOrder public class OneOrder OneOrder { public double subtotal() − quantity: Integer { } + subtotal() : double private int quantity; } 146 73
  74. Sinh mã  Mã lp OneOrder OneOrder contains > public class OneOrder * { − quantity: Integer 1 public double subtotal() { AirPlane } + subtotal() : double − price : float private int quantity; private AirPlane airPlane; } + getPrice() : float 147 Sinh mã  Mã lp ListOfOrders orderListe OneOrder 1 * public class ListOfOrder { − quantity: Integer 1 public double total() { ListOfOrders } + subtotal() : double − datePlaced private Date datePlaced; − private int clientID; clientID private Vector orderList; } + total() : double 148 74
  75. Sinh mã  Bi u đ cng tác th c hi n ph ươ ng th c total() 1 : total() 2 : *[for each] subtotal() :ListOfOrders :OneOrder 3 : getPrice() :AirPlane 149 Sinh mã  Mã ph ươ ng th c total() 1 : total() 2 : *[for each] subtotal() :ListOfOrders :OneOrder 3 : getPrice() public double total() { } :AirPlane 150 75
  76. Sinh mã  Mã ph ươ ng th c total() 1 : total() 2 : *[for each] subtotal() :ListOfOrders :OneOrder public double total() 3 : getPrice() { double sum = 0; for (int i=0; i<orderList.size(); i++) sum += orderList.elementAt(i).subtotal(); return sum; :AirPlane } 151 Sinh mã  Mã ph ươ ng th c subTotal() 1 : total() 2 : *[for each] subtotal() :ListOfOrders :OneOrder public double subtotal() 3 : getPrice() { return (quantity * airplane.getPrice()); } :AirPlane 152 76
  77. Sinh mã  Mã ph ươ ng th c getPrice() 1 : total() 2 : *[for each] subtotal() :ListOfOrders :OneOrder public float getPrice() 3 : getPrice() { return price; } :AirPlane 153 Cơng c  Ph n mm Rational Rose, Poisedon for UML, Umbrello  Thi t k các bi u đ UML  Sinh mã ch ươ ng trình • C++ • Java • VB • Ada 154 77