Caâc thađnh viïn trong nhoâm coâ hûúâng díîn, khuön míîu, cöng cuơ höî trúơ vađ ăïìu sûê duơng möơt ngön ngûô chung, möơt qui trònh chung do ăoâ coâ sûơ thöịng nhíịt trong caâch nhòn vađ
Trang 1Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
MÏÌM 139
4.1 Giúâi thiïơu
Ngađy nay, chíịt lûúơng phíìn mïìm phuơ thuöơc vađo ríịt nhiïìu ýịu töị khaâc nhau, trong ăoâ quy trònh cöng nghïơ ăoâng möơt vai trođ quan troơng vađo loaơi bíơc nhíịt Trûúâc 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 quy trònh cöng nghïơ khaâc nhau, trûúâc tiïn lađ phuơc vuơ cho nhu cíìu phaât triïín phíìn mïìm trong cöng ty mònh, sau ăoâ lađ cöng böị röơng raôi ăïí thu thíơp
yâ kiïịn tûđ nhûông ăöịi taâc nhùìm tòm kiïịm lúđi giaêi cho bađi toaân töịi ûu hoâa quy trònh cöng nghïơ cuêa mònh Hiïơn nay coâ ríịt nhiïìu quy trònh phaât triïín phíìn mïìm khaâc nhau ặúơc sûê duơng trong caâc cöng ty phaât triïín phíìn mïìm nhû : Water fall Process, OPEN Process, Object-Oriented Software Process,Unified Process möîi quy trònh ăïìu coâ nhûông ûu/khuýịt ăiïím riïng cuêa mònh nhûng nöíi bíơt nhíịt vađ ngađy cađng ặúơc sûê duơng röơng raôi nhíịt lađ Unified Process cuêa haông Rational RUP (Rational Unified Process) ngađy cađng ặúơc sûê duơng vađ ặúơc höî trúơ röơng raôi tûđ nhûông ăöịi taâc sûê duơng, mùơc duđ RUP múâi ặúơc phaât triïín trong nhûông nùm gíìn ăíy, nhûng sûơ xuíịt hiïơn cuêa RUP ăaânh díịu möơt xu hûúâng phaât triïín múâi trong giai ăoaơn buđng nöí cuêa ngađnh cöng nghïơ phíìn mïìm
4.2 Giúâi thiïơu Rational Unified Process (RUP)
4.2.1 Khaâi quaât vïì RUP
RUP – Rational Unified Process - lađ quy trònh cöng nghïơ phíìn mïìm ặúơc phaât triïín búêi haông Rational, RUP höî trúơ caâc hoaơt ăöơng phaât triïín phíìn mïìm theo nhoâm, phín chia cöng viïơc theo thûâ tûơ cho tûđng thađnh viïn cuêa nhoâm trong
Trang 2Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
MÏÌM 140
4.3 Giúâi thiïơu Rational Unified Process (RUP)
Muơc ăñch chñnh cuêa RUP lađ giuâp saên xuíịt nhûông phíìn mïìm coâ chíịt lûúơng cao thoêa maôn ýu cíìu cuêa ngûúđi duđng cuöịi, trong khuön khöí thúđi gian vađ ngín saâch
RUP ặúơc phaât triïín vađ duy trò búêi haông Rational, ăaêm baêo qui trònh luön ặúơc caêi tiïịn hoađn chónh hún trïn cú súê nhûông kinh nghiïơm phaên höìi tûđ ăöịi taâc sûê duơng, sûơ tiïịn hoâa vađ nhûông caâch víơn duơng töịt nhíịt trong thûơc tïị RUP níng cao nùng suíịt lađm viïơc cuêa nhoâm Caâc thađnh viïn trong nhoâm coâ hûúâng díîn, khuön míîu, cöng cuơ höî trúơ vađ ăïìu sûê duơng möơt ngön ngûô chung, möơt qui trònh chung do ăoâ coâ sûơ thöịng nhíịt trong caâch nhòn vađ phûúng hûúâng phaât triïín möơt phíìn mïìm Sûê duơng UML ăïí höî trúơ tíịt caê caâc giai ăoaơn (phase) trong quy trònh phaât triïín phíìn mïìm, hoaơt ăöơng chñnh cuêa RUP lađ taơo, caêi tiïịn vađ quaên lyâ caâc loaơi mö hònh Ngoađi ra, RUP cođn hûúâng díîn lađm möơt lûúơng lúân caâc sûu liïơu cho phíìn mïìm, RUP nhíịn maơnh viïơc phaât triïín nhûông mö hònh giađu ngûô nghôa biïíu diïîn cho hïơ thöịng dûúâi goâc ăöơ cuêa ngûúđi phaât triïín Ngađy nay, RUP ặúơc höî trúơ búêi caâc cöng cuơ, giuâp tûơ ăöơng hoâa phíìn lúân quy trònh phaât triïín phíìn mïìm Caâc cöng cuơ höî trúơ RUP coâ thïí kïí ăïịn lađ quaên lyâ ăïì aân, phín cöng nhín sûơ, taơo líơp vađ quaên lyâ mö hònh, kiïím chûâng
Khöng möơt quy trònh nađo coâ thïí phuđ húơp cho tíịt caê caâc töí chûâc phaât triïín phíìn mïìm RUP ặúơc phaât triïín trïn cú súê cíịu truâc ăún giaên vađ roô rađng, coâ thïí cíịu hònh laơi cho phuđ húơp vúâi nhu cíìu cuêa töí chûâc sûê duơng RUP phuđ húơp cho nhûông nhoâm phaât triïín nhoê cuông nhû nhûông töí chûâc lúân RUP lađ tíơp húơp nhûông cöng viïơc vađ kinh nghiïơm ăaô ặúơc víơn duơng hiïơu quaê nhíịt trong thûơc tïị Viïơc phaât triïín theo RUP cho pheâp nhûông nhoâm phaât triïín coâ ặúơc möơt söị thuíơn lúơi
so vúâi nhûông nhoâm khaâc
Trang 3Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
MÏÌM 141
4.4 Giúâi thiïơu Rational Unified Process (RUP)
4.4.1 Kiïịn truâc cuêa RUP
Caâc giai ăoaơn (phase) cuêa quy trònh
RUP lađ quy trònh bao göìm nhiïìu bûúâc lùơp ăïí xíy dûơng hïơ thöịng goơi lađ caâc chu kyđ (cycle) Möîi chu kyđ cho kïịt quaê lađ möơt phiïn baên release cuêa phíìn mïìm bao göìm maô nguöìn trong caâc thađnh phíìn (componennt) coâ thïí biïn dõch vađ thûơc thi Möơt chu kyđ ặúơc chia lađm böịn phase lađ khúêi ăíìu (inception), triïín khai (elaboration), xíy dûơng (contruction), chuýín giao (transition)
_ Inception : xaâc ắnh phaơm vi dûơ aân, caâc tađi nguýn cíìn thiïịt vađ phaâc thaêo chûâc nùng cho ngûúđi sûê duơng (business case)
_ Elaboration : phín tñch víịn ăïì, líơp kïị hoaơch dûơ aân, ăaânh giaâ ruêi ro vađ
xaâc ắnh kiïịn truâc hïơ thöịng
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
MÏÌM 142
Trang 4Khúêi ăíìu Triïín khai Xíy dûơng Chuýín giao
Trûơc quan hoâa
Kiïịn truâc cú baên
Caâc tñnh nùng khúêi ăíìu
Saên phíím
release
Hònh 4-2 Caâc phase cuêa RUP
Ngoađi ra, trong möơt cycle (chu kyđ) cođn bao göìm nhiïìu bûúâc lùơp con (iteration) Möîi iteration cuông cho kïịt quaê lađ möơt phiïn baên release vađ ặúơc hoađn thađnh qua quaâ trònh thûơc hiïơn möơt daôy caâc cöng viïơc cuơ thïí goơi lađ luöìng cöng viïơc (workflow) Caâc cöng viïơc ặúơc phín chia vađo caâc workflow ăïí xíy dûơng phiïn baên release cho möơt iteration Caâc luöìng cöng viïơc cú baên lađ business modeling (mö hònh hoâa nghiïơp vuơ), requirements (xaâc ắnh ýu cíìu), analysis (phín tñch), design (thiïịt kïị), cađi ăùơt (implementation) vađ deployment Ngoađi ra cođn coâ caâc luöìng cöng viïơc höî trúơ quaên lyâ dûơ aân (project management), quaên lyâ cíịu hònh vađ thay ăöíi (configuration and change management) vađ quaên lyâ möi trûúđng (enviroment)
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
MÏÌM 143
4.6 Giúâi thiïơu Rational Unified Process (RUP)
Hònh 4-3 Caâc wokflow vađ iteration
Hònh trïn mö taê kiïịn truâc cuêa RUP theo hai truơc :
- Truơc hoađnh töí chûâc theo thúđi gian diïîn taê möơt chu kyđ (cycle) bao göìm caâc phase vađ caâc bûúâc lùơp (iteration)
Trang 5- Truơc tung töí chûâc theo caâc luöìng cöng viïơc (workflow) bao göìm caâc hoaơt ăöơng, caâc thađnh phíìn vađ ngûúđi thûơc hiïơn
4.6.1 Cíịu truâc tônh cuêa quy trònh
RUP mö taê ai (Who) ăang lađm gò (What), lađm nhû thïị nađo (How) vađ khi nađo (When) RUP ắnh nghôa böịn thađnh phíìn sau _ Worker –Who – ắnh nghôa cöng viïơc vađ traâch nhiïơm cuêa möîi caâ nhín, hoùơc möơt söị caâ nhín lađm viïơc vúâi nhau trong nhoâm Vñ duơ:
- Project Manager : trûúêng dûơ aân
- System Analyst : phín tñch viïn hïơ thöịng
- Tester : kiïím tra viïn
- Activities – How – hoaơt ăöơng cuêa möơt worker lađ möơt tíơp cöng viïơc coâ möơt muơc ăñch roô rađng Vñ duơ: Líơp kïị hoaơch cuêa trûúêng dûơ aân
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
MÏÌM 144
4.7 Giúâi thiïơu Rational Unified Process (RUP)
- Tòm caâc use case vađ caâc actor cho hïơ thöịng cuêa phín tñch viïn hïơ thöịng
- Artifacts – What – lađ nhûông thöng tin ặúơc phaât sinh, thay ăöíi hoùơc sûê duơng búêi quy trònh Vñ duơ: Mö hònh Use Case (Use Case model), Mö hònh thiïịt kïị (Design model) Caâc sûu liïơu (document) Caâc thađnh phíìn thûơc thi
- Workflows – When – mö taê caâch thûâc tiïịn hađnh caâc hoaơt ăöơng theo trònh tûơ vađ vai trođ cuêa möîi worker
Hònh 4-4 Vñ duơ vïì möơôt luöìng cöđng viïơôc vađ vai trođ cuêa caâc worker
4.7.1 Caâc ăùơc ăiïím phín biïơt cuêa RUP so vúâi caâc quy trònh phaât triïín phíìn mïìm
Trang 6phaât triïín theo ăoâ seô thûơc hiïơn daôy caâc cöng viïơc dûơa trïn use case
Thiïịt kïị Cađi ăùơt Kiïím chûâng
Phín tñch Xaâc ắnh ýu cíìu
Caâc use case liïn kïịt caâc workflow nađy vúâi nhau
Hònh 4-5 RUP hûúâng chûâc nùng hïơô thöịâng
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
MÏÌM 145
4.8 RUP tíơp trung vađo kiïịn truâc phíìn mïìm
Kiïịn truâc lađ caâi nhòn töíng thïí vïì thiïịt kïị cuêa hïơ thöịng, loaơi boê chi tiïịt vađ tíơp trung vađo nhûông tñnh chíịt quan troơng RUP cung cíịp phûúng hûúâng ăïí tûđng bûúâc xaâc ắnh kiïịn truâc cuêa hïơ thöịng, ăaâp ûâng caâc ýu cíìu cho viïơc thay ăöíi vađ taâi sûê duơng cuêa phíìn mïìm RUP xaâc ắnh möơt möịi liïn hïơ giûôa kiïịn truâc vúâi use case Kiïịn truâc phaêi ặúơc xíy dûơng sao cho ăaâp ûâng tíịt caê chûâc nùng trong hiïơn taơi vađ tûúng lai Viïơc xaâc ắnh kiïịn truâc ăođi hoêi phaêi xaâc ắnh nhûông chûâc nùng nađo lađ quan troơng bíơc nhíịt vađ chuê ýịu cuêa hïơ thöịng Kiïịn truâc phíìn mïìm ặúơc
xaâc ắnh vađ caêi tiïịn tûđng bûúâc qua caâc phase Kiïịn truâc phíìn mïìm Caâc giai ăoaơn (phase) Inception Elaboration Construction Transition Khúêi ăíìu Triïín khai Xíy
dûơng Chuýín giao
Hònh 4-6 RUP tíơôp trung vađo kiïịân truâc phíìn mïìm
Trang 7Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
MÏÌM 146
4.9 RUP lađ quy trònh lùơp vađ tùng trûúêng tûđng bûúâc
Phaât triïín möơt phíìn mïìm phûâc taơp ăođi hoêi khöng chó thúđi gian mađ cođn kyô thuíơt phín chia hïơ thöịng thađnh nhûông phíìn nhoê Quy trònh göìm nhiïìu iteration (bûúâc lùơp) ăïí xíy dûơng phíìn mïìm Möîi tíơp chûâc nùng cuêa hïơ thöịng seô ặúơc phaât triïín trong möơt iteration vađ kïịt quaê lađ sûơ hoađn chónh vïì töíng thïí ngađy cađng gia tùng Caâc iteration phaêi ặúơc thûơc hiïơn theo kïị hoaơch vađ coâ kiïím soaât Möơt iteration lađ möơt trònh tûơ caâc hoaơt ăöơng ặúơc lïn kïị hoaơch theo möơt tiïu chuíín xaâc ắnh vađ cho kïịt quaê lađ möơt phiïn baên release cuêa phíìn mïìm Trong möîi bûúâc, ngûúđi phaât triïín choơn möơt nhoâm caâc chûâc nùng vađ tiïịn hađnh phín tñch (analysis), thiïịt kïị (design), cađi ăùơt (implementation) vađ kiïím chûâng (test) caâc chûâc nùng nađy Nïịu iteration ăaâp ûâng ặúơc muơc ăñch ăïì ra thò chuýín sang möơt iteration múâi vúâi möơt nhoâm caâc chûâc nùng kïị tiïịp
Trang 8Hònh 4-7 RUP lađ quy trònh lùưp vađ tùng trûúêng tûđng bûúâc
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
MÏÌM 147
4.10 ÛÂng duơng UML trong RUP
UML cung cíịp möơt ngön ngûô cho mö hònh hoâa, trûơc quan hoâa vađ lađm sûu liïơu phíìn mïìm Nhûng nïịu khöng coâ möơt quy trònh phaât triïín phíìn mïìm ăùơc thuđ ûâng duơng UML thò seô khöng tíơn duơng khaê nùng maơnh meô cuông nhû nhûông khaâi niïơm mö hònh hoâa ăa daơng cuêa UML RUP lađ quy trònh phaât triïín phíìn mïìm ặúơc xíy dûơng trïn nïìn taêng UML vađ nhûông ýu cíìu thûơc tïị trong cöng nghïơ phíìn mïìm RUP hûúâng díîn caâch sûê duơng UML hiïơu quaê nhíịt hiïơn nay UML ặúơc sûê duơng trong caâc luöìng cöng viïơc (workflow) ắnh nghôa búêi RUP Möîi luöìng cöng viïơc sûê duơng nhûông mö hònh khaâc nhau liïn quan ăïịn caâc khaâi niïơm vađ lûúơc ăöì UML khaâc nhau
Hònh 4-8 Caâc luöìng cöđng viïơc vađ caâc möđ hònh RUP
Trang 9Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
MÏÌM 148
4.11 Mö hònh hoâa nghiïơp vuơ (business modeling)
Mö hònh hoâa nghiïơp vuơ nhùìm muơc ăñch nùưm bùưt quy trònh hoaơt ăöơng cuêa töí chûâc núi cíìn xíy dûơng hïơ thöịng phíìn mïìm bao göìm quy trònh nghiïơp vuơ vađ caâch thûâc thûơc hiïơn, ăöịi tûúơng thûơc hiïơn nghiïơp vuơ vađ ăöịi tûúơng thao taâc cuêa nghiïơp vuơ, caâc taâc nhín bïn ngoađi coâ giao tiïịp vađ aênh hûúêng ăïịn hoaơt ăöơng cuêa töí chûâc Mö hònh hoâa nghiïơp vuơ lađ tuđy choơn cho tûđng dûơ aân Business modeling ắnh nghôa hai mö hònh Business Use Case (mö hònh nghiïơp vuơ) vađ Business Object (mö hònh ăöịi tûúơng nghiïơp vuơ)
4.11.1 Mö hònh nghiïơp vuơ (Business Use Case)
Mö hònh nghiïơp vuơ chuê ýịu bao göìm lûúơc ăöì Use Case cuêa UML vúâi möơt söị múê röơng cho Unified Process cuơ thïí lađ ắnh nghôa thïm business actor, business worker vađ business use case tûđ cú chïị múê röơng cuêa UML
_ Business actor : caâc taâc nhín bïn ngoađi coâ liïn quan hay taâc ăöơng ăïịn hoaơt ăöơng cuêa töí chûâc vñ duơ nhû khaâch hađng vađ coâ kyâ hiïơu sau
Tïn business actor
Hònh 4-9 Kyâ hiïơôu busines actor
_ Business worker : nhín viïn thûơc hiïơn nghiïơp vuơ, thûúđng ăoâng möơt vai trođ cuơ thïí trong töí chûâc vñ duơ nhû kïị toaân viïn, thuê kho, quaên ăöịc vađ coâ kyâ hiïơu sau Tïn business worker
Hònh 4-10 Kyâ hiïơôu busines actor
_ Business use case : nghiïơp vuơ ặúơc thûơc hiïơn búêi möơt business worker vñ duơ nhû múê tađi khoaên cho khaâch hađng hay nhíơn caâc ăún ăùơt hađng vađ coâ kyâ hiïơu sau:
Trang 10Chûúng 4 ÛÁNG DUÅNG UML TRONG QUY TRÒNH PHAÁT TRIÏÍN PHÊÌN
MÏÌM 150
4.13 Mö hònh àöëi tûúång nghiïåp vuå (Business Object)
Mö hònh Business Object sûã duång chuã yïëu lûúåc àöì lúáp (Class diagram) múã röång cho RUP dûåa trïn cú chïë múã röång cuãa UML bao göìm organization unit (àún võ töí chûác), business entity (thûåc thïí nghiïåp vuå)
- Organization unit : caác àún võ cêëu truác cuãa töí chûác thûúâng tûúng ûáng vúái caác phoâng, ban hay böå phêån trong töí chûác vaâ coá kyá hiïåu Tïn organization unit
Hònh 4-13 Kyá hiïåäu organization unit
Trang 11- Business entity : ăöịi tûúơng thao taâc cuêa nghiïơp vuơ thûúđng lađ dûô liïơu, caâc loaơi höì
sú Caâc nghiïơp vuơ thûúđng líịy dûô liïơu, thay ăöíi, lûu trûô caâc business entity vñ duơ nhû höì sú khaâch hađng hay caâc loaơi mùơt hađng Business entity coâ kyâ hiïơu sau Tïn busines entity
Hònh 4-14 Kyâ hiïơôu busines entiity
Mö hònh ăöịi tûúơng nghiïơp vuơ mö taê nhûông business worker nađo sûê duơng nhûông tađi nguýn, tađi liïơu gò cuêa töí chûâc vađ sûê duơng nhû thïị nađo ăïí thûơc hiïơn nghiïơp vuơ cuơ thïí
Nhín viïn giao tiïịp khaâch hađng
Tađi khoaên taơo múâi
(Nhín viïn thïm tađi khoaên khaâch hađng vađo höì sú caâc tađi khoaên) (Nghiïơp vuơ múê möơt tađi khoaên)
Hònh 4-15 Vñ duơ vïì lûúơc ăöì lúâp (Cllass diiagram) 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 151
4.13 Xaâc ắnh ýu cíìu (requirements)
Muơc ăñch cuêa giai ăoaơn xaâc ắnh ýu cíìu lađ coâ ặúơc möơt sûơ thöịng nhíịt giûôa khaâch hađng vúâi caâc nhađ phaât triïín vïì nhûông gò mađ hïơ thöịng seô thûơc hiïơn Möơt sûu liïơu trûơc quan seô ặúơc xíy dûơng qua mö hònh hoâa caâc chûâc nùng mađ hïơ thöịng höî trúơ cho tûđng loaơi ngûúđi sûê duơng Giai ăoaơn nađy sûê duơng mö hònh chûâc nùng (Use Case model) bao göìm chuê ýịu lûúơc ăöì Use Case cuêa
Trang 12Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
MÏÌM 152
UML Actor lađ ngûúđi sûê duơng hïơ thöịng Use case lađ chûâc nùng hïơ thöịng ặúơc thûơc hiïơn khi coâ taâc ăöơng tûđ actor
Hònh 4-16 Möđ hònh Use Case vađ caâc lûúơc ăöì UML
Caâc chûâc nùng hïơ thöịng coâ thïí ặúơc lûơa choơn tûđ caâc nghiïơp vuơ (business use case) trong mö hònh business use case ăïí xaâc ắnh nhûông nghiïơp vuơ nađo seô ặúơc höî trúơ vađ cho ngûúđi sûê duơng nađo
Múê tađi khoaên
Nhín viïn giao tiïịp khaâch hađng
(Xaâc ắnh chûâc nùng hïơ thöịng cho möîi loaơi ngûúđi sûê duơng qua caâc nghiïơp vuơ) (Use Case) (Actor)
Hònh 4-17 Vñ duơ vïì lûúơc ăöì Use Case 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 153
4.14 Phín tñch (analysis)
Trong möîi iteration, ăïí phaât triïín tûđng nhoâm caâc use case, caâc nhađ phaât triïín tiïịn hađnh mö taê roô rađng hún caâc ýu cíìu chûâc nùng nađy bùìng ngön ngûô cuêa nhûông ngûúđi phaât triïín phíìn mïìm Workflow phín tñch bùưt ăíìu mö hònh hoâa hoaơt ăöơng bïn trong cuông nhû xíy dûơng cú baên kiïịn truâc cuêa hïơ thöịng nhûng chó dûđng laơi úê mûâc quan niïơm, chûa xem xeât ăïịn caâc khña caơnh chi tiïịt cuông nhû caâc
Trang 13ýu cíìu phi chûâc nùng Trong workflow nađy, RUP ắnh nghôa mö hònh Analysis sûê duơng lûúơc ăöì lúâp (Class diagram) vúâi möơt söị múê röơng vađ caâc lûúơc ăöì mö hònh hoâa tûúng taâc nhû Sequence hay Collaboration cuêa UML
Hònh 4-18 Möđ hònh phíđn tñch vađ caâc lûúơc ăöì UML
RUP múê röơng lûúơc ăöì Class cho workflow analysis bùìng caâch ắnh nghôa thïm boundary, control vađ entity tûđ cú chïị múê röơng cuêa UML
_ Boundary : lúâp trong hïơ thöịng ăaêm nhíơn vai trođ giao tiïịp giûôa hïơ thöịng vúâi caâc taâc nhín bïn ngoađi vñ duơ nhû giao diïơn ngûúđi sûê duơng Boundary coâ kyâ hiïơu sau:
Tïn boundary
Hònh 4-19 Kyâ hiïơôu boundary
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
Trang 14Chûú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
Giao diïơn m úê tađi khoaên
Xûê lyâ m úê tađi khoaên
Tađi khoaên
(Chûâc nùng múê tađi khoaên cuêa hïơ thöịng) (Nhín viïn sûê duơng giao diïơn múê tađi khoaên ăïí thao taâc trïn ăöịi tûúơng tađi khoaên thöng qua xûê lyâ múê tađi khoaên) (boundary) control entity
Hònh 4-22 Vñ duơ vïì lûúơc ăöì Class trong möđ hònh Analysis
Lûúơc ăöì tûúng taâc sûê duơng chuê ýịu trong mö hònh Analysis lađ Collaboration cuêa UML Lûúơc ăöì nađy mö taê cú chïị víơn hađnh cuêa hïơ thöịng, caâc hoaơt ăöơng cuêa caâc thađnh phíìn trong hïơ thöịng theo möơt trònh tûơ xaâc ắnh cuông nhû quaâ trònh tûúng taâc giûôa caâc thađnh phíìn thöng qua caâc thöng ăiïơp (message) ăïí thûơc hiïơn möơt chûâc nùng cuơ thïí
: Nhín viïn giao tiïịp khaâch hađng
: Giao diïơn múê tađi khoaên
: Xûê lyâ múê tađi khoaên
: Tađi khoaên
1: ýu cíìu chûâc nùng múê tađi khoaên
2: hiïín thi giao diïơn nhíơp dûô liïơu
3: nhíơp dûô liïơu tađi khoaên
4: ýu cíìu múê tađi khoaên
5: múê tađi khoaên
6: taơo múâi tađi khoaên
7: ăoâng chûâc nùng múê tađi khoaên
Lûúơc ăöì Collaboration mö taê cú chïị tûúng taâc giûôa caâc thađnh phíìn boundary, control vađ entity ăïí thûơc hiïơn chûâc nùng múê tađi khoaên thöng ăiïơp (message)
Trang 15thûâ tûơ thi hađnh thöng ăiïơp vađo chñnh ăöịi tûúơng gûêi
Hònh 4-23 Vñ duơ vïì möơôt lûúơc ăöì Collaboration trong möđ hònh Analysis
Chûúng 4 ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN
MÏÌM 156
4.15 Thiïịt kïị (design)
Design lađ workflow sûê duơng caâc kïịt quaê úê mûâc phín tñch (analysis) cho möơt nhoâm use case ăïí tiïịp tuơc phaât triïín hïơ thöịng vïì kiïịn truâc, chi tiï ịt caâc chûâc nùng cuông nhû lûu yâ ăïịn caâc ýu cíìu phi chûâc nùng, caâc rađng buöơc coâ thïí coâ Caâc víịn ăïì quan tím trong workflow nađy coâ thïí kïí ăïịn lađ
_ Möi trûúđng phaât triïín phíìn mïìm, ngön ngûô líơp trònh, hïơ ăiïìu hađnh, caâc ýu cíìu xûê lyâ ăöìng thúđi hay phín taân vađ möi trûúđng cú súê dûô liïơu
_ Ăõnh daơng kiïịn truâc hïơ thöịng trïn cú súê baêo toađn kiïịn truâc úê mûâc phín tñch nhûng coâ thïí tiïịp tuơc phín raô caâc hïơ thöịng con thađnh caâc ăún võ nhoê hún ăïí coâ thïí quaên lyâ vađ cađi ăùơt möơt caâch hiïơu quaê
_ Thiïịt kïị caâc giao diïơn (interface) chuê ýịu ăïí coâ thïí giao tiïịp vúâi caâc hïơ thöịng con vađ phaât triïín tûúng ăöịi ăöơc líơp caâc hïơ thöịng con nađy Workflow Design ắnh nghôa mö hònh Design bao göìm caâc lûúơc ăöì Class, lûúơc ăöì Deployment vađ caâc lûúơc ăöì tûúng taâc nhû Colaboration vađ Sequence tûđ UML Design sûê duơng chuê ýịu lûúơc ăöì Sequence ăïí mö hònh hoâa tûúng taâc Ngoađi ra cođn sûê duơng caâc lûúơc ăöì mö taê traơng thaâi vađ hoaơt ăöơng lađ State Chart vađ Activity Graph
Hònh 4-24 Möđ hònh thiïịât kïịâ vađ caâc lûúơc ăöì UML
Trang 16Chûú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
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ê ýị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
Trang 17_ 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)
Trang 18Chûú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
Trang 19Ăí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 ý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öị ý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
Trang 20Ghi nhíơn kïịt quaê
Dûơa trïn khaê nùng cuêa trûúđng vađ ý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ÏÌM 162
4.19 Xaâc ắnh ý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
Trang 21Muơ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ê ýị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
Trang 22Chûâ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 duýơ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đ ýu cíìu cuêa sinh viïn, phođng ăađo taơo quýịt ắnh múê möơt hoơc phíìn hay khöng
3 Khi quýịt ắnh múê hoơc phíìn möơt transaction seô ặúơc thûơc hiïơn vađ chuýí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 duýơt hoơc phíìn
do/ Duýơt hoơc phíìn
Choơn hoơc phíìn
do/ Ăaânh díịu hoơc phíìn ặúơc choơn
Duýơt hoơc phíìn kñch hoaơt chûâc nùng
Quýịt ắnh múê danh saâch hoơc phíìn
Tiïịp tuơc duýơ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ê chuýí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 chuýí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/ Chuýí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
Trang 23Chûú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