Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 53 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
53
Dung lượng
3,59 MB
Nội dung
BÀI 1: GII THIU UMLUML là vit tt ca Unified Modeling Language (ngôn ng mô hình hóa thng nht). ó là mt trong các công c ni bt nht trong vic phát trin h thng ngày nay. Ti sao vy? UML cho phép ngi xây dng h thng không ch to ra các bn thit k cha ng nhng cái nhìn/nhn thc ca h theo mt cách d hiu và chun xác mà còn có th truyn t vi nhau v chúng. Ni dung chính trong bài hc: + Ti sao UML là cn thit + UML hình thành nh th nào + Các loi s (diagram) khác nhau ca UML + Ti sao cn thit phi s dng nhiu loi diagram khác nhau Thut ng: trong giáo trình này, h thng (system) c xem là s kt hp gia phn mm (software) và phn cng (hardware) nh m cung cp mt gii pháp cho mt vn . Phát trin h thng (system development) là vic to ra mt h thng cho khách hàng, ngi có vn cn gii quyt. Mt phân tích viên (analyst) tài liu hóa vn ca khách hàng và chuyn nó sang ngi phát trin (developer), lp trình viên (programmer) xây dng phn mm gii quyt vn và trin khai phn mm trên phn cng máy tính. UML hình thành nh th nào UML là sn phm trí óc ca Grady Booch, James Rumbaugh và Ivar Jacobson. Trong nhng n!m t" 80 n 90, m#i ngi trên làm vic ti nhng t chc khác nhau và phát minh phng pháp phân tích thit k hng i tng riêng ca mình. Nhng phng pháp ca h t c tính u vit hn so vi nhiu phng pháp khác. n gia nhng n!m 90, h bt u mn ý t$ng ca nhau và dn tin n hp tác cùng nhau. N!m 1994, Rumbaugh gia nhp Rational Rose Corporation cùng vi Booch và sau ó mt n!m thì Jacobson c%ng cùng gia nhp. Phiên bn kh$i u ca UML bt u c truyn bá khp ngành công nghip phn mm và em li nhng thay i áng k. Nhiu công ty phn mm cm thy r ng UML áp ng c mc tiêu chin lc ca h, do vy mt liên minh tm thi c dng lên. Các thành viên ca liên minh gm EDC, Hewlett-Packard, Intellicorp, Microsoft, Oracle, Texas Instruments, Rational và mt s khác. n n!m 1997, liên minh cho ra i version 1.0 ca UML và trình nó lên T chc qun lý i tng (Object Management Group – OMG) tr$ thành ngôn ng mô hình hóa chun. Liên minh tip tc cho ra version 1.1 và a nó n OMG cui n!m 1997. Vào 1998, có thêm 2 version na ca UML c to ra. UML tr$ thành mt tiêu chun trong công nghip phn mm và nó không ng"ng phát trin. Các thành phn ca ca UMLUML bao gm mt s thành phn ha kt hp vi nhau hình thành nên các s (diagram). Do là mt ngôn ng, UML có nhng qui tc cho vic kt hp các thành phn này. Vic gii thiu cho tit v các thành phn c%ng nh các qui tc s& thc hin sau, chúng ta cùng hiu s qua v các diagram b$i chúng s& c dùng cho phân tích h thng. Thut ng: Mc tiêu ca các diagram là trình bày nhng cái nhìn (view) khác nhau v mt h thng và tp hp các view c gi là mô hình (model). Mt mô hình UML ca mt h thng. Chú ý r ng UML mô t nhng cái mà mt h thng c gi 'nh thc hin. Nó không cho bit cách thc thc hin h thng. S i tng (Object Diagram) Thut ng: Các vt c phân chia mt cách t nhiên thành các nhóm (automobile, furniture, washing machines, …). Chúng ta gi các nhóm này là lp (class). Mt class là mt nhóm các vt có cùng thuc tính (attribute) và hành vi (behavior). Ví d, Bt c máy gi(t nào thuc lp “washing machines” u có các thuc tính nh tên hiu, model, s serial, và sc cha. Hành vi ca chúng gm “add clothes”, “add detergent”, “turn on” và “remove clothes”. Hình 1.1 Biu tng class ca UML Ti sao cn bn tâm v các class và các thuc tính, hành vi ca chúng? tng tác vi th gii phc tp ca chúng ta, các phn mm hin nay cn mô ph)ng mt s khía cnh ca th gii thc. Class diagram tr giúp v m(t phân tích. Chúng cho phép các phân tích viên nói chuyn vi khách hàng vi nhng ngôn t" ca h và t" ó khuyn khích khách hàng trình bày các chi tit quan trng ca vn h g(p phi. S i tng (Object diagram) Thut ng: Mt i tng (object) là mt th hin ca mt class - mt vt c th có các giá tr' c th cho các thuc tính và hành vi. Ví d, cái máy gi(t ca bn có nhãn hiu là “Laundatorium”, tên i là “Washmeister”, s serial là GL57774 và sc cha là 16 kg. ó chính là mt i tng. Hình 1.2 cho thy UML biu din mt object. Chú ý r ng biu tng là mt hình ch nht nh biu tng class, nhng tên gch di. Tên ca mt th hin c th n m bên trái du :, còn tên class n m bên phi. Hình 1.2 Biu tng object ca UML S tình hung ng dng (Use Case Diagram) Thut ng: Mt tình hung ng dng (use case) là mt mô t v mt hành vi ca h thng t" quan im ngi dùng. i vi ngi phát trin h thng, ây là mt công c có giá tr': nó là mt k* thut th-và-úng (tried-and-true technique) cho vic thu thp yêu cu h thng t" quan im ngi dùng. iu ó rt quan trng nu mc tiêu là xây dng mt h thng mà con ngi thc có th s dng. Chúng ta s& tìm hiu sâu hn v use case sau này. Bây gi, hãy xem ví d hình 1.3, chúng ta dùng máy gi(t rõ ràng gi(t áo qun. Hình 1.3 S use case ca UML Thut ng: Hình nhân (stick) nh) tng trng cho ngi dùng máy gi(t c gi là tác nhân (actor). Hình ellipse biu din use case. Chú ý r ng actor–thc th kích hot use case– có th là con ngi ho(c mt h thng khác. S trng thái (State Diagram) Ti thi im nào thì mt object c%ng phi có mt trng thái xác 'nh. Mt ngi có th là s sinh, a bé còn +m nga, tr, em, thiu niên ho(c tr$ng thành. Mt thang máy có th ang i lên, i xung ho(c ng yên. Mt máy gi(t có th ang ngâm (soak), gi(t (wash), gi% (rinse), vt (spin) ho(c không hot ng. S trng thái hình 1.4 cho thy máy gi(t d'ch chuyn gia các trng thái. Biu tng ti u diagram là trng thái bt u (start state) còn $ cui là trng thái kt thúc (end state). Hình 1.4 S trng thái ca UML S trình t (Sequence Diagram) Class diagram và object diagram biu din thông tin t-nh. Trong mt h thng chc n!ng, các object luôn tng tác l.n nhau. S trình t ca UML (sequence diagram) biu din s tng tác theo thi gian. Tip tc vi ví d máy gi(t, các thành phn ca máy gm mt ng cp nc (cp nc sch), mt trng gi(t (cha áo qun) và mt ng thoát. Chúng d- nhiên c%ng là các object. iu gì xy ra khi ta kích hot use case “wash clothes”? Gi s ta ã hoàn tt các hot ng “add clothes”, “add detergent” và “turn on”, chu#i các bc tin hành s& nh sau: 1. Nc vào trng thông qua ng cp 2. Trng ng yên trong 5 phút 3. Nc ng"ng cp 4. Trng quay ngc và xuôi trong 15 phút 5. Nc xà phòng thoát ra thông qua ng thoát 6. Nc sch c cp li 7. Trng tip tc quay ngc và xuôi 8. Nc ng"ng cp 9. Nc vt thoát ra thông qua ng thoát 10. Trng quay 1 chiu nhanh dn trong vòng 5 phút 11. Trng ng"ng quay và vic gi(t hoàn tt. Hình 1.5 biu din sequence diagram ghi nhn các tng tác gia cp nc, trng gi(t và ng thoát (biu din b ng các hình ch nht phía trên) din ra theo thi gian. Thi gian trong diagram trôi theo chiu t" trên xung. Hình 1.5 S trình t ca UML Tr$ li ý t$ng v trng thái, chúng ta có th phân chia các bc 1 và 2 là trng thái ngâm, các bc 3 và 4 là trng thái gi(t, các bc 5-7 là trng thái gi% và bc 8-10 là trng thái vt. S hot ng (Activity Diagram) Các hot ng xut hin trong mt use case ho(c trong mt hành vi ca object thng din ra theo mt trình t nh 11 bc $ ví d trên. Hình 1.6 cho thy cách s hot ng UML biu din các bc 4-6 ca trình t. Hình 1.6 S hot ng ca UML S cng tác (Collaboration Diagram) Các thành phn ca h thng làm vic vi nhau hoàn thành mc tiêu (t ra và mt ngôn ng mô hình hóa cn có cách biu din s hp tác này. S cng tác UML c thit k cho mc tiêu trên, nh hình 1.7. Ví d này thêm b m thi gian (internal timer) trong tp class to nên máy gi(t. Sau mt khong thi gian nht 'nh, timer d"ng vic cp nc và trng gi(t xoay ngc xuôi. Hình 1.7 S cng tác ca UML S thành phn (Component Diagram) S này và tip theo thoát kh)i máy gi(t b$i s thành phn (component diagram) và s trin khai (deployment diagram) hng biu din sang các h thng máy tính. Vic phát trin các phn mm ngày nay tin hành thông qua các thành phn phù hp vi cách thc lp trình theo nhóm. Hình 1.8 S thành phn ca UML S trin khai (Deployment Diagram) S trin khai cho bit kin trúc vt lý ca mt h thng da trên máy tính. Nó v& nên các máy tính và thit b', cho thy các kt ni gia chúng và cho bit phn mm trên m#i máy. M#i máy tính c biu din b$i mt khi lp phng vi các ng ni gia các máy tính. Hình 1.9 S trin khai ca UML Mt s tính nng khác UML cung cp mt s tính n!ng khác cho phép t chc và m$ rng các diagram Gói (package) Thut ng: Khi cn t chc các thành phn ca mt diagram vào trong mt nhóm (group), ta a chúng vào trong mt package, biu din nh hình 1.10. Hình 1.10 Gói UML cho phép nhóm các thành phn ca mt diagram Ghi chú (Note) Thut ng: Ghi chú (note) ca UML giúp tránh mt thành phn nào ó trong diagram b' hiu nhm. Hình 1.11 Trong bt c diagram nào, ta cng có th thêm các ghi chú Mu (Stereotype) Thut ng: M.u (stereotype) cho phép dùng các thành phn UML s+n có ch bin ra nhng cái mi. Thut ng: Khái nim giao din (interface) là mt ví d tt cho stereotype. Mt interface là mt class ch có operation mà không có attribute. Nó chính là mt tp các hành vi mà ta mun dùng li nhiu ln trên khp mô hình. Thay vì ngh- ra mt thành phn mi biu din mt interface, ta có th dùng mt biu tng class vi <<interface>> gn phía trên tên class. Hình 1.12 Mt stereotype cho phép to mt thành phn mi t nhng cái sn có. Ti sao cn thit phi s dng nhiu loi diagram khác nhau? Thut ng: Mt h thng có nhiu ngi quan tâm vi nhiu khía cnh khác nhau, h c gi là stakeholder. Vic thit k h thng liên quan n tt c các khía cnh (viewpoint) có th có. M#i UML diagram cho ta mt cách to nên mt cái nhìn c th nh m th)a mãn m#i loi stakeholder. Tóm lc Vic phát trin h thng là mt hot ng mang tính con ngi. Nu thiu mt h thng ký hiu d hiu thì quá trình phát trin d sinh l#i. UML là mt h thng ký hiu ã tr$ thành mt chun trong vic phát trin h thng. Nó là phát minh ca Grady Booch, James Rumbaugh và Ivar Jacobson. UML bao gm mt tp các diagram cung cp mt chun cho phép các phân tích viên h thng xây dng mt bn thit k a din d hiu i vi khách hàng, lp trình viên hay bt c ai liên quan n quá trình phát trin h thng. Lý do cn thit có nhiu loi diagram khác nhau vì m#i loi dành cho mt stakeholder khác nhau trong h thng. Câu hi: 1. Ti sao cn thit phi có nhiu diagram khi mô hình hóa mt h thng? 2. Nhng diagram nào cung cp các nhìn t-nh (static view) v h thng? 3. Nhng diagram nào cung cp các nhìn ng (dynamic view) v h thng (biu din s thay i theo thi gian)? Bài tp: 1. Gi s bn ang xây dng mt chng trình máy tính chi c vui vi ngi. Các s UML nào cn thit trong quá trình thit k? Vì sao? 2. i vi h thng $ bài tp trên, lit kê các câu h)i mà bn s& (t ra vi nhng ngi cn thit và ti sao bn li h)i h. Trang 1 – Bài 2 BÀI 2: TÌM HIU V HNG I TNG (OBJECT-ORIENTATION) Ni dung chính trong bài hc: + S tru tng hóa (abstraction) + S tha k (inheritance) + Tính a hình (polymorphism) + Tính óng gói (encapsulation) + Vic truyn thông ip (message sending) + Mi kt hp (association) + S tp hp (aggregation) Hng i tng em li nhng i thay rt ln cho th gii phn mm. Nó c xem là mt cách thc mi to chng trình và có rt nhiu u im. Nó hng theo cách tip cn da trên thành phn (component-based approach) phát trin phn mm sao cho mt h thng chính là mt tp các i tng (object). Sau ó, ta có th m rng h thng bng cách tng cng kh nng cho các thành phn sn có hoc thêm các thành phn mi. cui cùng, ta có th tái s dng các object ã to cho h thng trc ó khi xây dng mt h thng mi, làm ct gim áng k thi gian phát trin h thng. Hng i tng rt quan trng i vi ngành công ngh phn mm và OMG (Object Management Group) là mt t chc ã thit lp các chu n cho vic phát trin hng i tng. UML cho phép ta xây dng các mô hình d! dùng, d! hiu c"a các i tng sao cho các lp trình viên có th to ra chúng trong phn mm. Hng i tng ch# là mt tp ý tng da trên mt s nguyên lý c s. Trong bài này, chúng ta s$ tìm hiu các nguyên lý ó. i tng (object) có mi ni %i tng có tính c th, nói cách khác chúng t&n ti xung quanh ta, chúng to nên th gii. Nh ã cp trong bài trc, phn mm ngày nay có xu hng mô ph'ng th gii hoc mt phn nh' c"a thê 1gii, do vy các chng trình thng “bt trc” các object trong th gii thc. Thut ng: %i tng (object) là mt th hin (instance) c"a mt lp (class). M(i ngi chúng ta là mt th hin c"a lp con ngi (person class). Mt object có cu trúc (structure). Ngh)a là nó có các thuc tính (attribute, property) và hành vi (behavior). Mt hành vi c"a object bao g&m các hành ng (operation) mà nó thc hin. Thuc tính và hành vi kt hp thành c trng (feature) c"a object. Vì là các object trong lp person nên m(i ngi chúng ta có các thuc tính nh: chiu cao, cân nng, tui, … Chúng ta c*ng thc hin mt s hành ng nh: n, ng", c, vit, nói, i Trang 2 – Bài 2 làm, … Nu chúng ta cn to mt h thng x lý các thông tin v con ngi, ch+ng hn nh h thng qun lý lng hay h thng qun lý nhân s, chúng ta cn kt hp cht ch$ các thuc tính và hành ng này trong phn mm c"a chúng ta. Trong th gii hng i tng, mt class là mt m,u (template) sinh các object. Tr li vi ví d v máy git (washing machine). Nu lp washing machine c mô t bi các thuc tính nh brand name, model name, serial number và capacity cùng vi các hành vi nh add clothes, add detergent và remove clothes. Vi các thuc tính và hành vi trên, ta có c c ch sn xut ra các th hin (instance) mi c"a lp washing machine, có ngh)a là ta có th to các object mi. Xem hình 2.1 Hình 2.1 Lp washing machine – mô hình gc ca mt máy git – là mt mu (template) cho vic to ra các th hin mi ca các máy git. Chú ý rng mc tiêu c"a hng i tng là phát trin phn mm có kh nng phn ánh mt phn c th c"a th gii thc. Càng nhiu thuc tính (attribute) và hành vi (behavior) thu thp c thì mô hình s$ càng có tính thc ti!n. Trong ví d trc, có th b sung thêm các thuc tính nh drum volume, internal timer, trap, motor và motor speed. Các hành vi có th b sung g&m add bleach, time the soak, time the wash, time the rise và time the spin. Xem hình 2.2 Hình 2.2 Thêm các thuc tính và hành vi giúp cho mô hình gn vi thc t hn. [...]... course và instructor là one-to-many S t p h p (aggregation): Hãy xem xét h th ng máy tính c"a b n Nó bao g&m 1 thùng CPU, 1 keyboard, 1 mouse, 1 monitor, 1 CD-ROM drive, 1 ho c nhi u HD, 1 modem, 1 FD, 1 printer và có th có thêm vài h p loa Bên trong thùng CPU còn có 1 CPU, 1 graphics card, 1 sound card và m t s linh ki n c n thi t khác Thu t ng : Máy tính c"a b n c xem là m t s t p h p (aggregation),... interval (ví d ,1- to-5 10 ), one-to-n UML dùng d u * (asterisk) bi u di n giá tr “more” và “many” Khái ni m “or” c bi u di n b ng hai ch m, ch(ng h%n 1 *” (one or more) Khái ni m “or” c'ng có th c bi u di n b i d u ph)y, ch(ng h%n “5 ,10 ” (5 or 10 ) Hình 4 .10 mô t các các lo%i multiplicity có th có N u class A có quan h one-to-zero or one v i class B, khi ó class B (optional) cho class A Hình 4 .10 Các lo i... hoa u t (ví d WashingMachine trong hình 3 .1) Hình 3 .1 Bi u t ng class trong UML M t c u trúc UML khác, g i là gói (package), có th óng vai trò trong tên c a m t class Nh ã gi i thi u trong các bài tr c, m t package, c bi u di n nh m t tabbed folder, là cách c a UML nh m t ch c các thành ph n c a diagram Xem bi u t ng package trong hình 3.2 Hình 3.2 Ví d package UML Thu t ng : N u l p WashingMachine là... có th i trên xe bus Xem hình 2 .10 Hình 2 .10 M t class có th k t h p v i nhi u class khác Trang 6 – Bài 2 i có th i trên ô tô Thu t ng : L ng s (multiplicity) là m t khía c nh quan tr ng c"a association gi a các object Nó cho bi t s l ng object trong m t class có quan h v i v i 1 object c"a class k t h p Khóa h c (course) và ng i h ng d,n (instructor) là m i k t h p 1- 1 (one-to-one association) Trong... c UML cho phép mô t thêm v m t class b ng cách ính kèm các chú thích (note) vào hình ch nh t bi u di n cho class Câu h i: 1 Cách trình bày m t class b ng UML? 2 Các thông tin có th bi u trên m t bi u t ng class? 3 Ràng bu c là gì? 4 T i sao c n ính kèm ghi chú vào m t bi u t ng class? 5 Khi nào chúng ta c n bi u di n m t signature cho m t opeartion? Bài t p: 1 Mô t ng n cho môn hockey: Trang 6 – Bài. .. b ph n ch# c"a i t ng c u thành Trang 8 – Bài 2 BÀI 3: LÀM VI C V I H NG IT NG N i dung chính trong bài h c: + Tr c quan hóa m t l p (class) + Các thu c tính (attribute) + Các hành vi (operation) + Các áp ng (responsibility) và ràng bu c (constraint) Tr c quan hóa m t l p (class): Chúng ta ã bi t r ng 1 hình ch nh t là bi u t ng dùng bi u di n 1 class trong UML Tên c a class, theo qui c, là m t t v... máy tính nh m t s t p h p Hình 5 .1 M t aggregation (partwhole) c bi u di n b i m t ng liên k t gi a t ng th v i các b ph n Trang 1 – Bài 5 M c dù ví d này cho th y m i component ch thu c m t whole, nh ng trong m t aggregation không b t bu c nh th Ví d , trong m t h th ng gi i trí t i gia, m t i u khi n t! xa (remote control) có th là 1 component c a 1 TV và ng th i là 1 component c a m t VCR Ràng bu... WashingMachine), ta vi t {capacity =16 or 18 or 24 lb) g n v i bi u t ng l p WashingMachine Hình 3 .13 Lu t trong ngo c móc ràng bu c thu c tính capacity v i 1 trong 3 giá tr có th Ghi chú (note): Ngoài attribute, operation, responsibility và constraint, ta còn có th thêm thông tin vào m t class d i d ng ghi chú (note) ính kèm class Ta th ng thêm m t note cho m t attribute hay operation Hình 3 .14 bi u di n m t note... g i i n n h i v vi c t phòng, ta ph i cung c p s xác nh"n Thu t ng : Trong UML, thông tin nh danh c g i là qualifier Bi u t ng c a nó là hình ch nh"t nh k bên class mà th c hi n vi c tìm ki m (Hình 4 .11 ) Ý t ng là nh m làm t#ng tính hi u qu b ng cách gi m m t multiplicity one-to-many thành m t multiplicity one-to-one Hình 4 .11 M t qualifier trong m t m i k t h p gi i quy t v n tìm ki m Các m i k t h... Nó n i n m t association ng nét b ng m t t Nó có th k t h p v i các class khác K t n i (link): N u nh 1 class có các th hi n (instance) thì m t association c'ng có các instance c a nó N u xét 1 player c th ch i trong 1 team c th thì m i quan h “Plays On” ó g i là 1 k t n i (link), c bi u di n b i 1 ng n i gi a 2 object ! ng quên g%ch d i tên các object và tên c a link, nh Hình 4.8 Hình 4.8 M t link . có thêm 2 version na ca UML c to ra. UML tr$ thành mt tiêu chun trong công nghip phn mm và nó không ng"ng phát trin. Các thành phn ca ca UML UML bao gm mt s thành phn. v chúng. Ni dung chính trong bài hc: + Ti sao UML là cn thit + UML hình thành nh th nào + Các loi s (diagram) khác nhau ca UML + Ti sao cn thit phi s dng nhiu loi diagram. THIU UML UML là vit tt ca Unified Modeling Language (ngôn ng mô hình hóa thng nht). ó là mt trong các công c ni bt nht trong vic phát trin h thng ngày nay. Ti sao vy? UML