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

7,691
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ä 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
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ä 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ä 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ä 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ä 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ä 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ä 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ä 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ä 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 àöì.
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)
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)