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 Vỵ
Tóm tắt 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 Vỵ: ..., 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...iterealization aggregation 0..1 1..* Bộ mụn Cụng nghệ phần mềm – ĐHCN 28 NguyễnVănVỵ Ngôn ngữ mô hình hóa thống nhất C. Các biểu đồ Gọiđiệnthoại đặt hội nghi Trảlời “use” “extend” Biểu đồ cửa sa sử dụng Bộ mụn Cụng nghệ phần mềm – ĐHCN 29 NguyễnVănVỵ Ngôn ngữ mô hình hóa thống nhất C. ...ền Giao dịch tín dụng Ví dụ: phân tích h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 40 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ả tiền giao diện thủ quỹ điều khiển rut tiền tài khoản Cá...
Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN Email: vynv@coltech.vnu.vn Kỹ nghệ phần mềm Software Engeneering NguyÔn V¨n Vþ Bộ môn Công nghệ phần mềm – ĐHCN 2 NguyễnVănVỵ Nội dung Bài 7: Thiết kế hướng đối tượng 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 3 NguyễnVănVỵ TÀI LiỆU THAM KHẢO 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 4 NguyễnVănVỵ KiÕn tróc phÇn mÒm truyÒn thèng Bộ môn Công nghệ phần mềm – ĐHCN 5 NguyễnVănVỵ VÊn ®Ò cña thiÕt kÕ h−íng thñ tôc 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 6 NguyễnVănVỵ ThiÕt kÕ h−íng ®èi t−îng- OOD 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 7 NguyễnVănVỵ VÝ dô kiÕn tróc h−íng ®èi t−îng issue () sendReminder () acceptPayment () sendReceipt () invoice# date amount customer Invoice invoice# date amount customer# Receipt invoice# date amount customer# Payment customer# name address credit period Customer Bộ môn Công nghệ phần mềm – ĐHCN 8 NguyễnVănVỵ ¦u ®iÓm cña OOD 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 9 NguyễnVănVỵ Néi dung cña OOD 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 10 NguyễnVănVỵ C¸c kh¸i niÖm cña OOD 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 11 NguyễnVănVỵ Líp ®èi t−îng 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: Tªn Bé c¸c thuéc tÝnh C¸c ph−¬ng thóc Sinh vien maSV hotenSV diachi lop Tao( ) Capnhat( ) Xoa( ) Bộ môn Công nghệ phần mềm – ĐHCN 12 NguyễnVănVỵ Trõu t−îng hãa 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 13 NguyễnVănVỵ Bao gãi vμ che giÊu th«ng tin 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 14 NguyễnVănVỵ CÊu tróc d÷ liÖu 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 15 NguyễnVănVỵ VÝ dô 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 16 NguyễnVănVỵ Tæng qu¸t hãa vμ kÕ thõa 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 17 NguyễnVănVỵ VÝ dô c©y kÕ thõa Employee Programmer project progLanguage Manager Project Manager budgetsControlled dateAppointed projects Dept. Manager Strategic Manager dept responsibilities Bộ môn Công nghệ phần mềm – ĐHCN 18 NguyễnVănVỵ ¦u ®iÓm cña kÕ thõa 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: ygiao diÖn ycμ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 19 NguyễnVănVỵ T−¬ng t¸c gi÷a c¸c ®èi t−îng state o3 o3:C3 state o4 o4: C4 state o1 o1: C1 state o6 o6: C1 state o5 o5:C5 state o2 o2: C3 ops1() ops3 () ops4 () ops3 () ops1 () ops5 () Bộ môn Công nghệ phần mềm – ĐHCN 20 NguyễnVănVỵ T−¬ng t¸c gi÷a c¸c ®èi t−îng 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 21 NguyễnVănVỵ Mét sè vÊn ®Ò dïng kÕ thõa §è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 22 NguyễnVănVỵ KÕ thõa vμ OOD 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 23 NguyễnVănVỵ e. Ng«n ng÷ m« h×nh hãa thèng nhÊt Unified Modeling Language 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 24 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) Ng«n ng÷ m« h×nh hãa thèng nhÊt Bộ môn Công nghệ phần mềm – ĐHCN 25 NguyễnVănVỵ Ng«n ng÷ m« h×nh hãa thèng nhÊt 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 Node - nótActor Interface Component-thμnhfần Đặt hàng Window origin open() Đặt hàng orderform.java Server Bộ môn Công nghệ phần mềm – ĐHCN 26 NguyễnVănVỵ Ng«n ng÷ m« h×nh hãa thèng nhÊt C¸c sù vËt hμnh vi , nhãm gép, gi¶i thÝch interaction state machine package Note display ®îi + OrderForm + Tracking FormOrde Client Class Tù t¹o Bộ môn Công nghệ phần mềm – ĐHCN 27 NguyễnVănVỵ Ng«n ng÷ m« h×nh hãa thèng nhÊt B. C¸c mèi quan hÖ dependence assosiation generalization compositerealization aggregation 0..1 1..* Bộ môn Công nghệ phần mềm – ĐHCN 28 NguyễnVănVỵ Ng«n ng÷ m« h×nh hãa thèng nhÊt C. C¸c biÓu ®å Gäi®iÖntho¹i ®Æt héi nghi Tr¶lêi “use” “extend” BiÓu ®å cửa sa sö dông Bộ môn Công nghệ phần mềm – ĐHCN 29 NguyễnVănVỵ Ng«n ng÷ m« h×nh hãa thèng nhÊt C. C¸c biÓu ®å BiÓu ®å cửa c«ng t¸c ph©n tÝch GiaodiÖn róttiÒn GiaodiÖnnhËntiÒn tμi kho¶n lÞch sö tμi kho¶n ®iÒu khiÓn rót tiÒn Bộ môn Công nghệ phần mềm – ĐHCN 30 NguyễnVănVỵ TransportAgent Message IncomingQueue OutgoingQueue Queue c:company d1:Department name =“Sale” d2:Department name=“R&D” d3:Department name = “US Sales” p: Person name=“Exin” BiÓu ®å líp BiÓu ®å ®èi t−îng Ng«n ng÷ m« h×nh hãa thèng nhÊt Bộ môn Công nghệ phần mềm – ĐHCN 31 NguyễnVănVỵ C. C¸c biÓu ®å BiÓu ®å tuÇn tù :message :OutgoingQueue create ad dMessage :TranAgent RemoveMessage Ng«n ng÷ m« h×nh hãa thèng nhÊt Bộ môn Công nghệ phần mềm – ĐHCN 32 NguyễnVănVỵ C. C¸c biÓu ®å waiting GettingToken GettingBody BiÓu ®å tr¹ng th¸i Ng«n ng÷ m« h×nh hãa thèng nhÊt Bộ môn Công nghệ phần mềm – ĐHCN 33 NguyễnVănVỵ Ph©n tÝch/thiÕt kÕ h−íng ®èi t−îng M« h×nh ph©n tÝch M« h×nh nghiÖp vô yM« h×nh miÒn yBiÓu ®å ho¹t ®éng M« h×nh ca sö dông M« h×nh líp ph©n tÝch M« h×nh gãi líp M« h×nh thiÕt kÕ M« h×nh cÊu tróc gãi M« h×nh céng t¸c M« h×nh líp ®Æc t¶ líp, giao diÖn Bộ môn Công nghệ phần mềm – ĐHCN 34 NguyễnVănVỵ TiÕn tr×nh ph©n tÝch-thiÕt kÕ DT TiÕn tr×nh ph©n tÝch vμ thiÕt kÕ h−íng ®èi t−îng M« t¶ nghiÖp vô LËp m« h×nh ca sö dông LËp m« h×nh kiÕn tróc-gãi ca sö dông Ph©n tÝch 1 gãi ca sö dông Ph©n gãi c¸c líp ph©n tÝch ThiÕt kÕ hÖ thèng LËp biÓu ®å c«ng t¸c 1 gãi ph©n tÝch X©y dùng c¸c giao diÖn LËp biÓu ®å líp thiÕt kÕ ThiÕt kÕ líp ThiÕt kÕ CSDL ThiÕt kÕ giao diÖn sö dông NghiÖp vô Ph©n tÝch ThiÕt kÕ Bộ môn Công nghệ phần mềm – ĐHCN 35 NguyễnVănVỵ Ph©n tÝch h−íng ®èi t−îng 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 36 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 Ph©n tÝch h−íng ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 37 NguyễnVănVỵ ThiÕt kÕ h−íng ®èi t−îng 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 38 NguyễnVănVỵ VÝ dô: ph©n tÝch h−íng ®èi t−îng 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 göi tiÒn rót tiÒn ChuyÓn tiÒn BiÓu ®å ca sö dông M« h×nh miÒn ng©n hµng tµi kho¶nkh¸ch dÞch vô 1 1..*1..* 1 1..* 1 1 11 1..* Bộ môn Công nghệ phần mềm – ĐHCN 39 NguyễnVănVỵ X¸c ®Þnh gãi c¸c ca sö dông göi tiÒn BiÓu ®å gãi ca sö dông göi tiÒngöi tiÒn Giao dÞch tÝn dông VÝ dô: ph©n tÝch h−íng ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 40 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ả tiền giao diện thủ quỹ điều khiển rut tiền tài khoản C¸c lớp ph©n tÝch thực thi ca sử dụng rót tiền. VÝ dô: ph©n tÝch h−íng ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 41 NguyễnVănVỵ BiÓu ®å ph©n tÝch mét gãi ca sö dông C¸c líp ph©n tÝch vμ quan hÖ gi÷a chóng Tµi khoản giao diện thủ quỹ điều khiển rót tiền M¸y trả tiền Kh¸ch hµng VÝ dô: ph©n tÝch h−íng ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 42 NguyễnVănVỵ giao diện thủ quỹ điều khiển chuyển tiền M¸y trả tiền M¸y nhận tiền điều khiển nhận tiền điều khiển rót tiền chuyển đổi tμi khoản Tμi khoản C¸c gãi cña c¸c líp ph©n tÝch kh¸ch hμng BiÓu ®å gãi c¸c líp ph©n tÝch VÝ dô: ph©n tÝch h−íng ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 43 NguyễnVănVỵ ThiÕt kÕ hÖ thèng M¸y kh¸ch M¸y dịch vụ ứng dụng M¸y dịch vụ ng©n hµng internet intranet Biểu đồ bố trÝ c¸c nót của hệ thống kh¸ch hµng VÝ dô: Thiết kế h−íng ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 44 NguyễnVănVỵ BiÓu ®å c¸c líp thiÕt kÕ Mµn h×nh hiển thị Bµn phÝm M¸y đọc thẻ cảm ứng trả tiền M¸y đẩy tiền M¸y đếm tiền rót tiền quản lý giao dịch Tµi khoản lịch sủ tµi khoản quản lý tµi khoản quản lý kh¸ch C¸c lớp thiÕt kÕ tham gia thực hiện ca sử dụng rót tiền VÝ dô: Thiết kế h−íng ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 45 NguyễnVănVỵ : quản lý giao dịch đư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 hiện bảng yªu cầu nhập vμo số tiền rót Yªu cầu 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) đề nghi x¸c nhận PIN m· PIN Biểu đồ tuần tự thực hiện ca sử dụng rót tiền : khách hàng : máy đếm tiền : quản lý khách : màn hình hiển thi : máy đọc thẻ : bàn phím VÝ dô: Thiết kế h−íng ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 46 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ệ VÝ dô: Thiết kế h−íng ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 47 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 VÝ dô: Thiết kế h−íng ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 48 NguyễnVănVỵ ThiÕt kÕ líp Lớp tμi khoản với c¸c thuộc tÝnh vμ c¸c thao t¸c taolap (sotkh:string, sotien;money) + gui(sotkh:string, soien:money) + chuyen(sotkh:stringk, sotien:money, sotkh2:string) + rut (sotk:h:string, sotien;money) dong() Taikhoan IDtaikh:string sotaikh: string sodu: money VÝ dô: Thiết kÕ h−íng ®èi t−îng Bộ môn Công nghệ phần mềm – ĐHCN 49 NguyễnVănVỵ MÉu thiÕt kÕ - Pattern 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 50 NguyễnVănVỵ VÝ dô mét sè mÉu thiÕt kÕ 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 51 NguyễnVănVỵ VÝ dô mét sè mÉu thiÕt kÕ 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 52 NguyễnVănVỵ VÝ dô mét sè mÉu thiÕt kÕ 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 sott: int ngay: date taoSale( ) tongtien(sott) mathangban upc: string sott: int soluong: int taoIterm( ) tienIterm(upc,soluong,p) danhmuc upc: string mota: string gia: int taoDM( ) layGia(upc) Bộ môn Công nghệ phần mềm – ĐHCN 53 NguyễnVănVỵ Lîi Ých sö dông mÉu thiÕt kÕ 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 54 NguyễnVănVỵ C©u hái và thảo luận
File đính kèm:
- bai_giang_ky_nghe_phan_mem_bai_7_thiet_ke_huong_doi_tuong_ng.pdf