cach xac dinh class diagram

Upload: chicharito-reddevil

Post on 08-Jul-2015

1.062 views

Category:

Documents


0 download

TRANSCRIPT

Cc thnh phn c s Nh ti cp phn trc, mc ch ca s lp l cho thy cc kiu thnh phn c m hnh ho trong h thng. Trong hu ht cc m hnh UML, cc thnh phn ny gm c:

lp giao din kiu d liu thnh phn.

UML s dng mt tn c bit cho nhng thnh phn ny: cc phn loi" (classifier). Ni chung, bn c th coi mt phn loi ging nh mt lp, nhng v mt k thut, phn loi l mt thut ng tng qut hn, ni n ba kiu thnh phn khc nu trn. Tn ca lp Hnh thc biu din ca UML ca mt lp l mt hnh ch nht gm ba ngn chng ln nhau theo chiu dc, nh trong hnh 1. Ngn trn cng cho thy tn ca lp. Ngn gia lit k nhng phn c s ca UML: Cc thuc tnh lp ca s lp. Ngn di cng lit k cc hot ng ca lp. Khi v mt phn t lp trong mt s lp, bn phi s dng ngn trn cng, hai ngn pha di l ty chn. (Hai ngn di c th khng cn thit trn mt s mc cao, mc ch l ch cho thy cc mi quan h gia cc phn loi). Hnh 1 cho thy mt chuyn bay ca mt hng hng khng c m hnh ho nh l mt lp UML. Nh chng ta c th thy, tn ca lp l Flight (chuyn bay), v ti ngn gia chng ta thy rng lp Flight c ba thuc tnh: flightNumber (s hiu chuyn bay), departureTime (thi gian khi hnh) v flightDuration (thi gian bay). Ti ngn di cng, chng ta thy rng lp Flight c hai hot ng: delayFlight (li chuyn bay) v getArrivalTime (tnh thi gian n).

Hnh 1: S lp cho lp Flight Danh sch cc thuc tnh ca lp Phn thuc tnh ca mt lp (ngn gia) lit k mi thuc tnh ca cc thuc tnh ca trn mt dng ring bit. Phn thuc tnh l ty chn, nhng khi c s dng n cha mi thuc tnh ca lp c hin th di dng danh sch. Mi dng s dng nh dng sau:

name : attribute type flightNumber : Integer

Tip tc vi v d lp Flight, chng ta c th m t cc thuc tnh ca lp vi thng tin v kiu thuc tnh, nh trong bng 1. Bng 1: Cc tn ca thuc tnh ca lp Flight cng vi cc kiu thuc tnh kt hp ca chng Tn thuc tnhKiu thuc tnh flightNumber Integer departureTime Date (Ngy) flightDuration Minutes (Pht) Trong cc s lp nghip v, cc kiu thuc tnh thng tng ng vi cc n v c ngha i vi nhng ngi c s (chng hn: pht, la, vv). Tuy nhin, mt s lp, s c s dng to ra m, cn phi c cc lp m kiu thuc tnh ca n ch hn ch trong cc kiu thuc tnh do cc ngn ng lp trnh cung cp, hoc cc kiu c trong m hnh s c thc hin trong h thng. i khi ta cn cho thy trn mt s lp rng mt thuc tnh c th c gi tr mc nh. (V d: trong mt ng dng ti khon ngn hng, mt ti khon ngn hng mi s bt u vi s d bng khng). c t ca UML cho php xc nh cc gi tr mc nh trong danh sch cc thuc tnh bng cch s dng k php sau y:tn : kiu thuc tnh = gi tr mc nh

V d:balance : Dollars = 0

Vic hin th mt gi tr mc nh cho cc thuc tnh l ty chn; Hnh 2 cho thy mt lp Bank Account (ti khon ngn hng) vi mt thuc tnh c gi l balance (s d), thuc tnh ny c gi tr mc nh l 0.

Hnh 2: Mt s lp Bank Account hin th gi tr ca thuc tnh s d c mc nh l 0 la. Danh sch cc hot ng ca lp T liu v cc hot ng ca lp c cung cp ti ngn th ba (ngn di cng) ca hnh ch nht s lp, ngn ny cng l ty chn. Ging nh cc thuc tnh, cc hot ng ca mt lp c hin th di dng danh sch, mi hot ng nm trn mt dng ring ca n. Cc hot ng c cung cp t liu bng cch s dng k php sau y:Tn (danh sch tham s) : kiu gi tr tr v

Cc hot ng ca lp Flight c nh x vo bng 2 di y. Bng 2: Cc hot ng ca lp flight c nh x t hnh 2 Tn hot ng Tham s tr v Kiu gi tr Tn Kiu delayFlight N/A numberOfMinutesPht getArrivalTimeN/A Ngy Hnh 3 cho thy hot ng delayFlight c mt tham s u vo - numberOfMinutes c kiu pht. Tuy nhin, hot ng delayFlight khng c gi tr tr v 1. Khi mt hot ng c cc tham s, th chng c t trong du ngoc n ca hot ng; tng tham s s dng nh dng "tn tham s : kiu tham s".

Hnh 3: Cc tham s ca cc hot ng ca lp Flight bao gm c ty chn nh du "in". Khi cung cp t liu cho mt tham s ca hot ng, bn c th s dng mt ch bo ty chn cho bit tham s l u vo hay u ra ca hot ng. Ch bo ty chn ny xut hin di dng ch bo "in" hay "out" trong ngn ca cc hot ng trong hnh 3. Thng thng th nhng ch bo ny l khng cn thit tr khi ta s dng ngn ng lp trnh c nh Fortran, trong trng hp ny th thng tin ny c th hu ch. Tuy nhin, trong cc ngn ng C++ v Java, th tt c cc tham s u l tham s "in" v v rng "in" l kiu mc nh ca tham s theo cc c t ca UML, nn hu ht mi ngi s b qua cc ch bo u vo/u ra. S k tha

Mt khi nim rt quan trng trong thit k hng i tng l s k tha, ni v kh nng ca mt lp (lp con) k tha cc chc nng ging nhau ca mt lp khc (lp cp trn), v sau thm cc chc nng mi ca ring n. (Theo ngha hon ton khng mang tnh k thut, bn hy tng tng rng ti tha hng kh nng chung v m nhc t m ti, nhng trong gia nh ti l ngi duy nht chi guitar in). m hnh ho s tha k trn mt s lp, mt ng thng lin mch c k t lp con (lp k tha hnh vi) vi mt hnh u mi tn (hoc hnh tam gic) rng, khp kn ch ti lp cp trn. Ta hy xem xt cc kiu ti khon ngn hng: Hnh 4 cho thy cch c hai lp CheckingAccount v SavingsAccount k tha t lp BankAccount nh th no.

Hnh 4: S tha k c biu th bng mt ng thng lin mch vi vi mt hnh u mi tn rng, khp kn tr n lp trn. Trong hnh 4, mi quan h tha k c v bng cc ng ring bit cho tng lp con, y l phng php c s dng trong IBM Rational Rose v IBM Rational XDE. Tuy nhin, c mt cch khc v tha k c gi l k php hnh cy. Bn c th s dng k php hnh cy khi c hai hoc nhiu lp con, nh trong hnh 4, ngoi tr cc ng tha k hp nht vi nhau nh mt nhnh cy. Hnh 5 l hnh v li chnh cc quan h tha k ca hnh 4, nhng ln ny bng cch s dng k php hnh cy.

Hnh 5: Mt v d v tha k, s dng k php hnh cy Cc lp tru tng v cc hot ng tru tng Mt c gi quan st tinh s thy rng cc s trong hnh 4 v 5 s dng cc dng ch nghing cho tn ca lp BankAccount v hot ng withdrawal (rt tin t ti khon). iu ny biu th rng lp BankAccount l mt lp tru tng v phng thc withdrawal l mt hot ng tru tng. Ni cch khc, lp BankAccount cung cp ch k ca hot ng tru tng rt tin v hai lp con CheckingAccount v SavingsAccount mi lp thc hin phin bn ca hot ng theo kiu ring ca chng. Tuy nhin, cc lp cp trn (lp cha) khng buc phi l lp tru tng. Hon ton bnh thng khi mt lp tiu chun thng thng l lp cp trn. Cc quan h kt hp Khi bn m hnh ho mt h thng, mt s i tng s c lin quan vi nhau, v bn thn cc mi quan h cn phi c m hnh ho lm r. C nm kiu kt hp. Ti phn ny ti s tho lun hai trong nm kiu kt hp kt hp hai hng v kt hp theo mt hng duy nht, v s tho lun v ba kiu kt hp cn li ti phn Bn ngoi cc phn c s. Xin lu rng vic tho lun chi tit v khi no th s dng tng kiu kt hp y l khng nm trong phm vi ca bi vit ny. Thay vo , ti s tp trung vo mc ch ca tng kiu kt hp v ch ra cch quan h kt hp c v trn mt s lp nh th no. Kt hp hai hng (kt hp tiu chun) Mi kt hp l s kt ni gia hai lp. Cc kt hp lun c coi l hai hng; iu c ngha l c hai lp u nhn bit v nhau v nhn bit c mi quan h ca chng, tr khi bn nh r mi kt hp l mt kiu kt hp khc. Tr li v d Fight trn, hnh 6 cho ta thy mt loi kt hp tiu chun gia lp Flight v lp Plane (My bay).

Hnh 6: V d v kt hp hai hng gia lp Flight v lp Plane Mi kt hp hai hng c biu th bng mt ng thng lin mch gia hai lp. hai u ca ng thng, bn t tn ca vai tr v gi tr ca bi s (multiplicity). Hnh 6 cho thy cc chuyn bay c kt hp vi mt my bay c th, v lp Flight bit v kt hp ny. Lp Plane ng vai tr ca "assignedPlane" trong kt hp ny bi v tn ca vai tr bn cnh lp Flight qui nh nh vy. Gi tr bi s ca kt hp bn cnh lp Plane l 0 .. 1 c ngha l khi mt c th chuyn bay tn ti, n c th c mt c th my bay c kt hp vi n hoc khng c my bay no c kt hp vi n (tc l cha c my bay no c phn b). Hnh 6 cng cho thy rng lp Plane bit mi kt hp ca mnh vi lp Flight. Trong mi kt hp ny, cc chuyn bay s ng vai tr ca "assignedFlights"; s trong hnh 6 cho chng ta thy rng c th my bay c th khng c kt hp vi chuyn bay no (v d l mt my bay mi tinh) hoc vi mt s lng v hn cc chuyn bay (v d: my bay c s dng trong 5 nm qua). i vi nhng ngi mun bit cc gi tr bi s c th s dng mi u ca quan h kt hp l nhng g, bng 3 di y lit k mt s v d v cc gi tr bi s km theo ngha ca chng. Bng 3: Cc gi tr bi s v cc ch bo ca chng Cc gi tr bi s c th dng Ch bo ngha 0..1 C gi tr l 0 hoc 1 1 Ch l 1 0..* C gi tr l 0 hoc nhiu hn * C gi tr l 0 hoc nhiu hn 1..* C gi tr l 1 hoc nhiu hn 3 Ch l 3 0..5 C gi tr t 0 n 5 5..15 C gi tr t 5 n 15 Kt hp n hng Trong mt kt hp n hng, hai lp c lin quan vi nhau, nhng ch c mt lp bit rng mi quan h tn ti. Hnh 7 l mt v d v bo co ti khon b rt qu s tin vi mt kt hp n hng.

Hnh 7: V d v mt kt hp n hng : Lp OverdrawnAccountsReport bit lp BankAccount, nhng lp BankAccount khng bit mi kt hp ny. Mt kt hp n hng c v bng mt ng thng lin mch vi mt hnh u mi tn m (khng phi l hnh u mi tn khp kn, hay tam gic, c s dng biu th s tha k) ch ti lp c bit n. Ging nh cc kt hp tiu chun, kt hp n hng bao gm mt tn vai tr v gi tr bi s, nhng khng ging nh cc kt hp hai hng tiu chun, cc kt hp n hng ch cha tn ca vai tr v gi tr bi s cho lp c bit n. Trong v d ti hnh 7, lp OverdrawnAccountsReport bit v lp BankAccount, v lp BankAccount ng vai tr ca "overdrawnAccounts." Tuy nhin, khng ging nh mt kt hp tiu chun, lp BankAccount khng bit rng n c kt hp vi lp OverdrawnAccountsReport. 2 Cc gi Nu bn ang m hnh ha mt h thng ln hoc mt lnh vc nghip v ln, th khng th trnh khi, s c nhiu phn loi khc nhau trong m hnh ca bn. Vic qun l tt c cc lp c th l mt nhim v kh khn, do vy UML cung cp mt phn t t chc c gi l gi. Cc gi cho php cc nh to m hnh t chc cc phn loi ca m hnh thnh cc vng tn, l mt kiu ging nh cc th mc trong mt h thng tp. Vic phn chia mt h thng thnh nhiu gi lm cho h thng tr nn d hiu, c bit l nu tng gi i din cho mt phn c th ca h thng.3 C hai cch v cc gi trn s . Khng c quy tc xc nh xem k php no s c s dng, ngoi tr vic tun theo phn xt ring ca bn v vic k php no l d c cc s lp m bn ang v nht. C hai cch s bt u bng mt hnh ch nht ln vi mt hnh ch nht nh hn (phiu) nm pha trn cng bn tri n, nh trong hnh 8. Nhng nh to m hnh phi quyt nh cch th hin cc thnh vin ca gi nh th no, v d nh sau:

Nu nh to m hnh quyt nh hin th cc thnh vin ca gi bn trong hnh ch nht ln, th tt c cc thnh vin4 s phi c t trong hnh ch nht . Cng vy, tn ca gi cn c t trong hnh ch nht nh hn ca gi (nh trong hnh 8). Nu nh to m hnh quyt nh hin th cc thnh vin ca gi bn ngoi hnh ch nht ln, th tt c cc thnh vin s c hin th trn s cn phi c t bn ngoi hnh ch nht y. cho thy phn loi no thuc v gi, th mt ng thng s c v t tng phn loi n mt vng trn c du cng (+) bn trong vng trn gn lin vi gi (Hnh 9).

Hnh 8: Mt v d v phn t gi cho thy cc thnh vin ca gi nm bn trong ranh gii hnh ch nht ca gi

Hnh 9: Mt v d v phn t gi hin th cc thnh vin ca gi thng qua cc ng ni Tm quan trng ca vic hiu bit cc thnh phn c s iu quan trng hn bao gi ht trong UML 2 l phi hiu c nhng thnh phn c s ca s lp. l do cc s lp cung cp cc khi xy dng c bn cho tt c cc s cu trc khc, chng hn nh cc s thnh phn hoc cc s i tng (ch nu v d nh vy). V u trang Bn ngoi nhng thnh phn c s

n thi im ny, ti bn v nhng thnh phn c s ca s lp, nhng bn hy c tip nh! Trong cc phn sau, ti s cp n cc kha cnh quan trng hn ca s lp m bn cn bit vn dng tt. Chng bao gm cc giao din, ba kiu kt hp cn li, tm nhn thy v cc b sung khc trong c t ca UML 2. Cc giao din Trong phn trc ca bi vit, ti ngh bn xem cc phn loi n gin nh l cc lp. Trn thc t, phn loi l mt khi nim tng qut hn, bao gm cc kiu d liu v cc giao din. Vic tho lun y v khi no v lm th no s dng cc kiu d liu v cc giao din mt cch hiu qu trong s cu trc ca mt h thng nm ngoi phm vi ca bi vit ny. Th th ti sao ti phi cp n kiu d liu v cc giao din y? i khi bn mun m hnh ho cc kiu phn loi ny trong mt s cu trc, v iu quan trng l phi s dng cc k php thch hp khi lm vic ny, hoc t nht l ta phi nhn thc c cc kiu phn loi . Vic v cc phn loi khng chnh xc s c nhiu kh nng gy nhm ln cho nhng ngi c s cu trc ca bn, v lm cho h thng c th s khng p ng cc yu cu. Lp khc vi giao din: Lp c th c mt c th thc s ca n, trong khi mt giao din phi c t nht mt lp thc hin n. Trong UML 2, mt giao din c coi l mt s chuyn bit ho ca mt phn t m hnh ha lp. V vy, mt giao din c v ging nh mt lp, ngoi tr trong ngn pha trn cng ca hnh ch nht c ch "interface" (giao din), nh trong hnh 10.5

Hnh 10: Mt v d v s lp, trong cc lp Professor (Gio s) v Student (Sinh vin) thc hin giao din Person (Ngi). Trong s ti hnh 10, c hai lp Gio s v Sinh vin u thc hin giao din Ngi v khng k tha t n. Chng ta bit iu ny v hai l do: 1) Cc i tng Ngi c nh ngha l mt giao din - n c ch "interface" trong vng tn ca i tng, v chng ta thy rng cc i tng Gio s v Sinh vin l cc i tng lp v chng c dn nhn theo cc quy tc

v mt i tng lp (khng c thm ch biu th phn loi trong vng tn ca chng). 2) Chng ta bit rng tha k khng c hin th y, bi v ng ni c u mi tn c dng chm chm v khng lin mch. Nh trong hnh 10, ng ni chm chm c u mi tn khp kn, rng c ngha l nhn bit (hoc thc hin); v chng ta thy trong hnh 4, mt ng ni lin mch c mi tn khp kn, rng c ngha l s tha k. Cc quan h kt hp khc trn, ti tho lun v cc kt hp hai hng v n hng. By gi ti s tho lun v ba loi kt hp cn li. Lp kt hp Khi m hnh ho mt quan h kt hp, c nhng lc bn a vo thm mt lp khc v n cha cc thng tin c gi tr v mi quan h. lm iu ny bn s s dng mt lp kt hp m bn buc vi quan h kt hp ban u. Lp kt hp c biu din nh mt lp bnh thng. S khc bit l ng kt hp gia cc lp ban u ct ngang ng chm chm ni vi cc thnh phn UML c s ca kt hp : Cc lp trong s lp. Hnh 11 l mt lp kt hp trong v d v ngnh hng khng ca chng ta.

Hnh 11: Thm lp kt hp MileageCredit Trong s lp ti hnh 11, s kt hp gia lp Flight v lp FrequentFlyer dn n kt qu l mt lp kt hp c gi l lp MileageCredit. iu ny c ngha l khi mt c th ca lp Flight c kt hp vi mt c th ca lp FrequentFlyer, th cng s c mt c th ca lp MileageCredit. Kt tp Kt tp l mt kiu kt hp c bit c s dng m hnh ha mi quan h tng th - cc thnh phn ca n. Trong cc quan h kt tp c s, vng i ca mt lp thnh phn c lp vi vng i ca lp tng th. Ly v d: Chng ta c th coi Car (Xe hi) nh mt thc th tng th v Car Wheel (Bnh xe) l mt phn ca ton b xe. Bnh xe c th c ch to mt vi tun trc, v n c th c ct gi trong kho trc khi c t vo chic xe khi lp rp. Trong v d ny, c th ca lp Wheel (bnh xe) r rng tn ti mt cch c lp vi c th lp Car. Tuy nhin, c trng hp vng i ca lp thnh phn khng c lp vi lp tng th iu ny c gi l kt tp cu

thnh (composition aggregation). V d, ta hy xem xt mi quan h ca mt cng ty vi cc phng ban ca n. C Cng ty ln cc phng ban c m hnh ho nh cc lp, v mt phng ban khng th tn ti trc khi mt cng ty tn ti. y c th lp Phng ban ph thuc vo s tn ti ca c th ca lp Cng ty. Ta hy kho st thm v kt tp c s v kt tp cu thnh. Kt tp c s Mt kt hp bng quan h kt tp ch ra rng mt lp l mt phn ca lp khc. Trong mi quan h kt tp, c th ca lp con c th tn ti lu hn lp cha ca n. biu din mi quan h kt tp, bn v mt ng lin mch t lp cha n lp thnh phn, v v mt hnh thoi rng ti u pha lp cha ca quan h kt hp ny. Hnh 12 l mt v d ca mi quan h kt tp gia Xe v Bnh xe.

Hnh 12: V d v mt quan h kt tp Kt tp cu thnh Cc mi quan h kt tp cu thnh ch l mt hnh thc khc ca mi quan h kt tp, nhng vng i ca c th ca lp con ph thuc vo vng i ca c th ca lp cha. Trong hnh 13, cho thy mi quan h cu thnh gia lp Cng ty v lp Phng ban, bn hy lu cc thnh phn UML c s: Mi quan h cu thnh trong s lp c v ging nh mi quan h kt tp, nhng ln ny, hnh thoi c t c.

Hnh 13: V d v mt mi quan h cu thnh Trong mi quan h c m hnh ho trong hnh 13, mt c th ca lp Cng ty s lun lun c t nht mt c th ca lp Phng ban. V mi quan h ny l mt mi quan h cu thnh, khi mt c th cng ty b loi b/ph v, th c th Phng ban cng b t ng loi b/ph v. Mt c tnh quan trng khc ca kt tp cu thnh l lp thnh phn ch c th lin quan n ch mt c th ca lp cha (v d nh lp Cng ty trong v d ca chng ta). Cc kt hp phn thn By gi chng ta tho lun v tt c cc loi kt hp. Nh bn c th nhn thy, tt c cc v d ca chng ta cho thy mi quan h gia hai lp khc nhau. Tuy nhin, mt lp cng c th c kt hp vi chnh n, bng cch s dng mt kt hp phn thn. Thot u, iu ny c th khng c ngha, nhng bn hy nh rng cc lp l tru tng. Hnh 14 cho thy, lp Employee (nhn vin) c th lin h n chnh n thng qua vai tr ngi qun l/ngi b qun l. Khi lp c kt hp vi chnh n, th iu khng c ngha l mt c th lp c kt hp n chnh n, m l c th ca mt lp c lin h n mt c th khc ca lp.

Hnh 14: V d v mt mi quan h kt hp phn thn Mi quan h c v trong hnh 14 c ngha l mt c th ca lp Employee c th l ngi qun l ca mt c th nhn vin. Tuy nhin, do vai tr ca "ngi b qun l" trong mi quan h ny c bi s l 0 ..*; nn mt nhn vin c th khng c bt k nhn vin no khc qun l. Tm nhn thy Trong thit k hng i tng, c mt k php v tm nhn thy ca cc thuc tnh v cc hot ng. UML xc nh bn kiu tm nhn thy: cng cng, c bo v, ring t v gi. c t k thut ca UML khng yu cu phi hin th tm nhn thy ca cc thuc tnh v hot ng trn s lp, nhng n i hi rng tm nhn thy ny phi c nh ngha cho mi thuc tnh hoc hot ng. hin th tm nhn thy trn mt s lp, bn t mt du hiu v tm nhn thy ngay trc tn thuc tnh hoc tn hot ng. Mc d UML xc nh bn loi tm nhn thy, nhng mt ngn ng lp trnh thc t c th b sung thm cc tm nhn thy khc, hoc n c th khng h tr cc tm nhn thy m UML nh ngha. Bng 4 hin th cc du hiu khc nhau ca cc tm nhn thy c UML h tr. Bng 4: Cc du hiu ca cc kiu tm nhn thy c UML h tr Du hiuKiu tm nhn thy + Cng cng # c bo v Ring t ~ Gi By gi, chng ta hy nhn vo mt lp, c hin th cc kiu tm nhn thy xc nh cho cc thuc tnh v hot ng ca n. Trong hnh 15, tt c cc thuc tnh v cc hot ng l cng cng, ngoi tr hot ng updateBalance. Hot ng updateBalance c bo v.

Hnh 15: Lp BankAccount cho thy tm nhn thy ca cc thuc tnh v hot ng ca n

V u trang Cc b sung ca UML 2 By gi khi chng ta tho lun v cc c s v cc ch nng cao, chng ta s tho lun v cc k php mi c b sung vo s lp k t UML phin bn 1.x. Cc c th Khi m hnh ha cu trc ca mt h thng, i khi cn phi hin th cc c th mu ca cc lp. m hnh ho iu ny, UML 2 cung cp phn t c t c th, phn t ny cho thy cc thng tin ng quan tm bng cch s dng cc c th mu (hoc c thc) trong h thng. K php biu din mt c th cng ging nh mt lp, nhng thay cho ngn pha trn ch c tn ca lp, th by gi l ghp ni ca tn c th v tn lp v c gch chn.Instance Name : Class Name

V d:Donald : Person

Bi v mc ch ca vic hin th cc c th l hin th cc thng tin ng ch hoc c lin quan, nn khng nht thit phi bao gm trong m hnh ca bn ton b cc thuc tnh v hot ng ca c th. Thay vo , ch hin th cc thuc tnh v gi tr ng quan tm ca chng nh c m t trong hnh 16 l hon ton thch ng.

Hnh 16: Mt v d v mt c th ca lp Plane (ch c cc gi tr thuc tnh ng quan tm c hin th) Tuy nhin, ch hin th mt s c th khng c mi quan h ca chng th khng hu ch lm, cho nn UML 2 cng cho php m hnh ha cc mi quan h/cc kt hp mc c th. Cc quy tc v cc kt hp cng ging nh cc quy tc i vi cc mi quan h ca lp bnh thng, mc d c mt yu cu b sung khi m hnh ha cc kt hp. Hn ch b sung l mi quan h kt hp phi ph hp vi cc quan h ca s lp v do cc tn vai tr ca kt hp cng phi ph hp vi s lp. V d v iu ny c th hin trong hnh 17. Trong v d ny cc c th l cc c th v d ca cc s lp trong hnh 6.

Hnh 17: V d ca hnh 6, khi s dng cc c th thay v cc lp Hnh 17 c hai c th ca lp Flight v s lp ch ra rng mi quan h gia lp Plane v lp Flight l t 0 ti nhiu (zero-to-many). Do , v d ca chng ta cho thy rng c hai c th chuyn bay m my bay c s hiu NX0337 lin quan ti. Cc vai tr Vic m hnh ha cc c th ca cc lp i khi chi tit hn iu m ta mun. i khi, bn ch mun m hnh ha mi quan h ca lp mc chung, tng qut hn. Trong cc trng hp nh vy, bn nn s dng k php vai tr. K php vai tr rt ging vi k php cc c th. m hnh ho vai tr ca mt lp, bn v mt hp v t tn vai tr ca lp v tn lp bn trong ging nh k php cc c th, nhng ln ny bn khng gch chn cc t. Hnh 18 cho thy mt v d v cc vai tr ca lp nhn vin, c m t bng s hnh 14. Trong hnh 18, chng ta c th ni rng, mc d cc lp nhn vin c kt hp ti chnh bn thn n, mi quan h thc s l gia c th nhn vin Employee, ng vai tr l ngi qun l v mt c th nhn vin, ng vai tr l thnh vin trong nhm.

Hnh 18: Mt s lp hin th lp trong hnh 14 vi cc vai tr khc nhau ca n Hy lu rng bn khng th m hnh ho vai tr ca mt lp trn mt s lp thun tu, mc d hnh 18 cho thy rng bn c th lm iu . s dng k php vai tr, bn s cn phi s dng k php cu trc ni b, c tho lun phn k tip. Cc cu trc ni b Mt trong nhng c tnh hu dng hn ca cc s cu trc ca UML 2 l k php mi ca cu trc ni b. N cho php bn hin th cch m mt lp hoc phn loi khc c cu thnh bn trong nh th no. Ta khng th lm c iu ny vi UML phin bn 1.x, bi v tp hp

cc k php hn ch bn ch hin th c cc mi quan h kt tp m mt lp c. By gi, bng UML 2, cc k php ca cu trc ni b cho php bn hin th r rng hn cc b phn ca lp lin quan vi nhau nh th no. Ta hy xem mt v d. Trong hnh 18 chng ta c mt s lp hin th cch lp Plane c cu thnh t bn ng c v hai i tng phn mm iu khin nh th no. Nhng ci cn thiu trong s ny l bt k thng tin no v cch thc m cc b phn my bay c lp rp. T s hnh 18, bn khng th ni rng cc i tng phn mm iu khin, mi ci s iu khin hai ng c, hay l mt i tng phn mm iu khin iu khin ba ng c v phn mm cn li iu khin mt ng c.

Hnh 19: Mt s lp ch cho thy mi quan h gia cc i tng Vic v cu trc ni b ca mt lp s ci thin tnh trng ny. Bn bt u bng cch v mt hp vi hai ngn. Ngn trn cng cha tn lp, v ngn bn di cha cu trc ni b ca lp, hin th cc lp b phn ca lp cha vi cc vai tr tng ng ca ca chng, cng nh cch tng lp c th c lin h n cc lp khc trong vai tr . Hnh 19 cho thy cu trc bn trong ca lp my bay; hy lu cu trc ni b xa b mi ln ln nh th no.

Hnh 20: Mt v d v cu trc ni b ca lp Plane. Trong hnh 20 lp my bay c hai i tng ControlSoftware v mi i tng iu khin hai ng c. i tng ControlSoftware pha bn tri ca s (control1) iu khin ng c 1 v 2. Lp ControlSoftware pha bn phi ca s (control2) iu khin ng c 3 v 4. V u trang Kt lun C t nht hai l do quan trng phi hiu c s lp. L do th nht l n cho thy cu trc tnh ca cc phn loi trong mt h thng; l do th hai l s cung cp cho cc k php c bn cho cc s cu trc khc theo quy nh ca UML. Cc nh pht trin phn mm s ngh l s lp c to ra ch dnh cho h, nhng cc thnh vin nhm khc s thy chng cng hu ch. Cc nh phn tch nghip v c th s dng s lp m hnh ho h thng t phi cnh nghip v. Nh chng ta s thy trong cc bi khc ca lot bi vit ny v c s ca UML, cc s khc - bao gm s hot ng, s tun t, v s trng thi (statechart) u tham chiu n cc lp c m hnh ho v c cung cp cc tham s trong s lp. Bi vit tip theo ca lot bi vit v "C s ca UML: S thnh phn. V u trang Ghi ch1

Lp delayFlight khng c gi tr tr v v ti quyt nh thit k l khng c gi tr tr v. Bn c th a ra kin phn i rng hot ng li chuyn bay nn tr v mt kt qu l thi gian n ch mi, v nu nh th, ch k ca hot ng s l: delayFlight(numberOfMinutes :Minutes) : Date.2

C v l l lp BankAccount khng bit v lp OverdrawnAccountsReport. Cch m hnh ha ny cho php lp bo co bit v lp nghip v m n bo co, nhng lp nghip v khng bit l chng ang c bo co. iu ny ni lng vic ghp ni i tng v do lm cho h thng d thch nghi hn vi nhng thay i.3

Cc gi l iu tuyt vi t chc cc lp ca m hnh ca bn, nhng iu quan trng cn nh l cc s ca lp c nhim v phi to iu kin d dng trao i thng tin v h thng ang c m hnh ha. Trong trng hp m cc gi ca bn c rt nhiu lp, th tt hn l s dng nhiu s lp vi cc ch c th thay v ch to ra mt s lp rt ln.4

iu quan trng l phi hiu khi ti ni "tt c cc thnh vin y," ti mun ni n ch cc lp m s hin ti s hin th. Mt s hin th mt gi vi ni dung khng nht thit hin th tt c ni dung ca n, n c th hin th mt tp hp con ca cc phn t cha trong theo mt tiu ch no , m khng nht thit phi l tt c cc phn loi ca gi.

5

Khi v mt s lp, th vic t thm k hiu class (lp) trong ngn trn cng ca hnh ch nht, nh bn lm vi interface (giao din) l hon ton nm trong khun kh ca c t k thut UML. Tuy nhin, c t UML ni rng vic t k hiu "class" trong ngn ny l ty chn, v nn gi nh rng class khng c vit r ra.