Luận văn: Nghiên cứu ngôn ngữ UML và ứng dụng
7,869
671
171
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
91
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 89
Ngûä nghôa
_ Möåt lûúåc àöì lúáp laâ möåt lûúåc àöì duâng àïí mö taã caác lúáp (class),
caác giao tiïëp
(interface), sûå cöång taác (collaboration) vaâ caác möëi quan hïå giûäa caác
thaânh phêìn
trong mö hònh.
_ Class Diagram laâ möåt thïí hiïån dûúái daång àöì thõ cêëu truác tônh cuãa mö
hònh.
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 90
3.17. Chûác nùng
_ Àùåt tïn vaâ lêåp mö hònh caác khaái niïåm trong hïå thöëng.
_ Àùåc taã sûå cöång taác, caác möëi quan hïå quan hïå giûäa caác lúáp
_ Àùåc taã sú àöì cú súã dûä liïåu
_ Ngûúâi ta thûúâng duâng caác lûúåc àöì lúáp àïí thïí hiïån sûå kïët nöëi cuãa
caác thaânh
phêìn cêëu truác trong design view vaâ process view.
_ Class Diagram àûúåc sûã duång trong mö hònh phên tñch vaâ thiïët kïë, höî trúå
cho
giai àoaån phên tñch vaâ thiïët kïë hïå thöëng.
3.17.1. Caác thaânh phêìn chñnh
Lúáp (Class)
Ngûä nghôa
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
92
http://www.ebooks.vdcmedia.com
Möåt lúáp (class) laâ möåt àaåi diïån cho möåt têåp caác caác àöëi tûúång coá
nhûäng
àùåc tñnh tûúng tû nhau. Àêy laâ thaânh phêìn cú baãn nhêët cuãa möåt lûúåc àöì
lúáp. Lúáp
cuäng coá cêëu truác dûä liïåu, haânh vi vaâ caác quan hïå vúái caác lúáp khaác.
Kyá hiïåu
Biïíu tûúång cuãa möåt lúáp àún giaãn chó laâ möåt hònh chûä nhêåt göìm coá ba
phêìn:
- Phêìn trïn cuâng : chûáa tïn cuãa lúáp, tïn cuãa lúáp phaãi laâ duy nhêët
khöng àûúåc
truâng vúái tïn caác lúáp khaác trong cuâng möåt package. Ngoaâi ra trong möåt
söë
trûúâng húåp ngùn naây coân coá thïí chûáa stereotype (khuön mêîu) hoùåc tagged
value
(giaá trõ theã).
- Phêìn giûäa : chûáa danh saách caác thuöåc tñnh(hay coân goåi laâ caác biïën
thaânh phêìn).
- Phêìn cuöëi : chûáa danh saách caác haânh vi (hay coân goåi laâ caác haâm
thaânh phêìn)
Trong möåt söë lûúåc àöì hai phêìn dûúái cuâng thûúâng àûúåc boã qua, ngay caã
khi
chuáng thûåc sûå hiïån diïån, thò chuáng cuäng khöng hiïîn thõ têët caã danh
saách caác
thuöåc tñnh cuäng nhû caác haânh vi. Muåc tiïu úã àêy chó thïí hiïån nhûäng
thuöåc tñnh
vaâ nhûäng haânh vi coá ñch trong möåt lûúåc àöì cuå thïí, vò vêåy biïíu tûúång
cuãa lúáp coá
thïí àûúåc ruát goån khi cêìn thiïët.
Hònh 3-20 Biïíu tûúång cuãa möåt lúáp
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 91
(biïíu tûúång àún giaãn nhêët) (thïí hiïån cuãa lúáp úã mûác àöå phên tñch hïå
thöëng) (thïí
hiïån cuãa lúáp úã mûác àöå triïín khai – xêy dûång hïå thöëng)
Hònh 3-21 Thïí hiïån cuãa lúáp úã caác giai àoaån khaác nhau
Caác thuöåc tñnh vaâ caác haânh vi trong möåt lúáp coá thïí coá caác têìm vûåc
(visibility)
khaác nhau, caác kyá hiïåu cuãa caác têìm vûåc àûúåc àùåt trûúác caác thuöåc
tñnh hay haânh
vi, trong UML àõnh nghôa ba mûác chuêín :
_ Public – kyá hiïåu bùçng dêëu (+)
_ Private – kyá hiïåu bùçng dêëu (-)
_ Protected – kyá hiïåu bùçng dêëu (#)
Cuá phaáp cho caác khai baáo cuãa thuöåc tñnh nhû sau :
Têìm vûåc – Tïn thuöåc tñnh – Baãn söë : Kiïíu = Giaá trõ khúãi taåo
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
93
http://www.ebooks.vdcmedia.com
Vñ duå : - color : Color = Red
+ size: Area = (100,100)
# points [2..*] : Point
Cuá phaáp cho caác khai baáo cuãa haâm nhû sau :
Têìm vûåc – Tïn thuöåc tñnh (danh saách tham söë) : Kiïíu traã vïì
Vñ duå : + display (): Location
+ hide()
- attachXwindow(zwin: Xwindow*)
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 92
3.18. Interface
Ngûä nghôa
Coá nhûäng lúáp khöng coá gò ngoaâi caác haâm aão thuêìn tuáy, trong ngön ngûä
Java caác lúáp nhû vêåy khöng laâ àöëi tûúång, chuáng àûúåc goåi laâ interface
(giao tiïëp).
Muöën sûã duång interface, lúáp phaãi giao tiïëp vúái noá bùçng möåt quan hïå
phuå thuöåc,
lúáp sûã duång chó phuå thuöåc vaâo caác haânh vi trong giao tiïëp, chûá khöng
phuå thuöåc
vaâo caác thûá khaác trong interface.
Kyá hiïåu
Kyá hiïåu àún giaãn cuãa möåt interface laâ möåt hònh troân nhoã coá tïn ngay
phña
dûúái. Muöën chó ra caác haânh vi trong interface, coá thïí biïíu diïîn
interface bùçng kyá
hiïåu lúáp vúái möåt stereotype bïn trïn cuãa tïn interface.
Hònh 3-22 Thïí hiïåän cuãa möåt iinterface
Hònh 3-23 Möåt caác sûã duång iinterface
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
94
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 93
3.19. Caác loaåi quan hïå
3.19.1. Quan hïå kïët húåp (association)
Möåt quan hïå kïët húåp laâ quan hïå vïì mùåt cêëu truác giûäa hai, hoùåc giûäa
möåt
vaâ nhiïìu thaânh töë (lúáp hoùåc àöëi tûúång).
- Trïn quan hïå kïët húåp coá thïí coá hai tïn cho hai hûúáng ngûúåc chiïìu
nhau.
(2 quan hïå kïët húåp – cöng nhên laâm viïåc cho cöng ty vaâ cöng ty quaãn lyá
cöng
nhên )
manage
Hòònh 3-24 Tïân trong quan hïåä kïëát húåïp
- Möîi möëi hïå kïët húåp cuäng coá baãn söë (multiplicity) vaâ tñnh àõnh hûúáng
(navigate). Vñ duå nhû: (0..1), (1), (0..*), (1..*), (1..6), (10..*)...
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 94
Hònh 3-25 Baãn söëá (mulltiiplliiciity) trong quan hïå kïëát húåp
- Trong quan hïå kïët húåp cuäng coá sûå àïå quy (trong trûúâng húåp möåt lúáp
(hay àöëi
tûúång) kïët húåp vúái chñnh noá. ( àïå quy )
Hònh 3-26 Quan hïåä kïëát húåïp àïåä quy
- Trong quan hïå kïët húåp coá thïí coá caác vai troâ (hoùåc thïí hiïån – role)
khaác nhau.
Tïn cuãa vai troâ (hoùåc thïí hiïån) àûúåc àùåt trïn quan hïå vaâ ngay saát
caånh lúáp coá thïí
hiïån àoá. (xem hònh veä 3-27 bïn dûúái).
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
95
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 95
(vai troâ) (Person àoáng vai troâ laâ ngûúâi lao àöång) (Company àoáng vai troâ
laâ ngûúâi
chuã)
Hònh 3-27 Vai troâ (rolles) trong quan hïå kïëát húåp
- Ngoaâi ra coân coá Or-Association (quan hïå kïët húåp raâng buöåc or), àêy coá
thïí coi
laâ möåt raâng buöåc trïn hai hay nhiïìu quan hïå kïët húåp. Noá xaác àõnh caác
àöëi tûúång
cuãa möåt lúáp chó coá thïí tham gia vaâo möåt trong nhûäng quan hïå kïët húåp
naây taåi
möåt thúâi àiïím. Xeát vñ duå trong hònh 3-28 taåi möåt thúâi àiïím nhêët àõnh
thò lúáp
Account (taâi khoaãn) chó coá quan hïå kïët húåp vúái möåt trong hai lúáp Person
(ngûúâi)
hoùåc Corporation (haäng). (caách thïí hiïån cuãa quan hïå Or-Association) (taåi
möåt
thúâi àiïím thò chó coá möåt trong hai quan hïå coá taác duång)
Hònh 3-28 Möåt cuãa Or-Associiatiion
- Trong quan hïå kïët húåp cuäng coá quan hïå kïët húåp haån chïë (qualified
association). Xeát vñ duå hònh 3-29 lúáp Person (ngûúâi) chó quan hïå vúái lúáp
Bank
(ngên haâng) thöng qua thuöåc tñnh haån chïë laâ account (taâi khoaãn).
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 96
(thuöåc tñnh haån chïë )
Hònh 3-29 Möåt vñ duå cuãa Qualliifiier Associiatiion
- Trong quan hïå kïët húåp ta cuäng coá möåt loaåi thïí hiïån khaác àoá laâ quan
hïå thu naåp
(Aggregation). Quan hïå naây chó ra rùçng lúáp kïët húåp àûúåc xem laâ “toaân
thïí“, vaâ
lúáp kia àûúåc xem nhû laâ möåt böå phêån cuãa “toaân thïí“ àoá. Xeát vñ duå
hònh 3-30 lúáp
Window àûúåc xem laâ lúáp “toaân thïí” búãi vò noá coá thïí chûáa nhiïìu hònh
(lúáp
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
96
http://www.ebooks.vdcmedia.com
shape). (lúáp ”toaân thïí “) ( lúáp “böå phêån”) (caách thïí hiïån cuãa quan hïå
thu naåp)
Hònh 3-30 Quan hïå thu naåp (aggregatiion)
- Ngoaâi ra coân coá quan hïå cêëu thaânh (composition). Àêy laâ möåt daång
maånh hún
cuãa quan hïå thu naåp (aggregation), trong trûúâng húåp naây khi lúáp toaân
thïí bõ huãy
thò lúáp böå phêån (hay lúáp cêëu thaânh) cuäng bõ huãy theo. Xeát vñ duå trong
hònh bïn
dûúái 3-31 ta coá thïí thêëy lúáp Window àûúåc cêëu thaânh tûâ hai thanh cuöån
(scrollbar), möåt header àoáng vai troâ laâ tiïu àïì vaâ möåt panel àoáng vai
troâ laâ body
cuãa Window.
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 97
(lúáp window àûúåc cêëu thaânh tûâ ba lúáp Slider , Header vaâ Panel) (caách
thïí hiïån
cuãa quan hïå cêëu thaânh)
Hònh 3-31 Quan hïå cêëáu thaânh (Composiitiion)
- Ngoaâi ra coân coá quan hïå n-ary association (quan hïå kïët húåp bêåc n)
giûäa nhiïìu
lúáp vúái nhau.Sau àêy laâ möåt vñ duå vïì quan hïå giûäa ba lúáp Year (nùm),
Team
(àöåi) vaâ Player (cêìu thuã). Quan hïå naây chó ra söë baân àïí loåt lûúái, söë
baân àúä àûúåc,
söë trêån thùæng, söë trêån thua, söë trêån hoâa cuãa thuã mön cuãa möåt àöåi
boáng trong möåt
muâa boáng. (caách thïí hiïån cuãa quan hïå kïët húåp bêåc 3)
Hònh 3-32 Quan hïå kïëát húåp bêåc 3
- Lûu yá trong quan hïå kïët húåp bêåc n têët caã caác nhaánh quan hïå àïìu laâ
quan hïå kïët
húåp thöng thûúâng, khöng phaãi laâ thu naåp hay cêëu thaânh.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
97
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 98
3.20. Quan hïå töíng quaát hoáa
Quan hïå töíng quaát hoáa coân àûúåc goåi laâ quan hïå kïë thûâa. Quan hïå töíng
quaát hoáa laâ möåt quan hïå giûäa möåt thaânh töë töíng quaát (thûúâng àûúåc
xem laâ thaânh
töë cha – superclass) vaâ möåt hay nhiïìu thaânh töë chuyïn biïåt (àûúåc xem laâ
thaânh
töë con - subclass). Quan hïå naây thûúâng àûúåc sûã duång cho caác thaânh töë
mö hònh
nhû lúáp (class), goái (package), use case... Trong quan hïå naây thaânh töë con
àûúåc
kïë thûâa caác àùåc àiïím cuãa thaânh töë cha (vñ duå lúáp con kïë thûâa caác
thuöåc tñnh vaâ
haâm cuãa lúáp cha). Sau àêy laâ vñ duå vïì quan hïå töíng quaát hoáa :
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 99
(lúáp cha) (caác lúáp cha Shape àûúåc töíng quaát hoáa tûâ caác lúáp con
Polygon, Ellipse,
Spline... ) (caách thïí hiïån kiïíu riïng leã) (caách thïí hiïån kiïíu cêy chia
seä) (caách thïí
hiïån cuãa quan hïå kïë thûâa)
Hònh 3-33 Möåt söëá caách thïí hiïån cuãa quan hïå töíng quaát hoáa
(Generalliizatiion)
Trong quan hïå töíng quaát hoáa coá möåt söë kiïíu raâng buöåc trïn quan hïå :
- Phuã lêëp (Overlapping) – quan hïå naây cho pheáp möåt lúáp con úã cêëp sêu
hún coá
thïí kïë thûâa tûâ nhiïìu lúáp con (cuâng möåt luác) úã cêëp cao hún cuãa möåt
quan hïå kïë
thûâa trïn möåt lúáp cha chung naâo àoá.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
98
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 100
(lúáp con coá kïë thûâa phuã lêëp) (lúáp con àûúåc kïë thûâa phuã lêëp) (lúáp
cha) (caách thïí
hiïån cuãa quan hïå kïë thûâa phuã lêëp)
Hònh 3-34 Quan hïå kïëá thûâa phuã lêëáp (Overllappiing)
- Taách rúâi (Disjoint) – quan hïå naây traái ngûúåc vúái quan hïå kïë thûâa
phuã lêëp – lúáp
con úã cêëp sêu hún khöng àûúåc kïë thûâa cuâng möåt luác nhiïìu lúáp con úã
cêëp cao
hún.
- Hoaân toaân (Complete) –coá nghôa laâ quan hïå naây àaä àêìy àuã caác lúáp
con, khöng
thïí thïm múái möåt lúáp con naâo nûäa. Vñ duå: lúáp cha laâ lúáp Gaâ (con
gaâ)vaâ hai lúáp
con laâ Gaâ tröëng vaâ Gaâ maái, hiïín nhiïn ta khöng thïí thïm möåt lúáp vaâo
trong quan
hïå kïë thûâa giûäa ba lúáp naây. Caách thïí hiïån cuäng tûúng tûå nhû phêìn
phuã lêëp, ta chó
thay raâng buöåc Overlapping bùçng Complete.
- Khöng hoaân toaân (Incomplete) – ngûúåc laåi vúái quan hïå hoaân toaân, àêy
laâ quan
hïå mùåc àõnh trong quan hïå kïë thûâa, coá nghôa laâ coá thïí thïm vaâo caác
lúáp con
trong quan hïå naây.
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 101
(thïí hiïån cuãa quan hïå kïë thûâa khöng hoaân toaân, taách rúâi)
Hònh 3-35 Quan hïå kïëá thûâa khöng hoaân toaân
3.21. Quan hïå phuå thuöåc (Dependency)
Quan hïå phuå thuöåc laâ möåt quan hïå ngûä nghôa giûäa hai thaânh töë mö hònh,
trong hai thaânh töë naây coá möåt thaânh töë àöåc lêåp vaâ möåt thaânh töë
phuåc thuöåc vaâo
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
99
http://www.ebooks.vdcmedia.com
thaânh töë àöåc lêåp naây. Thûúâng àêy laâ quan hïå giûäa hai lúáp hai use case
hoùåc hai
package...Vñ duå nhû möåt lúáp sûã duång tham söë laâ möåt àöëi tûúång cuãa möåt
lúáp
khaác.
(lúáp Shape phuå thuöåc vaâo lúáp DrawingContext vò haâm Draw trong lúáp Shape
sûã
duång tham söë laâ àöëi tûúång cuãa lúáp DrawingContext) (caách thïí hiïån cuãa
quan hïå
phuå thuöåc )
Hònh 3-36 Möåt vñ duå cuãa quan hïå phuåc thuöåc
Thöng thûúâng quan hïå phuå thuöåc àûúåc biïíu diïîn bùçng möåt àûúâng àûát neát
coá möåt muäi tïn úã àêìu vaâ thûúâng coá caác keyword ài keâm bïn trïn muäi tïn
àïí chó
kiïíu phuå thuöåc. (caác kiïíu quan hïå phuå thuöåc)
Hònh 3-37 Caác keyword trïn quan hïå phuå thuöåc
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 101
3.22. Caác thaânh töë àûúåc tñnh toaán (hay àûúåc dêîn xuêët – derived Element)
Àêy laâ caác thaânh töë àûúåc tñnh tûâ caác thaânh töë khaác trong mö hònh hay
trong lûúåc àöì, chuáng àûúåc thïm vaâo trong baãn phên tñch giuáp laâm roä thïm
caác
lûúåc àöì, chuáng vêîn àûúåc thïm vaâo ngay caã khi viïåc naây khöng cung cêëp
thïm
thöng tin vïì ngûä nghôa cho lûúåc àöì. Kyá hiïåu cuãa caác thaânh töë naây laâ
möåt dêëu söí
(/)ngay trûúác tïn cuãa thaânh töë. (thuöåc tñnh age àûúåc tñnh tûâ hai thuöåc
tñnh
currentDate vaâ birthday) (quan hïå kïët húåp dêîn xuêët)
Hònh 3-38 Thaânh töëá tñnh toaán – dêîn xuêëát (Deriived Ellement)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
100
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 103
3.23. Lûúåc àöì àöëi tûúång (Object Diagram)
Vñ duå: (caác àöëi tûúång trong lûúåc àöì (giaá trõ thuöåc tñnh) (liïn kïët
giûäa caác àöëi
tûúång) (àöëi tûúång êín danh)
Hònh 3-39 Lûúåc àöì àöëái tûúång(Objject Diiagram)
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 104
Ngûä nghôa
_ Laâ möåt àöì thõ cuãa caác thïí hiïån, bao göìm caác àöëi tûúång vaâ caác giaá
trõ cuå thïí.
_ Laâ möåt thïí hiïån cuãa lûúåc àöì lúáp, àûa ra möåt caái nhòn khaá chi tiïët
vïì caác àöëi
tûúång trong hïå thöëng taåi möåt thúâi àiïím nhêët àõnh.
Chûác nùng
_ Minh hoåa cêëu truác cuãa dûä liïåu
_ Minh hoåa caác àöëi tûúång taåi nhûäng thúâi àiïím cuå thïí.
_ Àùåc taã caác snapshot (thïí hiïån cuãa hïå thöëng)
3.24. Caác thaânh phêìn chñnh
3.24.1. Caác àöëi tûúång (Objects)
Ngûä nghôa