Luận văn: Nghiên cứu ngôn ngữ UML và ứng dụng
7,528
671
171
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
111
http://www.ebooks.vdcmedia.com
- ‹‹local›› - chó ra rùçng thûåc thïí tûúng ûáng laâ möåt biïën cuåc böå trong
möåt haânh vi
hay möåt haâm.
- ‹‹global›› - chó ra rùçng thûåc thïí tûúng ûáng laâ möåt biïën toaân
cuåc trong möåt haânh vi hay möåt haâm.
- ‹‹parameter›› - chó ra rùçng thûåc thïí tûúng ûáng laâ möåt tham söë trong
möåt haânh
vi hay möåt haâm.
- ‹‹self›› - chó ra rùçng àöëi tûúång coá thïí gûãi thöng àiïåp cho chñnh noá...
(caác thöng àiïåp) (caác vai troâ trong liïn kïët) (tûå liïn kïët vúái khuön
mêîu self)
Hònh 3-52 Vñ duå vïì caác khuön mêîãu trong vai troâ liïn kïëát
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 119
3.38. Thöng àiïåp vaâ caác kñch thñch
Ngûä nghôa
Trong lûúåc àöì cöng taác möåt sûå kñch thñch (stimulus) laâ möåt liïn laåc
giûäa
hai àöëi tûúång nhùçm muåc àñch truyïìn àaåt thöng tin cho nhau. Möåt stimulus
seä gêy
ra möåt haâm, hoùåc àaánh thûác möåt sûå kiïån hoùåc taåo ra hoùåc huãy möåt
àöëi tûúång.
Möåt thöng àiïåp chñnh laâ möåt àùåc taã cuãa möåt stimulus, noá àõnh roä vai
troâ cuãa àöëi
tûúång nhêån vaâ àöëi tûúång gúãi.
Kyá hiïåu
Thöng àiïåp vaâ stimulus àûúåc thïí hiïån bùçng möåt muäi tïn coá nhaän àùåt
ngay
trïn liïn kïët giûäa hai àöëi tûúång. Úû àêy caác liïn kïët (links)àoáng vai
troâ chuyïín,
thi haânh, hay phên phöëi caác kñch thñch túái caác àöëi tûúång nhêån. Muäi tïn
cuãa thöng
àiïåp chó hûúáng àïën àöëi tûúång nhêån. Möåt söë daång liïn laåc giûäa caác
àöëi tûúång Kyá
hiïåu YÁ nghôa (tûúång trûng cho) Caác thuã tuåc goåi hoùåc caác luöìng àiïìu
khiïín con.
Luöìng àiïìu khiïín nïìn. Möîi muäi tïn biïíu diïîn viïåc xuác tiïën cho thöng
àiïåp kïë
tiïëp trong chuöîi caác thöng àiïåp Möåt kñch thñch khöng àöìng böå. Thöng àiïåp
traã vïì
cuãa möåt thuã tuåc goåi naâo àoá.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
112
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 120
3.39. Cuá phaáp àùåt tïn nhaän
Àêy laâ möåt phêìn rêët quan troång trong viïåc àùåc taã caác thöng àiïåp, cuá
phaáp
chuêín cuãa caác thöng àiïåp bao göìm Predecessor guard-condition sequence-
expression return-value := message-name argument-list
- Predecessor – laâ möåt danh saách caác chó söë thûá tûå àûúåc phên caách nhau
bùçng
dêëu phêíy (,)vaâ kïët thuác bùçng dêëu (/). Cuá phaáp cuãa predecessor nhû sau
Chó söë thûá tûå luöìng ‘,’ … ‘/’
YÁ nghôa : caác thöng àiïåp coá chó söë thûá tûå trong danh saách trïn phaãi
àûúåc xûã lyá
xong thò thöng àiïåp hiïån taåi múái àûúåc gúãi ài.
- Guard condition – àûúåc viïët bùçng maä giaã hoùåc bùçng ngön ngûä lêåp trònh
tuây
thuöåc cöng cuå höî trúå thiïët kïë. Cuá phaáp ‘[‘ Mïånh àïì àiïìu kiïån ‘]’
- Sequence number – biïíu diïîn chó söë cuãa caác thöng àiïåp, caác thöng àiïåp
löìng,
caác thöng àiïåp àöìng thúâi... Cuá phaáp
[ söë / tïn ] [ recurrence] ‘: ’
YÁ nghôa : Söë chó thûá tûå cuãa thöng àiïåp. Tïn chó caác thöng
àiïåp àöìng thúâi. Vñ duå :
1 - chó thöng àiïåp àêìu tiïn 2.1, 2.2 ... chó caác thöng àiïåp löìng sau khi
xûã lyá
thöng àiïåp 2 3.1a, 3.1b laâ hai thöng àiïåp àöìng thúâi. Recurrence – biïíu
diïîn caác
hoaåt àöång lùåp hoùåc àiïìu kiïån.
Coá hai daång cuá phaáp :
‘*’ ‘[‘ Àiïìu kiïån lùåp ‘]’ – biïíu diïîn möåt àiïìu kiïån
lùåp. Vñ duå : * [ i=1..n].
‘[‘àiïìu kiïån reä nhaánh ‘]’ – xaác àõnh möåt àiïìu kiïån
reä nhaánh. Vñ duå : [ x > y ].
- Return value – giaá trõ traã vïì cuãa thöng àiïåp
- Message name - tïn thöng àiïåp
- Argument list – danh saách caác àöëi söë
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
113
http://www.ebooks.vdcmedia.com
- Möåt söë vñ duå vïì caách àùåt tïn nhaän 2: display (x,y) - thöng àiïåp àún
giaãn
1.3.1 : p:= find(name) - thöng àiïåp löìng [x<0] 4 : invert (x, color) - coá
àiïìu kiïån
A3,A4/ C3.1 * : update() -message àöìng thúâi
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 121
3.40. Lûúåc àöì traång thaái (Statechart Diagram)
(traång thaái kïët thuác) (traång thaái bùæt àêìu) (sûå chuyïín àöíi traång
thaái nöåi taåi) (sûå
kiïån) (haânh àöång) (sûå chuyïín àöíi traång thaái) (traång thaái con) (traång
thaái)
Hònh 3-53 Lûúåc àöì traång thaái(Statechart Diiagram)
Ngûä nghôa
_ Laâ möåt lûúåc àöì thïí hiïån maáy traång thaái
_ Laâ möåt lûúåc àöì thïí hiïån haânh vi cuãa caác thûåc thïí coá thïí mang
nhûäng
haânh vi àöång bùçng caách àùåc taã sûå höìi àaáp cuãa chuáng trûúác nhûäng sûå
kiïån tûâ caác thûåc thïí khaác gûãi túái.
Chûác nùng
_ Mö hònh hoáa chu trònh söëng cuãa àöëi tûúång
_ Mö hònh hoáa caác àöëi tûúång phaãn höìi (user interfaces, devices...)
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 122
3.41. Caác thaânh phêìn chñnh
3.41.1. Traång thaái (state)
Ngûä nghôa
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
114
http://www.ebooks.vdcmedia.com
Möåt traång thaái (state) laâ möåt hoaân caãnh hay möåt tònh huöëng trong quáa
trònh söëng cuãa àöëi tûúång thoãa maän möåt vaâi àiïìu kiïån naâo àoá, traång
thaái coá thïí úã
tònh traång chuã àöång tiïën haânh möåt söë hoaåt àöång hoùåc thuå àöång chúâ
àúåi möåt vaâi
sûå kiïån khaác xaãy ra. Trong lûúåc àöì traång thaái luön coá möåt traång thaái
ban àêìu
(initial state) vaâ möåt hoùåc nhiïìu traång thaái kïët thuác (final state).
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 123
Kyá hiïåu
Traång thaái ban àêìu (hay traång thaái khúãi àöång) àûúåc kyá hiïåu bùçng möåt
hònh
troân nhoã àûúåc tö àen bïn trong, traång thaái kïët thuác àûúåc kyá hiïåu bùçng
möåt hònh
troân nhoã àûúåc tö àen àûúåc bao búãi möåt àûúâng troân lúán hún úã phña ngoaâi
(xem
hònh veä3-53). Traång thaái thöng thûúâng àûúåc biïíu diïîn bùçng möåt hònh chûä
nhêåt
vúái caác goác troân. Hònh chûä nhêåt biïíu diïîn möåt traång thaái coá thïí
àûúåc chia thaânh
nhiïìu phêìn
- Phêìn chûáa tïn – chûáa tïn cuãa traång thaái.
- Phêìn chûáa caác sûå chuyïín àöíi nöåi taåi (Internal transitions) – phêìn
naây chûáa danh
saách caác haânh àöång nöåi taåi (internal actions) bïn trong möåt traång thaái.
Cuá phaáp :
action-label ‘/’ action-expression Coá möåt söë nhaän haânh àöång
(actiona-label)
chuêín àûúåc àõnh nghôa trong UML:
- entry - xaác àõnh möåt haânh àöång àêìu vaâo cuãa möåt traång thaái. Vñ duå
trûúác traång
thaái àaánh password (Typing Password – hònh 3-54) ta phaãi coá möåt haânh àöång
laâ
àõnh daång caác kyá tûå àaánh vaâo dûúái daång êín (vñ duå nhû duâng kyá tûå *
àïí thay thïë).
- exit - xaác àõnh möåt haânh àöång khi thoaát ra khoãi traång thaái. Vñ duå sau
khi thoaát
khoãi traång thaái àaánh password ta phaãi àùåt laåi chuêín thöng thûúâng cho
viïåc nhêån
möåt kyá tûå tûâ baân phñm (khöng hiïín thõ dûúái daång êín nûäa).
- do – xaác àõnh möåt haânh àöång nöåi taåi xaãy ra trong traång thaái.
- include – xaác àõnh möåt traång thaái con hoùåc möåt maáy traång
thaái con coá liïn quan.
- Trong nhûäng trûúâng húåp khaác, ngûúâi duâng coá thïí àõnh nghôa caác nhaän
sûå kiïån
theo cuá phaáp sau:
Tïn sûå kiïån ‘(‘ danh saách àöëi söë àûúåc caách nhau bùçng dêëu phêíy ’)’ ‘[‘
àiïìu kiïån
baão vïå ‘]’ ‘/’ biïíu thûác haânh àöång
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
115
http://www.ebooks.vdcmedia.com
Hònh 3-54 Traång thaái – àaánh password
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 124
3.42. Traång thaái gheáp (Composite state)
Ngûä nghôa
Möåt traång thaái gheáp bao göìm hai hay nhiïìu traång thaái con coá thïí àûúåc
chia thaânh caác nhoám tuêìn tûå hoùåc àöìng thúâi (coân goåi laâ miïìn –
region) vúái nhau.
Möåt traång thaái con cuäng coá thïí laâ möåt traång thaái gheáp chûáa caác
traång thaái con
khaác. Möîi miïìn (region) con coá thïí coá traång thaái bùæt àêìu giaã vaâ
traång thaái kïët
thuác.
Kyá hiïåu
Hònh 3-55 Traång thaái con tuêìn tûå (miïìn) (traång thaái bùæt àêìu giaã)
Hònh 3-56 Traång thaái con àöìng thúâi
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 125
3.42. Sûå kiïån (event)
Àoá laâ möåt sûå viïåc àaáng chuá yá, möåt sûå kiïån coá thïí gêy ra möåt sûå
chuyïín
àöíi traång thaái. Coá thïí coá möåt söë loaåi sau:
- Möåt àiïìu kiïån àûúåc chó àõnh trúã thaânh àuáng (miïu taã bùçng biïíu thûác
coá giaá trõ
àuáng/sai). Sûå kiïån xaãy ra khi giaá trõ biïíu thûác chuyïín tûâ sai sang
àuáng. Coân àûúåc
goåi laâ sûå kiïån chuyïín àöíi (change event). Vñ duå (xem hònh 3-57):
Connected,
busy
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
116
http://www.ebooks.vdcmedia.com
- Nhêån möåt tñnh hiïåu (signal) bïn ngoaâi tûâ möåt àöëi tûúång khaác. Coân
àûúåc goåi laâ
möåt sûå kiïån tñn hiïåu (signal event)
- Nhêån möåt lúâi goåi haânh vi tûâ möåt àöëi tûúång khaác. Coân àûúåc goåi laâ
sûå kiïån goåi
(call event).
- Khoaãng thúâi gian tröi qua sau möåt sûå kiïån àûúåc chó àõnh (thûúâng laâ
thúâi àiïím
vaâo cuãa traång thaái hiïån taåi). Vñ duå: after (5 seconds)
Möåt tñn hiïåu hoùåc möåt sûå kiïån goåi coá cuá phaáp nhû sau:
Tïn sûå kiïån ‘(‘ danh saách caác tham söë ‘)’ Vñ duå : xem hònh 3-57.
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 126
3.43. Caác chuyïín àöíi traång thaái àún giaãn (simple transitions)
Àêy laâ quan hïå giûäa hai traång thaái, àûúåc biïíu diïîn bùçng möåt cung hoùåc
möåt àûúâng dêîn coá hûúáng tûâ traång thaái àêìu àïën traång thaái cuöëi. Nhaän
cuãa möåt
simple transition coá daång nhû sau:
Event-signature ‘[guard-condition ‘]’ ‘/’ action-expression Trong àoá event-
signature coá cuá phaáp: Tïn sûå kiïån ‘(‘ danh saách tham söë ‘)’
Guard-condition
(àiïìu kiïån baão vïå) laâ möåt biïíu thûác àuáng/sai. Action-expression (biïíu
thûác haânh
àöång) àûúåc thûåc thi khi coá möåt sûå chuyïín àöíi xaãy ra.
Vñ duå: Right-mouse-down(location) [location in window] / object:=pick-
object(location); Giaãi thñch: khi phñm chuöåt phaãi àûúåc bêëm taåi võ trñ
location,
nïëu võ trñ location nùçm trong cûãa söí maân hònh thò àöëi tûúång seä àûúåc
gaán bùçng àöëi
tûúång àûúåc lêëy taåi võ trñ location (thöng qua haâm pickobject). (caác sûå
kiïån) (sûå
chuyïín àöíi traång thaái)
Hònh 3-57 Möåt vñ duå vïì lûúåc àöì traång thaái..
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
117
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 127
3.44. Caác chuyïín àöíi traång thaái phûác taåp (complex transitions)
Möåt complex transition coá thïí coá nhiïìu traång thaái àêìu vaâ nhiïìu traång
thaái
cuöëi. Noá biïíu diïîn sûå àöìng böå hoùåc phên chia caác tiïën trònh àöìng
thúâi cho caác
traång thaái con xaãy ra àöìng thúâi.
(complex transition)
Hònh 3-58 Compllex Transiitiion
Giaãi thñch: quáa trònh caâi àùåt àûúåc chia thaânh nhiïìu tiïën trònh con xûã
lyá àöìng thúâi
vúái nhau sau àoá têët caã caác tiïën trònh naây seä bõ huãy.
3.43.1. History Indicator
Möåt history indicator duâng àïí ghi nhúá caác traång thaái, noá àûúåc xaác àõnh
bùçng möåt hònh chûä nhêåt chûáa caác traång thaái vaâ möåt hònh troân coá chûä
H (history)
bïn trong. Khi möåt sûå kiïån xaãy ra (vñ duå nhû hoaåt àöång bõ ngùæt giûäa
chûâng) seä coá
möåt tñn hiïåu resume àûúåc gúãi àïën History indicator, noá seä khöi phuåc laåi
caác
traång thaái úã lêìn sau cuâng trong hònh chûä nhêåt.
(tñn hiïåu ngùæt) (tñn hiïåu khöi phuåc) (history indicator) (vuâng chõu aãnh
hûúâng cuãa
history indicator)
Hònh 3-59 History Indiicator
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
118
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 128
3.45. Caác traång thaái àöìng böå (synch states)
Kyá hiïåu cuãa caác traång thaái àöìng böå laâ möåt hònh troân coá chûáa dêëu
(*) bïn
trong. Xeát vñ duå (àöìng böå)
Hònh 3-60 Traång thaái àöìng böå
Giaãi thñch: trong vñ duå trïn ta coá thïí thêëy traång thaái build frame (xêy
khung nhaâ)
phaãi àöìng böå vúái viïåc gùæn caác thiïët bõ àiïån nïìn taãng. Kïë àoá, sau
khi ài dêy (theo
caác khung) cho caác thiïët bõ àiïån trong nhaâ seä àûúåc tiïën haânh àöìng böå
vúái viïåc
lúåp maái vaâ sau àoá múái túái viïåc àöí tûúâng vaâ gùæn caác thiïët bõ àiïån
bïn ngoaâi.
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 129
3.46. Lûúåc àöì hoaåt àöång (Activity Diagram)
(traång thaái bùæt àêìu) (traång thaái hoaåt àöång) (xeát àiïìu kiïån àïí tiïëp
tuåc thûåc hiïån)
(phên thaânh caác nhaánh hoaåt àöång àöìng thúâi) (kïët húåp caác nhaánh hoaåt
àöång àöìng
thúâi laåi) (traång thaái kïët thuác)
Hònh 3-61 Lûúåc àöì hoaåt àöång (Actiiviitiies Diiagram)
Ngûä nghôa
_ Laâ möåt lûúåc àöì thïí hiïån caác luöìng cuãa caác haânh àöång
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
119
http://www.ebooks.vdcmedia.com
_ Laâ möåt biïën thïí cuãa maáy traång thaái trong àoá caác traång thaái thïí
hiïån sûå hoaåt
àöång cuãa caác haânh àöång vaâ sûå chuyïín àöíi àûúåc khúãi àöång khi caác
haânh àöång
hoaân thaânh
_ Sûã duång lûúåc àöì hoaåt àöång trong trûúâng húåp têët caã hoùåc hêìu hïët
caác sûå kiïån
thïí hiïån sûå hoaân têët cuãa caác haânh àöång àûúåc saãn sinh bïn trong tiïën
trònh.
Chûác nùng
_ Mö hònh hoáa caác hoaåt àöång thïë giúái thûåc
_ Mö hònh hoáa caác thao taác
_ Nùæm bùæt caác cöng viïåc seä àûúåc thûåc hiïån khi möåt haânh vi àûúåc thûåc
hi trong
hïå thöëng.
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 130
3.47. Caác thaânh phêìn chñnh
3.46.1. Caác traång thaái haânh àöång (action state)
Laâ möåt daång àún giaãn cuãa traång thaái, noá seä trûåc tiïëp biïën àöíi sang
traång
thaái khaác sau khi thûåc hiïån möåt haânh àöång naâo àoá. Möåt action state
khöng thïí coá
caác chuyïín àöíi nöåi taåi trong traång thaái. Kyá hiïåu cuãa möåt action state
laâ möåt hònh
tûúng tûå hònh chûä nhêåt nhûng hai caånh bïn àûúåc thay bùçng hai cung troân,
bïn
trong chûáa biïíu thûác haânh àöång
Hònh 3-62 Caác actiion state..
3.46.2. Caác quyïët àõnh (decisions)
Lûúåc àöì hoaåt àöång sûã duång caác quyïët àõnh khi cêìn coá nhûäng chuyïín
àöíi
húåp lyá túái caác traång thaái haânh àöång khaác vúái nhûäng àiïìu kiïån do
ngûúâi duâng àùåc
taã, hûúáng chuyïín àöíi phuå thuöåc vaâo giaá trõ àuáng/sai cuãa biïíu thûác
quyïët àõnh.
(decision)
Hònh 3-63 Decisions
Giaãi thñch: trong vñ duå trïn khi tñnh toaán töíng chi phñ cho möåt viïåc naâo
àoá,
nïëu söë tiïìn nhoã hún 50 USD thò coá thïí chuyïín ngay sang traång thaái haânh
àöång
charge customer’s account, nïëu lúán hún 50 USD phaãi chuyïín sang traång thaái
haânh àöång laâ xin thêím quyïìn (getauthorization) röìi múái chuyïín sang
traång thaái
haânh àöång chargecustomer’s account.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
120
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 131
3.48. Swimlanes vaâ àöëi tûúång trong lûúåc àöì hoaåt àöång.
Nhûäng haânh àöång hoùåc nhûäng hoaåt àöång con coá thïí töí chûác vaâo caác
swimlane (caác àûúâng phên luöìng cöng viïåc). Swimlane coá taác duång nhoám
caác
haânh àöång laåi theo möåt muåc àñch cuå thïí (vñ duå nhû caác haânh àöång cuâng
xaãy ra taåi
möåt núi, caác haânh àöång cuãa cuâng möåt taác nhên...).
Biïíu diïîn cuãa swimlane laâ möåt hònh chûä nhêåt coá tïn ngay phña trïn bïn
trong hònh chûä nhêåt. Xem vñ duå hònh 3-64, ta thêëy caác actionstate àûúåc
chia vaâo
trong ba swimlane laâ Customer, sales, vaâ stockroom. Ta thêëy caác action state
nhû Reuest Service (yïu cêìu phuåc vuå), Pay (traã tiïìn), collect order (choån)
àïìu laâ
nhûäng haânh àöång cuãa khaách haâng (customer) nïn chuáng àûúåc töí chûác vaâo
cuâng
möåt swimlane. Trong lûúåc àöì hoaåt àöång cuäng coá thïí xuêët hiïån caác àöëi
tûúång, noá
àoáng vai troâ laâ àêìu vaâo hoùåc àêìu ra cho caác action state, hoùåc chó
duâng àïí minh
hoåa àöëi tûúång bõ aãnh hûúãng búãi möåt hoaåt àöång naâo àoá trong lûúåc àöì.
Nïëu àöëi
tûúång laâ àêìu ra hoùåc bõ aãnh hûúãng búãi möåt haânh àöång thò seä coá möåt
muäi tïn àûát
neát ài tûâ haânh àöång àïën àöëi tûúång, ngûúåc laåi nïëu laâ àêìu ra thò muäi
tïn coá hûúáng
tûâ àöëi tûúång túái haânh àöång. ( tïn cuãa caác swimlane) (àöëi tûúång trong
lûúåc àöì
hoaåt àöång) (ba swimlanes trong lûúåc àöì laâ Customer, sales, storckroom)
Hònh 3-64 Caác Swimlane vaâ caác àöëái tûúång