Luận văn: Nghiên cứu ngôn ngữ UML và ứng dụng
7,826
671
171
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
81
http://www.ebooks.vdcmedia.com
3.3.3. Chuöîi (String), tïn (Name),nhaän (Label) vaâ tûâ khoáa
(Keywords) Chuöîi laâ möåt daäy caác kyá tûå duâng àïí hiïín thõ möåt thöng tin
naâo àoá trong mö hònh. Font vaâ kñch cúä cuãa chuöîi coá thïí phuå thuöåc vaâo
thuöåc tñnh
cuãa mö hònh, möåt chuöîi coá thïí úã daång doâng àún hay möåt phên àoaån.
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 75
Tïn laâ möåt chuöîi duâng àïí àõnh nghôa cho möåt thaânh töë mö hònh duy nhêët.
Möåt pathname (tïn àûúâng dêîn), göìm möåt têåp caác tïn àûúåc nöëi vúái nhau
búãi möåt
kyá hiïåu àùåc biïåt (vñ duå nhû dêëu “::”), àûúåc duâng àïí tòm möåt thaânh töë
mö hònh bùæt
àêìu tûâ göëc cuãa hïå thöëng. Tïn àûúåc thïí hiïån nhû laâ möåt chuöîi vùn
baãn, thöng
thûúâng nùçm trïn möåt doâng vaâ thûúâng khöng chûáa caác kyá tûå àùåc
biïåt.Thöng
thûúâng àöå daâi cuãa tïn vaâ têåp caác kyá tûå duâng àïí àùåt tïn àûúåc àõnh
nghôa búãi cöng
cuå vaâ ngön ngûä hiïín thõ.
Vñ duå : Tïn - Nguyïîn Vùn A, abstract, interger Pathname - ngên
haângA::ChinhaánhB::PhoângC Nhaän (label) cuäng laâ möåt chuöîi kyá tûå àûúåc
gùæn vaâo
kyá hiïåu àöì hoåa.
Tûâ then chöët (hay tûâ khoáa - keyword) thûúâng duâng àïí phên biïåt giûäa
nhûäng
nhoám, nhûäng chuã àïì chung. Kyá hiïåu cuãa möåt keyword thûúâng laâ möåt
chuöíi àûúåc
àùåt trong hai dêëu“‹‹ ›› “.Vñ du å : ‹‹ extend ››, ‹‹ include›› ...
3.4. Biïíu thûác (Expression)
Biïíu thûác àûúåc sûã duång trong möåt söë cêëu truác cuãa UML, àùåc biïåt laâ
trong
ngön ngûä mö taã raâng buöåc duâng àïí àõnh nghôa UML. Haâm àûúåc thïí hiïån nhû
laâ
möåt chuöîi kyá tûå vaâ cuá phaáp cuãa chuöîi àûúåc àõnh nghôa tuây thuöåc vaâo
cöng cuå höî
trúå vaâ cöng cuå phên tñch cho ngön ngûä.
Vñ duå : Cöngty.Giaámàöëc.Lûúng > Cöngty.Nhênviïn.Lûúng
3.4.1. Ghi Chuá (Note)
Laâ möåt kyá hiïåu àöì hoaå coá chûáa thöng tin dûúái daång vùn baãn hoùåc chûáa
caã
hònh aãnh. Note coá thïí thïí hiïån nhiïìu loaåi thöng tin khaác nhau nhû: raâng
buöåc,
chuá thñch, thên cuãa caác haâm, caác giaá trõ àñnh keâm...
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
82
http://www.ebooks.vdcmedia.com
Hònh 3-1 Note duâng àïí ghi chuá cho mö hònh
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 76
3.5. Sûå tûúng quan giûäa caác loaåi thaânh töë vaâ thïí hiïån cuãa noá
Nhiïìu khaái niïåm mö hònh hoáa trong UML coá hai thïí hiïån tûúng tûå nhau ài
thaânh möåt cùåp thaânh töë vaâ thïí hiïån, vñ duå nhû : Lúáp vaâ àöëi tûúång,
quan hïå kïët
húåp vaâ liïn kïët, tham söë vaâ giaá trõ...
Hònh 3-2 Lúáp Poiint vaâ hai àöëái tûúång Poiint
Role (vai troâ) trong möåt cöång taác (collaboration) cuäng laâ möåt cùåp giûäa
thaânh töë vaâ thïí hiïån. Möåt role trong möåt collaboration àûúåc thïí hiïån
bùçng möåt
tïn, dêëu hai chêëm vaâ kiïíu, möåt thïí hiïån àûúåc biïíu diïîn bùçng tïn, dêëu
“/”, danh
saách vai troâ, dêëu hai chêëm vaâ danh saách kiïíu. Vñ duå : Caác vai troâ Caác
àöëi tûúång
möåt collaboration
Hònh 3-3 Caác vai troâ vaâ caác àöëi tûúång àiïím
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 77
3.6. Caác thaânh phêìn quaãn trõ mö hònh (model management)
3.6.1. Goái (Package)
Ngûä nghôa
Möåt goái(package) laâ möåt nhoám caác thaânh töë mö hònh, baãn thên package
cuäng coá thïí chûáa caác package con. Têët caã caác thaânh töë mö hònh àïìu coá
thïí töí
chûác dûúái daång package.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
83
http://www.ebooks.vdcmedia.com
Lûu yá rùçng package coá thïí súã hûäu caác thaânh töë, caác maãng mö hònh,
nhûäng
thaânh phêìn cú baãn àïí àiïìu khiïín cêëu hònh, àïí lûu trûä, àïí àiïìu khiïín
caác truy cêåp.
Möîi thaânh töë coá thïí àûúåc súã hûäu trûåc tiïëp búãi möåt package àún, vò
vêåy cêy kïë
thûâa cuãa package laâ möåt cêåy kïë thûâa nghiïm ngùåt. Möåt package coá thïí
tham
chiïëu àïën möåt package khaác bùçng caách duâng caác khuön mêîu cuãa quan hïå
phuå
thuöåc nhû ‹‹import››, ‹‹access›› hoùåc caác quan hïå khaác nhû tinh chïë hay
töíng
quaát hoáa.
Kyá hiïåu
Möåt package àûúåc biïíu diïîn bùçng möåt hònh chûä nhêåt lúán vúái möåt hònh
chûä nhêåt nhoã gùæn úã goác trïn traái, giöëng nhû biïíu tûúång cuãa möåt thû
muåc.
_ Nïëu nöåi dung cuãa package khöng thïí hiïån trong hònh chûä nhêåt lúán thò
tïn cuãa
package àûúåc àùåt bïn trong hònh chûä nhêåt lúán. (Caách thïí hiïån A).
_ Nïëu bïn trong hònh chûä nhêåt lúán coá chûáa nöåi dung thò tïn cuãa package
àûúåc
àùåt bïn trong hònh chûä nhêåt nhoã. (Caách thïí hiïån B).
Caách thïí hiïån A Caách thïí hiïån B
Name Tïn package
Hònh 3-4 Caách thïí hiïån tïn cuãa Packages
Packages Editor chûáa caác Package phuå thuöåc caác quan hïå
Hònh 3-5 Package vaâ caác quan hïå
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 78
3.7. Caác thaânh phêìn quaãn trõ mö hònh (model management)
Hònh 3-6 Nöåi dung cuãa package Ediitor thïí hiïån dûúái daång Cêy
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
84
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 79
3.8. Subsystem
3.8.1. Ngûä nghôa
Möåt subsystem (hïå thöëng con) miïu taã möåt àún võ haânh vi cuãa möåt vêën àïì
trong hïå thöëng hay noái caác khaác laâ trong möåt mö hònh. Àùåc taã cuãa
subsystem bao
göìm caác thao taách hay caác haâm cuãa subsystem, caác thaânh töë àùåc taã liïn
quan àïën
subsystem nhû use case, state machines...
3.8.2. Kyá hiïåu
Kyá hiïåu cuãa möåt subsystem tûúng tûå nhû cuãa package, göìm möåt hònh chûä
nhêåt lúán vaâ möåt hònh chûä nhêåt nhoã gùæn vaâo goác trïn traái cuãa hònh
chûä nhêåt lúán,
àöìng thúâi coá thïm möåt kyá hiïåu hònh caái nôa gùæn vaâo goác trïn phaãi cuãa
hònh chûä
nhêåt chûáa tïn subsystem.
Hònh 3-7 Möåt thïí hiïån àún giaãn cuãa subsystem
Möåt subsytem cuäng coá hai caách thïí hiïån tïn giöëng nhû package. Bïn caånh
àoá ta cuäng coá thïí duâng kyá hiïåu cuãa package àïí thay thïë cho subsystem
bùçng
caách thïm vaâo tûâ khoáa ‹‹ subsystem›› vaâo phña trïn tïn cuãa
subsystem. Hònh chûä nhêåt lúán cuãa subsystem co thïí àûúåc chia laâm ba phêìn
:
_ Operation (thao taác)
_ Specification Element (thaânh töë àùåc taã/mö taã)
_ Realization element (thaânh töë thûåc thi/ duâng àïí àõnh roä caác àùåc taã
tûúng ûáng)
Tuyâ trûúâng húåp sûã duång maâ nhûäng phêìn naây coá thïí hiïín thõ hay khöng,
coá thïí
hiïín thõ caã ba phêìn hay tûâng phêìn riïng, giûäa caác phêìn coá thïí coá caác
aánh xaå vúái
nhau hoùåc vúái caác thaânh töë bïn ngoaâi thöng quan caác quan hïå.
Hònh 3-8 Möåt thïí hiïån àêìy àuã cuãa subsystem
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
85
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 80
3.9 Caác thaânh phêìn quaãn trõ mö hònh (model management)
Hònh 3-9 Subsystem vaâ aánh xaå (mappiing) giûäa caác thaânh phêìn
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 81
3.10. Model
3.10.1. Ngûä nghôa
Möåt model (mö hònh) laâ sûå trûâu tûúång hoáa cuãa möåt vêën àïì trong hïå
thöëng,
noá miïu taã hïå thöëng dûúái möåt goác àöå quan saát àùåc biïåt vúái möåt mûác
àöå trûâu
tûúång naâo àoá, model coá thïí chûáa têët caã caác thaânh töë mö hònh cêìn
thiïët cho viïåc
miïu taã vêën àïì cuãa hïå thöëng. Caác thaânh töë trong mö hònh àûúåc töí chûác
dûúái daång
cêy kïë thûâa cuãa caác package hoùåc subsystem.
3.10.2. Kyá hiïåu
Möåt model sûã duång kyá hiïåu cuãa package vúái möåt hònh tam giaác nhoã àûúåc
gùæn vaâo trïn phaãi cuãa hònh chûä nhêåt lúán. Trong trûúâng húåp, model coá
chûáa nöåi
dung thò hònh tam giaác àûúåc veä trong hònh chûä nhêåt nhoã cuâng vúái tïn cuãa
model.
Möåt model cuäng coá thïí sûã duång kyá hiïåu nhû laâ package vúái möåt tûâ
khoáa ‹‹ model
›› àûúåc àùåt phña trïn tïn cuãa model.
Vñ duå : möåt mö hònh hïå thöëng (systemModel) seä chûáa caác mö hònh phên
tñch (analysis models) vaâ thiïët kïë (design models)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
86
http://www.ebooks.vdcmedia.com
Hònh 3-10 Möåt thïí hiïån cuãa Modell
Vñ duå vïì viïåc töí chûác cêy kïë thûâa trong model. Kïë thûâa dûåa trïn Model
Kïë thûâa
dûåa trïn Subsystem
Hòònh 3-11 Töí chûác kïëá thûâa trong Modell
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 82
3.11. Caác cú chïë múã röång töíng quaát
3.11.1. Raâng buöåc (Constraint) vaâ chuá thñch (Comment)
Ngûä nghôa
Constraint (raâng buöåc) laâ möåt quan hïå raâng buöåc vïì ngûä nghôa àûúåc àñnh
keâm vaâo caác thaânh töë mö hònh nhùçm thay àöíi vaâ giúái haån vïì ngûä nghôa
cuãa caác
thaânh töë naây, àaãm baão hïå thöëng àûúåc mö hònh hoáa möåt caách àuáng àùæn.
Möåt söë
constraint àûúåc àõnh nghôa ngay trong baãn thên UML, möåt söë do ngûúâi sûã
duång
tûå àõnh nghôa lêëy. Nhûäng raâng buöåc do ngûúâi duâng àõnh nghôa thûúâng àûúåc
àùåc
taã bùçng caác tûâ trong möåt ngön ngûä àûúåc qui àõnh (cuá phaáp vaâ sûå thïí
hiïån phuå
thuöåc vaâo cöng cuå höî trúå). Comment (chuá thñch) laâ möåt chuöîi vùn baãn
àûúåc gùæn
trûåc tiïëp vaâo caác thaânh töë mö hònh coá taác duång ghi chuá, giaãi thñch,
böí sung ngûä
nghôa cho thaânh töë àoá.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
87
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 83
3.12. Kyá hiïåu
Constraint àûúåc biïíu diïîn búãi möåt chuöîi vùn baãn àûúåc àùåt trong cùåp
dêëu
{}. Ngön ngûä duâng àïí viïët constraint thûúâng àûúåc àõnh nghôa búãi cöng cuå
höî trúå
(vñ duå nhû OCL – Object Constraint Language hoùåc coá thïí duâng ngön ngûä tûå
nhiïn àïí àùåc taã raâng buöåc). Àöëi vúái caác thaânh töë maâ kyá hiïåu laâ
möåt chuöîi vùn
baãn (vñ duå nhû möåt thuöåc tñnh naâo àoá...) chuöîi kyá tûå raâng buöåc àûúåc
ghi ngay
sau chuöîi vùn baãn vaâ àûúåc taách búãi möåt dêëu ngùn caách.
Àöëi vúái möåt danh saách caác thaânh töë úã daång vùn baãn (vñ duå nhû danh
saách
caác thuöåc tñnh cuãa möåt lúáp) thò raâng buöåc seä àûúåc aáp àùåt trïn têët
caã caác thaânh töë
sau chuöîi raâng buöåc cho túái khi coá möåt chuöîi raâng buöåc múái hoùåc kïët
thuác danh
saách.
Raâng buöåc 1 aáp duång cho caác thuöåc tñnh 1,2 túái n-1
Raâng buöåc 2 aáp duång cho caác thuöåc tñnh tûâ n túái cuöëi .
Hònh 3-12 Raâng buöåc trïn danh saách thaânh töëá
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 84
Àöëi vúái caác thaânh töë coá kyá hiïåu àöì hoåa àún, chuöîi raâng buöåc coá
thïí àùåt
gêìn kyá hiïåu, töët nhêët laâ àùåt gêìn tïn cuãa thaânh töë nïëu coá. Àöëi vúái
caác möåt cùåp hai
kyá hiïåu àöì hoåa, raâng buöåc àûúåc thïí hiïån bùçng möåt muäi tïn àûát neát
tûâ nhaän cuãa
thaânh töë naây túái nhaän cuãa thaânh töë kia. Chair-of (laâm chuã tõch) phaãi
laâ têåp con
cuãa Member-of(thaânh viïn) raâng buöåc
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
88
http://www.ebooks.vdcmedia.com
Hònh 3-13 Raâng buöåc trïn möåt cùåp thaânh töëá
Àöëi vúái raâng buöåc trïn ba kyá hiïåu àöì thõ trúã lïn, raâng buöåc àûúåc àùåt
trong
note (àïí trong cùåp dêëu {})vaâ coá caác àûúâng àûát neát liïn kïët àïën caác
thaânh töë bõ
raâng buöåc.
Caác chuá thñch laâ möåt chuöîi kyá tûå àùåt trong möåt biïíu tûúng note. Caác
chuá
thñch cho caác haâm hoùåc caác raâng buöåc khöng àûúåc àùåc taã trong UML nhûng
àûúåc àùåc taã trong cöng cuå höî trúå.
Hònh 3-14 Raâng buöåc trïn nhiïìu thaânh töëá
Hònh 3-15 Chuá thñch cho package MFC6..0
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 85
3.13. Thuöåc tñnh cuãa caác thaânh töë (Element Properties)
Ngûä nghôa
Möåt söë thuöåc tñnh cuãa caác thaânh töë khöng coá kyá hiïåu trûåc quan. Àïí
thïm
vaâo àoá ngûúâi duâng coá thïí àõnh nghôa caác thuöåc tñnh múái bùçng caách sûã
duång cú
chïë tagged value (taåm dõch laâ giaá trõ àñnh keâm hay giaá trõ theã). Möîi
tagged value
biïíu diïîn möåt loaåi thuöåc tñnh àùåc biïåt trong ûáng duång tûúng ûáng vúái
möåt hay
nhiïìu loaåi phêìn tûã mö hònh.
Kyá hiïåu
Möåt tagged value àûúåc thïí hiïån bïn trong möåt cùåp dêëu {}, vúái möåt theã
(tag) vaâ möåt giaá trõ (value), coá daång : { name = value } name laâ tïn cuãa
theã (tag),
value laâ giaá trõ cuãa theã, caã hai àûúåc biïíu diïîn bùçng chuöîi kyá tûå.
Nïëu kiïíu cuãa theã
laâ Boolean (àuáng/sai) thò giaá trõ mùåc àõnh cuãa theã laâ True (àuáng),
nhûäng kiïíu
khaác thò cêìn phaãi coá giaá trõ roä raâng, thöng thûúâng thò khöng coá àõnh
nghôa hònh
thûác cho giaá trõ theã, muåc àñch chuã yïëu chó àïí cung cêëp thöng tin quaãn
lyá mö hònh
vñ duå nhû version, taác giaã cuãa mö hònh, khöng liïn quan àïën saãn phêím
cuöëi.Vñ
duå : {abstract} { Taác giaã = “ Nguyïîn Vùn A”, Thúâi haån cuöëi = 31-7-2000,
Gian
àoaån = Phên tñch } (giaá trõ theã )(raâng buöåc)
Hònh 3-16 Vñ duå vïì tagged vallue
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
89
http://www.ebooks.vdcmedia.com
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 86
3.14. Caác mêîu (Stereotypes)
Ngûä nghôa
Stereotype duâng àïí àùåc biïåt hoáa vïì mùåt ngûä nghôa cuãa caác phêìn tûã àaä
àûúåc àõnh nghôa trong UML, laâ möåt lúáp caác phêìn tûã mö hònh múái àûúåc
töíng quaát
tûâ nhûäng phêìn tûã àaä àûúåc àõnh nghôa, àûúåc giúái thiïåu taåi möåt thúâi
àiïím cêìn thiïët
naâo àoá trong quáa trònh mö hònh hoáa hïå thöëng.
Kyá hiïåu
Caách thïí hiïån töíng quaát cuãa Stereotype laâ sûã duång kyá hiïåu cuãa phêìn
tûã cú
súã vúái möåt tûâ khoáa nùçm bïn trïn tïn cuãa thaânh töë, chuöîi tûâ khoáa
àûúåc àùåt bïn
trong cùåp dêëu ‹‹ ›› cuäng laâ tïn cuãa stereoype. Möåt caách thïí hiïån khaác
laâ àùåt
biïíu tûúång (icon) bïn trong hònh chûä nhêåt chûáa tïn cuãa khuön mêîu, hoùåc
chó coá
biïíu tûúång vaâ bïn dûúái laâ tïn cuãa khuön mêîu.
Hònh 3-17 Möåt söëá stereotype (khuöân mêîãu)
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 87
3.15. Caác lûúåc àöì
3.15.1. Giúái thiïåu
Caác lûúåc àöì laâ nïìn taãng cú baãn àïí mö hònh hoáa hïå thöëng trong UML.
UML cung cêëp chñn loaåi lûúåc àöì khaác nhau nhùçm giuáp mö hònh hoáa chi tiïët
hïå
thöëng, chuáng àûúåc chia thaânh ba loaåi chñnh
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
90
http://www.ebooks.vdcmedia.com
_ Caác lûúåc àöì tônh : Use Case (Use Case Diagram), lúáp (Class diagram), àöëi
tûúång (Component diagram).
_ Caác lûúåc àöì àöång (hay caác lûúåc àöì haânh vi) : tuêìn tûå (Sequence
Diagram),
cöång taác (Collaboration diagram), traång thaái (Statechart diagram), hoaåt
àöång
(Activity diagram).
_ Caác àöì thûåc thi : thaânh phêìn (Component diagram), triïín khai (Deployment
diagram).
Caác lûúåc àöì lêìn lûúåc àûúåc trònh baây theo cêëu truác :
_ Vñ duå : göìm hònh veä vaâ caác chuá thñch trïn lûúåc àöì
_ Ngûä nghôa : yá nghôa cuãa caác lûúåc àöì
_ Chûác nùng : chûác nùng sûã duång
_ Caác thaânh phêìn chñnh : giúái thiïåu caác thaânh phêìn chñnh trong lûúåc
àöì.
Hònh 3-18 Töíång quan vïì caác lûúåc àöì trong UML
Chûúng 3
HÏÅ THÖËNG KYÁ HIÏÅU (UML Notation) 88
3.16. Lûúåc àöì lúáp (Class Diagram)
(quan hïå kïët húåp hay thu naåp) (tïn lúáp) (quan hïå töíng quaát hoáa) (quan
hïå kïët
húåp) (raâng buöåc) (thuöåc tñnh) (haâm) (giao tiïëp) (quan hïå phuå thuöåc)
(vai troâ)
(biïíu tûúång cuãa lúáp) (àa xaå)
Hònh 3-19 Lûúåc àöì lúáp (Cllass Diiagram)