Luận văn: Nghiên cứu ngôn ngữ UML và ứng dụng
7,462
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 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
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ä
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ä
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 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ä
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