Luận văn: Nghiên cứu ngôn ngữ UML và ứng dụng
7,521
671
171
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
21
http://www.ebooks.vdcmedia.com
Giúái thiïåu töíng quan vïì àïì taâi, muåc àñch nghiïn cûáu, phaåm vi nghiïn
cûáu, giúái
thiïåu töíng quan vïì ngön ngûä UML : khaái niïåm, caác àùåc àiïím, lúåi ñch,
nguyïn
nhên phaát triïín, lõch sûã phaát triïín cuãa ngön ngûä UML...
Chûúng 2 – Hïå thöëng ngûä nghôa (UML Semantics)
Trònh baây phêìn kiïën truác cuãa ngön ngûä UML dûåa trïn lúáp metamodel, chuã
yïëu laâ
caác thaânh phêìn nïìn taãng cuãa UML, caác thaânh töë haânh vi (Behavioral
Elements),
vaâ Model Management.
Chûúng 3 – Hïå thöëng kyá hiïåu (UML Notation)
Chûúng naây trònh baây hïå thöëng caác loaåi lûúåc àöì vaâ hïå thöëng caác kyá
hiïåu àûúåc sûã
duång trong UML àïí mö hònh hoáa hïå thöëng.
Chûúng 4 – ÛÁng duång cuãa UML
Trònh baây vïì ûáng duång cuãa UML trong qui trònh phaát triïín phêìn mïìm RUP
(Rational Unified Process), trong chûúng naây cuäng trònh baây vïì qui trònh
phaát
triïín phêìn mïìm RUP vaâ möåt vñ duå phên tñch hïå thöëng sûã duång ngön ngûä
UML
theo qui trònh RUP.
Chûúng 5 – Töíng kïët
Laâ chûúng cuöëi cuãa àïì taâi, töíng kïët laåi nhûäng kïët quaã àaåt àûúåc vaâ
hûúáng phaát
triïín trong tûúng lai.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
22
http://www.ebooks.vdcmedia.com
MÖÅT SÖË TÛÂ VIÏËT TÙÆT
CASE Tool Computer Aided Software Engineering Tool
OCL Object Constraint Language
OMG Object Management Group
OMT Object Modeling Technique
OOSE Object-Oriented Software Engineering
RUP Rational Unified Process
UML Unified Modeling Language
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
23
http://www.ebooks.vdcmedia.com
Chûúng 1
TÖÍNG QUAN 1
1.1. Yïu cêìu thûåc tïë
Cuâng vúái xu hûúáng phaát triïín ngaânh cöng nghïå thöng tin, cöng nghïå phêìn
mïìm àaä vaâ àang trúã thaânh lônh vûåc muäi nhoån cuãa nhiïìu quöëc gia trïn
thïë giúái.
Ngaây nay, viïåc phaát triïín möåt phêìn mïìm vúái qui mö vaâ chêët lûúång cao
khöng
coân laâ cöng viïåc àún leã cuãa nhûäng nhaâ lêåp trònh. Àoá laâ saãn phêím cuãa
möåt têåp thïí,
möåt cöng ty phêìn mïìm theo möåt qui trònh cöng nghïå chuêín àûúåc quaãn lyá
chùåt
cheä vaâ àûúåc höî trúå töëi àa búãi caác cöng cuå vaâ möi trûúâng phaát triïín
phêìn mïìm.
Do àoá, viïåc lêåp trònh ngaây caâng trúã nïn dïî daâng hún vaâ nhûúâng laåi vai
troâ mêëu
chöët cho viïåc phên tñch vaâ thiïët kïë phêìn mïìm, trong àoá quan troång nhêët
laâ àùåc taã
vaâ mö hònh hoaá thïë giúái thûåc.
Trong tònh hònh àoá caác cöng ty phêìn mïìm lúán trïn thïë giúái àaä nhanh
choáng àûa ra nhiïìu cöng cuå höî trúå phên tñch thiïët kïë dûåa trïn nhiïìu
phûúng phaáp
khaác nhau.
Caác ngön ngûä mö hònh hoáa ra àúâi vaâ ngaây caâng àûúåc caãi tiïën, trong àoá
sûå
ra àúâi cuãa UML (Unified Modeling Language) dûåa trïn ba phûúng phaáp hûúáng
àöëi tûúång Booch, OMT, OOSE àaä nhanh choáng trúã thaânh möåt ngön ngûä chuêín
duâng àïí trûåc quan hoaá, àùåc taã, xêy dûång vaâ laâm sûu liïåu cho caác saãn
phêím phêìn
mïìm vaâ àûúåc höî trúå búãi caác töí chûác,caác cöng ty phaát triïín phêìn mïìm
trïn thïë
giúái.
Hiïån nay hêìu hïët caác CASE tools àïìu coá höî trúå UML do àoá viïåc tòm hiïíu
ngön ngûä UML trûúác hïët giuáp tiïëp cêån vúái ngön ngûä mö hònh hoáa tiïn
tiïën, nùæm
bùæt vaâ sûã duång möåt söë CASE tools hiïån taåi vaâ tûâng bûúác xêy dûång CASE
tools
àùåc thuâ höî trúå cho viïåc xêy dûång vaâ phaát triïín phêìn mïìm sau naây.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
24
http://www.ebooks.vdcmedia.com
Chûúng 1
TÖÍNG QUAN 2
1.2. Giúái thiïåu UML
Theo möåt baâi baáo cuãa möåt nhaâ khoa hoåc nöîi tiïëng trong lônh vûåc cöng
nghïå thöng tin – Sinan Si Alhir – vúái tûåa àïì “Tri thûác – nhên töë quyïët
àõnh cuãa
sûå thaânh cöng !”, baâi baáo viïët “Tri thûác laâ sûác maånh – àêy laâ cêu noái
cuãa möåt nhaâ
triïët gia nöîi tiïëng – FrancisBacon. Ngaây nay, trïn thõ trûúâng toaân cêìu –
vaâ nhêët
laâ trong lônh vûåc cöng nghïå thöng tin - núi maâ sûå caånh tranh trúã nïn rêët
phöí biïën
vaâ quyïët liïåt, tri thûác vaâ khaã nùng aáp duång chuáng vaâo trong cöng viïåc
möåt caách
hiïåu quaã seä mang laåi cho chuáng ta möåt lúåi thïë quan troång vaâo loaåi
bêåc nhêët.
Chñnh àiïìu naây àaä dêîn túái möåt cêu hoãi - laâm thïë naâo möåt töí chûác coá
thïí nùæm bùæt,
truyïìn àaåt, trao àöíi, vaâ nêng cao tri thûác cuãa mònh àïí àaåt àûúåc lúåi
thïë caånh tranh
trïn thõ trûúâng ? Coá leä cêu traã lúâi chñnh laâ ngön ngûä UML tûâ haäng phêìn
mïìm
Rational vaâ töí chûác OMG (Object Management Group).” Vêåy UML laâ gò, taåi sao
noá laåi àûúåc giúái thiïåu êën tûúång àïën nhû thïë ?
UML - Unified Modeling Language – taåm dõch laâ ngön ngûä mö hònh húåp
nhêët, noá àûúåc hiïíu nhû laâ möåt ngön ngûä thöëng nhêët nhûäng xu hûúáng vaâ
hònh thaái
cuãa cuöåc caách maång tri thûác trong lônh vûåc thöng tin. Noá laâ möåt phûúng
tiïån
giuáp cho caác töí chûác coá thïí nhêån thûác möåt caách töët nhêët lúåi thïë
caånh tranh thöng
qua viïåc nùæm bùæt, truyïìn àaåt, trao àöíi vaâ nêng cao tri thûác trong lônh
vûåc cöng
nghïå phêìn mïìm. Chñnh xaác hún UML laâ möåt ngön ngûä mö hònh hoáa duâng àïí
àùåc
taã, trûåc quan hoáa, xêy dûång vaâ laâm sûu liïåu cho caác hïå thöëng phêìn
mïìm...
_ Unified (húåp nhêët) UML àûúåc àûa ra lêìn àêìu tiïn búãi haäng Rational vaâ
ba
chuyïn gia vïì phûúng phaáp luêån haâng àêìu trong lônh vûåc hïå thöëng thöng
tin/ kyä
thuêåt cöng nghïå Grady Booch, James.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
25
http://www.ebooks.vdcmedia.com
Chûúng 1
TÖÍNG QUAN 3
1.3 Nguyïn nhên ra àúâi
Rumbaugh, Ivar Jacobson. Noá laâ sûå húåp nhêët giûäa nhûäng phûúng phaáp cuä
(Booch, OMT, OOSE...), kïët húåp vúái nhûäng kinh nghiïåm, nhûäng kiïën thûác
thûåc
tïë trong lônh vûåc cöng nghïå thöng tin. Hònh 1-1 Sûå húåp nhêëát cuãûa UML
_ Modeling (mö hònh hoáa) giuáp chuáng ta hiïíu àûúåc thïë giúái thûåc, mö hònh
hoáa
thïë giúái thûåc àïí coá thïí hiïíu àûúåc nhûäng àùåc trûng, tñnh toaán caác
thöng söë vaâ dûå
àoaán kïët quaã seä àaåt àûúåc.
_ Language (ngön ngûä) chûác nùng cuãa UML nhû laâ möåt phûúng tiïån àïí baây
toã
vaâ trao àöíi tri thûác. Noá coá böën àùåc àiïím chuã yïëu coá thïí phên biïåt
vúái caác ngön
ngûä mö hònh hoáa khaác
- General-purpose - àa duång
- Broadly applicable – coá thïí ûáng duång röång raäi
- Tool-supported – àûúåc höî trúå búãi caác cöng cuå
- Industry standardized – chuêín cöng nghiïåp
1.3. Nguyïn nhên ra àúâi
Sûå ra àúâi cuãa UML laâ möåt têët yïëu khaách quan trûúác sûå buâng nöî cuãa
ngaânh
cöng nghïå thöng tin, noá laâm nöîi bêåt nhûäng xu hûúáng then chöët trong
ngaânh cöng
nghïå phêìn mïìm, àûa ra àûúåc nhûäng vêën àïì do sûå phên raä cuãa nhûäng
phûúng
thûác mö hònh hoáa trûúác àêy gêy ra. UML àûúåc hònh thaânh trïn cú súã cuãa
caác vêën
àïì chñnh - taåi sao chuáng ta laåi cêìn mö hònh hoáa phêìn mïìm, xu hûúáng
phaát triïín
trong ngaânh cöng nghïå phêìn mïìm ngaây nay, sûå höåi tuå cuãa caác cöng
nghïå...
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
26
http://www.ebooks.vdcmedia.com
Chûúng 1
TÖÍNG QUAN 4
1.4. Têìm quan troång cuãa viïåc mö hònh hoáa
Mö hònh laâ gò ? Àoá chñnh laâ sûå àún giaãn hoáa cuãa thïë giúái thûåc.
Hònh 1-2 Kiïëán truác möåt ngöi nhaâ
_ Viïåc phaát triïín möåt mö hònh cho möåt hïå thöëng trong cöng nghïå phêìn
mïìm
cuäng cêìn thiïët nhû laâ viïåc lêåp möåt baãng thiïët kïë cho möåt toâa nhaâ
lúán.
_ Nhûäng mö hònh töët giuáp cho viïåc phöëi húåp giûäa caác nhoám phaát triïín
töët hún.
_ Chuáng ta cêìn xêy dûång mö hònh cho nhûäng hïå thöëng phûác taåp búãi vò
chuáng ta
khöng thïí hiïíu àûúåc toaân böå hïå thöëng trong möåt möi trûúâng röång lúán
nhû thïë,
khi sûå phûác taåp cuãa hïå thöëng caâng tùng, thò noá cuäng àoâi hoãi kyä
thuêåt mö hònh hoáa
töët hún. Viïåc xêy dûång mö hònh giuáp chuáng ta hiïíu roä hún vïì hïå thöëng
maâ chuáng
ta àang xêy dûång.
_ Mö hònh cung cêëp cho chuáng ta möåt khuön mêîu vïì thïë giúái thûåc, giuáp
chuáng ta
coá thïí àõnh hûúáng trong quáa trònh xêy dûång, coá thïí tñnh toaán caác chi
phñ, xaác
àõnh caác ruãi ro, laâm sûu liïåu cho hïå thöëng...
_ Trong caác nhên töë quyïët àõnh àïën sûå thaânh cöng cuãa dûå aán, nhên töë
cêìn thiïët laâ
möåt mö hònh chuêín, àùåc taã àêìy àuã, chi tiïët vïì thïë giúái thûåc.
_ Trong möåt hïå thöëng maâ àöå phûác taåp caâng tùng, viïåc trûåc quan hoáa vaâ
mö hònh
hoáa caâng cêìn thiïët. Ngön ngûä UML laâ möåt sûå lûåa choån hoaân haão vaâ
trïn thûåc tïë
noá cuäng àaä àûúåc sûã duång vaâ àûúåc chêëp nhêån röång raäi trïn thïë giúái.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
27
http://www.ebooks.vdcmedia.com
Chûúng 1
TÖÍNG QUAN 5
1.5. Xu hûúáng phaát triïín trong ngaânh cöng nghïå phêìn mïìm
– Phaát triïín vïì phaåm vi, qui mö, chêët lûúång vaâ tûå àöång hoáa trong quáa
trònh phaát
triïín phêìn mïìm
_ Vò giaá trõ cuãa nhûäng phêìn mïìm chiïën lûúåc tùng lïn úã nhiïìu cöng ty,
ngaânh
cöng nghiïåp naây àaä vaâ àang tòm kiïëm nhûäng kyä thuêåt àïí coá thïí tûå
àöång saãn xuêët
ra caác saãn phêím phêìn mïìm.
_ Tòm kiïëm caác kyä thuêåt cöng nghïå múái àïí coá thïí nêng cao chêët lûúång,
giaãm giaá
thaânh vaâ giaãm thúâi gian àûa saãn phêím ra thõ trûúâng, nhûäng kyä thuêåt àoá
bao göìm
component technology, visual programming, patterns, frameworks... ngoaâi ra
coân coá nhûäng kyä thuêåt duâng àïí quaãn lyá nhûäng dûå aán lúán ngaây caâng
tùng vïì phaåm
vi vaâ qui mö.
_ Àöå phûác taåp cuãa cöng viïåc, cuãa caác baâi toaán ngaây caâng tùng, vaâ
tuây thuöåc vaâo
lônh vûåc ûáng duång cuäng nhû caác cöng àoaån trong tiïën trònh phaát triïín
phêìn mïìm.
_ Möåt trong nhûäng àöång cú chñnh cuãa nhûäng nhaâ phaát triïín UML laâ taåo ra
möåt
böå caác ngûä nghôa vaâ kyá hiïåu nhùçm phuåc vuå cho nhûäng dûå aán coá kiïën
truác phûác
taåp trïn nhûäng phaåm vi vaâ lônh vûåc ûáng duång khaác nhau.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
28
http://www.ebooks.vdcmedia.com
Chûúng 1
TÖÍNG QUAN 6
1.3.3. Sûå höåi tuå cuãa caác cöng nghïå
_ Trûúác khi UML ra àúâi, khöng coá ngön ngûä mö hònh hoáa naâo tröåi hún hùèn
caác
ngön ngûä khaác. Ngûúâi duâng phaãi lûåa choån trong nhûäng ngön ngûä khaá tûúng
tûå
nhau vúái nhûäng khaác biïåt nhoã vaâ cuâng chia seä trïn möåt têåp khaái niïåm
chung.
_ Chñnh sûå thiïëu tûúng àöìng naây àaä ngùn caãn nhûäng ngûúâi múái tiïëp cêån
vúái caác
kyä thuêåt hûúáng àöëi tûúång vaâ mö hònh hûúáng àöëi tûúång.
_ Viïåc thûúâng xuyïn phaãi chi phñ cho viïåc sûã duång vaâ höî trúå cho nhiïìu
ngön ngûä
mö hònh hoáa àaä thuác àêíy nhiïìu cöng ty àêìu tû vaâo saãn xuêët hoùåc sûã
duång kyä
thuêåt múái, hoå taán thaânh vaâ höî trúå cho viïåc phaát triïín ngön ngûä UML.
_ Trong khi UML khöng hûáa heån àûúåc nhûäng thaânh cöng thò noá àaä laâm àûúåc
nhiïìu àiïìu, chùèng haån nhû:
+ Laâm giaãm àaáng kïí nhûäng chi phñ thûúâng xuyïn cho viïåc huêën luyïån vaâ
thay àöíi cöng cuå khi thay àöíi dûå aán hoùåc töí chûác.
+ Cung cêëp cú höåi cho viïåc tñch húåp múái giûäa caác cöng cuå, caác tiïën
trònh
vaâ caác domains.
+ Taåo ra möåt kiïíu mêîu chuêín, thöëng nhêët cho caác cöng viïåc.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
29
http://www.ebooks.vdcmedia.com
Chûúng 1
TÖÍNG QUAN 7
1.7. UML húåp nhêët caác yá tûúãng nöîi bêåt vaâ nhûäng vêën àïì thûåc tïë trong
quaá
trònh phaát triïín cuãa cöng nghïå phêìn mïìm..
Caác nhaâ phaát triïín àaä cöë gùæng duy trò tñnh àún giaãn cuãa UML, loaåi boã
caác
thaânh phêìn khöng àûúåc sûã duång trong thûåc tïë tûâ caác phûúng phaáp Booch,
OMT,
OOSE, thïm caác thaânh phêìn vaâ yá tûúãng hiïåu quaã hún tûâ caác phûúng
phaáp khaác nhau vaâ chó xêy dûång múái caác phêìn cêìn thiïët. Möåt söë khaái
niïåm
múái àaä àûúåc sûã duång trong UML bao göìm :
_ Cú chïë múã röång (extension mechanism)
_ Luöìng (thread) vaâ tiïën trònh (process)
_ Sûå phên taán (distribution) vaâ àöìng thúâi (concurrency) (duâng àïí mö hònh
hoáa
caác ûáng duång ActiveX, DCOM vaâ CORBA)
_ Khuön mêîu (patterns) vaâ sûå cöång taác (collabarations)
_ Nhûäng lûúåc àöì hoaåt àöång - activity diagrams (cho business modeling)
_ Sûå choån loåc - refinement (xûã lyá caác möëi liïn quan giûäa caác mûác trûâu
tûúång)
_ Giao diïån (interface) vaâ thaânh phêìn (component)
_ Ngön ngûä mö taã raâng buöåc (constraint language)
Möåt söë trong caác yá tûúãng trïn coá thïí àûúåc tòm thêëy trong caác phûúng
phaáp khaác
nhau, tuy nhiïn, UML àaä liïn kïët chuáng chùåt cheä vúái nhau. Thïm vaâo àoá
laâ möåt
söë caãi tiïën mang tñnh cuåc böå trïn ba phûúng phaáp Booch, OMT, OOSE bao göìm
caã vïì ngûä nghôa vaâ lêîn kyá hiïåu. UML àûúåc phaát triïín dûåa trïn Booch,
OMT,
OOSE vaâ caác phûúng phaáp hûúáng àöëi tûúång khaác, caác nguöìn khaác nhau naây
kïët
húåp nhiïìu yá tûúãng khaác nhau tûâ nhiïìu taác giaã. Coá thïí noái yá tûúãng
cuãa UML dûåa
trïn nhûäng kyä thuêåt hûúáng àöëi tûúång vaâ cuäng chõu aãnh hûúãng cuãa möåt
söë phûúng
phaáp khöng hûúáng àöëi tûúång khaác. Caác nhaâ phaát triïín UML khöng taåo ra
hêìu hïët
caác yá tûúãng naây maâ vai troâ cuãa hoå laâ choån loåc vaâ tñch húåp caác yá
tûúãng nöîi bêåt
trong mö hònh hoáa hûúáng àöëi tûúång vaâ caác vêën àïì thûåc tïë cuãa cöng
nghïå phêìn
mïìm.
Hònh 1-3 Nïìn taãng cuãa UML
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
30
http://www.ebooks.vdcmedia.com
Chûúng 1
TÖÍNG QUAN 8
1.8. UML àöåc lêåp vúái ngön ngûä lêåp trònh vaâ qui trònh phaát triïín phêìn
mïìm
UML laâ möåt ngön ngûä mö hònh hoáa chuêín nhûng khöng phaãi laâ möåt qui
trònh phaát triïín phêìn mïìm chuêín. Mùåc duâ UML phaãi àûúåc aáp duång trong
phaåm
vi möåt qui trònh cuå thïí, caác qui trònh phaát triïín naây thûúâng khaác nhau
úã caác töí
chûác phaát triïín phêìn mïìm, úã caác vêën àïì thuöåc caác lônh vûåc khaác
nhau. Do àoá,
caác nhaâ phaát triïín UML àaä cöë gùæng têåp trung vaâo àõnh nghôa möåt mö hònh
mûác
siïu (meta)àïí thöëng nhêët caác khaái niïåm vïì ngûä nghôa vaâ kyá hiïåu, coá
thïí höî trúå
cho nhiïìu ngön ngûä lêåp trònh vaâ qui trònh phaát triïín phêìn mïìm khaác
nhau.
Chûúng 1
TÖÍNG QUAN 9
1.9. UML laâ ngön ngûä mö hònh hoáa àa duång (general purpose)
UML töíng húåp caác khaái niïåm cuãa Booch, OMT vaâ OOSE taåo thaânh möåt
ngön ngûä mö hònh hoáa chung vaâ coá thïí sûã duång röång raäi cho nhûäng ngûúâi
trûúác
àêy àaä quen vúái ba phûúng phaáp trïn hay caác phûúng phaáp khaác. Ngoaâi ra,
UML múã röång phaåm vi mö hònh hoáa cuãa caác phûúng phaáp hiïån coá vaâ coá
thïí mö
hònh hoáa àêìy àuã caác hïå thöëng àöìng thúâi hay phên taán.
UML laâ ngön ngûä coá thïí àûúåc sûã duång cho nhiïìu muåc àñch khaác nhau.
UML cung cêëp cú chïë cho viïåc töí chûác vaâ phên loaåi tri thûác theo ngûä
caãnh cuãa
vêën àïì cêìn giaãi quyïët. Caác tri thûác naây àûúåc nùæm bùæt àêìy àuã búãi mö
hònh bao
göìm nhiïìu thaânh phêìn vaâ àûúåc thïí hiïån qua têåp caác lûúåc àöì khaác nhau
coá liïn hïå
chùåt cheä vúái nhau. Hún nûäa, möîi lûúåc àöì nùæm bùæt vêën àïì úã nhûäng khña
caånh khaác
nhau qua caác khaái niïåm, cêëu truác, caác thaânh phêìn mö hònh thïí hiïån
nhûäng ngûä
nghôa vaâ tri thûác khaác nhau. Caác lûúåc àöì naây mö taã nöåi dung giao tiïëp
giûäa caác