Luận văn: Nghiên cứu ngôn ngữ UML và ứng dụng
7,493
671
171
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
71
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 62
Thaânh töë StateMachine bao göìm traång thaái (State) vaâ chuyïín traång thaái
(Transition). Traång thaái phûác (CompositeState) bao göìm nhiïìu traång thaái
àún
(State). Transition laâ sûå chuyïín traång thaái naây sang traång thaái khaác.
Traång thaái coá
thïí chûáa caác taác àöång (action) àûúåc thûåc hiïån khi vaâo traång thaái,
giûä traång thaái
hay kïët thuác traång thaái.
Hòònh 2-29 Mö hònh chñnh àõnh nghôa traång thaái vaâ sûå chuyïín traång thaái
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 63
2.63. StateVertex (àiïím traång thaái)
StateVertex laâ àiïím biïíu diïîn trûåc quan möåt traång thaái.
2.63. State (traång thaái)
State mö taã traång thaái cuãa thaânh töë (classifier, operation, use case...)
ngoaâi
ra coân mö taã möåt söë caác Action seä àûúåc thi haânh khi thaânh töë bùæt àêìu
traång thaái,
nùæm giûä traång thaái vaâ kïët thuác traång thaái cuâng möåt söë caác sûå kiïån
(Event) àûúåc
treo khöng cho taác àöång lïn thaânh töë. Veä hònh entry/ thiïët lêåp Device do/
Veä trïn
Device exit/ huãy boã Device. Möåt State cuâng vúái caác haânh àöång àûúåc thûåc
hiïån
khi bùæt àêìu, nùæm giûä vaâ kïët thuác traång thaái.
Hòònh 2-30 Vñ duå traång thaái (State)
State coá àùåc biïåt hoáa laâ FinalState. FinalState laâ traång thaái kïët
thuác.
2.63.1. PseudoState (traång thaái giaã)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
72
http://www.ebooks.vdcmedia.com
PseudoState àõnh nghôa caác loaåi State múã röång cho StateMachine.
PseudoState bao göìm caác loaåi sau
- initial : traång thaái khúãi àêìu àïí thaânh töë chuyïín sang traång thaái
mùåc àõnh.
- deepHistory : lêëy laåi State àaä àûúåc giûä trûúác àoá úã bêët cûá State con
naâo cuãa
CompositeState chûáa deepHistory.
- shallowHistory : lêëy laåi State àaä àûúåc giûä trûúác àoá úã cuâng mûác vúái
shalowHistory trong CompositeState.
- join : nhoám caác Transition tûâ nhiïìu State khaác nhau.
- fork : taách Transition thaânh nhiïìu Transition àïën caác State khaác nhau.
- junction : taách möåt Transition thaânh caác Transition coá Guard àïí phên
nhaánh
theo àiïìu kiïån.
Traång thaái mùåc àõnh
CompositeState1
CompositeState2
C1
C2 H
B1
CompositeState2
C1
C2
B1
Taåm dûâng
Möåt PseudoState loaåi shalowHistory trong CompositeState1 Nïëu sûå kiïån "Taåm
dûâng" xaãy ra lêìn àêìu vaâ vaâo luác traång thaái laâ B1, caã C1 vaâ C2 àïìu
chûa àûúåc
kñch hoaåt thò H àaåi diïån cho traång thaái mùåc àõnh laâ C2. Nïëu khöng H àaåi
diïån
cho C1 hoùåc C2 tuyâ theo traång thaái naâo àaä àûúåc kñch hoaåt gêìn nhêët.
Taåm dûâng
Tiïëp tuåc
Hònh 2-31 Vñ duå traång thaái giaã
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
73
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 64
2.64. Transition (chuyïín traång thaái)
Transition àõnh nghôa quan hïå chuyïín àöíi traång thaái giûäa möåt StateVertex
nguöìn vaâ möåt StateVertex àñch. Möåt Transition coá thïí gùæn vúái caác chùæn
(Guard).
Guard laâ biïíu thûác logic gùæn vúái möîi Transition. Khi möåt sûå kiïån taác
àöång lïn
thaânh töë gùæn vúái StateMachine, Transition seä àûúåc kñch hoaåt àïí thaânh
töë naây
chuêín bõ chuyïín traång thaái. Àöëi vúái caác Transition coá Guard thò biïíu
thûác cuãa
Guard seä àûúåc lûúång giaá. Sûå chuyïín traång thaái chó xaãy ra khi biïíu
thûác naây coá
giaá trõ laâ true, ngûúåc laåi seä bõ huãy boã.
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 65
2.65. CompositeState (traång thaái phûác)
Composite State àaåi diïån cho traång thaái phûác bao göìm nhiïìu àiïím traång
thaái (StateVertex ). Do möîi àiïím traång thaái biïíu diïîn möåt traång thaái
àún nïn
CompositeState cuäng bao göìm nhiïìu traång thaái àún. CompositeState cuäng coá
thïí
bao göìm caác CompositeState khaác.
Khúãi taåo àùng kyá hoåc phêìn.
Chêëm dûát àùng kyá hoåc phêìn
Àùng kyá hoåc phêìn
Coân chöî
Hïët chöî
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
74
http://www.ebooks.vdcmedia.com
Coân chöî
Hïët chöî
Thïm sinh viïn[
Àïëm < 10 ]
[ Àïëm = 10 ] ^Thöng baáo.Taåo thöng baáo Thïm sinh viïn / Khúãi taåo
Àïëm = 0
Phoâng àaâo taåo huãy hoåc phêìn traång thaái khúãi àêìu traång thaái kïët thuác
Möåt traång
thaái phûác bao göìm hai traång thaái àún. Nïëu söë sinh viïn àùng kyá cho hoåc
phêìn <
10 thò tiïëp tuåc cho àùng kyá. Nïëu söë sinh viïn = 10 thò thöng baáo hïët chöî
vaâ chêëm
dûát àùng kyá hoåc phêìn. Nïëu àang àùng kyá maâ phoâng àaâo taåo huãy hoåc
phêìn thò
cuäng chêëm dûát viïåc àùng kyá.
Hònh 2-32 Vñ duå vïì traång thaái phûác //gheáp
2.65.1. StateMachine
StateMachine laâ thaânh töë mö taã traång thaái vaâ sûå biïën àöíi traång thaái
qua caác
sûå kiïån cho thaânh töë gùæn vúái StateMachine. StateMachine bao göìm hai
thaânh töë
cú baãn laâ traång thaái (State) vaâ chuyïín traång thaái (Transition).
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 66
2.66. Mö hònh Events (sûå kiïån)
Event laâ caác sûå kiïån coá thïí nhêån biïët, Event bao göìm möåt têåp tham söë
Parameter). caác àùåc biïåt hoáa cuãa Events
Hònh 2-33 Mö hònh Event àõnh nghôa sûå kiïån
Event laâ caác sûå kiïån taác àöång lïn möåt ModelElement bao göìm caác àùåc
biïåt hoáa sau
- Call Event : möåt Operation àûúåc kñch hoaåt.
- ChangeEvent : möåt biïíu thûác logic chuyïín sang giaá trõ true.
- SignalEvent : möåt Signal àûúåc gûãi ài.
- TimeEvent : kïët thuác möåt giúái haån thúâi gian.
2.66.1. Package Activity Graphs (goái lûúåc àöì hoaåt àöång)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
75
http://www.ebooks.vdcmedia.com
Activity Graphs laâ àùåc biïåt hoaá tûâ StateMachine. Activity Graphs mö taã
caác thaânh töë vaâ cuá phaáp cho mö hònh hoáa haânh àöång vaâ sûå chuyïín àöíi
haânh àöång
giûäa caác thaânh töë vúái nhau àïí thûåc hiïån möåt taác vuå. Activity Graphs
têåp trung
vaâo trònh tûå vaâ àiïìu kiïån xaãy ra cuãa caác haânh àöång, sûå phên chia
haânh àöång cho
möîi thaânh töë liïn quan. caác loaåi traång thaái àùåc biïåt hoáa cuãa State
sûã duång riïng
cho ActivityGraph. ActivityGraph phên loaåi caác traång thaái (ActionState) vaâo
caác
phêìn (Parttion). Möîi Parttion àaãm nhêån möåt vai troâ riïng trong
ActivityGraph.
Hònh 2-34 Mö hònh Actiiviity Graphs àõnh nghôa thaânh töëá ActiiviityGraph
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 67
2.67. ActionState (traång thaái hoaåt àöång)
ActionState kïë thûâa SimpleState tûâ StateMachine àaåi diïån cho viïåc thi
haânh möåt haânh àöång.
2.67.1. ActivityGraph (àöì thõ hoaåt àöång)
ActivityGraph mö taã caác xûã lyá cuãa caác thaânh töë liïn quan, thaânh töë
naâo
àaãm nhêån caác xûã lyá naâo vaâ sûå chuyïín giao xûã lyá giûäa caác thaânh töë
vúái nhau.
ActivityGraph àûúåc gùæn vúái möåt classifier (bao göìm UseCase) vaâ coá thïí
àûúåc sûã
duång àïí mö hònh hoáa quy trònh nghiïåp vuå trong möåt töí chûác.
Yïu cêìu mua haâng
Thanh toaán
Nhêån haâng
Nhêån àùåt haâng
Giao haâng
ActionState Cung cêëp haâng
Partition Kho haâng
Kho haâng : Böå phêån baán hang : Khaách haâng :
Hònh 2-35 Actiiviiviity Graph
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
76
http://www.ebooks.vdcmedia.com
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 68
2.68. ObjectFlowState (traång thaái àöëi tûúång luên chuyïín)
ObjectFlowState mö taã sûå trao àöíi dûä liïåu vïì caác àöëi tûúång giûäa caác
traång
thaái hoaåt àöång trong ActivityGraph. ObjectFlowState chûáa thöng tin vïì möåt
classifier àang úã möåt traång thaái xaác àõnh vaâ àoáng vai troâ trao àöíi
thöng tin giûäa
caác ActionState.
2.68.1. Partition (vuâng)
Parttion phên chia caác State trong ActivityGraph thaânh caác nhoám vaâ
thûúâng tûúng ûáng vúái caác àún võ cêëu truác trong möåt töí chûác. Partition
coá thïí
àûúåc sûã duång àïí phên loaåi traång thaái hay caác taâi nguyïn hïå thöëng coá
liïn quan
àïën möåt nhoám caác traång thaái
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 69
2.69. Package Model Management (goái quaãn trõ mö hònh)
Model Management bao göìm caác thaânh töë coá chûác nùng têåp húåp caác thaânh
töë khaác thaânh nhoám. Caác thaânh töë àûúåc àõnh nghôa trong Model Management
coá
yá nghôa logic trong hïå thöëng àûúåc mö hònh hoáa. Chûác nùng cuãa chuáng laâ
phên
chia hïå thöëng thaânh caác phêìn con giuáp cho viïåc quaãn lyá mö hònh cuäng
nhû mö
hònh hoáa thuêån lúåi hún. Package coá thïí tham gia vaâo quan hïå töíng quaát
hoáa caác
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
77
http://www.ebooks.vdcmedia.com
àùåc biïåt hoáa cuãa package. Package chûáa caác thaânh töë vúái chó danh vaâ
têìm vûåc
cho caác thaânh töë ngoaâi package tham chiïëu.
Hòònh 2-36 Mö hònh cuãa caác thaânh töëá quaãn trõ mö hònh..
2.69.1. Elementimport
ElementImport àõnh nghôa chó danh vaâ têìm vûåc cuãa möåt ModelElement
khi àûúåc àûa vaâo möåt Package. Möåt ModelElement trong package seä coá chó
danh coá thïí khaác vúái àõnh danh cuãa ModelElement àoá.
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 70
2.70. Model (mö hònh)
Mö hònh laâ trûâu tûúång hoáa cuãa möåt hïå thöëng cho möåt muåc àñch cuå thïí.
Muåc àñch naây giuáp xaác àõnh nhûäng thaânh phêìn naâo cuãa hïå thöëng seä
àûúåc phaãn
aánh úã mö hònh, khöng phaãi têët caã caác thaânh phêìn hïå thöëng àïìu töìn
taåi trong möåt
mö hònh. Do àoá mö hònh seä thïí hiïån hïå thöëng trïn goác àöå phuâ húåp vúái
muåc àñch
naây.
2.70.1. Package (goái)
Package laâ têåp húåp logic caác thaânh töë do àoá Package khöng àoáng vai troâ
gò trong quaá trònh maä hoáa phêìn mïìm. Tuy nhiïn Package giuáp quaãn lyá mö
hònh
vúái chûác nùng chûáa caác thaânh töë vaâ caác Package con. Caác thaânh phêìn
trong möåt
Package coá têìm vûåc àûúåc xaác àõnh qua thuöåc tñnh visibility cho caác thaânh
phêìn
ngoaâi Package tham chiïëu àïën. Quan hïå “access” (laâ möåt stereotype cuãa
quan hïå
Permission)giûäa hai Package mang yá nghôa caác thaânh töë coá visibility laâ
“public”
trong Package cho coá thïí tham chiïëu búãi caác thaânh töë trong Package nhêån.
Quan hïå “import” (laâ möåt stereotype cuãa quan hïå Permission)giûäa hai
Package mang yá nghôa caác thaânh töë coá visibility laâ “public” trong Package
cho
àûúåc thïm vaâo trong Package nhêån vúái caác chó danh khaác (àïí traánh truâng
tïn
vúái chó danh cuãa caác thaânh töë coá sùén) vaâ coá thïí àûúåc tham chiïëu búãi
caác thaânh
töë coá sùén qua chó danh naây.
2.70.2. Subsystem (hïå thöëng con)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
78
http://www.ebooks.vdcmedia.com
Subsystem laâ nhoám caác thaânh töë mö taã haânh àöång cuãa möåt hïå thöëng.
Subsystem do àoá bao göìm caác phûúng thûác (Operation) vaâ cung cêëp caác giao
diïån (Interface). Caác thaânh phêìn trong Subsystem coá thïí chia laâm hai
loaåi laâ caác
thaânh phêìn mö taã haânh àöång vaâ caác thaânh phêìn thûåc thi haânh àöång.
Chûúng 2
NGÛÄ NGHÔA VAÂ CUÁ PHAÁP CAÁC THAÂNH TÖË TRONG UML
(UML Semantic) 71
2.71. Toám tùæt
Chûúng hai trònh baây nhûäng thaânh töë cú baãn vaâ cêëu truác UML, cuâng vúái
viïåc phên tñch caác goái thaânh töë cuãa ngön ngûä nhû: package nïìn taãng,
package
haânh vi, package quaãn trõ mö hònh. Möåt söë khaái niïåm vaâ cuá phaáp ngûä
phaáp khaá
trûâu tûúång, trong chûúng túái seä trònh baây nhûäng kyá hiïåu trûåc quan cuãa
caác thaânh
töë trïn trong viïåc mö hònh hoaá caác hïå thöëng thöng qua caác loaåi lûúåc
àöì.
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 72
3.1. Giúái thiïåu
Khi mö hònh hoáa möåt hïå thöëng, chuáng ta cêìn xêy dûång caác loaåi mö hònh
khaác nhau, trong UML caác thöng tin trong mö hònh thûúâng àûúåc biïíu diïîn
bùçng
caác kyá hiïåu àöì hoåa cuâng vúái caác kïët nöëi thïí hiïån möëi quan hïå giûäa
caác kyá hiïåu
naây. Têåp caác kyá hiïåu àöì hoåa vaâ caác liïn kïët giûäa chuáng duâng àïí mö
taã cho möåt
chûác nùng, thaânh phêìn hoùåc möåt thïí hiïån cuãa hïå thöëng àûúåc töí chûác
thaânh möåt
lûúåc àöì (diagram), caác lûúåc àöì seä giuáp trûåc quan hoáa caác mö hònh cuãa
hïå thöëng
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
79
http://www.ebooks.vdcmedia.com
cêìn àûúåc xêy dûång, möîi mö hònh seä àûúåc biïíu diïîn bùçng nhiïìu loaåi
lûúåc àöì vaâ
möîi loaåi lûúåc àöì coá thïí àûúåc sûã duång trong nhiïìu loaåi mö hònh khaác
nhau.
Trong chûúng naây seä trònh baây hïå thöëng caác kyá hiïåu cuãa UML, caác kyá
hiïåu naây àûúåc phên loaåi theo caác lûúåc àöì. Möîi lûúåc àöì seä coá hïå
thöëng caác kyá
hiïåu riïng vaâ cuäng coá möåt söë kyá hiïåu chung sûã duång trong nhiïìu loaåi
lûúåc àöì
khaác nhau. Trong UML àõnh nghôa chñn loaåi lûúåc àöì:
_ Lûúåc àöì Use Case (Use case diagram)
_ Lûúåc àöì lúáp (Class Diagram)
_ Lûúåc àöì àöëi tûúång (Object Diagram)
_ Lûúåc àöì tuêìn tûå (Sepuence Diagram)
_ Lûúåc àöì cöång taác (Collaboration Diagram)
_ Lûúåc àöì traång thaái (State Diagram)
_ Lûúåc àöì hoaåt àöång (Activity Diagram)
_ Lûúåc àöì thaânh phêìn (Component Diagram)
_ Lûúåc àöì triïín khai (Deployment Diagram)
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 73
3.2. Caác thaânh phêìn cú baãn cuãa lûúåc àöì
3.2.1. Àöì thõ vaâ nöåi dung (Graphs and their Contents)
Hêìu hïët caác lûúåc àöì trong UML àïìu úã daång àöì thõ, caác thöng tin àûúåc
töí
chûác dûúái daång hònh hoåc topö, khöng bõ aãnh hûúãng búãi sûå thay àöíi vïì
hònh daáng
vaâ kñch thûúác. Caác kyá hiïåu trong UML thûúâng úã daång hai chiïìu, möåt söë
laâ hònh
chiïëu cuãa caác kyá hiïåu ba chiïìu (caác khöëi lêåp phûúng), nhûng thûúâng
àûúåc biïíu
diïîn dûúái daång caác biïíu tûúång trïn bïì mùåt hai chiïìu. Coá böën loaåi kyá
hiïåu àöì hoåa
cú baãn trong hïå thöëng kyá hiïåu cuãa UML :
_ Caác biïíu tûúång (Icons)– laâ möåt hònh khöng thïí thay àöíi vïì hònh daång
cuäng nhû
kñch thûúác, Icon khöng thïí múã röång àïí chûáa nöåi dung bïn trong.
_ Caác kyá hiïåu hai chiïìu (2-d sumbols)– coá kñch cúä khaác nhau, coá thïí múã
röång àïí
chûáa caác thûá khaác nhû danh saách caác chuöîi hoùåc ngay caã caác kyá hiïåu
khaác bïn
trong, chuáng cuäng coá thïí àûúåc chia laâm nhiïìu phêìn. Loaåi kyá hiïåu naây
khi keáo
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
80
http://www.ebooks.vdcmedia.com
hoùåc xoáa seä laâm aãnh hûúãng àïën nöåi dung bïn trong cuäng nhû caác àûúâng
dêîn liïn
kïët vúái noá.
_ Caác àûúâng dêîn (Paths)- laâ möåt têåp tuêìn tûå caác àoaån thùèng, möåt
àûúâng dêîn phaãi
luön àûúåc gùæn vúái caác kyá hiïåu àöì hoåa khaác úã hai àêìu. Àûúâng dêîn coá
thïí coá caác
terminator, àoá laâ caác biïíu tûúång úã cuöëi àûúâng dêîn laâm roä nghôa cho
caác àûúâng
dêîn naây.
_ Caác chuöîi (Strings)- coá thïí töìn taåi nhû laâ möåt thaânh töë àöåc lêåp
trong caác lûúåc
àöì hoùåc laâ möåt phêìn cuãa caác thaânh töë khaác trong lûúåc àöì, hoùåc laâ
möåt nhaän gùæn
vaâo caác kyá hiïåu hay caác àûúâng dêîn.
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 74
3.3. Caác àûúâng dêîn (Drawing Paths)
Àûúâng dêîn laâ möåt têåp caác àoaån thùèng coá caác àiïím cuöëi khúáp vúái
nhau,
àêy laâ möåt àún võ hònh hoåc topö àún. Caác àoaån thùèng coá thïí laâ caác
àûúâng trûåc
giao, àûúâng xiïn hoùåc àûúâng cong. Trong möåt söë quan hïå (vñ duå nhû kïët
húåp
hoùåc töíng quaát hoáa), vaâi àûúâng dêîn cuâng loaåi coá thïí liïn kïët àïën
cuâng möåt kyá
hiïåu àún. Trong möåt söë trûúâng húåp caác àûúâng dêîn coá thïí kïët húåp laåi
hoùåc phên
nhaánh thaânh nhiïìu àûúâng nhû töí chûác cuãa möåt cêy.
3.3.1. Caác liïn kïët êín vaâ vai troâ cuãa cöng cuå
Möåt kyá hiïåu viïët trïn giêëy thò khöng thïí chûáa caác thöng tin êín, kyá
hiïåu
trïn maân hònh coá thïí chûáa caác liïn kïët àïën caác thöng tin êín khöng thïí
hiïín thõ
trong view tônh, muöën thïí hiïån caác thöng tin êín naây phaãi nhúâ àïën caác
cöng cuå höî
trúå. Caác kyá hiïåu trònh baây dûúái àêy àûúåc àõnh nghôa nhû laâ nhûäng kyá
hiïåu tônh.
3.3.2. Thöng tin nïìn (Background Information)
Caác thïí hiïån cuãa kyá hiïåu lúáp trong caác lûúåc àöì khaác nhau coá thïí
khaác
nhau, vñ duå nhû kyá hiïåu lúáp chó coá phêìn tïn lúáp hoùåc coá chûáa thïm
phêìn thuöåc
tñnh hoùåc haâm tuyâ theo yïu cêìu cuãa tûâng lûúåc àöì. Khöng phaãi têët caã
caác thöng
tin àïì úã daång kyá hiïåu àöì hoaå, möåt söë thïí hiïån töët nhêët dûúái daång
vùn baãn, UML
khöng giaã thiïët têët caã caác thöng tin trong mö hònh seä àûúåc thïí hiïån
trong lûúåc àöì,
möåt söë coá thïí chó àûúåc biïíu diïîn dûúái daång baãng.