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

7,170
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.
ò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ä 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 gi
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ä 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á.
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ä 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 bn hang : Khch hng :
Hònh 2-35 Actiiviiviity Graph
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ä 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ä 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ä 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ä 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.
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.