Bài giảng Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vy

pdf 54 trang huongle 2490
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vy", để 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_ky_nghe_phan_mem_bai_7_thiet_ke_huong_doi_tuong_ng.pdf

Nội dung text: Bài giảng Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vy

  1. Kỹ nghệ phần mềm Software Engeneering NguyÔn V¨n Vþ Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN Email: vynv@coltech.vnu.vn
  2. Bài 7: Thiết kế hướng đối tượng NguyễnVănVỵ Nội dung „ VÊn ®Ò tån t¹i trong h−íng kiÕn tróc „ Kh¸i niÖm liªn quan ®Õn ®èi t−îng „ Ng«n ng÷ UML „ Ph©n tÝch h−íng ®èi t−îng „ ThiÕt kÕ h−íng ®èi t−îng „ Sö dông mÉu thiÕt kÕ Bộ môn Công nghệ phần mềm – ĐHCN 2
  3. TÀI LiỆU THAM KHẢO NguyễnVănVỵ 1. Nguyễn Văn Vỵ, Nguyễn Việt Hà. Giáo trình kỹ nghệ phần mềm. Nhà xuất bản Đại học Quốc gia Hà nội, 2008 2. Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified Modeling language User Guid. Addison-Wesley, 1998. 3. M. Ould. Managing Software Quality and Business Risk, John Wiley and Sons, 1999. 4. Roger S.Pressman, Software Engineering, a Practitioner’s Approach. Fifth Edition, McGraw Hill, 2001. 5. Ian Sommerville, Software Engineering. Sixth Edition, Addison- Wasley, 2001. 6. Nguyễn Văn Vỵ. Phân tích thiết kế hệ thống thông tin hiện đại. Hướng cấu trúc và hướng đối tượng, NXB Thống kê, 2002, Hà Nội. Bộ môn Công nghệ phần mềm – ĐHCN 3
  4. KiÕn tróc phÇn mÒm truyÒn thèng NguyễnVănVỵ Bộ môn Công nghệ phần mềm – ĐHCN 4
  5. VÊn ®Ò cña thiÕt kÕ h−íng thñ tôc NguyễnVănVỵ „ D÷ liÖu lμ chung cho c¶ hÖ thèng Mäi thñ tôc thao t¸c trªn CSDL chung, ®Æc tr−ng cho tr¹ng th¸i toμn hÖ thèng Thao t¸c sai cña 1 thñ tôc lªn d÷ liÖu g©y sai lan truyÒn sang phÇn kh¸c sö dông dông d÷ liÖu nμy Söa ®æi 1 thñ tôc cã nguy c¬ ¶nh h−ëng tíi phÇn kh¸c liªn quan „ Thay ®æi cÊu tróc d÷ liÖu dÉn ®Õn thay ®æi tæng thÓ hÖ thèng Æ d÷ liÖu cÇn tæ chøc tèt „ HÖ thèng lín, phøc t¹p: b¶o tr× khã kh¨n Bộ môn Công nghệ phần mềm – ĐHCN 5
  6. ThiÕt kÕ h−íng ®èi t−îng- OOD NguyễnVănVỵ „ HiÖn ®ang trë nªn phæ biÕn „ Lμ mét c¸ch tiÕp cËn kh¸c, nh×n nhËn hÖ thèng theo c¸c quan ®iÓm:  tËp c¸c ®èi t−îng cã t−¬ng t¸c víi nhau  mçi ®èi t−îng bao gãi c¶ d÷ liÖu vμ c¸c xö lý trªn chóng  T−¬ng t¸c gi÷a c¸c ®èi t−êng b»ng truyÒn th«ng b¸o  C¸c ®èi t−îng cã thÓ kÕ thõa nhau Bộ môn Công nghệ phần mềm – ĐHCN 6
  7. VÝ dô kiÕn tróc h−íng ®èi t−îng NguyễnVănVỵ Customer Receipt customer# invoice# name date address Invoice amount credit period customer# invoice# date amount customer Payment issue () invoice# sendReminder () date acceptPayment () amount sendReceipt () customer# Bộ môn Công nghệ phần mềm – ĐHCN 7
  8. ¦u ®iÓm cña OOD NguyễnVănVỵ „ DÔ b¶o tr×: c¸c ®èi t−îng ®−îc hiÓu nh− c¸c thùc thÓ ho¹t ®éng ®éc lËp  Bao gãi th«ng tin  liªn kÕt láng lÎo (trao ®æi b»ng truyÒn th«ng b¸o) „ DÔ t¸i sö dông:  ®é ®éc lËp cao  cã kh¶ n¨ng kÕ thõa „ DÔ hiÓu: mét vμi hÖ thèng, cã sù ¸nh x¹ t−êng minh gi÷a thùc thÓ thùc thÕ giíi thùc vμ ®èi t−îng hÖ thèng Bộ môn Công nghệ phần mềm – ĐHCN 8
  9. Néi dung cña OOD NguyễnVănVỵ „ X¸c ®Þnh c¸c tËp ®èi t−îng (gäi lμ líp) vμ c¸c ®Æc tr−ng cña chóng „ Ph©n ®Þnh vai trß vμ tr¸ch nhiÖm cña chóng trong hÖ thèng „ ThiÕt lËp ®−îc sù t−¬ng t¸c cña chóng ®Ó thùc hiÖn chøc n¨ng cña hÖ thèng phÇn mÒm ®Æt ra Bộ môn Công nghệ phần mềm – ĐHCN 9
  10. C¸c kh¸i niÖm cña OOD NguyễnVănVỵ d1. §èi t−¬ng „ Lμ c¸c trõu t−îng hãa thùc thÓ cña thÕ giíi thùc hoÆc cña mét hÖ thèng „ Bao gåm: ®Þnh danh, c¸c thuéc tÝnh vμ c¸c ph−¬ng thøc thao t¸c trªn c¸c d÷ liÖu thuéc tÝnh cña n㠄 §éc lËp vμ ®ãng gãi tr¹ng th¸i thÓ hiÖn b»ng gi¸ trÞ c¸c thuéc tÝnh cña nã ë mét thêi ®iÓm „ Cung cÊo dÞch vô cho ®èi t−îng kh¸c hay yªu cÇu c¸c ®èi t−îng kh¸c thùc hiÖn mét dÞch vô Bộ môn Công nghệ phần mềm – ĐHCN 10
  11. Líp ®èi t−îng NguyễnVănVỵ „ Líp ®èi t−îng lμ khu«n mÉu ®Ó t¹o ra tËp ®èi t−îng cã c¸c ®Æc tr−ng chung „ Líp ®èi t−îng cã thÓ kÕ thõa thuéc tÝnh vμ dÞch vô tõ líp ®èi t−îng kh¸c „ Líp ®−îc x¸c ®Þnh b»ng: Sinh vien  Tªn maSV hotenSV  Bé c¸c thuéc tÝnh diachi  C¸c ph−¬ng thóc lop Tao( ) Capnhat( ) Xoa( ) Bộ môn Công nghệ phần mềm – ĐHCN 11
  12. Trõu t−îng hãa NguyễnVănVỵ „ Trõu t−îng hãa cung cÊp c¸i nh×n ®¬n gi¶n ®èi víi thùc thÓ cÇn xö lý  chØ m« t¶ c¸c tÝnh chÊt chóng ta quan t©m  che giÊu c¸c th«ng tin kh«ng cÇn thiÕt „ §−îc cμi ®Æt nh− lμ:  kiÓu d÷ liÖu trõu t−îng, líp ®èi t−îng  c¸c kiÓu d÷ liÖu c¬ së cã s½n: int, double Bộ môn Công nghệ phần mềm – ĐHCN 12
  13. Bao gãi vμ che giÊu th«ng tin NguyễnVănVỵ „ Lμ kh¸i niÖm c¬ së cña thiÕt kÕ/lËp tr×nh h−íng ®èi t−îng „ Che giÊu th«ng tin ®Ó ®èi t−îng kh«ng cÇn thiÕt kh«ng thÓ sö dông „ ChØ cung cÊp chøc n¨ng, dÞch vô cÇn „ Che giÊu c¸c yÕu tè cã kh¶ n¨ng thay ®æi cÊu tróc d÷ liÖu c¸ch thøc cμi ®Æt Bộ môn Công nghệ phần mềm – ĐHCN 13
  14. CÊu tróc d÷ liÖu NguyễnVănVỵ „ M« t¶ mèi quan hÖ gi÷a c¸c kho¶n môc d÷ liÖu „ CÊu tróc vËt lý chØ ra c¸ch thøc ch−¬ng tr×nh thao t¸c víi d÷ liÖu „ C¸c cÊu tróc c¬ së  kho¶n môc v« h−íng  m¶ng (mét chiÒu, nhiÒu chiÒu)  danh s¸ch mãc nèi  c©y ph©n cÊp Bộ môn Công nghệ phần mềm – ĐHCN 14
  15. VÝ dô NguyễnVănVỵ struct Date { int year, mon, day; }; struct Date { int year; int mon_and_day; } Bộ môn Công nghệ phần mềm – ĐHCN 15
  16. Tæng qu¸t hãa vμ kÕ thõa NguyễnVănVỵ „ Mét líp cã thÓ lμ líp con cña 1 líp c¸c ®èi t−îng tæng qu¸ h¬n, vμ gäi lμ kÕ thõa cña líp tæng qu¸t „ trªn c©y kÕ thõa, líp cha (super class) cã thÓ lμ tæng qu¸t hãa cña 1 sè c¸c líp con (sub-class) „ Líp con kÕ thõa c¸c thuéc tÝnh vμ ph−¬ng thøc cña líp cha vμ cã thÓ thªm/thay ®æi ph−¬ng thøc, thuéc tÝnh „ Sö dông kÕ thõa gióp ta m« t¶ líp con chØ gåm c¸c ®Æc trung kh¸c líp cha Bộ môn Công nghệ phần mềm – ĐHCN 16
  17. VÝ dô c©y kÕ thõa NguyễnVănVỵ Employee Manager Programmer budgetsControlled project progLanguage dateAppointed Project Dept. Strategic Manager Manager Manager projects dept responsibilities Bộ môn Công nghệ phần mềm – ĐHCN 17
  18. ¦u ®iÓm cña kÕ thõa NguyễnVănVỵ „ Lμ c¬ chÕ trõu t−îng ®Ó ph©n lo¹i c¸c líp (thùc thÓ) „ T¸i sö dông c¶ ë møc thiÕt kÕ vμ møc lËp tr×nh  t¸i sö dông cÊu tróc d÷ liÖu  t¸i sö dông ph−¬ng thøc: y giao diÖn y cμi ®Æt (m·) „ BiÓu ®å kÕ thõa lμ nguån th«ng tin mang tÝnh tæ chøc vÒ bμi to¸n Bộ môn Công nghệ phần mềm – ĐHCN 18
  19. T−¬ng t¸c gi÷a c¸c ®èi t−îng NguyễnVănVỵ o1: C1 o3:C3 o4: C4 state o1 state o3 state o4 ops1() ops3 () ops4 () o2: C3 o6: C1 o5:C5 state o2 state o6 state o5 ops3 () ops1 () ops5 () Bộ môn Công nghệ phần mềm – ĐHCN 19
  20. T−¬ng t¸c gi÷a c¸c ®èi t−îng NguyễnVănVỵ „ C¸c ®èi t−îng giao tiÕp b»ng trao ®æi th«ng b¸o „ Th«ng b¸o  Tªn dÞch vô ®−îc yªu cÇu  Th«ng tin dïng ®Ó thùc hiÖn dÞch vô „ C¸c lo¹i ®èi t−îng  actor: chØ göi th«ng b¸o  agent: göi vμ nhËn th«ng b¸o  server: chØ nhËn th«ng b¸o „ Thùc tÕ, th«ng b¸o ®−îc cμi ®Æt b»ng lêi gäi hμm  Tªn = tªn hμm  Th«ng tin = danh s¸ch tham sè Bộ môn Công nghệ phần mềm – ĐHCN 20
  21. Mét sè vÊn ®Ò dïng kÕ thõa NguyễnVănVỵ „ §èi t−îng kh«ng tù chøa, kh«ng thÓ hiÓu nÕu kh«ng tham chiÕu ®Õn líp cha „ L¹m dông c¸c s¬ ®å kÕ thõa trong b−íc ph©n tÝch cã thÓ dÉn ®Õn sù kÐm hiÖu qu¶ Bộ môn Công nghệ phần mềm – ĐHCN 21
  22. KÕ thõa vμ OOD NguyễnVănVỵ „ Cã hai quan niÖm 1. KÕ thõa lμ yÕu tè c¬ b¶n cña OOD vμ ®−îc cμi ®Æt th«ng qua c¸c ng«n ng÷ h−íng ®èi t−îng 2. KÕ thõa sö dông c¬ chÕ ®Æc biÖt ®Ó t¸i sö dông thuéc tÝnh vμ ph−¬ng thøc. ThiÕt kÕ kÕ thõa sÏ t¹o ra c¸c rμng buéc cho cμi ®Æt „ KÕ thõa kh«ng dÔ hiÓu vμ do ®ã nªn tr¸nh, nhÊt lμ ®èi víi c¸c hÖ thèng ®Æc biÖt quan träng. Bộ môn Công nghệ phần mềm – ĐHCN 22
  23. e. Ng«n ng÷ m« h×nh hãa thèng nhÊt Unified Modeling LanguageNguyễnVănVỵ „ Là một ngôn ngữ mô hình để phát triển phần mềm hướmg đối tượng „ Các đặc trưng: UML là ngôn ngữ: ƒ độ họa ƒ làm trực quan hóa ƒ đặc tả ƒ xây dựng mô hình ƒ làm tài liệu Bộ môn Công nghệ phần mềm – ĐHCN 23
  24. Ng«n ng÷ m« h×nh hãa thèng nhÊt NguyễnVănVỵ „ Gåm 3 khèi cơ bản: A. C¸c sù vËt (things) 1. C¸c sù vËt cÊu tróc (structural) 2. C¸c sù vËt hμnh vi (behavioral) 3. C¸c sù vËt nhãm gép(grouping) 4. C¸c sù vËt gi¶i thÝch (annotational) B. C¸c quan hÖ (Relationships) C. C¸c biểu ®å (Diagrams) Bộ môn Công nghệ phần mềm – ĐHCN 24
  25. Ng«n ng÷ m« h×nh hãa thèng nhÊt NguyễnVănVỵ „ C¸c sù vËt cÊu tróc (structural) Class –lớp use ase –ca sử dụng Collaboration sù cộng t¸c Window origin Đặt hàng Đặt hàng open() Actor Interface Component-thμnhfần Node - nót orderform.java Server Bộ môn Công nghệ phần mềm – ĐHCN 25
  26. Ng«n ng÷ m« h×nh hãa thèng nhÊt NguyễnVănVỵ „ C¸c sù vËt hμnh vi , nhãm gép, gi¶i thÝch interaction state machine package Client display ®îi + OrderForm + Tracking FormOrde Note Class Tù t¹o Bộ môn Công nghệ phần mềm – ĐHCN 26
  27. Ng«n ng÷ m« h×nh hãa thèng nhÊt NguyễnVănVỵ B. C¸c mèi quan hÖ dependence assosiation generalization 0 1 1 * realization aggregation composite Bộ môn Công nghệ phần mềm – ĐHCN 27
  28. Ng«n ng÷ m« h×nh hãa thèng nhÊt NguyễnVănVỵ C. C¸c biÓu ®å “extend” Gäi®iÖntho¹i ®Æt héi nghi “use” Tr¶lêi BiÓu ®å cửa sa sö dông Bộ môn Công nghệ phần mềm – ĐHCN 28
  29. Ng«n ng÷ m« h×nh hãa thèng nhÊt NguyễnVănVỵ C. C¸c biÓu ®å tμi kho¶n GiaodiÖn róttiÒn ®iÒu khiÓn rót tiÒn GiaodiÖnnhËntiÒn lÞch sö tμi kho¶n BiÓu ®å cửa c«ng t¸c ph©n tÝch Bộ môn Công nghệ phần mềm – ĐHCN 29
  30. Ng«n ng÷ m« h×nh hãa thèng nhÊt NguyễnVănVỵ TransportAgent c:company d1:Department d2:Department Message Queue name =“Sale” name=“R&D” d3:Department p: Person OutgoingQueue IncomingQueue name = “US Sales” name=“Exin” BiÓu ®å líp BiÓu ®å ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 30
  31. Ng«n ng÷ m« h×nh hãa thèng nhÊt NguyễnVănVỵ C. C¸c biÓu ®å :message :OutgoingQueue :TranAgent create ad dMessage RemoveMessage BiÓu ®å tuÇn tù Bộ môn Công nghệ phần mềm – ĐHCN 31
  32. Ng«n ng÷ m« h×nh hãa thèng nhÊt NguyễnVănVỵ C. C¸c biÓu ®å waiting GettingToken GettingBody BiÓu ®å tr¹ng th¸i Bộ môn Công nghệ phần mềm – ĐHCN 32
  33. Ph©n tÝch/thiÕt kÕ h−íng ®èi t−îng NguyễnVănVỵ „ M« h×nh ph©n tÝch „ M« h×nh thiÕt kÕ M« h×nh nghiÖp vô ƒ M« h×nh cÊu tróc gãi y M« h×nh miÒn ƒ M« h×nh céng t¸c y BiÓu ®å ho¹t ®éng ƒ M« h×nh líp M« h×nh ca sö dông ƒ ®Æc t¶ líp, giao diÖn M« h×nh líp ph©n tÝch M« h×nh gãi líp Bộ môn Công nghệ phần mềm – ĐHCN 33
  34. TiÕn tr×nh ph©n tÝch-thiÕt kÕ DT NguyễnVănVỵ M« t¶ Ph©n tÝch 1 gãi ThiÕt kÕ ThiÕt kÕ nghiÖp vô ca sö dông hÖ thèng líp LËp m« h×nh Ph©n gãi c¸c LËp biÓu ®å ThiÕt kÕ ca sö dông líp ph©n tÝch c«ng t¸c 1 CSDL gãi ph©n tÝch LËp m« h×nh X©y dùng c¸c LËp biÓu ThiÕt kÕ kiÕn tróc-gãi giao diÖn ®å líp thiÕt kÕ giao diÖn ca sö dông sö dông NghiÖp vô Ph©n tÝch ThiÕt kÕ TiÕn tr×nh ph©n tÝch vμ thiÕt kÕ h−íng ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 34
  35. Ph©n tÝch h−íng ®èi t−îng NguyễnVănVỵ 1. M« t¶ nghiÖp vô ƒ B»ng lêi ƒ B»ng biÓu ®å ho¹t ®«ng 2. X©y dùng m« h×nh nghiÖp vô ƒ M« h×nh miÒn lÜnh vùc ƒ M« h×nh ca sö dông 3. Ph©n tÝch x¸c ®Þnh cÊu tróc (khëi th¶o) ƒ Lμm mÞn m« h×nh ca sö dông ƒ X¸c ®Þnh c¸c gãi ca sö dông, giao diÖn Bộ môn Công nghệ phần mềm – ĐHCN 35
  36. Ph©n tÝch h−íng ®èi t−îng NguyễnVănVỵ 1. Ph©n tÝch mét ca sö dông ƒ T×m c¸c líp ph©n tÝch ƒ X¸c ®Þnh liªn kÕt gi÷a c¸c líp 2. Ph©n gãi l¹i c¸c líp ph©n tÝch (t¨ng c−êng kiÕn tróc) ƒ T¸ch c¸c líp dÞch vô & øng dông ƒ Ph©n gãi c¸c líp ph©n tÝch theo tÇng 3. X¸c ®Þnh vμ m« t¶ c¸c giao diÖn ƒ X¸c ®inh giao diÖn gi÷a c¸c gãi ƒ X¸c ®Þnh liªn kÕt gi÷a c¸c gãi Bộ môn Công nghệ phần mềm – ĐHCN 36
  37. ThiÕt kÕ h−íng ®èi t−îng NguyễnVănVỵ 1. ThiÕt kÕ biÓu ®å t−¬ng t¸c mçi gãi ƒ X¸c ®Þnh l¹i c¸c líp ƒ X©y dùng biÓu ®å t−¬ng t¸c 2. Ph¸t triÓn biÓu ®å líp thiÕt kÕ ƒ ChuyÓn biÓu ®å c«ng t¸c sang biÓu ®å líp ƒ Hoμn thiÖn c¸c quan hÖ c«ng t¸c 3. ThiÕt kÕ c¸c líp ƒ ThiÕt kÕ c¸c thuéc tÝnh ƒ ThiÕt kÕ c¸c ph−¬ng thøc ƒ ThiÕt kÕ CSDL 4. ThiÕt kÕ giao diÖn ng−êi dïng Bộ môn Công nghệ phần mềm – ĐHCN 37
  38. VÝ dô: ph©n tÝch h−íng ®èi t−îng NguyễnVănVỵ 1. Bμi to¸n: giao dÞch tÝn dông sö dông m¸y ATM 2. M« h×nh nghiÖp vô Giao dÞch tÝn dông ng©n hµng dÞch vô 1 * 1 1 1 * 1 1 1 * 1 * göi tiÒn ChuyÓn tiÒn kh¸ch 1 1 tµi kho¶n rót tiÒn BiÓu ®å ca sö dông M« h×nh miÒn Bộ môn Công nghệ phần mềm – ĐHCN 38
  39. VÝ dô: ph©n tÝch h−íng ®èi t−îng NguyễnVănVỵ „ X¸c ®Þnh gãi c¸c ca sö dông Giao dÞch tÝn dông göi tiÒn göi tiÒn göi tiÒn BiÓu ®å gãi ca sö dông Bộ môn Công nghệ phần mềm – ĐHCN 39
  40. VÝ dô: ph©n tÝch h−íng ®èi t−îng NguyễnVănVỵ „ Ph©n tÝch mét gãi c¸c ca sö dông M« hinh ca sử dụng M« h×nh ph©n tÝch > rót tiền thực thi ca sử dụng rót tiền M¸y trả giao diện điều khiển rut tài khoản tiền thủ quỹ tiền C¸c lớp ph©n tÝch thực thi ca sử dụng rót tiền. Bộ môn Công nghệ phần mềm – ĐHCN 40
  41. VÝ dô: ph©n tÝch h−íng ®èi t−îng NguyễnVănVỵ „ BiÓu ®å ph©n tÝch mét gãi ca sö dông M¸y trả tiền Kh¸ch hµng điều khiển rót tiền giao diện thủ quỹ Tµi khoản C¸c líp ph©n tÝch vμ quan hÖ gi÷a chóng Bộ môn Công nghệ phần mềm – ĐHCN 41
  42. VÝ dô: ph©n tÝch h−íng ®èi t−îng NguyễnVănVỵ „ BiÓu ®å gãi c¸c líp ph©n tÝch M¸y trả tiền điều khiển rót tiền giao diện điều khiển chuyển đổi Tμi kh¸ch hμng thủ quỹ chuyển tiền tμi khoản khoản M¸y nhận điều khiển tiền nhận tiền C¸c gãi cña c¸c líp ph©n tÝch Bộ môn Công nghệ phần mềm – ĐHCN 42
  43. VÝ dô: Thiết kế h−íng ®èi t−îng NguyễnVănVỵ „ ThiÕt kÕ hÖ thèng M¸y kh¸ch kh¸ch hµng intranet M¸y dịch internet M¸y dịch vụứng vụ ng©n dụng hµng Biểu đồ bố trÝ c¸c nót của hệ thống Bộ môn Công nghệ phần mềm – ĐHCN 43
  44. VÝ dô: Thiết kế h−íng ®èi t−îng NguyễnVănVỵ „ BiÓu ®å c¸c líp thiÕt kÕ M¸y đọc thẻ quản lý Mµn h×nh giao dịch hiển thị lịch sủ tµi Bµn phÝm quản lý khoản kh¸ch rót tiền M¸y đẩy tiền M¸y đếm quản lý Tµi khoản cảm ứng tiền tµi khoản trả tiền C¸c lớp thiÕt kÕ tham gia thực hiện ca sử dụng rót tiền Bộ môn Công nghệ phần mềm – ĐHCN 44
  45. VÝ dô: Thiết kế h−íng ®èi t−îng NguyễnVănVỵ : máy : màn hình : bàn : quản lý : máy : quản lý : khách đọc thẻ hiển thi phím khách đếm tiền giao dịch hàng đưa thẻ vμo Th«ng tin thẻ (ID) Yªu cầu hiển thi PIN hiện bảng yªu cầu nhập vμo m· PIN m· PIN đề nghi x¸c nhận PIN Yªu cầusố tiền rót hiện bảng yªu cầu nhập vμo số tiền rót số tiền(A) Yªu cầu số tiền mặt (A) Yªu cầu giảm số dư = (A) Biểu đồ tuần tự thực hiện ca sử dụng rót tiền Bộ môn Công nghệ phần mềm – ĐHCN 45
  46. VÝ dô: Thiết kế h−íng ®èi t−îng NguyễnVănVỵ „ ThiÕt kÕ líp: tμi kho¶n a. Bảng c¸c thuộc tÝnh : Tªn thuéc tÝnh kiÓu Néi dung IDtaikh string §Þnh danh tμi kho¶n sotkh string Số tμi khoản dμnh cho một kh¸ch hμng gåm ch÷, sè, dÊu sodu money Sè d− cã trong tμi khoản, ®¬n vị ®o lμ tiền tệ Bộ môn Công nghệ phần mềm – ĐHCN 46
  47. VÝ dô: Thiết kế h−íng ®èi t−îng NguyễnVănVỵ „ ThiÕt kÕ líp: Tμi kho¶n b. Bảng c¸c thao t¸c (t¸c vụ) Tªn thao t¸c ý nghĩa taolap() Tạo một tài khoản cho kh¸ch hàng mới gui() Bổ sung tiền gửi vào tài khoản chuyen() Chuyển một số tiền từ 1 tài khoản sang 1 tài khoản kh¸c rut() Rót một số tiền từ tài khoản dong() Đãng tài khoản Bộ môn Công nghệ phần mềm – ĐHCN 47
  48. VÝ dô: Thiết kÕ h−íng ®èi t−îng NguyễnVănVỵ „ ThiÕt kÕ líp Taikhoan IDtaikh:string sotaikh: string sodu: money taolap (sotkh:string, sotien;money) + gui(sotkh:string, soien:money) + chuyen(sotkh:stringk, sotien:money, sotkh2:string) + rut (sotk:h:string, sotien;money) dong() Lớp tμi khoản với c¸c thuộc tÝnh vμ c¸c thao t¸c Bộ môn Công nghệ phần mềm – ĐHCN 48
  49. MÉu thiÕt kÕ - Pattern NguyễnVănVỵ „ MÉu thiÕt kÕ: Pattern ƒ khi thiÕt kÕ cã nhiÒu tr−êng hîp cã sù t−¬ng tù ƒ M« t¶ gi¶i ph¸p cña mét tr−êng chung cã thÓ ¸p cho tr−êng hîp kh¸c t−¬ng tù  gäi lμ mÉu thiÕt kÕ „ M« t¶ mét mÉu bao gåm: ƒ VÊn ®Ò ®Æt ra (ng÷ c¶nh) ƒ Gi¶i ph¸p: ph¸t biÓu nh− mét ch©m ng«n ƒ KÕt qu¶ ƒ C¸c mÉu liªn quan ƒ M« h×nh mÉu Bộ môn Công nghệ phần mềm – ĐHCN 49
  50. VÝ dô mét sè mÉu thiÕt kÕ NguyễnVănVỵ „ B¶n chÊt mÉu ™ MÉu thiÕt kÕ kh«ng ph¶i lμ c¸i g× míi mÎ ™ MÉu thiÕt kÕ lμ mét sù ®óc kÕt tõ kinh nghiÖm „ 5 mẫu phần mềm g¸n tr¸ch nhiệm chung GRASP thường được sử dụng nhiều nhất lμ: ƒ Expert (chuyªn gia) ƒ Creator (bộ tạo lập) ƒ Low Coupling (ghÐp nối thấp) ƒ HighCohension (kết dÝnh cao) ƒ Controller (bộ điều khiển) „ Bộ môn Công nghệ phần mềm – ĐHCN 50
  51. VÝ dô mét sè mÉu thiÕt kÕ NguyễnVănVỵ „ M« h×nh mÉu cña mÉu chuyªn gia ƒ VÊn ®Ò: Nguyªn t¾c g¸n tr¸ch nhiÖm cho 1 ®èi t−¬ng lμ g×? ƒ Gi¶i ph¸p: H·y g¸n tr¸ch nhiÖm cho ®èi t−îng cã ®ñ th«ng tin ®Ó thùc hiÖn tr¸chnhiÖm ®ã ƒ KÕt qu¶: Gi¶m sù phô thuéc vμo líp kh¸c ƒ MÉu liªn quan: kÕt dÝnh cao, ghÐp nèi láng Bộ môn Công nghệ phần mềm – ĐHCN 51
  52. VÝ dô mét sè mÉu thiÕt kÕ NguyễnVănVỵ „ M« h×nh mÉu chuyªn gia: bμi to¸n b¸n hμng ƒ G¸n tr¸ch nhiÖm cho mathangban tÝnh tæng tiÒn b¸n 1 mÆt hμng tienIterm(upc, soluong) v× nã cã th«ng tin soluong vμ lÊy gi¸ tõ danhmuc ƒ G¸n tr¸ch nhiÖm cho lanban tÝnh tæng tiÒn mét lÇn b¸n tongtien(sott) v× nã biÕt sè tiÒn tõng mÆt hμng thuéc lÇn b¸n lanban mathangban danhmuc sott: int upc: string upc: string ngay: date sott: int mota: string soluong: int gia: int taoSale( ) taoIterm( ) taoDM( ) tongtien(sott) tienIterm(upc,soluong,p) layGia(upc) Bộ môn Công nghệ phần mềm – ĐHCN 52
  53. Lîi Ých sö dông mÉu thiÕt kÕ NguyễnVănVỵ ƒ Cho ta gi¶i ph¸p cña vÊn ®Ò kh«ng cÇn t×m kiÕm ƒ Dïng l¹i c¸i ®· cã, ®ì tèn thêi gian vμ c«ng søc ƒ Cho thiÕt kÕ tèt vμ chÊt l−îng hÖ thèng cao Bộ môn Công nghệ phần mềm – ĐHCN 53
  54. C©u hái và thảo luận NguyễnVănVỵ Bộ môn Công nghệ phần mềm – ĐHCN 54