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

7,345
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ä 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ä 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ä 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ä 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ä 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ä 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
å 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ä 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ä 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.
nh 1-3 Nïìn taãng cuãa UML
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
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