Luận văn: Nghiên cứu ngôn ngữ UML và ứng dụng
7,539
671
171
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
141
http://www.ebooks.vdcmedia.com
Chûúng 4
ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 155
Lûúåc àöì Class àûúåc xêy dûång cho möåt möi trûúâng cuå thïí. Caác kiïíu dûä
liïåu
hay caác lúáp àïìu mang tñnh chêët àùåc trûng cuãa möi trûúâng caâi àùåt vaâ
ngön ngûä lêåp
trònh.
Nhên viïn giao tiïëp khaách haâng
CTaikhoanUI
CtaikhoanCtrl 1
CTaikhoanRs +m_lSotien : long
+m_TaikhoanCtrl111
Lûúåc àöì lúáp cho use case múã taâi khoaãn vúái caác böí sung so vúái mûác phên
tñch.
tham chiïëu multiplicity
+m_TaikhoanRs
thuöåc tñnh coá kiïíu dûä liïåu cuãa ngön ngûä lêåp trònh cuå thïí. navigation
Hònh 4-25 Vñ duå vïì lûúåc àöì lúáp trong möâ hònh Design
Lûúåc àöì Sequence mö taã tûúng taác giûäa caác lúáp àïí thûåc hiïån chûác ùng
trong àoá
quan têm àïën trònh tûå thúâi gian laâ àiïím khaác biïåt chuã yïëu so vái lûúåc
àöì
Collaboration.
Chûúng 4
ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 155
: Nhên viïn giao tiïëp khaách haâng
: CTaikhoanUI : CTaikhoanCtrl : CTaikhoanRs
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
142
http://www.ebooks.vdcmedia.com
1: OnClick()
2: DisplayUI()
3: GetData()
4: UpdateData()
5: NewAccount()
6: InsertAccount()
7: Close()
thúâi gian töìn taåi thöng àiïåp (focus of control) haâm tûúng ûáng vúái lúáp
CTaikhoanCtrl. Lûúåc àöì Sequence mö taã tûúng taác úã mûác thiïët kïë.
Hònh 4-26 Vñ duå vïì lûúåc àöì Sequence trong möâ hònh Design
4.16. Caâi àùåt (implementation)
Implementation sûã duång caác kïët quaã tûâ analysis vaâ design àïí tiïën haânh
maä
hoáa vaâ caâi àùåt caác thaânh phêìn (component) dûúái daång maä nguöìn, caác
script, caác
file nhõ phên hay caác file thi haânh. Muåc àñch cuãa workflow naây laâ
_ Töí chûác caâi àùåt caác lúáp vaâo caác thaânh phêìn (component) vaâ phên böë
caác thaânh
phêìn vaâo caác node trïn mö hònh Deployment.
_ Kiïím chûáng caác thaânh phêìn.
_ Tñch húåp caác phêìn caâi àùåt cuãa nhûäng ngûúâi hay nhûäng nhoám phaát
triïín vaâo hïå
thöëng.
Mö hònh Implementation bao göìm lûúåc àöì Component cuãa UML. Möîi
component coá thïí bao göìm nhiïìu lúáp vaâ cung cêëp dõch vuå cuãa noá qua caác
giao
diïån (interface). Component laâ caác thaânh phêìn àöåc lêåp vaâ caác component
cuãa hïå
thöëng coá thïí àûúåc caâi àùåt trïn caác möi trûúâng khaác nhau.
Implementation Design
Interface taâi khoaãn
+Motaikhoan() <<Interface>> Taâi khoaãn
+Motaikhoan() Àûa lúáp taâi khoaãn vaâo component taâi khoaãn àïí thïm dõch vuå
múã
taâi khoaãn cho component. realize (cung cêëp)
Component taâi khoaãn
Interface taâi khoaãn
Hònh 4-27 Vñ duå töí chûác möåät lúáp vaâo möåät component sûã duång
(dependency)
Chûúng trònh chñnh
Component taâi khoaãn
Interface taâi khoaãn
Component taâi khoaãn àoáng goái caác dõch vuå liïn quan àïën taâi khoaãn vaâ
cung cêëp
caác dõch vuå àoá qua interface taâi khoaãn.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
143
http://www.ebooks.vdcmedia.com
Interface taâi khoaãn bao göìm dõch vuå múã taâi khoaãn vaâ caác dõch vuå khaác
vïì taâi
khoaãn.
MFC 6.0
Hònh 4-28 Vñ duå vïì lûúåc àöì Component trong möâ hònh Component
Chûúng 4
ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 159
4.16. Kiïím chûáng (test)
RUP laâ möåt quy trònh lùåp. Möîi bûúác nhû vêåy àïìu traãi qua kiïím chûáng nïn
cho pheáp ngûúâi phaát triïín phêìn mïìm coá thïí phaát hiïån löîi rêët súám.
Test coá thïí
bao göìm
_ Kiïím tra quaá trònh tûúng taác giûäa caác àöëi tûúång.
_ Kiïím tra tñnh àuáng àùæn cuãa viïåc tñch húåp caác component trong phêìn
mïìm.
_ Kiïím tra caác chûác nùng coá àûúåc caâi àùåt chñnh xaác hay khöng. Mö hònh
Test
liïn quan àïën têët caã caác mö hònh trong iteration vaâ tham chiïëu àïën caác
lûúåc àöì
thñch húåp.
Chûúng 4
ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 160
4.17. Phaát triïín möåt ûáng duång quaãn lyá giaáo vuå theo RUP
4.17.1. Giúái thiïåu ûáng duång
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
144
http://www.ebooks.vdcmedia.com
Àêy laâ ûáng duång maâ hiïån traång àaä àûúåc nùæm bùæt búãi nhiïìu ngûúâi vaâ
laâ lônh
vûåc khaá quen thuöåc trong mö hònh hoáa vaâ phaát triïín phêìn mïìm. Giaáo vuå
àaåi hoåc
laâ baâi toaán tûúng àöëi àùåc thuâ trong cöng nghïå phêìn mïìm vaâ coá ûáng
duång thûåc tïë.
Viïåc phên tñch vaâ thiïët kïë khöng quaá phûác taåp nhûng liïn quan àïën möåt
têåp khaái
niïåm mö hònh hoáa tûúng àöëi àêìy àuã cuãa UML vaâ àiïìu naây giuáp ngûúâi
phaát triïín
nùæm bùæt khaã nùng cuäng nhû caách ûáng duång UML trong quy trònh phaát triïín
phêìn
mïìm RUP.
Muåc àñch cuãa ûáng duång laâ minh hoåa chi tiïët caác luöìng cöng viïåc trong
RUP sûã duång UML trong bûúác lùåp (iteration) thûá nhêët.
4.17.2. Sú lûúåc yïu cêìu vaâ àùåc àiïím
ÛÁng duång quaãn lyá giaáo vuå bao göìm quaãn lyá giaãng viïn vaâ quaãn lyá sinh
viïn. Viïåc quaãn lyá giaãng viïn chó àún giaãn laâ lûu trûä thöng tin giaãng
viïn nhùçm
da daång hoáa quy trònh nghiïåp vuå phuåc vuå cho quaá trònh minh hoåa. Viïåc
quaãn lyá
sinh viïn tuên theo möåt söë yïu cêìu sau
_ Quaãn lyá thöng tin sinh viïn : bao göìm viïåc lûu trûä, tra cûáu, tòm kiïëm
dûä liïåu
möåt sinh viïn nhû hoå tïn, ngaây sinh.
_ Quaãn lyá viïåc àùng kyá hoåc phêìn cuãa sinh viïn : lûu trûä vaâ tra cûáu
cuäng nhû thay
àöíi nhûäng hoåc phêìn maâ sinh viïn àùng kyá trong hoåc kyâ.
_ Quaãn lyá quaá trònh hoåc têåp vaâ kïët quaã cuãa sinh viïn : lûu trûä kïët
quaã thi caác hoåc
phêìn cuãa hoåc kyâ, tra cûáu àiïím söë vaâ in baãng àiïím.
ÛÁng duång àûúåc mö hònh hoáa sûã duång Rational Rose 2000, caâi àùåt trïn
VC++ 6.0, hïå quaãn trõ cú súã dûä liïåu laâ SQL Server 7.0. ÛÁng duång cuäng
sûã duång
caác khaái niïåm phaát triïín phêìn mïìm theo component, kiïën truác phêìn mïìm
ba lúáp
(three-tiered application) vaâ kiïën truác client-server nhùçm muåc àñch minh
hoåa
trïn möåt têåp khaái niïåm àa daång UML vaâ RUP.
Chûúng 4
ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 161
4.18. Phaát triïín ûáng duång theo caác workflow cuãa RUP
4.18.1. Mö hònh hoáa nghiïåp vuå (business modeling)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
145
http://www.ebooks.vdcmedia.com
Xaác àõnh caác business actor vaâ nghiïåp vuå (business use case) cho möîi
business actor. Lêåp sûu liïåu mö taã quy trònh thûåc hiïån nghiïåp vuå.
Phong dao tao (from Business Actors)
Töí chûác thi cûã, múã hoåc phêìn
Ghi nhêån kïët quaã
Dûåa trïn khaã nùng cuãa trûúâng vaâ yïu cêìu cuãa sinh viïn, phoâng àaâo taåo
tiïën haânh
múã caác hoåc phêìn vaâo àêìu möîi hoåc kyâ.
sûu liïåu möåt nghiïåp vuå (business use case). Phoâng àaâo taåo àaãm nhêån caác
cöng
viïåc múã hoåc phêìn, töí chûác thi vaâ ghi nhêån kïët quaã.
Hònh 4-29 Möåät lûúåc àöì Use Case cuãa ûáng duång trong möâ hònh Busines
Use Case
Tòm caác business entity àûúåc sûã duång trong möîi nghiïåp vuå àïí mö taã roä
hún vïì
nghiïåp vuå naây qua liïn hïå giûäa caác busisness entity.
Hoåc phêìn (from Business Object Model)
Phoâng àaâo taåo (from Business Actors)
Múã hoåc phêìn
Nghiïåp vuå múã hoåc phêìn cuãa phoâng àaâo taåo àoâi hoãi thao taác trïn möåt
danh saách
caác hoåc phêìn. businness entity businness worker
Hònh 4-30 Möåät lûúåc àöì Clas cuãa ûáng duång trong möâ hònh Busines Objject
Chûúng 4
ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 162
4.19. Xaác àõnh yïu cêìu (requirements)
4.19.1. Phên loaåi ngûúâi sûã duång (actor) vaâ tòm caác chûác nùng cuãa hïå
thöëng (use
case) cho möîi loaåi ngûúâi sûã duång naây.
Xaác àõnh nhûäng ngûúâi sûã duång hïå thöëng tûâ viïåc choån lûåa caác business
actor vaâ business worker trong quaá trònh mö hònh hoáa nghiïåp vuå. Möîi use
case
nïn àûúåc thiïët kïë khöng quaá röång vaâ cuäng khöng quaá nhoã àïí thuêån lúåi
trong quaá
trònh phên tñch. Caác use case àoáng vai troâ quan troång trong khúãi àêìu phaát
triïín
ûáng duång vaâ mö hònh Use Case khöng àún giaãn laâ möåt danh saách caác use
case.
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
146
http://www.ebooks.vdcmedia.com
Muåc àñch cuãa mö hònh naây laâ taåo caác use case sao cho thuêån lúåi trong
sûãa
àöíi, kiïím tra vaâ quaãn lyá vò vêåy möåt söë use case khöng àûáng riïng leã
maâ tham gia
vaâo caác quan hïå vúái use case khaác. Caác quan hïå giûäa caác use case bao
göìm
nhiïìu loaåi nhû Association (vúái caác stereotype nhû “include”,
”extend”...) hay töíng quaát hoáa (Generalization).
Quaãn lyá hoåc phêìn (from Hoc phan)
Xïëp thúâi khoaá biïíu (from Giang day)
Phoâng àaâo taåo (from Actors)
Àùng nhêåp hïå thöëng (from He thong)
Phên cöng giaãng viïn(from Giang day)
Múã hoåc phêìn (from Hoc phan)
Tra cûáu hoåc phêìn (from Hoc phan)
Thiïët kïë use case vaâ quan hïå giûäa caác use case. use case töíng quaát hoáa
(generalization) Use case quaãn lyá hoåc phêìn thûâa kïë têët caã caác thuöåc
tñnh vaâ haânh
vi cuãa use case múã hoåc phêìn.
Hònh 4-31 Möåät Lûúåc àöì Use Case cuãa ûáng duång trong möâ hònh Use Case
Chûúng 4
ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 163
4.20. Phên loaåi caác use case theo àöå ûu tiïn
Xaác àõnh thûá tûå phên tñch, thiïët kïë, caâi àùåt, thûã nghiïåm cuãa möîi use
case.
Caác use case coá àöå ûu tiïn cao seä àûúåc phaát triïín trûúác. Àöå ûu tiïn coá
thïí àûúåc
àaánh giaá dûåa trïn tñnh chêët quan troång, chuã yïëu cuãa chûác nùng trong hïå
thöëng
hay trònh tûå thûåc hiïån chûác nùng trong quy trònh nghiïåp vuå.
4.20.1. Lêåp sûu liïåu mö taã chi tiïët cho tûâng chûác nùng
Mö taã chi tiïët tûâng sûå kiïån cho möîi chûác nùng bao göìm caách thûác chûác
nùng àûúåc kñch hoaåt, kïët thuác vaâ quaá trònh tûúng taác vúái ngûúâi sûã
duång. Àöìng
thúâi coá thïí sûã duång caác lûúåc àöì State Chart hay Activity àïí mö hònh
hoáa chu kyâ
söëng vaâ hoaåt àöång cuãa chûác nùng.
Mö taã chi tiïët chûác nùng
1. Quaãn lyá hoåc phêìn (from Hoc phan)
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
147
http://www.ebooks.vdcmedia.com
Phoâng àaâo taåo (from Actors)
Àùng nhêåp hïå thöëng (from He thong)
Múã hoåc phêìn (from Hoc phan)
Tra cûáu hoåc phêìn (from Hoc phan)
Chûác nùng múã hoåc phêìn cho möåt khoaá trong möåt hoåc kyâ
Phoâng àaâo taåo kñch hoaåt chûác nùng cho viïåc duyïåt möåt danh saách caác
hoåc phêìn
cuãa hoåc kyâ cho möåt khoaá
2. Tuyâ theo khaã nùng cuãa nhaâ trûúâng vaâ yïu cêìu cuãa sinh viïn, phoâng
àaâo taåo
quyïët àõnh múã möåt hoåc phêìn hay khöng
3. Khi quyïët àõnh múã hoåc phêìn möåt transaction seä àûúåc thûåc hiïån vaâ
chuyïín
phêìn àoá sang danh saách caác hoåc phêìn múã.
4. Chûác nùng múã hoåc phêìn kïët thuác
Hònh 4-32 Söë liïåäu möâ taã chi tiïëát chûác nùng múã hoåc phêìn
entry/ Lêëy dûä liïåu
entry/ Khúãi taåo danh saách hoåc phêìn
Àùng duyïåt hoåc phêìn
do/ Duyïåt hoåc phêìn
Choån hoåc phêìn
do/ Àaánh dêëu hoåc phêìn àûúåc choån
Duyïåt hoåc phêìn kñch hoaåt chûác nùng
Quyïët àõnh múã danh saách hoåc phêìn
Tiïëp tuåc duyïåt
Chûác nùng múã hoåc phêìn kïët thuác
khúãi àêìu kïët thuác traång thaái (state) Lûúåc àöì State Chart mö taã chuyïín
àöíi giûäa
caác traång thaái xûã lyá trong quaá trònh thi haânh chûác nùng múã hoåc phêìn.
chuyïín
traång thaái (transition) sûå kiïån taác àöång (event) caác haânh àöång àûúåc
thûåc hiïån khi
nùæm giûä traång thaái
Múã caác hoåc phêìn
do/ Chuyïín caác hoåc phêìn àûúåc choån sang danh saách hoåc phêìn múã
do/ Danh saách caác hoåc phêìn àaä múã trïn danh saách hoåc phêìn
Möåt hoåc phêìn àûúåc choån
Hònh 4-33 Lûúåc àöì State Chart möâ taã traång thaái hoaåt àöåäng cuãa chûác
nùng múã hoåc
phêìn
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
148
http://www.ebooks.vdcmedia.com
Chûúng 4
ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 164
4.21. Cêëu truác caác use case bùçng caách xaác àõnh caác quan hïå giûäa
Caác use case: Tòm caác use case mang chûác nùng töíng quaát vaâ kïë thûâa cho
caác use case khaác (quan hïå töíng quaát hoaá). Tòm caác use case mang chûác
nùng
múã röång cho caác use case khaác (quan hïå “extend”). Xaác àõnh caác quan hïå
khaác
(nhû “include”) giûäa caác use case.
Chûúng 4
ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 165
4.22. Phên tñch (analysis)
4.22.1. Phên tñch kiïën truác hïå thöëng
Xaác àõnh caác goái (package) cho hïå thöëng thöng qua viïåc phên loaåi thaânh
nhoám caác chûác nùng cho möåt quy trònh nghiïåp vuå tûúng àöëi röång hay nhoám
caác
chûác nùng cho möåt actor cuå thïí.
Xaác àõnh quan hïå phuå thuöåc (dependency) giûäa caác goái
Sinh viïn
Hïå thöëng
Phoâng àaâo taåo
Quaãn lyá sinh viïn
Quaãn lyá hoåc phêìn
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
149
http://www.ebooks.vdcmedia.com
Phên chia phên hïå phoâng àaâo taåo thaânh caác package hûúáng chûác nùng.
Phên tñch kiïën truác hïå thöëng qua viïåc phên chia thaânh caác package.
Hònh 4-34 Phên chia hïå thöëáng thaânh caác package
Trong möîi goái, xaác àõnh caác entity dïî daâng nhêån thêëy cho möîi use case.
Caác entity naây coá thïí àûúåc choån lûåa tûâ mö hònh Busines Object vaâ
thûúâng mang
àùåc àiïím àùåc trûng cho phaåm vi cuãa ûáng duång.
Chûúng 4
ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 166
4.23. Phên tñch möåt use case
Xaác àõnh caác analysis class (bao göìm boundary, control vaâ entity) cêìn
thiïët cho viïåc thi haânh use case vaâ thiïët lêåp mö hònh analysis.
Hoåc phêìn
Khoaá
Phoâng àaâo taåo (from Actors)
Duyïåt hoåc phêìn
Múã hoåc phêìn UI
Hoåc phêìn múã
Múã hoåc phêìn Control
Hoåc kyâ
Lûúåc àöì Class trong mö hònh analysis mö taã möëi liïn hïå giûäa caác lúáp
analysis àïí
thi haânh use case múã hoåc phêìn. Boundary control entity association
Hònh 4-35 Sûã duång caác analysis cllas àïí phêân tñch use case múã hoåc phêìn
Mö taã tûúng taác giûäa caác àöëi tûúång qua mö hònh Collaboration àïí thûåc
hiïån möåt söë caãi tiïën trïn analysis model nïëu coá.
: Múã hoåc phêìn Control
: Múã hoåc phêìn UI
: Hoåc phêìn
: Hoåc phêìn múã
SVTH: Lêm Nguyïîn Trung Nam - Lêm Quang Vuä
150
http://www.ebooks.vdcmedia.com
: Sinh viïn
: Hoåc kyâ
: Khoaá
: Duyïåt hoåc phêìn
1: Yïu cêìu múã hoåc phêìn
2: Hiïín thõ hoåc kyâ
3: Lêëy dûä liïåu hoåc kyâ
4: Choån hoåc kyâ
5: Hiïín thõ hoåc phêìn trong hoåc kyâ cuãa khoaá
6: Lêëy dûä liïåu khoaá
7: Lêëy dûä liïåu hoåc phêìn
8: Duyïåt hoåc phêìn
9: Choån hoåc phêìn
10: Múã hoåc phêìn
11: Múã hoåc phêìn
12: Taåo hoåc phêìn múã
Lûúåc àöì Collaboration mö taã tûúng taác giûäa caác àöëi tûúång àïí thi haânh
use case
múã hoåc phêìn. àöëi tûúång (object)
Hònh 4-36 Lûúåc àöì Collaboration möâ taã caách thûác thi haânh use case múã
hoåc
phêìn
Chûúng 4
ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 167
4.24. Phên tñch möåt analysis class
Xaác àõnh caác analysis class coá vai troâ tûúng àöìng vaâ tham gia vaâo nhiïìu
use case àïí lêåp danh saách caác liïn hïå vúái caác analysis class khaác.
Xaác àõnh caác thuöåc tñnh cho möîi analysis class bùçng caách sûã duång caác
liïn
hïå trïn àïí tòm caác thuöåc tñnh àêìy àuã cho möîi analysis class. Àiïìu naây
coá nghôa laâ
têåp thuöåc tñnh tòm àûúåc phaãi coá khaã nùng àaáp ûáng cho têët caã caác use
case chûáa
analysis class naây nhûng möîi use case chûáa noá chó sûã duång têåp con thuöåc
tñnh.