Luận văn: Nghiên cứu ngôn ngữ UML và ứng dụng
7,822
671
171
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
41
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 22
2.1. Giúái thiïåu
UML bao göìm UML metamodel vaâ UML model. UML metamodel giûä
chûác nùng àõnh nghôa caác thaânh töë vaâ cuá phaáp UML. UML model mö taã kyá
hiïåu
caác thaânh töë vaâ caác lûúåc àöì dûåa trïn UML metamodel.
UML metamodel bao göìm caác thaânh töë vaâ möåt söë quy tùæc vïì cuá phaáp.
Ngoaâi viïåc thaânh töë UML mang möåt yá nghôa xaác àõnh, cuá phaáp UML coân mö
taã
caách liïn kïët nhûäng thaânh töë naâo vúái nhau àïí taåo ra yá nghôa gò. ÚÃ
goác àöå mö
hònh hoáa, caác thaânh töë UML coá thïí phên chia laâm ba loaåi laâ caác thaânh
töë mö hònh
hoáa tônh, caác thaânh töë mö hònh hoáa tûúng taác vaâ caác thaânh töë quan hïå
coá chûác
nùng liïn kïët giûäa hai thaânh töë trïn vúái nhau. UML metamodel giûä vai troâ
hûúáng
dêîn ngûúâi sûã duång UML vïì cuá phaáp trong mö hònh hoáa. Ngoaâi ra, UML
metamodel coân àûúåc sûã duång búãi caác nhaâ phaát triïín CASE tool àïí mö hònh
hoáa
dûä liïåu cho möåt CASE tool höî trúå UML. Mö hònh dûä liïåu naây sûã duång laåi
àõnh
nghôa thaânh töë UML àïí thiïët kïë caác lúáp cú baãn vaâ böí sung thïm caác
lúáp múái tuây
theo chûác nùng CASE tool cung cêëp cho ngûúâi sûã duång. UML model laâ biïíu
diïîn kyá hiïåu cuãa caác thaânh töë UML àöìng thúâi cung cêëp cho ngûúâi sûã
duång caác
lûúåc àöì UML cuå thïí àïí mö hònh hoáa cuäng nhû laâm ngön ngûä giao tiïëp
giûäa caác
thaânh viïn cuãa nhoám trong quaá trònh phaát triïín phêìn mïìm. Noái caách
khaác, caác
lûúåc àöì trong UML model laâ thïí hiïån cuãa caác cuá phaáp tûúng ûáng trong
UML
metamodel. UML metamodel àûúåc chia thaânh nhiïìu goái thaânh phêìn (package)
dûåa trïn yá nghôa cuãa cuá phaáp àûúåc mö taã. Möîi goái àõnh nghôa caác thaânh
töë khaác
nhau vaâ mö taã möåt nhoám cuá phaáp dûåa trïn caác thaânh töë naây. Trong möîi
goái laåi coá
thïí bao göìm caác goái con. Viïåc phên chia naây giuáp cho àõnh nghôa cuãa UML
metamodel roä raâng hún, chó quan têm àïën caác thaânh töë trong goái vaâ loaåi
boã caác
thaânh töë khöng cêìn thiïët vûúåt ra khoãi phaåm vi ngûä nghôa cêìn mö taã cuãa
goái. Goái
àûúåc biïíu diïîn nhû sau
Hònh 2-1 Kyá hiïåu package
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
42
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 23
2.2 Töíng quan vïì caác loaåi quan hïå giûäa caác thaânh töë
Trong quaá trònh àõnh nghôa thaânh töë cêìn phaãi mö taã caác möëi liïn hïå
giûäa
thaânh töë naây vúái caác thaânh töë khaác nïn UML sûã duång möåt têåp húåp caác
quan hïå.
Möîi quan hïå coá möåt yá nghôa xaác àõnh. Caác quan hïå naây bao göìm quan hïå
töíng
quaát hoáa (generalization), quan hïå kïët húåp (association), quan hïå phuå
thuöåc
(dependency).
Möîi thaânh töë àïìu coá ngûä nghôa riïng. Àïí biïíu diïîn thaânh töë vaâ quan
hïå
giûäa caác thaânh töë, UML sûã duång caác kyá hiïåu riïng. Möåt thaânh töë coá
kyá hiïåu nhû
sau
Tïn thaânh töë
Caác thuöåc tñnh
Hònh 2-2 Kyá hiïåu thaânh töëá
Phêìn sau trònh baây sú lûúåc caác loaåi quan hïå. Chi tiïët vïì caác loaåi quan
hïå
giûäa caác thaânh töë àûúåc trònh baây trong chûúng 3 phêìn 3.5.2.4.3.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
43
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 24
2.3. Quan hïå töíng quaát hoáa (generalization)
Generalization laâ quan hïå giûäa möåt thaânh töë töíng quaát hún vaâ möåt
thaânh töë
àùåc biïåt hún. Thaânh töë àùåc biïåt hún chûáa àêìy àuã caác àùåc àiïím cuãa
thaânh töë töíng
quaát hún vaâ ngoaâi ra coân coá nhûäng thöng tin riïng. Quan hïå töíng quaát
hoáa coá kyá
hiïåu nhû sau:
Thaânh töë B
Thaânh töë A
Hònh 2-3 Vñ duå vïì quan hïå töíng quaát hoáa
2.3.1. Quan hïå kïët húåp (association)
Quan hïå kïët húåp thïí hiïån liïn hïå vïì mùåt ngûä nghôa giûäa hai thaânh töë.
Nghôa laâ
thaânh töë naây coá sûã duång hay nhêån biïët caác thöng tin cuãa thaânh töë
kia.
Association coá thïí bao göìm hai loaåi con laâ quan hïå ngûä nghôa thöng
thûúâng
(association)vaâ quan hïå toaân thïí - böå phêån (aggregation). Quan hïå ngûä
nghôa
thöng thûúâng Hoåc phêìn múã Sinh viïn
0..*
àùng kyá
0..*
multiplicity association (quan hïå kïët húåp) Möåt sinh viïn àùng kyá nhiïìu
hoåc phêìn
múã. Möåt hoåc phêìn múã coá thïí àûúåc àùng kyá búãi nhiïìu sinh viïn.
Hònh 2-4 Vñ duå vïì quan hïå kïëát húåp (associiatiion)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
44
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 25
2.5. Quan hïå phuå thuöåc (dependency)
Dpendency thïí hiïån sûå phuå thuöåc chûác nùng cuãa möåt hay nhiïìu thaânh töë
nhêån vaâo möåt hay nhiïìu thaânh töë cho. Dependency keám chi tiïët vïì mûác
àöå ngûä
nghôa hún quan hïå kïët húåp vaâ thûúâng sûã duång àïí mö taã sûå phuå thuöåc
lêîn nhau
giûäa caác goái.
Tïn goái nhêån
Tïn goái cho
Dependency Dependency mö taã phuå thuöåc giûäa goái nhêån vaâo goái cho.
Hònh 2-6 Vñ duå cuãa quan hïå phuå thuöåc (Dependency)
Quan hïå toaân thïí – böå phêån: thaânh töë naây chûáa thaânh töë kia theo
nghôa vêåt lyá.
Slider
Header
Panel
Window 2 1
+ScrollBar 1 1 +WindowTittle 1 1
+WindowClient
quan hïå toaân thïí-böå phêån (aggregation) tïn tham chiïëu (name)
Hònh 2-5 Vñ duå vïì quan hïå toaân thïí-böåä phêån (aggregatiion)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
45
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 26
2.6. Töíng quan vïì caác thaânh töë vaâ cêëu truác UML metamodel
2.6.1. Phên loaåi thaânh töë trong UML metamodel
ÚÃ goác àöå àõnh nghôa, caác thaânh töë trong UML coá thïí àûúåc chia laâm hai
loaåi laâ thaânh töë trûâu tûúång vaâ thaânh töë cuå thïí. Caác thaânh töë trûâu
tûúång coá tñnh
töíng quaát cao giûä chûác nùng tham gia vaâo àõnh nghôa caác thaânh töë khaác.
Caác
thaânh töë cuå thïí thûúâng coá quan hïå töíng quaát hoáa qua nhiïìu têìng vúái
caác thaânh töë
trûâu tûúång, ngoaâi ra coân coá caác quan hïå kïët húåp (association) vúái caác
thaânh töë
khaác. Chó caác thaânh töë cuå thïí múái coá kyá hiïåu trong UML model vaâ àûúåc
sûã duång
trong mö hònh hoáa.
2.6.2. Cêëu truác UML metamodel
UML metamodel bao göìm ba goái (package) chñnh nhû sau
Hònh 2-7 Caác package chñnh cuãa UML
Goái nïìn taãng (Foundation) laâ goái bao göìm phêìn lúán caác thaânh töë trûâu
tûúång vaâ möåt söë thaânh töë cuå thïí mang tñnh chêët cöët loäi. Caác thaânh
töë trong goái
naây àûúåc sûã duång búãi hai goái thaânh töë haânh vi (BehavioralElements) vaâ
quaãn trõ
mö hònh (ModelManagement).
BehavioralElements laâ goái àõnh nghôa caác thaânh töë sûã duång cho viïåc mö
taã
quaá trònh vêån àöång cuãa möåt thaânh töë hay tûúng taác giûäa caác thaânh töë
trong thïë
giúái thûåc.
Model Management laâ goái àõnh nghôa caác thaânh töë cho viïåc quaãn lyá mö
hònh cuãa ngûúâi sûã duång.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
46
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 27
2.7. Package Foundation (goái nïìn taãng)
Foundation àõnh nghôa nhûäng thaânh töë UML cú baãn. Foundation bao göìm
ba goái con laâ goái cöët loäi (Core), goái caác kiïíu dûä liïåu (Data Types)
vaâ goái cú chïë
múã röång (Extension Mechanism).
Hònh 2-8 Goái nïìn taãng cuãa UML metamodell
Core àõnh nghôa nhûäng thaânh töë cöët loäi bao göìm caã caác thaânh töë quan
hïå
vaâ àa söë laâ úã mûác trûâu tûúång.
Extension Mechanism àõnh nghôa cú chïë múã röång cho caác thaânh töë UML
àïí böí sung caác thaânh töë múái.
Data Types àõnh nghôa caác kiïíu dûä liïåu àûúåc sûã duång trong UML
metamodel. Caác thuöåc tñnh cuãa caác thaânh töë trong UML meatamodel coá kiïíu
dûä
liïåu thuöåc vïì Data Types.
2.7.1. Package Core (goái cöët loäi)
Core bao göìm caác thaânh töë cöët loäi vaâ àûúåc mö taã búãi nùm mö hònh laâ
sûúân
(Backbone), quan hïå (Relationships), phuå thuöåc (Dependencies), Classifiers
vaâ
böí sung (Auxiliary Elements).
Core giúái thiïåu cuá phaáp cho mö hònh hoáa tônh, khöng quan têm àïën quaá
trònh vêån àöång vaâ tûúng taác giûäa caác àöëi tûúång trong thïë giúái thûåc.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
47
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 28
2.8. Mö hònh Backbone (sûúân)
Backbone chuã yïëu àõnh nghôa thaânh töë Classifier. Classifier laâ thaânh töë
trûâu tûúång àoáng vai troâ töíng quaát hoáa trûåc tiïëp cuãa phêìn lúán caác
thaânh töë cuå thïí
khaác. Ngoaâi ra, caác thaânh töë cuå thïí cú baãn cuãa UML àûúåc àõnh nghôa
trong Core
bao göìm thuöåc tñnh (attribute), phûúng thûác (operation) vaâ caách thûåc hiïån
phûúng thûác (method), tham söë (parameter) vaâ raâng buöåc (constraint).
Àïí phuåc vuå cho quaá trònh àõnh nghôa Classifier, UML àûa ra caác thaânh töë
trûâu tûúång coá vai troâ laâ töíng quaát hoáa (trûåc tiïëp hay giaán tiïëp)
cuãa Classifier. Caác
thaânh töë naây coá quan hïå vúái nhau vaâ coá quan hïå vúái Classifier àûúåc mö
taã trong
mö hònh Backbone bao göìm:
_ Element (thaânh töë) : Element laâ möåt thaânh töë trûâu tûúång úã mûác cao
nhêët, töíng
quaát nhêët trong caác thaânh töë UML.
_ ModelElement (thaânh töë mö hònh) : ModelElement laâ thaânh töë àûúåc àõnh
danh
trong mö hònh vaâ laâ töíng quaát hoáa cêëp cao nhêët thûá hai cho caác thaânh
töë khaác sau
Element. ModelElement laâ thaânh töë àûúåc xaác àõnh qua tïn (name).
_ Namespace (khöng gian caác thaânh töë tham chiïëu theo tïn): Namespace laâ
têåp
húåp caác thaânh töë ModelElement vúái àiïìu kiïån àõnh danh cuãa möåt
ModelElement
trong möåt Namespace laâ duy nhêët.
_ ElementOwnership: ElementOwnership àõnh nghôa têìm vûåc (visibility) cuãa
möåt thaânh töë chûáa trong khöng gian caác thaânh töë (Namspace).
ElementOwnership quy àõnh têìm vûåc cuãa möåt thaânh töë àûúåc giúái haån trong
Namespace (chó coá thïí àûúåc tham chiïëu búãi caác thaânh töë trong Namespace)
hay
vûúåt khoãi Namespace (coá thïí àûúåc tham chiïëu búãi caác thaânh töë ngoaâi
Namespace).
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
48
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 29
_ GeneralizableElement (thaânh töë coá thïí töíng quaát hoáa hay àùåc biïåt
hoáa):
GeneralizableElement laâ caác thaânh töë coá thïí tham gia vaâo quan hïå töíng
quaát hoáa
hay àùåc biïåt hoáa. Do àoá möåt GeneralizableElement coá thïí laâ töíng quaát
hoáa hay
àùåc biïåt hoáa cuãa möåt GeneralizableElement khaác.
_ Feature (àùåc tñnh) : mö taã caác àùåc tñnh cuãa möåt Classifier chuã yïëu laâ
têìm vûåc
(visibility) cuãa àùåc tñnh. Têìm vûåc naây xaác àõnh möåt àùåc tñnh cuãa
Classifier coá thïí
àûúåc tham chiïëu búãi caác Classifier khaác hay chó àûúåc sûã duång búãi chñnh
Classifier chûáa àùåc tñnh àoá.
_ StructuralFeature (àùåc tñnh cêëu truác) : àûúåc thûâa kïë tûâ Fearture,
StructuralFeature mö taã àùåc tñnh vïì mùåt cêëu truác cuãa möåt Classifier, mö
taã cêëu
truác naây coá thïí thay àöíi hay cöë àõnh qua thuöåc tñnh changeability cuãa
StructuralFeature. StructualFeature coá möåt àùåc biïåt hoáa laâ thuöåc tñnh
(Attribute).
_ BehavioralFeature (àùåc tñnh haânh vi) Àûúåc kïë thûâa tûâ Feature vaâ biïíu
diïîn caác
àùåc tñnh vïì mùåt haânh vi cuãa möåt Classifier àöìng thúâi mö taã àùåc tñnh
haânh vi naây
coá aãnh hûúãng lïn traång thaái cuãa Classifier hay khöng qua thuöåc tñnh
isQuery.
BehavioralFeature göìm hai àùåc biïåt hoáa laâ phûúng thûác (Operation) vaâ
Method.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
49
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 30
Classifier coá khaã nùng chûáa caác thaânh töë khaác. Caác thaânh töë naây coá
àõnh
danh duy nhêët trong Classifier vaâ coá têìm vûåc cho caác thaânh töë bïn ngoaâi
tham
chiïëu àïën qua thuöåc tñnh visibility trong Laâ àùåc biïåc hoáa cuãa thaânh töë
trûâu tûúång
ModelElement, Classifier chõu aãnh hûúãng búãi caác raâng buöåc gùæn vúái
Classifier.
Laâ àùåc biïåt hoáa cuãa GeneralizableElement, Classifier coá thïí tham gia vaâo
quan
hïå töíng quaát hoáa. GeneralizableElement laâ thaânh töë coá thïí tham gia vaâo
quan hïå
töíng quaát hoáa àûúåc mö taã roä raâng hún trong mö hònh Relationships.
Classifier
bao göìm caác àùåc àiïím cêëu truác vaâ haânh vi, cuå thïí laâ thuöåc tñnh
(Attribute),
phûúng thûác (Operation) vaâ Method. Ngoaâi ra, Mö hònh Backbone coân àõnh
nghôa caác thaânh töë cuå thïí àoáng vai troâ quan troång bêåc nhêët laâ thuöåc
tñnh
(Attribute), phûúng thûác (Operation), mö taã phûúng thûác (Method), tham söë
(Parameter) vaâ raâng buöåc (Constraint).
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 31
_ Attribute (thuöåc tñnh) : Attribute mö taã caác giaá trõ maâ möåt Classifier
coá thïí sûã
duång àïí thïí hiïån traång thaái. Attribute coá caác thuöåc tñnh chñnh laâ tïn
(name), giaá
trõ khúãi àêìu (initial value).
_ Operation (phûúng thûác) : Operation laâ phûúng thûác coá thïí àûúåc yïu cêìu
tûâ
möåt Classifier chûáa Operation àïí taác àöång lïn Classifier naây. Operation
coá quan
hïå kïët húåp (association) vúái tham söë (parameter) nghôa laâ Operation sûã
duång möåt
têåp tham söë àïí khúãi àêìu cho viïåc thi haânh. Möåt Operation coá thïí àûúåc
kïë thûâa tûâ
caác Operation khaác.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
50
http://www.ebooks.vdcmedia.com
_ Method (mö taã phûúng thûác) : Method coá quan hïå kïët húåp vúái phûúng thûác
(Operation) mö taã cuå thïí caách thûác thûåc hiïån möåt phûúng thûác bao göìm
caác quy
trònh vaâ caác thuêåt toaán. Method coá taác àöång àïën kïët quaã cuãa phûúng
thûác.
_ Parameter (tham söë) : Parameter laâ tham söë coá thïí thay àöíi, gúãi vaâ
nhêån. Möåt
Parameter coá thïí bao göìm tïn, kiïíu dûä liïåu vaâ quan hïå vúái caác thaânh
töë khaác
giao tiïëp vúái noá. Parameter àûúåc sûã duång trong mö taã phûúng thûác
(Operation),
mêîu (Templates)...
_ Constraint (raâng buöåc) : Constraint laâ caác àiïìu kiïån vïì mùåt ngûä nghôa
hay caác
giúái haån cho möåt thaânh töë, coá thïí diïîn taã úã daång vùn baãn hay möåt
biïíu thûác logic
cuãa möåt ngön ngûä mö taã raâng buöåc. Ngoaâi viïåc àõnh nghôa thaânh töë raâng
buöåc
Constraint, UML coân àõnh nghôa möåt ngön ngûä cho mö taã raâng buöåc laâ ngön
ngûä
raâng buöåc àöëi tûúång (Object Constraint Language). Giûäa caác Classifier coá
quan
hïå töíng quaát hoáa. Do Classifier laâ thaânh töë trûâu tûúång nïn têët caã
caác thaânh töë
thûâa kïë Classifier àïìu coá tñnh chêët naây.
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 32
2.12. Mö hònh Relationships (caác quan hïå)
Mö hònh Relationships àõnh nghôa caác quan hïå giûäa caác thaânh töë UML bao
göìm hai loaåi quan hïå cú baãn laâ quan hïå töíng quaát hoáa (generalization),
quan hïå
kïët húåp (association).
Quan hïå töíng quaát hoáa (generalization) laâ sûå liïn hïå giûäa hai thaânh töë
àùåc biïåt
hún vaâ töíng quaát hún. Àõnh nghôa quan hïå kïët húåp (Association) vaâ
Classifier
tham gia vaâo möëi kïët húåp (Ass ociationEnd).
Hònh 2-10 Möâ hònh Rellatiionshiips
2.12.1. Quan hïå töíng quaát hoáa (generalization)
Möåt quan hïå töíng quaát hoáa àûúåc àõnh nghôa laâ sûå liïn hïå giûäa hai
thaânh töë.
Thaânh töë àùåc biïåt hún goåi laâ thaânh töë con (child) vaâ thaânh töë töíng
quaát hún laâ
thaânh töë cha (parent). Thaânh töë con tham gia vaâo quan hïå töíng quaát hoáa.
Thaânh
töë cha tham gia vaâo quan hïå töíng quaát hoáa.
Hònh 2-11 Àõnh nghôa quan hïå töíng quaát hoáa trong möâ hònh Rellatiionshiips