Bài 1 Giới thiệu UML

53 357 0
Bài 1 Giới thiệu UML

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BÀI 1: GII THIU UML UML là vit tt ca Unified Modeling Language (ngôn ng mô hình hóa thng nht). ó là mt trong các công c ni bt nht trong vic phát trin h thng ngày nay. Ti sao vy? UML cho phép ngi xây dng h thng không ch to ra các bn thit k cha ng nhng cái nhìn/nhn thc ca h theo mt cách d hiu và chun xác mà còn có th truyn t vi nhau v chúng. Ni dung chính trong bài hc: + Ti sao UML là cn thit + UML hình thành nh th nào + Các loi s  (diagram) khác nhau ca UML + Ti sao cn thit phi s dng nhiu loi diagram khác nhau Thut ng: trong giáo trình này, h thng (system) c xem là s kt hp gia phn mm (software) và phn cng (hardware) nh m cung cp mt gii pháp cho mt vn . Phát trin h thng (system development) là vic to ra mt h thng cho khách hàng, ngi có vn  cn gii quyt. Mt phân tích viên (analyst) tài liu hóa vn  ca khách hàng và chuyn nó sang ngi phát trin (developer), lp trình viên (programmer)  xây dng phn mm gii quyt vn  và trin khai phn mm trên phn cng máy tính. UML hình thành nh th nào UML là sn phm trí óc ca Grady Booch, James Rumbaugh và Ivar Jacobson. Trong nhng n!m t" 80 n 90, m#i ngi trên làm vic ti nhng t chc khác nhau và phát minh phng pháp phân tích thit k hng i tng riêng ca mình. Nhng phng pháp ca h t c tính u vit hn so vi nhiu phng pháp khác. n gia nhng n!m 90, h bt u mn ý t$ng ca nhau và dn tin n hp tác cùng nhau. N!m 1994, Rumbaugh gia nhp Rational Rose Corporation cùng vi Booch và sau ó mt n!m thì Jacobson c%ng cùng gia nhp. Phiên bn kh$i u ca UML bt u c truyn bá khp ngành công nghip phn mm và em li nhng thay i áng k. Nhiu công ty phn mm cm thy r ng UML áp ng c mc tiêu chin lc ca h, do vy mt liên minh tm thi c dng lên. Các thành viên ca liên minh gm EDC, Hewlett-Packard, Intellicorp, Microsoft, Oracle, Texas Instruments, Rational và mt s khác. n n!m 1997, liên minh cho ra i version 1.0 ca UML và  trình nó lên T chc qun lý i tng (Object Management Group – OMG)  tr$ thành ngôn ng mô hình hóa chun. Liên minh tip tc cho ra version 1.1 và a nó n OMG cui n!m 1997. Vào 1998, có thêm 2 version na ca UML c to ra. UML tr$ thành mt tiêu chun trong công nghip phn mm và nó không ng"ng phát trin. Các thành phn ca ca UML UML bao gm mt s thành phn  ha kt hp vi nhau hình thành nên các s  (diagram). Do là mt ngôn ng, UML có nhng qui tc cho vic kt hp các thành phn này. Vic gii thiu cho tit v các thành phn c%ng nh các qui tc s& thc hin sau, chúng ta cùng hiu s qua v các diagram b$i chúng s& c dùng cho phân tích h thng. Thut ng: Mc tiêu ca các diagram là trình bày nhng cái nhìn (view) khác nhau v mt h thng và tp hp các view c gi là mô hình (model). Mt mô hình UML ca mt h thng. Chú ý r ng UML mô t nhng cái mà mt h thng c gi 'nh thc hin. Nó không cho bit cách thc thc hin h thng. S  i tng (Object Diagram) Thut ng: Các vt c phân chia mt cách t nhiên thành các nhóm (automobile, furniture, washing machines, …). Chúng ta gi các nhóm này là lp (class). Mt class là mt nhóm các vt có cùng thuc tính (attribute) và hành vi (behavior). Ví d, Bt c máy gi(t nào thuc lp “washing machines” u có các thuc tính nh tên hiu, model, s serial, và sc cha. Hành vi ca chúng gm “add clothes”, “add detergent”, “turn on” và “remove clothes”. Hình 1.1 Biu tng class ca UML Ti sao cn bn tâm v các class và các thuc tính, hành vi ca chúng?  tng tác vi th gii phc tp ca chúng ta, các phn mm hin nay cn mô ph)ng mt s khía cnh ca th gii thc. 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 chuyn vi khách hàng vi nhng ngôn t" ca h và t" ó khuyn khích khách hàng trình bày các chi tit quan trng ca vn  h g(p phi. S  i tng (Object diagram) Thut ng: Mt i tng (object) là mt th hin ca mt class - mt vt c th có các giá tr' c th cho các thuc tính và hành vi. Ví d, cái máy gi(t ca bn có nhãn hiu là “Laundatorium”, tên i là “Washmeister”, s serial là GL57774 và sc cha là 16 kg. ó chính là mt i tng. Hình 1.2 cho thy UML biu din mt object. Chú ý r ng biu tng là mt hình ch nht nh biu tng class, nhng tên gch di. Tên ca mt th hin c th n m bên trái du :, còn tên class n m bên phi. Hình 1.2 Biu tng object ca UML S  tình hung ng dng (Use Case Diagram) Thut ng: Mt tình hung ng dng (use case) là mt mô t v mt hành vi ca h thng t" quan im ngi dùng. i vi ngi phát trin h thng, ây là mt công c có giá tr': nó là mt k* thut th-và-úng (tried-and-true technique) cho vic thu thp yêu cu h thng t" quan im ngi dùng. iu ó rt quan trng nu mc tiêu là xây dng mt h thng mà con ngi thc có th s dng. Chúng ta s& tìm hiu sâu hn 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 qun. Hình 1.3 S  use case ca UML Thut ng: Hình nhân (stick) nh) tng trng cho ngi dùng máy gi(t c gi là tác nhân (actor). Hình ellipse biu din use case. Chú ý r ng actor–thc th kích hot use case– có th là con ngi ho(c mt h thng khác. S  trng thái (State Diagram) Ti thi im nào thì mt object c%ng phi có mt trng thái xác 'nh. Mt ngi có th là s sinh, a bé còn +m nga, tr, em, thiu niên ho(c tr$ng thành. Mt thang máy có th ang i lên, i xung ho(c ng yên. Mt máy gi(t có th ang ngâm (soak), gi(t (wash), gi% (rinse), vt (spin) ho(c không hot ng. S  trng thái hình 1.4 cho thy máy gi(t d'ch chuyn gia các trng thái. Biu tng ti u diagram là trng thái bt u (start state) còn $ cui là trng thái kt thúc (end state). Hình 1.4 S  trng thái ca UML S  trình t (Sequence Diagram) Class diagram và object diagram biu din thông tin t-nh. Trong mt h thng chc n!ng, các object luôn tng tác l.n nhau. S  trình t ca UML (sequence diagram) biu din s tng tác theo thi gian. Tip tc vi ví d máy gi(t, các thành phn ca máy gm mt ng cp nc (cp nc sch), mt trng gi(t (cha áo qun) và mt ng thoát. Chúng d- nhiên c%ng là các object. iu gì xy ra khi ta kích hot use case “wash clothes”? Gi s ta ã hoàn tt các hot ng “add clothes”, “add detergent” và “turn on”, chu#i các bc tin hành s& nh sau: 1. Nc vào trng thông qua ng cp 2. Trng ng yên trong 5 phút 3. Nc ng"ng cp 4. Trng quay ngc và xuôi trong 15 phút 5. Nc xà phòng thoát ra thông qua ng thoát 6. Nc sch c cp li 7. Trng tip tc quay ngc và xuôi 8. Nc ng"ng cp 9. Nc vt thoát ra thông qua ng thoát 10. Trng quay 1 chiu nhanh dn trong vòng 5 phút 11. Trng ng"ng quay và vic gi(t hoàn tt. Hình 1.5 biu din sequence diagram ghi nhn các tng tác gia cp nc, trng gi(t và ng thoát (biu din b ng các hình ch nht phía trên) din ra theo thi gian. Thi gian trong diagram trôi theo chiu t" trên xung. Hình 1.5 S  trình t ca UML Tr$ li ý t$ng v trng thái, chúng ta có th phân chia các bc 1 và 2 là trng thái ngâm, các bc 3 và 4 là trng thái gi(t, các bc 5-7 là trng thái gi% và bc 8-10 là trng thái vt. S  hot ng (Activity Diagram) Các hot ng xut hin trong mt use case ho(c trong mt hành vi ca object thng din ra theo mt trình t nh 11 bc $ ví d trên. Hình 1.6 cho thy cách s  hot ng UML biu din các bc 4-6 ca trình t. Hình 1.6 S  hot ng ca UML S  cng tác (Collaboration Diagram) Các thành phn ca h thng làm vic vi nhau  hoàn thành mc tiêu (t ra và mt ngôn ng mô hình hóa cn có cách biu din s hp tác này. S  cng tác UML c thit k cho mc tiêu trên, nh hình 1.7. Ví d này thêm b m thi gian (internal timer) trong tp class to nên máy gi(t. Sau mt khong thi gian nht 'nh, timer d"ng vic cp nc và trng gi(t xoay ngc xuôi. Hình 1.7 S  cng tác ca UML S  thành phn (Component Diagram) S  này và tip theo thoát kh)i máy gi(t b$i s  thành phn (component diagram) và s  trin khai (deployment diagram) hng biu din sang các h thng máy tính. Vic phát trin các phn mm ngày nay tin hành thông qua các thành phn phù hp vi cách thc lp trình theo nhóm. Hình 1.8 S  thành phn ca UML S  trin khai (Deployment Diagram) S  trin khai cho bit kin trúc vt lý ca mt h thng da trên máy tính. Nó v& nên các máy tính và thit b', cho thy các kt ni gia chúng và cho bit phn mm trên m#i máy. M#i máy tính c biu din b$i mt khi lp phng vi các ng ni gia các máy tính. Hình 1.9 S  trin khai ca UML Mt s tính nng khác UML cung cp mt s tính n!ng khác cho phép t chc và m$ rng các diagram Gói (package) Thut ng: Khi cn t chc các thành phn ca mt diagram vào trong mt nhóm (group), ta a chúng vào trong mt package, biu din nh hình 1.10. Hình 1.10 Gói UML cho phép nhóm các thành phn ca mt diagram Ghi chú (Note) Thut ng: Ghi chú (note) ca UML giúp tránh mt thành phn nào ó trong diagram b' hiu nhm. Hình 1.11 Trong bt c diagram nào, ta cng có th thêm các ghi chú Mu (Stereotype) Thut ng: M.u (stereotype) cho phép dùng các thành phn UML s+n có  ch bin ra nhng cái mi. Thut ng: Khái nim giao din (interface) là mt ví d tt cho stereotype. Mt interface là mt class ch có operation mà không có attribute. Nó chính là mt tp các hành vi mà ta mun dùng li nhiu ln trên khp mô hình. Thay vì ngh- ra mt thành phn mi  biu din mt interface, ta có th dùng mt biu tng class vi <<interface>> gn phía trên tên class. Hình 1.12 Mt stereotype cho phép to mt thành phn mi t nhng cái sn có. Ti sao cn thit phi s dng nhiu loi diagram khác nhau? Thut ng: Mt h thng có nhiu ngi quan tâm vi nhiu khía cnh khác nhau, h c gi là stakeholder. Vic thit k h thng liên quan n tt c các khía cnh (viewpoint) có th có. M#i UML diagram cho ta mt cách to nên mt cái nhìn c th nh m th)a mãn m#i loi stakeholder. Tóm lc Vic phát trin h thng là mt hot ng mang tính con ngi. Nu thiu mt h thng ký hiu d hiu thì quá trình phát trin d sinh l#i. UML là mt h thng ký hiu ã tr$ thành mt chun trong vic phát trin h thng. Nó là phát minh ca Grady Booch, James Rumbaugh và Ivar Jacobson. UML bao gm mt tp các diagram  cung cp mt chun cho phép các phân tích viên h thng xây dng mt bn thit k a din d hiu i vi khách hàng, lp trình viên hay bt c ai liên quan n quá trình phát trin h thng. Lý do cn thit có nhiu loi diagram khác nhau vì m#i loi dành cho mt stakeholder khác nhau trong h thng. Câu hi: 1. Ti sao cn thit phi có nhiu diagram khi mô hình hóa mt h thng? 2. Nhng diagram nào cung cp các nhìn t-nh (static view) v h thng? 3. Nhng diagram nào cung cp các nhìn ng (dynamic view) v h thng (biu din s thay i theo thi gian)? Bài tp: 1. Gi s bn ang xây dng mt chng trình máy tính chi c vui vi ngi. Các s  UML nào cn thit trong quá trình thit k? Vì sao? 2. i vi h thng $ bài tp trên, lit kê các câu h)i mà bn s& (t ra vi nhng ngi cn thit và ti sao bn li h)i h. Trang 1 – Bài 2 BÀI 2: TÌM HIU V HNG I TNG (OBJECT-ORIENTATION) Ni dung chính trong bài hc: + S tru tng hóa (abstraction) + S tha k (inheritance) + Tính a hình (polymorphism) + Tính óng gói (encapsulation) + Vic truyn thông ip (message sending) + Mi kt hp (association) + S tp hp (aggregation) Hng i tng em li nhng i thay rt ln cho th gii phn mm. Nó c xem là mt cách thc mi  to chng trình và có rt nhiu u im. Nó hng theo cách tip cn da trên thành phn (component-based approach)  phát trin phn mm sao cho mt h thng chính là mt tp các i tng (object). Sau ó, ta có th m rng h thng bng cách tng cng kh nng cho các thành phn sn có hoc thêm các thành phn mi. cui cùng, ta có th tái s dng các object ã to cho h thng trc ó khi xây dng mt h thng mi, làm ct gim áng k thi gian phát trin h thng. Hng i tng rt quan trng i vi ngành công ngh phn mm và OMG (Object Management Group) là mt t chc ã thit lp các chu n cho vic phát trin hng i tng. UML cho phép ta xây dng các mô hình d! dùng, d! hiu c"a các i tng sao cho các lp trình viên có th to ra chúng trong phn mm. Hng i tng ch# là mt tp ý tng da trên mt s nguyên lý c s. Trong bài này, chúng ta s$ tìm hiu các nguyên lý ó. i tng (object) có mi ni %i tng có tính c th, nói cách khác chúng t&n ti xung quanh ta, chúng to nên th gii. Nh ã  cp trong bài trc, phn mm ngày nay có xu hng mô ph'ng th gii hoc mt phn nh' c"a thê 1gii, do vy các chng trình thng “bt trc” các object trong th gii thc. Thut ng: %i tng (object) là mt th hin (instance) c"a mt lp (class). M(i ngi chúng ta là mt th hin c"a lp con ngi (person class). Mt object có cu trúc (structure). Ngh)a là nó có các thuc tính (attribute, property) và hành vi (behavior). Mt hành vi c"a object bao g&m các hành ng (operation) mà nó thc hin. Thuc tính và hành vi kt hp thành c trng (feature) c"a object. Vì là các object trong lp person nên m(i ngi chúng ta có các thuc tính nh: chiu cao, cân nng, tui, … Chúng ta c*ng thc hin mt s hành ng nh: n, ng", c, vit, nói, i Trang 2 – Bài 2 làm, … Nu chúng ta cn to mt h thng x lý các thông tin v con ngi, ch+ng hn nh h thng qun lý lng hay h thng qun lý nhân s, chúng ta cn kt hp cht ch$ các thuc tính và hành ng này trong phn mm c"a chúng ta. Trong th gii hng i tng, mt class là mt m,u (template)  sinh các object. Tr li vi ví d v máy git (washing machine). Nu lp washing machine c mô t bi các thuc tính nh brand name, model name, serial number và capacity cùng vi các hành vi nh add clothes, add detergent và remove clothes. Vi các thuc tính và hành vi trên, ta có c c ch  sn xut ra các th hin (instance) mi c"a lp washing machine, có ngh)a là ta có th to các object mi. Xem hình 2.1 Hình 2.1 Lp washing machine – mô hình gc ca mt máy git – là mt mu (template) cho vic to ra các th hin mi ca các máy git. Chú ý rng mc tiêu c"a hng i tng là phát trin phn mm có kh nng phn ánh mt phn c th c"a th gii thc. Càng nhiu thuc tính (attribute) và hành vi (behavior) thu thp c thì mô hình s$ càng có tính thc ti!n. Trong ví d trc, có th b sung thêm các thuc 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 thuc tính và hành vi giúp cho mô hình gn vi thc t hn. [...]... 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 1Bà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 na ca UML c to ra. UML tr$ thành mt tiêu chun trong công nghip phn mm và nó không ng"ng phát trin. Các thành phn ca ca UML UML bao gm mt s thành phn. v chúng. Ni dung chính trong bài hc: + Ti sao UML là cn thit + UML hình thành nh th nào + Các loi s  (diagram) khác nhau ca UML + Ti sao cn thit phi s dng nhiu loi diagram. THIU UML UML là vit tt ca Unified Modeling Language (ngôn ng mô hình hóa thng nht). ó là mt trong các công c ni bt nht trong vic phát trin h thng ngày nay. Ti sao vy? UML

Ngày đăng: 13/05/2014, 19:38

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan