Cađi ăùơt tûđng hïơ thưịng con theo vai trođ cuêa nô trong toađn bươ hïơ thưịng nghơa lađ câc dõch vuơ mađ hïơ thưịng con sûê duơng ăaơ ặúơc cađi ăùơt vađ tđch húơp trûúâc ăô. Mưỵi lúâp vađ giao diïơn trong trong mươt package ặúơc sûê duơng phăi ặúơc cađi ăùơt trong component tûúng ûâng.
hay sûê duơng câc sûu liïơu mư tă phûúng thûâc trong phíìn thiïịt kïị ăïí cađi ăùơt phûúng thûâc cuêa lúâp.
Chûúng 4
ÛÂNG DUƠNG UML TRONG QUY TRỊNH PHÂT TRIÏÍN PHÍÌN MÏÌM 177
4.42. Kiïím chûâng (test)
4.42.1. Líơp kïị hoaơch kiïím chûâng
Xâc ắnh chiïịn lûúơc kiïím chûâng, nhín sûơ vađ câc tađi nguýn liïn quan, câc kïịt quă ăaơt ặúơc trong mưỵi quy trịnh kiïím chûâng.
4.42.2. Thiïịt kïị câc quy trịnh kiïím chûâng (test case)
Test case cho mươt use case mư tă câch kiïím chûâng cho mươt use case bao gưìm că kïịt quă tûúng tâc giûơa ngûúđi sûê duơng vúâi hïơ thưịng, trịnh tûơ thi hađnh theo kõch băn (script) cuêa use case. Test case cho mươt use case úê mûâc design (use case realization) mư tă câch kiïím chûâng quâ trịnh tûúng tâc giûơa use case vúâi câc component liïn quan ăïịn viïơc thi hađnh use case.
Test case cho hïơ thưịng mư tă quy trịnh kiïím chûâng viïơc thi hađnh chđnh xâc câc chûâc nùng cuêa hïơ thưịng xêt vïì tưíng thïí chuê ýịu lađ sûơ thi hađnh phưịi húơp líỵn nhau giûơa câc use case dûúâi mươt sưị ăiïìu kiïơn cuơ thïí bao gưìm cíịu hịnh phíìn cûâng, ngûúđi sûê duơng, kđch thûúâc cú súê dûơ liïơu...
4.42.3. Thûơc hiïơn kiïím chûâng
Tûơ ăương hôa câc quy trịnh kiïím chûâng mươt câch tưịi ăa bùìng câch taơo câc component kiïím chûâng. Mưỵi component chûâa câc kõch băn (script) cho quy trịnh kiïím chûâng. Kiïím chûâng kïịt quă tđch húơp. Kiïím chûâng hïơ thưịng qua thûơc hiïơn test case cho hïơ thưịng. Ăânh giâ kïịt quă kiïím chûâng câc ăươ ăo vïì mûâc ăươ hoađn chĩnh vađ tin cíơy.
Chûúng 4
ÛÂNG DUƠNG UML TRONG QUY TRỊNH PHÂT TRIÏÍN PHÍÌN MÏÌM 178
4.43. Tôm tùưt
Chûúng bưịn ăaơ trịnh bađy sú lûúơc vïì qui trịnh phât triïín phíìn mïìm Rational Unified Process, qua ăô cuơng giúâi thiïơu khă nùng ûâng duơng cuêa UML trong mươt qui trịnh phât triïín phíìn mïìm cuơ thïí. RUP vađ UML ặúơc phât triïín ăưìng hađnh vúâi nhau vađ cô nguưìn gưịc tûđ haơng phíìn mïìm Rational, vị víơy viïơc kïịt húơp giûơa UML vađ RUP mang laơi mươt cưng cuơ ríịt hiïơu quă trong viïơc phâr triïín phíìn mïìm. Ăïí minh hoơa thûơc tïị cho ûâng duơng nađy chuâng em ăaơ sûê duơng phíìn mïìm Rational Rose 2000 (cô hưỵ trúơ hoađn toađn ngưn ngûơ UML vađ RUP) ăïí thiïịt kïị ûâng duơng, viïơc tiïịp cíơn vađ sûê duơng mươt cưng cuơ múâi trïn thûơc tïị cô khưng đt khô khùn, nhûng nhûơng kïịt quă ăaơt ặúơc trong ûâng duơng cô thïí cho thíịy khă nùng ûâng duơng cuêa UML trong thûơc tïị lađ ríịt khă quan.
Chûúng 5 TƯÍNG KÏỊT 179
5.1. Kïịt luíơn
lađ mươt ngưn ngûơ húơp nhíịt ăún thuíìn, UML cođn bao gưìm că nhûơng khâi niïơm múâi cuđng vúâi câch mư tă, ắnh nghơa vađ sûê duơng câc khâi niïơm nađy. Viïơc nghiïn cûâu ngưn ngûơ UML khưng chĩ dûđng úê viïơc tịm hiïíu, sûê duơng câc khâi niïơm, câc kyâ hiïơu trong ngưn ngûơ, mađ bïn caơnh ăô chuâng ta cíìn phăi tịm hiïíu câch thûâc ăïí mư hịnh hôa mươt hïơ thưịng phíìn mïìm, cuơng nhû viïơc tđch húơp UML vúâi mươt qui trịnh phât triïín phíìn mïìm cuơ thïí. Hiïơn nay, híìu hïịt câc cưng cuơ hưỵ trúơ phín tđch thiïịt kïị ăïìu cô hưỵ trúơ ngưn ngûơ UML, viïơc nghiïn cûâu UML giuâp chuâng ta cô thïí tịm hiïíu vađ sûê duơng câc CASE tool hưỵ trúơ cho viïơc phât triïín phíìn mïìm, ăưìng thúđi cô thïí tiïịp cíơn vúâi nhûơng qui trịnh săn xuíịt phíìn mïìm tiïn tiïịn trïn thïị giúâi. Trong ăiïìu kiïơn nïìn cưng nghïơ phíìn mïìm nûúâc ta cođn khâ non treê, viïơc ặa vađo sûê duơng mươt qui trịnh cưng nghïơ vađ mươt ngưn ngûơ mư hịnh hôa múâi seơ gùơp khưng đt khô khùn, nhûng trong giai ăoaơn buđng nưí cuêa ngađnh cưng nghïơ phíìn mïìm hiïơn nay viïơc tịm hiïíu vađ sûê duơng mươt ngưn ngûơ mư hịnh hôa hiïơu quă nhû UML lađ ríịt cíìn thiïịt.
Chûúng 5 TƯÍNG KÏỊT 180 5.2. Hûúâng phât triïín
UML lađ mươt ngưn ngûơ mư hịnh hôa ríịt rương, bïn caơnh nhûơng phíìn ăaơ ặúơc trịnh bađy trong luíơn vùn, UML cođn cô nhiïìu ûâng duơng ríịt ăa daơng nhû câc ûâng duơng mư hịnh hôa hïơ thưịng thúđi gian thûơc, câc hïơ thưịng phín tân, câc ûâng duơng trïn web...
Trïn cú súê nhûơng phíìn ăaơ thûơc hiïơn, ăïì tađi cuêa chuâng em cô mươt sưị hûúâng phât triïín sau:
_ Xíy dûơng tađi liïơu nghiïn cûâu giăng daơy UML
_ Dûơa trïn qui trịnh cưng nghïơ RUP, tịm hiïíu vađ xíy dûơng mươt phûúng phâp phât triïín phíìn mïìm phuđ húơp vúâi ăiïìu kiïơn cuêa nïìn cưng nghïơ phíìn mïìm nûúâc ta hiïơn nay.
em trong suưịt nhûơng nùm hoơc vûđa qua. Mùơc duđ chuâng em ăaơ hïịt sûâc cưị gùưng ăïí hoađn thiïơn ăïì tađi nhûng chùưc khưng trânh khoêi nhûơng thiïịt sôt nhíịt ắnh, kđnh mong quyâ thíìy cư tíơn tịnh chĩ băo ăïí ăïì tađi cuêa chuâng em ặúơc hoađn thiïơn hún.
Phuơ luơc A CÂC KHÂI NIÏƠM
A
abstract class Lúâp trûđu tûúơng khưng cô thûơc thïí ăaơi diïơn.
action Hađnh ăương, hađnh ăương cô kïịt quă lađm thay ăưíi mươt traơng thâi nađo ăô cuêa hïơ thưịng.
action state Mươt traơng thâi hoaơt ăương gíy ra mươt hađnh ăương nađo ăô. activation Sûơ kđch thđch mươt hađnh ăương.
active class Mươt lúâp cô nhûơng thûơc thïí lađ mươt active object.
active object Mươt ăưịi tûúơng súê hûơu mươt tiïịn trịnh cô thïí ăiïìu khiïín ặúơc.
actor Tâc nhín - lađ mươt thûơc thïí ăông vai trođ tûúng tâc vúâi hïơ thưịng, tâc nhín cô thïí lađ ngûúđi sûê duơng hïơ thưịng hóơc mươt hïơ thưịng khâc.
aggregation Lađ mươt quan hïơ thu naơp giûơa mươt lúâp ăông vai trođ toađn thïí vađ mươt lúâp ăông vai trođ lađ bươ phíơn.
artifact Mươt phíìn thưng tin ặúơc duđng hóơc ặúơc phât sinh tûđ hïơ thưịng. association Quan hïơ kïịt húơp giûơa hai thađnh tưị trong hïơ thưịng.
association end Ăiïím cuưịi cuêa quan hïơ kïịt húơp liïn kïịt vúâi mươt classifier. attribute Thuươc tđnh cuêa mươt thađnh tưị trong lûúơc ăưì.
B
behavior Hađnh vi cuêa thađnh tưị trong hïơ thưịng. binary
association Quan hïơ kïịt húơp nhõ phín/ quan hïơ kïịt húơp giûơa hai lúâp. C
(interface), sûơ cương tâc (collaboration) vađ câc mưịi quan hïơ giûơa câc thađnh phíìn trong mư hịnh.
collaboration Mươt collaboration mư tă quâa trịnh thûơc hiïơn cuêa mươt thao tâc hay mươt classifier trong mươt tíơp câc classifier cô tûúng tâc vúâi nhau.
collaboration
diagram Lađ mươt lûúơc ăưì tûúng tâc tíơp trung vađo cíịu truâc tưí chûâc, mưịi quan hïơ tâc ăương qua laơi giûơa câc ăưịi tûúơng.
comment Lađ mươt chuâ thđch ặúơc gùưn vađo câc thađnh tưị trong mư hịnh nhùìm lađm roơ nghơa cho câc thađnh tưị nađy.
component Lađ mươt phíìn cuêa hïơ thưịng ặúơc triïín khai. component
diagram Lađ mươt lûúơc ăưì ghi nhíơn câc tưí chûâc vađ sûơ phuơ thuươc giûơa câc thađnh phíìn trong hïơ thưịng.
composite state Lađ mươt traơng thâi chûâa câc traơng thâi con luín phiïn hóơc tuíìn tûơ (tâch túđi).
composition Quan hïơ cíịu thađnh, lađ mươt daơng maơnh hún cuêa quan hïơ thu naơp. Concurrent substate Lađ mươt traơng thâi con ặúơc tiïịn hađnh ăưìng thúđi vúâi mươt traơng thâi con khâc bïn trong mươt traơng thâi ghêp.
D
datatype Kiïíu dûơ liïơu, mư tă kiïíu dûơ liïơu cuêa ngûúđi sûê duơng. dependency Quan hïơ phuơ thuươc giûơa hai thađnh tưị mư hịnh. deployment
diagram Lađ mươt lûúơc ăưì thïí hiïơn cíịu hịnh luâc chaơy cuêa câc thađnh phíìn, câc thiïịt bõ, bươ xûê lyâ.
derived element Lađ mươt thađnh tưị ặúơc díỵn xuíịt tûđ câc thađnh tưị khâc trong hïơ thưịng.
disjoint substate Mươt traơng thâi con khưng thïí tiïịn hađnh ăưìng thúđi vúâi câc tiïịn trịnh con khâc trong mươt traơng thâi ghêp.
E
entry action Lađ mươt hađnh ăương ăíìu vađo cuêa mươt traơng thâi.
event Mươt sûơ kiïơn, cô thïí gíy ra sûơ chuýín ăưíi traơng thâi trong lûúơc ăưì traơng thâi.
exit action Lađ mươt hađnh ăương ăíìu ra cuêa mươt traơng thâi.
extend Quan hïơ múê rương giûơa hai Use case, hađnh vi cuêa use case nađy ặúơc múê rương tûđ nhûơng hađnh vi cuêa mươt use case khâc.
ăưịi tûúơng thi hađnh mươt hađnh ăương. G
generalization Mưịi quan hïơ giûơa mươt thađnh tưị tưíng quât vađ mươt thađnh tưị phuơ ăùơc biïơt.
guard condition Lađ mươt ăiïìu kiïơn cíìn ặúơc thoêa maơn ăïí cô thïí thi hađnh mươt mươt sûơ chuýín ăưíi traơng thâi.
I
interface Tïn cuêa mươt tíơp câc thao tâc ăùơc trûng cho hađnh vi cuêa mươt thađnh tưị mư hịnh.
internal
transition Lađ mươt sûơ chuýín ăưíi tđn hiïơu hưìi ăâp cho mươt sûơ kiïơn mađ khưng cíìn thay ăưíi traơng thâi cuêa ăưịi tûúơng.
L
link Lađ mươt tham chiïịu giûơa câc ăưịi tûúơng..
M
message Lađ mươt sûơ chuýín ăưíi thưng tin giûơa câc thûơc thïí.
metaclass Lađ mươt lúâp trûđu tûúơng mađ thïí hiïơn cuêa nô lađ nhûơng lúâp. model element Thađnh tưị mư hịnh.
multiplicity Băn sưị, ăùơc tă sưị lûúơng cho phêp cuêa câc thûơc thïí trong mươt mưịi quan hïơ.
N
n-ary association Quan hïơ kïịt húơp bíơc n, lađ mươt quan hïơ kïịt húơp giûơa ba hay nhiïìu lúâp vúâi nhau.
name Lađ mươt chuưỵi ắnh nghơa cho thađnh tưị mư hịnh. node Lađ mươt thađnh phíìn biïíu diïỵn câc tađi nguýn mây tđnh. O
object Lađ mươt thïí hiïơn cuơ thïí cuêa mươt lúâp trong hïơ thưịng.
object diagram Lađ mươt ăưì thõ cuêa câc thïí hiïơn, bao gưìm câc ăưịi tûúơng vađ câc giâ trõ cuơ thïí.
quan hïơ vúâi mươt ăưịi tûúơng khâc thưng qua quan hïơ kïịt húơp. R
role Lađ tïn ăùơt biïơt cuêa mươt thûơc thïí tham gia trong mươt ngûơ cănh ăùơc biïơt nađo ăô.
S
sequence
diagram Lađ mươt lûúơc ăưì tûúng tâc tíơp trung vađo câc hađnh vi ăương hûúâng thúđi gian.
signal Ăùơc tă mươt mưịi liïn hïơ kđch thđch khưng ăưìng bươ giûơa câc thûơc thïí. Tđn hiïơu cô thïí cô tham sưị.
state Lađ mươt hoađn cănh hóơc mươt tịnh huưịng trong quâa trịnh sưịng cuêa ăưịi tûúơng thoêa maơn mươt ăiïìu kiïơn nađo ăô, biïíu diïỵn mươt sưị hoaơt ăương hóơc chúđ mươt vađi sûơ kiïơn.
Statechartdi Lađ mươt lûúơc ăưì thïí hiïơn mây traơng thâi.
Diagram stereotype Lađ mươt loaơi phíìn tûê mư hịnh duđng ăïí múê rương ngûơ nghơa cuêa UML. Khuưn míỵu phăi dûơa trïn câc thađnh tưị ăaơ ặúơc ắnh nghơa trong
UML.Stereo chĩ múê rương vïì ngûơ nghơa khưng múê rương vïì cíịu truâc..
substate Traơng thâi lađ mươt phíìn cuêa traơng thâi ghêp. subpackage Mươt package chûâa câc package khâc.
subsystem Nhôm câc thađnh tưị mư hịnh biïíu diïỵn câc ăún võ hađnh vi trong hïơ thưịng víơt lyâ.
swimlane Duđng ăïí nhôm câc hađnh ăương cô cuđng mươt muơc ăđch nađo ăô trong lûúơc ăưì ăưịi tûúơng.
T
tagged value Gđa trõ theê ắnh nghơa mươt thuươc tđnh theo daơng tïn-giâ trõ. Duđng ăïí bưí sung thưng tin cho câc thađnh tưị mư hịnh.
transition Quan hïơ giûơa hai traơng thâi, chĩ ra rùìng mươt ăưịi tûúơng chuýín tûđ traơng thâi nađy sang mươt traơng thâi khâc khi cô mươt sûơ kiïơn hóơc mươt tđn hiïơu nađo ăô xăy ra.
U
use case Lađ mươt chuưỵi câc hađnh ăương hóơc mươt ăún võ chûâc nùng ặúơc cung cíịp búêi hïơ thưịng nhùìm ăâp ûâng nhu cíìu cuêa câc tâc nhín bïn ngoađi hay câc hïơ thưịng khâc.
use case diagram Lûúơc ăưì Use Case ghi nhíơn chûâc nùng cuêa hïơ thưịng dûúâi gôc nhịn cuêa ngûúđi sûê duơng.
Phuơ luơc B CÂC KYÂ HIÏƠU
Tïn Kyâ hiïơu
Actor (tâc nhín) Name
Association (Quan hïơ kïịt húơp)
Aggregation (Quan hïơ thu naơp/kïịt húơp) Composition (Quan hïơ cíịu thađnh) Class (lúâp)
Collaboration (sûơ cương tâc) Component (thađnh phíìn) Constraint (rađng buươc)
Dependency (quan hïơ phuơ thuươc) Generalization (quan hïơ tưíng quât hôa) Interface (giao tiïịp)
Node (Nuât) Note (ghi chuâ) Object (ăưịi tûúơng) Package (gôi)
Stereotype (khuưn míỵu) (stereotype)
Tagged Value (giâ trõ theê) Use case Name
TAĐI LIÏƠU THAM KHĂO
(1) Bruce Powel Douglass - Ph.D.Chief Evangelist, The Unified Modeling Language for Systems Engineering, I-Logix 1/1999.
(2) CRaG System Report, An Introduction to the UML, 1998.
(3) Engineering Notebook C++ Report, UML Use Case Diagrams, 10/1998. (4) James Rumbaugh, UML – The View from the front, Rational Software
Corporation, 3/1999.
(5) Grady Booch, Software Architecture and the UML, Rational Software,
4/2000.
(6) Grady Booch, James Rumbaugh, Ivar Jacobson, The Importance of Modeling, The UML User’s Guide,1998.
(7) Gunnar Overgaard, Bran Selic vađ Conrad Bock, Object Modeling with UML Behavioral Modeling, 1/2000.
(8) Ivar Jacobson, Grady Booch, James Rumbaugh, The Unified Software Development Process Book, 4/1999.
(9) OMG & Rational Corporation, OMG Unified Modeling Language Specification V1.3, 8/1999.
(10) Popkin Software, Modeling Systems with UML, A Popkin Software White
Paper, 1998.
(11) Philippe Kruchten, A Rational Development Process, 4/2000.
(12) Rational Software Corporation, Analysis and Design with UML, 1997. (13) Rational Software Corporation, Rational Unified Process – Best Practices for Software Development Teams,A Rational Software Corporation White
International White Paper, 3/2000.
(19) Scott W.Amber, The Unified Modeling Language and Beyond: The Techniques of Object-Oriented Modeling, An AmbySoft Inc.White Paper
2/2000.
(20) Sinan Si Alhir, Applying the Unified Modeling Language, 8/1998.
(21) Sinan Si Alhir, Description of the Public Model for Unified Modeling Language metamodel abstract syntax V1.3, OMG Revision Task Force 11/1998. (22) Sinan Si Alhir, Extending the UML, 1/1998
(23) Sinan Si Alhir, The Foundation of the UML, Updated 8/1998
(24) Sinan Si Alhir, The UML – One year sfter Adoption of the Standard,
1/1999.
(25) Sinan Si Alhir, The UML – One year sfter Adoption of the Standard,
12/1999.
(26) Sinan Si Alhir, Reuse and the UML, Updated 1/1999. (27) Sinan Si Alhir, Succeeding with UML, 8/1998.
(28) Sinan Si Alhir, What is the UML, 8/1998.
(29) Sinan Si Alhir, The True Value of the Unified Modeling Language, 9/1998. (30) Sinan Si Alhir, Unified Modeling Language - Extension Mechanisms,
10/1998.
(31) Tony Clark & Andy Evans, Foundation of Unified Modeling Language,
University of Bradford, UK 8/1999.