mö hònh phín tñch (analysis model), thiïịt kïịt (design model) cađi ăùơt (implementation model) vađ xem xeât caâc mö hònh ăoâ coâ bao göìm caâc thađnh phíìn ăaâp ûâng ăíìy ăuê cho viïơc thûơc hiïơn chûâc nùng hïơ thöịng hay khöng. Quy trònh phaâ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
Chûú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.
Thiïịt kïị Cađi ăùơt Kiïím chûâng Phín tñch Xaâc ắnh ýu cíìu
Inception Elaboration Construction T r a n s i t i o n Bûúâc lùơp múê ăíìu
Möơt bûúâc lùơp trong phase Elaboration.
Release Release Release Release ReleaseRelease Release Hò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.
Chûú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:
Chûúng 4
ÛÂNG DUƠNG UML TRONG QUY TRÒNH PHAÂT TRIÏÍN PHÍÌN MÏÌM 149
4.12. ÛÂng duơng UML trong RUP
Múê tađi khoaên Nhín viïn giao tiïịp khaâch hađng
Khaâch hađng múê tađi khoaên cho (Nhín viïn giao tiïịp khaâch hađng thûơc hiïơn nghiïơp vuơ múê tađi khoaên cho khaâch hađng)
Hònh 4-12 Vñ duơ möơôt lûúơc ăöì Use Case trong möđ hònh Busines Use Case
Chûú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ê ýị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
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
Chûú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ó
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 MÏÌM 154
- Control : lúâp mang chûâc nùng xûê lyâ, ăiïìu khiïín caâc hoaơt ăöơng xûê lyâ, tñnh toaân. Control coâ kyâ hiïơu sau tïn entity
_ Entity : lúâp ăaơi diïơn cho thûơc thïí nghôa lađ caâc ăöịi tûúơng dûô liïơu coâ thïí lûu trûô, tham chiïịu hay sûêa ăöíi. Entity coâ kyâ hiïơu sau tïn entity
Mö hònh Analysis coâ chûâc nùng lađm roô caâc use case, mö taê caâc quan hïơ giûôa ba thađnh phíìn boundary, control, entity trong hïơ thöịng ăïí thûơc hiïơn use case.
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 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
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.
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ê ýị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
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)
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