Luận văn: Nghiên cứu ngôn ngữ UML và ứng dụng

7,695
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 àöå
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
nh 2-1 Kyá hiïåu package
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ä 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ä 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ä 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á 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á
hònh cuãa ngûúâi sûã duång.
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).
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ä 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ä 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ä 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ä 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
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