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

7,344
671
171
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
51
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 33
2.13. Quan hïå kïët húåp (Association)
Quan hïå kïët húåp mö taã nhiïìu Classifier tham gia vaâo nhiïìu möëi kïët húåp
(AssociationEnd). Association thûúâng gùåp laâ quan hïå kïët húåp coá hai möëi kïët húåp
(AssociationEnd). Möîi möëi kïët húåp gùæn vúái möåt Classifier. Quan hïå kïët húåp
taã sûå liïn hïå vïì ngûä nghôa giûäa caác Classifier. Möåt quan hïå kïët húåp coá töëi thiïíu
hai möëi kïët húåp (AssociationEnd). Möîi möëi kïët húåp coá liïn hïå vúái möåt thaânh töë
Class ifier.
nh 2-12 Àõnh nghôa quan hïå kïëát húåp trong möâ hònh Rellatiionshiips
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 34
2.14. Lúáp kïët húåp (AssociationClass)
Thûâa kïë tûâ lúáp vaâ quan hïå kïët húåp, lúáp kïët húåp vûâa coá tñnh chêët cuãa möåt
lúáp vûâa coá tñnh chêët cuãa möåt quan hïå kïët húåp. Lúáp hïët húåp nöëi möåt têåp caác
classifier vúái nhau vaâ coá caác thuöåc tñnh riïng àùåc trûng cho quan hïå giûäa caác
classifier naây. Cöng viïåc -tiïìn lûúng Nhên sûå 1..* Cöng ty 0..* Cöng viïåc laâ möåt
associationclass. Thuöåc tñnh tiïìn lûúng àùåc trûng cho möëi quan hïå giûäa nhên sûå
vaâ cöng ty.
nh 2-13 Vñ duå lúáp kïëát húåp
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä 51 http://www.ebooks.vdcmedia.com Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 33 2.13. Quan hïå kïët húåp (Association) Quan hïå kïët húåp mö taã nhiïìu Classifier tham gia vaâo nhiïìu möëi kïët húåp (AssociationEnd). Association thûúâng gùåp laâ quan hïå kïët húåp coá hai möëi kïët húåp (AssociationEnd). Möîi möëi kïët húåp gùæn vúái möåt Classifier. Quan hïå kïët húåp mö taã sûå liïn hïå vïì ngûä nghôa giûäa caác Classifier. Möåt quan hïå kïët húåp coá töëi thiïíu hai möëi kïët húåp (AssociationEnd). Möîi möëi kïët húåp coá liïn hïå vúái möåt thaânh töë Class ifier. Hònh 2-12 Àõnh nghôa quan hïå kïëát húåp trong möâ hònh Rellatiionshiips Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 34 2.14. Lúáp kïët húåp (AssociationClass) Thûâa kïë tûâ lúáp vaâ quan hïå kïët húåp, lúáp kïët húåp vûâa coá tñnh chêët cuãa möåt lúáp vûâa coá tñnh chêët cuãa möåt quan hïå kïët húåp. Lúáp hïët húåp nöëi möåt têåp caác classifier vúái nhau vaâ coá caác thuöåc tñnh riïng àùåc trûng cho quan hïå giûäa caác classifier naây. Cöng viïåc -tiïìn lûúng Nhên sûå 1..* Cöng ty 0..* Cöng viïåc laâ möåt associationclass. Thuöåc tñnh tiïìn lûúng àùåc trûng cho möëi quan hïå giûäa nhên sûå vaâ cöng ty. Hònh 2-13 Vñ duå lúáp kïëát húåp
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
52
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 35
2.15. Mö hònh Classifiers (caác àùåc biïåt hoáa cuãa classifiers)
Mö hònh Classifiers mö taã caác àùåc biïåt hoáa cuãa Classifier bao göìm caác
thaânh töë lúáp (Class), giao diïån (Interface), kiïìu dûä liïåu (DataType), nuát (Node)
vaâ thaânh phêìn (Component) Component bao göìm nhiïìu thaânh ModelElement.
Do thaânh töë trûâu tûúång bêåc cao do Component cuäng chûáa caác àùåc ho a cuãa
ModelElement bao göìm thaânh töë àaáng quan têm laâ vaâ Node bao nhiïìu
Component. laâ caác nuát xûã Component laâ thaânh àoáng goái xûã lyá vaâ cêëp caác dõch
nh 2-14 Caác lúáp àùåc biïåt cuãa Cllassiifiiers
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 36
2.16. Class (lúáp)
Class laâ têåp húåp caác àöëi tûúång coá cuâng caác thuöåc tñnh, haânh àöång vaâ ngûä
nghôa. Möåt Class coá thïí laâ trûâu tûúång (abstract)nghôa laâ khöng coá thïí hiïån (àöëi
tûúång)naâo àûúåc taåo ra trûåc tiïëp tûâ noá. Class laâ thaânh töë cuå thïí coá biïíu diïîn kyá
hiïåu trïn UML model. Laâ àùåc biïåt hoáa cuãa Classifier, Class bao göìm caác thuöåc
tñnh (Attribute), phûúng thûác (Operation) vaâ Method. Giûäa caác Class coá quan hïå
töíng quaát hoáa, quan hïå kïët húåp.
Kïë toaán viïn
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä 52 http://www.ebooks.vdcmedia.com Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 35 2.15. Mö hònh Classifiers (caác àùåc biïåt hoáa cuãa classifiers) Mö hònh Classifiers mö taã caác àùåc biïåt hoáa cuãa Classifier bao göìm caác thaânh töë lúáp (Class), giao diïån (Interface), kiïìu dûä liïåu (DataType), nuát (Node) vaâ thaânh phêìn (Component) Component bao göìm nhiïìu thaânh ModelElement. Do thaânh töë trûâu tûúång bêåc cao do Component cuäng chûáa caác àùåc ho a cuãa ModelElement bao göìm thaânh töë àaáng quan têm laâ vaâ Node bao nhiïìu Component. laâ caác nuát xûã Component laâ thaânh àoáng goái xûã lyá vaâ cêëp caác dõch Hònh 2-14 Caác lúáp àùåc biïåt cuãa Cllassiifiiers Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 36 2.16. Class (lúáp) Class laâ têåp húåp caác àöëi tûúång coá cuâng caác thuöåc tñnh, haânh àöång vaâ ngûä nghôa. Möåt Class coá thïí laâ trûâu tûúång (abstract)nghôa laâ khöng coá thïí hiïån (àöëi tûúång)naâo àûúåc taåo ra trûåc tiïëp tûâ noá. Class laâ thaânh töë cuå thïí coá biïíu diïîn kyá hiïåu trïn UML model. Laâ àùåc biïåt hoáa cuãa Classifier, Class bao göìm caác thuöåc tñnh (Attribute), phûúng thûác (Operation) vaâ Method. Giûäa caác Class coá quan hïå töíng quaát hoáa, quan hïå kïët húåp. Kïë toaán viïn
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
53
http://www.ebooks.vdcmedia.com
Thû kyá
Phoâng ban
Nhên viïn
-Tïn nhên viïn
Lêëy thöng tin nhên viïn()
Cöng viïåc thûåc hiïån trûåc thuöåc
Nhên viïn bao göìm hai àùåc biïåt hoáa laâ kiïím toaán viïn vaâ thû kyá. Möîi nhên viïn
thûåc hiïån caác cöng viïåc vaâ thuöåc möåt phoâng ban. töíng quaát hoáa (generalization)
quan hïå kïët húåp (association) thuöåc tñnh phûúng thûác
Hònh 2-15 Vñ duå vïì lúáp (Cllass) vaâ quan hïåä giûäa caác lúáp
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 37
2.17. Interface (giao diïån)
Iterface laâ têåp caác phûúng thûác (operation) cuãa möåt Classifier. öîi Interface
cung cêëp möåt dõch vuå cuãa Classifier bao göìm möåt nhoám caác operation coá quan
hïå vúái Interface àoá. Möîi Classifier coá thïí cung cêëp nhiïìu dõch vuå khaác nhau qua
caác Interface khaác nhau.
2.17.1. DataType (kiïíu dûä liïåu)
DataType mö taã kiïíu dûä liïåu cuãa ngûúâi sûã duång. UML khöng àõnh nghôa
caác kiïíu dûä liïåu cuå thïí. Viïåc àõnh nghôa caác kiïíu dûä liïåu cuãa ngûúâi sûã duång tuây
thuöåc vaâo möi trûúâng phaát triïín phêìn mïìm nïn thûúâng caác CASE tool àaãm nhêån
chûác nùng àõnh nghôa caác kiïíu dûä liïåu naây.
2.17.2. Node (nuát)
Node laâ thaânh töë àaåi diïån cho möåt taâi nguyïn vêåt lyá coá böå nhúá vaâ khaã
nùng xûã lyá tñnh toaán. Caác node thûúâng àaåi diïån cho caác maáy tñnh vaâ mö taã viïåc
phên böë caác maáy tñnh trïn maång.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä 53 http://www.ebooks.vdcmedia.com Thû kyá Phoâng ban Nhên viïn -Tïn nhên viïn Lêëy thöng tin nhên viïn() Cöng viïåc thûåc hiïån trûåc thuöåc Nhên viïn bao göìm hai àùåc biïåt hoáa laâ kiïím toaán viïn vaâ thû kyá. Möîi nhên viïn thûåc hiïån caác cöng viïåc vaâ thuöåc möåt phoâng ban. töíng quaát hoáa (generalization) quan hïå kïët húåp (association) thuöåc tñnh phûúng thûác Hònh 2-15 Vñ duå vïì lúáp (Cllass) vaâ quan hïåä giûäa caác lúáp Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 37 2.17. Interface (giao diïån) Iterface laâ têåp caác phûúng thûác (operation) cuãa möåt Classifier. öîi Interface cung cêëp möåt dõch vuå cuãa Classifier bao göìm möåt nhoám caác operation coá quan hïå vúái Interface àoá. Möîi Classifier coá thïí cung cêëp nhiïìu dõch vuå khaác nhau qua caác Interface khaác nhau. 2.17.1. DataType (kiïíu dûä liïåu) DataType mö taã kiïíu dûä liïåu cuãa ngûúâi sûã duång. UML khöng àõnh nghôa caác kiïíu dûä liïåu cuå thïí. Viïåc àõnh nghôa caác kiïíu dûä liïåu cuãa ngûúâi sûã duång tuây thuöåc vaâo möi trûúâng phaát triïín phêìn mïìm nïn thûúâng caác CASE tool àaãm nhêån chûác nùng àõnh nghôa caác kiïíu dûä liïåu naây. 2.17.2. Node (nuát) Node laâ thaânh töë àaåi diïån cho möåt taâi nguyïn vêåt lyá coá böå nhúá vaâ khaã nùng xûã lyá tñnh toaán. Caác node thûúâng àaåi diïån cho caác maáy tñnh vaâ mö taã viïåc phên böë caác maáy tñnh trïn maång.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
54
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 38
2.38. Component (thaânh phêìn)
Component laâ möåt phêìn riïng biïåt úã mûác vêåt lyá cuãa hïå thöëng.
Component àoáng goái caác phûúng thûác xûã lyá vaâ cung cêëp têåp caác dõch vuå
xûã lyá naây qua möåt têåp giao diïån (interface)khaác nhau. Möîi giao diïån bao göìm
nhiïìu phûúng thûác khaác nhau àïí phuåc vuå cho möåt muåc àñch cuå thïí. Caác phûúng
thûác coá thïí laâ caác àoaån maä thi haânh àûúåc, caác script hay lïånh. Möåt component
thûúâng cung cêëp nhiïìu loaåi dõch vuå khaác nhau liïn quan àïën möåt àöëi tûúång cuå
thïí.
DBinding
DBindingCollection
DBindingCollectionEvents
MSBind laâ möåt component nöëi möåt control cuãa Window vúái möåt recordset.
MSBind cung cêëp nhiïìu dõch vuå, trong àoá dõch vuå gùæn control vaâo recordset laâ
DBinding.
Giao diïån (interface) component MSBind <<COM>
Hònh 2-16 Vñ duå vïì thaânh phêìn (component) vaâ giao diïån (iinterface)
2.38.1. Mö hònh Dependencies (caác quan hïå phuå thuöåc)
Dependency mö taã sûå phuå thuöåc chûác nùng giûäa hai thaânh phêìn cho vaâ
thaânh phêìn nhêån. Thaânh phêìn cho àoáng vai troâ cung cêëp dõch vuå cho thaânh phêìn
nhêån. Dependency àõnh nghôa phuå thuöåc giûäa hai thaânh töë ModelElement nïn
hêìu nhû têët caã caác thaânh töë cuå thïí thûâa kïë ModelElement àïìu coá thïí coá quan hïå
phuå thuöåc.
Quan hïå phuå thuöåc coá caác àùåc biïåt hoáa laâ gùæn (Binding), trûâu tûúång hoáa
(Abstraction), sûã duång (Usage) vaâ cho pheáp (Permisson). Quan hïå phuå thuöåc laâ
quan hïå giûäa thaânh töë cho vaâ thaânh töë nhêån, cuå thïí laâ giûäa hai ModelEleme Caác
àùåc biïåt hoáa cuãa quan hïå phuå thuöåc
Hònh 2-17 Möâ hònh Dependenciies (caác quan hïåä phuå thuöåc)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä 54 http://www.ebooks.vdcmedia.com Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 38 2.38. Component (thaânh phêìn) Component laâ möåt phêìn riïng biïåt úã mûác vêåt lyá cuãa hïå thöëng. Component àoáng goái caác phûúng thûác xûã lyá vaâ cung cêëp têåp caác dõch vuå xûã lyá naây qua möåt têåp giao diïån (interface)khaác nhau. Möîi giao diïån bao göìm nhiïìu phûúng thûác khaác nhau àïí phuåc vuå cho möåt muåc àñch cuå thïí. Caác phûúng thûác coá thïí laâ caác àoaån maä thi haânh àûúåc, caác script hay lïånh. Möåt component thûúâng cung cêëp nhiïìu loaåi dõch vuå khaác nhau liïn quan àïën möåt àöëi tûúång cuå thïí. DBinding DBindingCollection DBindingCollectionEvents MSBind laâ möåt component nöëi möåt control cuãa Window vúái möåt recordset. MSBind cung cêëp nhiïìu dõch vuå, trong àoá dõch vuå gùæn control vaâo recordset laâ DBinding. Giao diïån (interface) component MSBind <<COM> Hònh 2-16 Vñ duå vïì thaânh phêìn (component) vaâ giao diïån (iinterface) 2.38.1. Mö hònh Dependencies (caác quan hïå phuå thuöåc) Dependency mö taã sûå phuå thuöåc chûác nùng giûäa hai thaânh phêìn cho vaâ thaânh phêìn nhêån. Thaânh phêìn cho àoáng vai troâ cung cêëp dõch vuå cho thaânh phêìn nhêån. Dependency àõnh nghôa phuå thuöåc giûäa hai thaânh töë ModelElement nïn hêìu nhû têët caã caác thaânh töë cuå thïí thûâa kïë ModelElement àïìu coá thïí coá quan hïå phuå thuöåc. Quan hïå phuå thuöåc coá caác àùåc biïåt hoáa laâ gùæn (Binding), trûâu tûúång hoáa (Abstraction), sûã duång (Usage) vaâ cho pheáp (Permisson). Quan hïå phuå thuöåc laâ quan hïå giûäa thaânh töë cho vaâ thaânh töë nhêån, cuå thïí laâ giûäa hai ModelEleme Caác àùåc biïåt hoáa cuãa quan hïå phuå thuöåc Hònh 2-17 Möâ hònh Dependenciies (caác quan hïåä phuå thuöåc)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
55
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 39
2.39. Binding (gùæn)
Binding àõnh nghôa quan hïå giûäa möåt mêîu (Template) laâ thaânh phêìn cho
cuãa Dependency vúái möåt thaânh phêìn àûúåc taåo tûâ Template àoá laâ thaânh phêìn
nhêån cuãa Dependency. Binding bao göìm caác àöëi söë phuâ húåp vúái caác tham söë cuãa
Template.
2.39.1. Abstraction (trûâu tûúång hoáa)
Abstraction mö taã möëi liïn hïå giûäa caác thaânh töë úã caác mûác trûâu tûúång hoáa khaác
nhau. Vñ duå nhû chuyïín möåt khaái niïåm úã mûác phên tñch sang mûác thiïët kïë bùçng
quan hïå Abstraction.
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 40
2.40. Usage (sûã duång)
Usage laâ quan hïå giûäa möåt thaânh töë ModelElement coá sûã duång phûúng
thûác cuãa möåt thaânh töë ModelElement khaác.
2.40.1. Permisson (cho pheáp)
Permisson cung cêëp quyïìn haån cho möåt thaânh töë ngoaâi khöng gian caác
thaânh töë (Namespace) tham chiïëu caác thaânh töë khaác trong Namespace. Thaânh töë
nhêån laâ möåt ModelElement thaânh töë cho bùæt buöåc laâ möåt Namespace.
2.41.2. Mö hònh AuxiliaryElements (caác thaânh töë böí sung)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä 55 http://www.ebooks.vdcmedia.com Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 39 2.39. Binding (gùæn) Binding àõnh nghôa quan hïå giûäa möåt mêîu (Template) laâ thaânh phêìn cho cuãa Dependency vúái möåt thaânh phêìn àûúåc taåo tûâ Template àoá laâ thaânh phêìn nhêån cuãa Dependency. Binding bao göìm caác àöëi söë phuâ húåp vúái caác tham söë cuãa Template. 2.39.1. Abstraction (trûâu tûúång hoáa) Abstraction mö taã möëi liïn hïå giûäa caác thaânh töë úã caác mûác trûâu tûúång hoáa khaác nhau. Vñ duå nhû chuyïín möåt khaái niïåm úã mûác phên tñch sang mûác thiïët kïë bùçng quan hïå Abstraction. Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 40 2.40. Usage (sûã duång) Usage laâ quan hïå giûäa möåt thaânh töë ModelElement coá sûã duång phûúng thûác cuãa möåt thaânh töë ModelElement khaác. 2.40.1. Permisson (cho pheáp) Permisson cung cêëp quyïìn haån cho möåt thaânh töë ngoaâi khöng gian caác thaânh töë (Namespace) tham chiïëu caác thaânh töë khaác trong Namespace. Thaânh töë nhêån laâ möåt ModelElement thaânh töë cho bùæt buöåc laâ möåt Namespace. 2.41.2. Mö hònh AuxiliaryElements (caác thaânh töë böí sung)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
56
http://www.ebooks.vdcmedia.com
Möåt ModelElement coá thïí quan hïå vúái caác ModelElement khaác qua viïåc
sûã duång caác ModelElement khaác laâm tham söë. Khi àoá ModelElement naây àûúåc
go õ laâ möåt Template. Möåt tham söë mêîu (TemplateParameter) liïn hïå vúái möåt
ModelElement theo yá nghôa laâ Template Parameter naây tham chiïëu àïën giaá trõ coá
kiïíu laâ ModelElement. Thaânh töë biïíu diïîn chûáa thöng tin cho biïíu diïîn trûåc qua
n cuãa möåt thaânh töë ModelElement.
Hònh 2-18 Möâ hònh AuxiilliiaryEllements (caác thaânh phêìn böí sung)
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 41
2.41. TemplateParameter (tham söë cho mêîu)
Tham söë cho mêîu laâ tham söë cho caác thaânh töë Template. Vñ duå nhû trong
möåt möi trûúâng ngön ngûä lêåp trònh höî trúå Template, ta coá thïí xêy dûång lúáp múái
bùçng caách cung cêëp caác lúáp tham söë cho Template. TemplateParameter àõnh
nghôa quan hïå giûäa möåt thaânh töë ModelElement vúái caác tham söë (caác tham söë
naây laâ caác thaânh töë ModelElement ). ModelElement laâ möåt Template khi sûã
duång ñt nhêët möåt TemplateParameter.
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 42
2.42. PresentationElement (thaânh töë biïíu diïîn trûåc quan)
PresentationElement mö taã thöng tin cho viïåc biïíu diïîn caác
ModelElement. UML khöng àõnh nghôa cuå thïí caác thöng tin naây maâ àïí cho caác
CASE tool tûå do àõnh nghôa.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä 56 http://www.ebooks.vdcmedia.com Möåt ModelElement coá thïí quan hïå vúái caác ModelElement khaác qua viïåc sûã duång caác ModelElement khaác laâm tham söë. Khi àoá ModelElement naây àûúåc go õ laâ möåt Template. Möåt tham söë mêîu (TemplateParameter) liïn hïå vúái möåt ModelElement theo yá nghôa laâ Template Parameter naây tham chiïëu àïën giaá trõ coá kiïíu laâ ModelElement. Thaânh töë biïíu diïîn chûáa thöng tin cho biïíu diïîn trûåc qua n cuãa möåt thaânh töë ModelElement. Hònh 2-18 Möâ hònh AuxiilliiaryEllements (caác thaânh phêìn böí sung) Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 41 2.41. TemplateParameter (tham söë cho mêîu) Tham söë cho mêîu laâ tham söë cho caác thaânh töë Template. Vñ duå nhû trong möåt möi trûúâng ngön ngûä lêåp trònh höî trúå Template, ta coá thïí xêy dûång lúáp múái bùçng caách cung cêëp caác lúáp tham söë cho Template. TemplateParameter àõnh nghôa quan hïå giûäa möåt thaânh töë ModelElement vúái caác tham söë (caác tham söë naây laâ caác thaânh töë ModelElement ). ModelElement laâ möåt Template khi sûã duång ñt nhêët möåt TemplateParameter. Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 42 2.42. PresentationElement (thaânh töë biïíu diïîn trûåc quan) PresentationElement mö taã thöng tin cho viïåc biïíu diïîn caác ModelElement. UML khöng àõnh nghôa cuå thïí caác thöng tin naây maâ àïí cho caác CASE tool tûå do àõnh nghôa.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
57
http://www.ebooks.vdcmedia.com
2.42.1. Package Extension Mechanisms (goái cú chïë múã röång)
Khaái quaát
Extension Mechanisms àõnh nghôa caách thûác múã röång ngön ngûä UML
bùçng caách àûa ra cú chïë böí sung caác thaânh töë vúái ngûä nghôa múái. Package naây
àõnh nghôa Stereotypes, Constraint (raâng buöåc) vaâ Tagged Value (theã giaá trõ) laâ
ba cú chïë múã röång cuãa UML. UML cung cêëp cú chïë múã röång àïí thïm caác thaânh
töë múái cho caác lônh vûåc àùåc biïåt maâ UML chuêín khöng àõnh nghôa. Caác lônh vûåc
cêìn caác khaái niïåm múái coá thïí tûå àõnh nghôa caác khaái niïåm naây qua cú chïë múã
röång UML. Viïåc múã röång naây khöng àún giaãn laâ gùæn tïn Stereotypes vaâo thaânh
töë vaâ quy àõnh ngûä nghôa múái do àöi khi coân coá caác raâng buöåc ngûä nghôa trong
thïë giúái thûåc. Do àoá caác stereotype thûúâng chûáa caác raâng buöåc vaâ caác giaá trõ theã.
Möîi StereoType quy àõnh loaåi thaânh töë ModelElement maâ stereotype naây coá thïí
taác àöång. Thaânh töë àûúåc taác àöång naây laâ caác thaânh töë trong UML metamodel vñ
duå nhû Class, Association, Component... Khi gùæn stereotype vaâo caác thaânh töë
naây thò àûúåc thaânh töë múái thûâa kïë thaânh töë cuä vaâ coá tïn cuãa stereotype. Vñ duå
nhû Component coá caác stereotype laâ “document”,”executable”,”table”. Caác
stereotype naây baãn chêët cuäng lcomponent nhûng “document” laâ möåt thaânh
phêìn (component) chûáa caác sûu liïåu, “executable” laâ thaânh phêìn chûáa caác dõch
vuå xûã lyá coân “table” chûáa caác baãng trong möåt cú súã dûä liïåu.
Stereotype bao göìm raâng buöåc (Constraint), caác theã giaá trõ (Tagged Value)
taác àöång lïn ModelElement vaâ cho kïët quaã tûúng tûå nhû àêåc biïåt hoáa. Loaåi thaânh
töë maâ Stereotype coá thïí aáp duång àûúåc xaác àõnh qua thuöåc tñnh baseClass, vñ duå
nhû Class, Association... noái chung laâ tïn caác thaânh töë trong UML
nh 2-19 Mönh cú chïëá múã röång
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 43
2.43. Constraint (raâng buöåc)
Laâ caác raâng buöåc ngûä nghôa àûúåc gùæn vúái möåt thaânh töë cêìn múã röång àïí aáp
àùåt caác àiïìu kiïån lïn thaânh töë naây vaâ coá taác duång thay àöíi hay giúái haån ngûä
nghôa. Thaânh töë múã röång phaãi thoãa maän caác raâng buöåc naây àïí àaãm baão sûå chñnh
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä 57 http://www.ebooks.vdcmedia.com 2.42.1. Package Extension Mechanisms (goái cú chïë múã röång) Khaái quaát Extension Mechanisms àõnh nghôa caách thûác múã röång ngön ngûä UML bùçng caách àûa ra cú chïë böí sung caác thaânh töë vúái ngûä nghôa múái. Package naây àõnh nghôa Stereotypes, Constraint (raâng buöåc) vaâ Tagged Value (theã giaá trõ) laâ ba cú chïë múã röång cuãa UML. UML cung cêëp cú chïë múã röång àïí thïm caác thaânh töë múái cho caác lônh vûåc àùåc biïåt maâ UML chuêín khöng àõnh nghôa. Caác lônh vûåc cêìn caác khaái niïåm múái coá thïí tûå àõnh nghôa caác khaái niïåm naây qua cú chïë múã röång UML. Viïåc múã röång naây khöng àún giaãn laâ gùæn tïn Stereotypes vaâo thaânh töë vaâ quy àõnh ngûä nghôa múái do àöi khi coân coá caác raâng buöåc ngûä nghôa trong thïë giúái thûåc. Do àoá caác stereotype thûúâng chûáa caác raâng buöåc vaâ caác giaá trõ theã. Möîi StereoType quy àõnh loaåi thaânh töë ModelElement maâ stereotype naây coá thïí taác àöång. Thaânh töë àûúåc taác àöång naây laâ caác thaânh töë trong UML metamodel vñ duå nhû Class, Association, Component... Khi gùæn stereotype vaâo caác thaânh töë naây thò àûúåc thaânh töë múái thûâa kïë thaânh töë cuä vaâ coá tïn cuãa stereotype. Vñ duå nhû Component coá caác stereotype laâ “document”,”executable”,”table”. Caác stereotype naây baãn chêët cuäng laâ component nhûng “document” laâ möåt thaânh phêìn (component) chûáa caác sûu liïåu, “executable” laâ thaânh phêìn chûáa caác dõch vuå xûã lyá coân “table” chûáa caác baãng trong möåt cú súã dûä liïåu. Stereotype bao göìm raâng buöåc (Constraint), caác theã giaá trõ (Tagged Value) taác àöång lïn ModelElement vaâ cho kïët quaã tûúng tûå nhû àêåc biïåt hoáa. Loaåi thaânh töë maâ Stereotype coá thïí aáp duång àûúåc xaác àõnh qua thuöåc tñnh baseClass, vñ duå nhû Class, Association... noái chung laâ tïn caác thaânh töë trong UML Hònh 2-19 Mö hònh cú chïëá múã röång Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 43 2.43. Constraint (raâng buöåc) Laâ caác raâng buöåc ngûä nghôa àûúåc gùæn vúái möåt thaânh töë cêìn múã röång àïí aáp àùåt caác àiïìu kiïån lïn thaânh töë naây vaâ coá taác duång thay àöíi hay giúái haån ngûä nghôa. Thaânh töë múã röång phaãi thoãa maän caác raâng buöåc naây àïí àaãm baão sûå chñnh
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
58
http://www.ebooks.vdcmedia.com
xaác vïì ngûä nghôa. Constraint cuäng coá thïí àûúåc gùæn vúái stereotypes àïí taác àöång
lïn caác thaânh töë coá quan hïå vúái stereotypes naây.
Laâ cú chïë phên loaåi möåt thaânh töë theo quan hïå kïët húåp cuãa thaânh töë naây
vúái caác stereotype. Möîi stereotype gùæn möåt thaânh töë seä cho möåt thaânh töë múái
thûâa kïë thaânh töë cuä ngoaâi ra coá thïm caác thöng riïng. Stereotype chñnh laâ sûå
khaác nhau vïì ngûä nghôa cuãa hai thaânh töëù cuâng cêëu truác. Vñ duå nhû trong quy
trònh phaát triïín phêìn mïìm Rational Unified Process, caác stereotype cho thaânh töë
Class àûúåc àõnh nghôa thïm trong àoá coá stereotype “boundary”. Stereotype naây
laâ möåt Class àoáng vai troâ giao tiïëp vúái caác tûúng taác bïn ngoaâi hïå thöëng. Muåc
àñch cuãa múã röång naây laâ phên loaåi caác Class theo chûác nùng phuåc vuå cho quaá
trònh phên tñch.
Thiïët kïë giao diïån nguúâi sûã duång: Giao diïån ngûúâi sûã duång phên tñch Class vúái
stereotype laâ “boundary”. Class chuêín cuãa UML.
Hòònh 2-20 Vñ duå vïì stereotype
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 44
2.44. Tagged Value (theã giaá trõ)
Laâ caác thuöåc tñnh àñnh keâm cho möåt thaânh töë múã röång. Tagged Value coá
thïí chûáa nhûäng thöng tin bêët kyâ cêìn thiïët böí sung cho möåt thaânh töë múái.
2.44.1. Caác kiïíu dûä liïåu trong UML metamodel (Data Types)
Khaái quaát
DataTypes àõnh nghôa caác kiïíu dûä kiïåu duâng riïng trong UML metamodel
nghôa laâ thuöåc tñnh cuãa caác thaânh töë trong UML metamodel coá caác kiïíu dûä liïåu
trong Data Types. Data Types cêìn thiïët cho sûå tham khaão sêu hún vïì caác thuöåc
tñnh vaâ yá nghôa möîi thuöåc tñnh cuãa möåt thaânh töë trong UML metamodel. Data
Types khöng phaãi laâ kiïíu dûä liïåu cuãa ngûúâi sûã duång. Kiïíu dûä liïåu cuãa ngûúâi sûã
duång UML àûúåc àõnh nghôa búãi DataType laâ àùåc biïåt hoáa cuãa Classifiers trong
Core. Data Types khöng àõnh nghôa cuá phaáp naâo cho ngûúâi sûã duång.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä 58 http://www.ebooks.vdcmedia.com xaác vïì ngûä nghôa. Constraint cuäng coá thïí àûúåc gùæn vúái stereotypes àïí taác àöång lïn caác thaânh töë coá quan hïå vúái stereotypes naây. Laâ cú chïë phên loaåi möåt thaânh töë theo quan hïå kïët húåp cuãa thaânh töë naây vúái caác stereotype. Möîi stereotype gùæn möåt thaânh töë seä cho möåt thaânh töë múái thûâa kïë thaânh töë cuä ngoaâi ra coá thïm caác thöng riïng. Stereotype chñnh laâ sûå khaác nhau vïì ngûä nghôa cuãa hai thaânh töëù cuâng cêëu truác. Vñ duå nhû trong quy trònh phaát triïín phêìn mïìm Rational Unified Process, caác stereotype cho thaânh töë Class àûúåc àõnh nghôa thïm trong àoá coá stereotype “boundary”. Stereotype naây laâ möåt Class àoáng vai troâ giao tiïëp vúái caác tûúng taác bïn ngoaâi hïå thöëng. Muåc àñch cuãa múã röång naây laâ phên loaåi caác Class theo chûác nùng phuåc vuå cho quaá trònh phên tñch. Thiïët kïë giao diïån nguúâi sûã duång: Giao diïån ngûúâi sûã duång phên tñch Class vúái stereotype laâ “boundary”. Class chuêín cuãa UML. Hòònh 2-20 Vñ duå vïì stereotype Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 44 2.44. Tagged Value (theã giaá trõ) Laâ caác thuöåc tñnh àñnh keâm cho möåt thaânh töë múã röång. Tagged Value coá thïí chûáa nhûäng thöng tin bêët kyâ cêìn thiïët böí sung cho möåt thaânh töë múái. 2.44.1. Caác kiïíu dûä liïåu trong UML metamodel (Data Types) Khaái quaát DataTypes àõnh nghôa caác kiïíu dûä kiïåu duâng riïng trong UML metamodel nghôa laâ thuöåc tñnh cuãa caác thaânh töë trong UML metamodel coá caác kiïíu dûä liïåu trong Data Types. Data Types cêìn thiïët cho sûå tham khaão sêu hún vïì caác thuöåc tñnh vaâ yá nghôa möîi thuöåc tñnh cuãa möåt thaânh töë trong UML metamodel. Data Types khöng phaãi laâ kiïíu dûä liïåu cuãa ngûúâi sûã duång. Kiïíu dûä liïåu cuãa ngûúâi sûã duång UML àûúåc àõnh nghôa búãi DataType laâ àùåc biïåt hoáa cuãa Classifiers trong Core. Data Types khöng àõnh nghôa cuá phaáp naâo cho ngûúâi sûã duång.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
59
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 45
2.45. Caác kiïíu dûä liïåu trong Data Types
- ActionExpression : biïíu thûác cho kïët quaã laâ sûå thi haânh möåt Action.
- AggregationKind : kiïíu liïåt kï bao göìm caác giaá trõ none, aggregate,
composite. Caác giaá trõ naây xaác àõnh loaåi Association.
- ArgListsExpression :biïíu thûác traã vïì möåt danh saách caác àöëi tûúång (object).
- Boolean : kiïíu liïåt kï bao göìm hai giaá trõ false vaâ true.
- BooleanExpression : biïíu thûác logic traã vïì kiïíu Boolean.
- CallConcurrencyKind : kiïíu liïåt kï bao göìm caác giaá trõ sequential, guarded,
concurrent.
- ChangeableKind : kiïíu liïåt kï quy àõnh giaá trõ möåt AttributeLink hay möåt
LinkEnd coá thïí thay àöíi bao göìm caác none, frozen vaâ addOnly.
- Enumeration : àõnh nghôa kiïíu liïåt kï.
- EnumerationLiteral : àõnh nghôa möåt giaá trõ thuöåc möåt kiïíu liïåt kï.
- Expression : biïíu thûác traã vïì möåt kiïíu thuöåc package DataType.
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 46
- Integer : kiïíu nguyïn.
- IterationExpression : chuöîi traã vïì cêëu truác kiïím soaát lùåp.
- LocationReference : võ trñ cho viïåc cheân möåt use case vaâo möåt use case khaác.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä 59 http://www.ebooks.vdcmedia.com Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 45 2.45. Caác kiïíu dûä liïåu trong Data Types - ActionExpression : biïíu thûác cho kïët quaã laâ sûå thi haânh möåt Action. - AggregationKind : kiïíu liïåt kï bao göìm caác giaá trõ none, aggregate, composite. Caác giaá trõ naây xaác àõnh loaåi Association. - ArgListsExpression :biïíu thûác traã vïì möåt danh saách caác àöëi tûúång (object). - Boolean : kiïíu liïåt kï bao göìm hai giaá trõ false vaâ true. - BooleanExpression : biïíu thûác logic traã vïì kiïíu Boolean. - CallConcurrencyKind : kiïíu liïåt kï bao göìm caác giaá trõ sequential, guarded, concurrent. - ChangeableKind : kiïíu liïåt kï quy àõnh giaá trõ möåt AttributeLink hay möåt LinkEnd coá thïí thay àöíi bao göìm caác none, frozen vaâ addOnly. - Enumeration : àõnh nghôa kiïíu liïåt kï. - EnumerationLiteral : àõnh nghôa möåt giaá trõ thuöåc möåt kiïíu liïåt kï. - Expression : biïíu thûác traã vïì möåt kiïíu thuöåc package DataType. Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 46 - Integer : kiïíu nguyïn. - IterationExpression : chuöîi traã vïì cêëu truác kiïím soaát lùåp. - LocationReference : võ trñ cho viïåc cheân möåt use case vaâo möåt use case khaác.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
60
http://www.ebooks.vdcmedia.com
- Mapping : biïíu thûác chuyïín àöíi caác ModelElement.
- MappingExpression : biïíu thûác traã vïì kiïíu Mapping.
- MessageDirectionKind : kiïíu liïåt kï bao göìm caác giaá trõ activation vaâ return.
- Muliplicity : têåp caác söë nguyïn khöng êm.
- MultiplicityRange : miïìn giaá trõ söë nguyïn khöng êm.
- Name : àõnh danh cho möåt ModelElement.
- ObjectSetExpression : biïíu thûác traã vïì danh saách caác àöëi tûúång.
- OperationDirectionKind : kiïíu liïåt kï quy àõnh möåt Operation laâ àûúåc yïu cêìu
hay àûúåc cung cêëp búãi möåt Classifier bao göìm caác giaá trõ provide vaâ require.
- ParameterDirectionKind : kiïíu liïåt kï bao göìm caác giaá trõ in, inout, out vaâ
return.
- Primitive : àõnh nghôa kiïíu dûä liïåu àún.
- ProcedureExpression : biïíu thûác traã vïì möåt Procedure.
- ProgrammingLanguageType : kiïíu dûä liïåu trong möåt ngön ngûä lêåp trònh.
- PseudostateKind : kiïíu liïåt kï bao göìm caác giaá trõ initial, deepHistory,
shallowHistory, join, fork, branch, junction vaâ final.
- ScopeKind : kiïíu liïåt kï bao göìm caác giaá trõ classifier vaâ instance.
- String : chuöîi vùn baãn.
- Structure : kiïíu dûä liïåu coá cêëu truác.
- Time : kiïíu giúâ.
- TimeExpression : biïíu thûác kiïíu Time.
- UnlimitedInteger : kiïíu nguyïn khöng giúái haån.
- Uninterpreted : kiïíu khöng xaác àõnh.
- VisibilityKind : kiïíu liïåt kï bao göìm caác giaá trõ public, protected vaâ private.
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 47
2.47. Package Behavioural Elements (goái thaânh töë haânh vi)
Behavioral Elements bao göìm caác thaânh töë cuâng vúái caác cuá phaáp cho mö
hònh hoáa haânh vi vaâ tûúng taác. BehavioralElements bao göìm nùm goái laâ
Common Behavior (haânh vi töíng quaát), Collaborations (mö hònh cöång taác), Use
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä 60 http://www.ebooks.vdcmedia.com - Mapping : biïíu thûác chuyïín àöíi caác ModelElement. - MappingExpression : biïíu thûác traã vïì kiïíu Mapping. - MessageDirectionKind : kiïíu liïåt kï bao göìm caác giaá trõ activation vaâ return. - Muliplicity : têåp caác söë nguyïn khöng êm. - MultiplicityRange : miïìn giaá trõ söë nguyïn khöng êm. - Name : àõnh danh cho möåt ModelElement. - ObjectSetExpression : biïíu thûác traã vïì danh saách caác àöëi tûúång. - OperationDirectionKind : kiïíu liïåt kï quy àõnh möåt Operation laâ àûúåc yïu cêìu hay àûúåc cung cêëp búãi möåt Classifier bao göìm caác giaá trõ provide vaâ require. - ParameterDirectionKind : kiïíu liïåt kï bao göìm caác giaá trõ in, inout, out vaâ return. - Primitive : àõnh nghôa kiïíu dûä liïåu àún. - ProcedureExpression : biïíu thûác traã vïì möåt Procedure. - ProgrammingLanguageType : kiïíu dûä liïåu trong möåt ngön ngûä lêåp trònh. - PseudostateKind : kiïíu liïåt kï bao göìm caác giaá trõ initial, deepHistory, shallowHistory, join, fork, branch, junction vaâ final. - ScopeKind : kiïíu liïåt kï bao göìm caác giaá trõ classifier vaâ instance. - String : chuöîi vùn baãn. - Structure : kiïíu dûä liïåu coá cêëu truác. - Time : kiïíu giúâ. - TimeExpression : biïíu thûác kiïíu Time. - UnlimitedInteger : kiïíu nguyïn khöng giúái haån. - Uninterpreted : kiïíu khöng xaác àõnh. - VisibilityKind : kiïíu liïåt kï bao göìm caác giaá trõ public, protected vaâ private. Chûúng 2 NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML (UML Semantic) 47 2.47. Package Behavioural Elements (goái thaânh töë haânh vi) Behavioral Elements bao göìm caác thaânh töë cuâng vúái caác cuá phaáp cho mö hònh hoáa haânh vi vaâ tûúng taác. BehavioralElements bao göìm nùm goái laâ Common Behavior (haânh vi töíng quaát), Collaborations (mö hònh cöång taác), Use