1. Trang chủ
  2. » Giáo án - Bài giảng

Bài 1 Giới thiệu UML

53 357 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 53
Dung lượng 3,59 MB

Nội dung

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

w