Professional Documents
Culture Documents
2636
2636
1.3- M hnh ha tr c quan: 2- M t chu trnh pht tri n ph n m m: 2.1- Software Development m t bi ton ph c t p: 2.2- Chu Trnh Pht Tri n Ph n M m (Software Development Life Cycle): 2.3- Cc giai o n c a Chu Trnh Pht Tri n Ph n M m: 3- Phng php h ng ch c nng v phng php h ng i t ng: 3.1- Phng php h ng ch c nng: 3.2- Phng php h ng i t ng:
4- u i m c a m hnh h ng i t ng: 4.1- Tnh ti s 4.2- Cc giai h ng i t ng: d ng (Reusable) o n c a chu trnh pht tri n ph n m m v i m hnh
Ph n cu h i
Chng 2: NGN NG
M HNH HO TH NG NH T L G
th ng: th ng:
Ph n cu h i
UML
1- UML v cc giai o n c a chu trnh pht tri n ph n m m 1.1- Giai o n nghin c u s b : 1.2- Giai o n phn tch: 1.3- Giai o n thi t k : 1.4- Giai o n xy d ng: 1.5- Th nghi m: UML
3.1- H ng nhn Use case (Use case View): 3.2- H ng nhn logic (Logical View): 3.3- H ng nhn thnh ph n (Component View): 3.4- H ng nhn song song (Concurrency View): 3.5- H ng nhn tri n khai (Deployment View): 4- Bi u (diagram) Use case (Use Case Diagram): l p (Class Diagram): i t ng (Object Diagram): tr ng thi (State Diagram):
10- Tm t t v
Ph n Cu h i
5.1- H th ng
gi a cc Use Case
Ph n cu h i
Chng 6: M HNH
1- S
NG
c ng tc (Collaboration Diagram)
tr ng thi ki n tr ng thi
7.3- Nh n bi t tr ng thi v s
10.3- Bao gi th s
10.4- L p con v bi u
tr ng thi
Ph n cu h i
1- D N NH P
1.1- Tnh tr c quan:
Chng ta c th th y r ng: "M t s t p h p d c trnh by b ng so v i cc d Kh th s truy n t i li u ph c t p nh t nh khi n ng i c nhi u thng tin hn nn ph c t p hn. i km v i trnh by v t ra
c a chng ta ngy cng pht tri n, cc h th ng s tr nng n m b t v ki m sot s kh nng trnh by h th ng m t cch ton di n - m t s ngoi gi i h n c a nh ng dng l nh th. S nh ng ngn ng Java cho th y s
v t qu ngn sch v th i h n. Cc cng ngh c gip chng ta nng cao nng su t lao
i t ng, l p trnh tr c quan cng nh cc mi tr ng pht tri n tin ti n ng, nhng trong nhi u tr ng chnh c a ngnh pht h p, chng ch h ng t i t ng th p nh t c a vi c pht tri n ph n m m: ph n vi t l nh (coding). M t trong nh ng v n tri n ph n m m th i nay l c nhi u tr thi u hi u bi t v th y h n b t tay vo l p trnh qu s m n y lo u khi m
v t p trung qu nhi u vo vi c vi t code. L do m t ph n l do ban qu n quy trnh pht tri n ph n m m v h i qun l p trnh c a h khng vi t code. V b n thn cc l p trnh ng i vi t code - v n l tc v
c ty uc am tv n
t ng ha l m t nng l c cn b n c a con ng i, cho php chng ta gi i s, ngh th hng ngn nm nay nghi m thi t k tr c khi
th c hi n. Pht tri n ph n m m cng khng l ngo i l . khc nhau c a h th ng, s b sung thm chi ti t d ng k hi u chnh xc i h i c a h
xy d ng cc
Chng ta xy d ng m hnh cho cc h th ng ph c t p b i chng ta khng th hi u th u o nh ng h th ng nh th trong tr ng thi ton v n c a c a ngnh xy d ng. N u b n b t tay vo xy ngay. N u chng. Kh h n. nng th u hi u v n m b t tnh ph c t p c a con ng i l c gc v n, b n c th b n s
i u ny ta c th th y r trong v d
mu n t o m t tp l u
b n xy m t ngi nh, c l Th
c n t i b n v , nhng n u b n mu n
xy m t to nh ch c tr i th ch c ch n b n khng th khng c n b n v . gi i ph n m m c a chng ta cng th . Ch t p trung vo cc dng phn tch Forms trong Visual Basic ch ng cung c p vi c pht tri n n. Xy d ng m hnh cho s tng tc gi a cc code hay th m ch c php nh thi t k thnh ph n trong t ng thnh ph n. M t mi tr ng kinh doanh mang tnh c nh tranh gay g t v lun lun thay i d n n tnh ph c t p ngy cng tng cao, v tnh ph c t p ny c trng cho cc nh pht tri n h p th ng. M ch c, trnh by tr c quan, th u hi u v t o nn cc ng cc thch th c c a vi c t ra nh ng thch th c hnh gip chng ta t h
m t ci nhn ton c c v
t p trung vo b c tranh l n v
2- M T
b ng vn b n, di dng, kh hi u,
nhi u khi th m ch mu thu n. i qun pht tri n ph n m m, v n l ng i "ngoi cu c", r t kh nh n th c th u o cc m i quan h ti m ng d ng l n. li u ph c t p c a con ng i (t i cng n v ph c t p c n c th hi n chnh xc trong cc Kh nng n m b t cc d
chnh xc s
Ch n l a ph n c ng v ph n m m thch h p cho gi i php l m t trong nh ng thch th c l n Ph n m m ngoi ra c n c kh c thi t k t t l ph n m m tr ng, d t ph n m m s a pha c ng i v i Designer. ng v m r ng. Ph n m m i trong mi nng ti s
nng thch
ng v ng tr c nh ng bi n
ng ng i dng hay t
i. Ph n m m tho mn cc yu c u c coi l ph n m m c kh
r ng l ph n m m
c thi t k
sao cho
d pht tri n theo yu c u c a ng i dng m khng c n s a ch a nhi u. Chnh v v y, m t s m m l: Hi u khng ng nh ng g ng i dng c n Khng th thch ng cho ph h p v i nh ng thay i v yu c u cc khi m khuy t th ng g p trong pht tri n ph n
i v i h th ng
quanh chu trnh c a m t ph n m m, d n t i k t q a khi ni m Chu Trnh Pht Tri n Ph n M m (Software Development Life Cycle - SDLC) nh sau: Chu Trnh Pht Tri n Ph n M m l m t chu i cc ho t tch (Analyst), nh thi t k ng i dng (User) Nh ng ho t pht tri n v th c hi n m t h ng c a nh phn th ng thng tin. an khc nhau.
Nh phn tch (Analyst): l ng i nghin c u yu c u c a khch hng/ng i dng d ng nhu c u c a m t t php v cng ngh nh ngha m t ph m vi bi ton, nh n ch c, xc nh xem nhn l c, phng c i thi n m t cch lm sao
my tnh c th
v ph n c ng v ph n m m cho h th ng c n c pht tri n. Chuyn gia lnh v c (Domain Experts): l nh ng ng i hi u th c ch t v n tin h c ho. H cng t t c nh ng s ph c t p c a h th ng c n c khng nh t thi t ph i l nh l p trnh, nhng h t ra
th gip nh l p trnh hi u yu c u i ng lm ph n m m c c s
i v i h th ng c n pht
c r t nhi u thu n l i n u
tr gip c a h .
n gi n sau: c m t
t c a ng i bnh th ng nh sau:
i t ng c nhi u ng i h ng
khng ph i cu h i mang tnh phng php lu n. M cng ch ng thu t. N l m t cu h i d ng nh c v c bi t kh tr c l i: y c gi n, nhng th t ra th c t th ng ch ng h M c d vi c l m l n v thu t cng c th c c u vn n u c ng l m t h c tr l i. k n c th i u g
th c hi n khng?
d n t i th t b i, nhng th ng th d
c g ng qun mnh
ch ng m t ai v m t
c cng nh n hay lo i b . Cc ho t
trong th i gian ny th ng bao g m thu th p cc t ng, nh n bi t r i ro, nh n bi t cc giao di n bn ngoi, nh n bi t cc cc ch c nng chnh m h nguyn m u dng t ng c th n t th ng c n cung c p, v c th t o m t vi th ng. minh ch ng cc khi ni m c a h
khc ang t n t i. M t kha c nh c n nh c t i l code vi t trong th i c vi t nh m m c gip cc gi thuy t khc nhau, ch cha ph i th
code c vi t theo k t qu phn tch v thi t k th u o. Trong giai an nghin c u s b , nhm pht tri n h s d ng, cng ngh th ng c n ng
xem xt cc yu c u c a doanh nghi p (c n dng h th ng), nh ng ngu n ti nguyn c th cng nh c ng ng i dng cng cc t ng c a h phn tch kh i v i h th ng m i. C th d ng v t o ch
th c hi n th o lu n, nghin c u, xem xt kha c nh thng m i, nng l i-l , phn tch cc tr ng h p s cc nguyn m u xy d ng nn m t khi ni m cho h th ng
cng v i cc m c ch, quy n u tin v ph m vi c a n. Th ng trong giai o n ny ng i ta cng ti n hnh t o m t phin d ng ti nguyn. ng s l p nn t p h p cc th ng kh ng s thi d n
thch
yu c u (d giai c
i v i m t h
v c mong mu n, k c v phng di n k thu t l n x h i. M t o n nghin c u s b th ng khng d ng. o n nghin c u s b l Bo Co K t Qu Nghin c ch p nh n d a trn u. c th c hi n tho t i cc h t t hay s c mong mu n, t ti n, b t kh thi v
nh ngha l m l c nh ng h th ng th ng ch ng
c hon
K t qu c a giai C u Tnh Kh
Thi. Khi h
th ng tng lai
b n bo co ny cng l lc giai o n Phn tch b t b- Phn tch yu c u Sau khi th ng hi u h xem xt v tnh kh c a d thi c a h
th ng cng nh t o l p o n
m t b c tranh s b
phn tch. Qu trnh phn tch nhn chung l h qu c a vi c tr l i cu h i "H th ng c n ph i lm g?". Qu trnh phn tch bao g m vi c nghin c u chi ti t h ho t th ng doanh nghi p hi n th i, tm cho ra nguyn l c nng cao, c i thi n. ng c a n v nh ng v tr c th
v i pha ngoi h th ng. Trong ton b giai o n ny, nh phn tch v ng i dng c n c ng tc m t thi t v i nhau c u i v i h vo h th ng. Nh ng m c tiu c th c a giai o n phn tch l: Xc nh h th ng c n ph i lm g. th ng, t c l cc tnh nng m i c n ph i
Nghin c u th u o t t c cc ch c nng c n cung c p v nh ng y u t lin quan Xy d ng m t m hnh nu b t b n ch t v n nhn c th c (trong Trao i s ng th c). cho chuyn gia lnh v c nh n s nh t m t h ng
nh ngha v n
nh, giai
cc yu c u c nu trong
c T Yu C u?
M t s cc cng vi c th ng c th c hi n trong giai o n thi t k : Nh n bi t form nh p li u ty theo cc thnh ph n d nh p. Nh n bi t reports v nh ng output m h th ng m i ph i s n sinh Thi t k k ) Nh n bi t cc thnh ph n d li u v b ng t o database l t input n output. forms (v trn gi y hay my tnh, s d ng cng c thi t li u c n
(Design Specifications). B n
Thi t K
Chi Ti t s
th c hi n giai o n xy d ng ph n m m. d - Xy d ng ph n m m
code th c hi n nh ng yu c u gi i thch th
c nh thi t k
t c (procedure) m anh ta t o nn c vi t nh th no v
m b o chng trnh c vi t nn ph i tho mn m i yu c u c ghi tr c trong b n ph i ti n hnh th c T Thi t K Chi Ti t, ng i vi t code cng ng th i nghi m nghi m ph n chng trnh c a mnh. Ph n th c chia thnh hai b c chnh:
trong giai o n ny c th Th
Ng i vi t code ch y th
(test/dummy data). Vi c ny
ho ch th , cng o n th i. Giai o n th
Cng vi c ny do m t thnh vin khc trong nhm ng i khng c lin quan tr c ti p trnh c n th nghi m m b o tnh
n vi c vi t code c a
c l p. Cng vi c th
do ng i vi t code so n nn.
nghi m ring, c n ph i th
nghi m ton
h th ng. M i th li u th
c T Yu C u v nh ng mong ch c a ng i dng c c
pht hi n m i l ch l c so v i mong ch .
f - Th c hi n, tri n khai Trong giai o n ny, h th ng v a pht tri n s ng i dng th t s m b o h th ng c tri n khai sao cho b t tay vo s c s d ng h li u c n thi t cng nh d ng h u hi u
pha ng i dng. Tr c khi hu n luy n cho ng i dng, nh t. g - B o tr, nng c p Ty theo cc bi n l i th i hay c n ph i
i trong mi tr ng s c s a
d ng, h s
th ng c th
tr
nn
i nng c p
d ng c hi u qu . Ho t
nng c p c n thi t.
Hnh 1.3: S
3- Phng php h ng ch c nng v phng php h ng t ng: 3.1- Phng php h ng ch c nng:
y l l i ti p c n truy n th ng c a ngnh Cng ngh ph n m m. Theo l i ti p c n ny, chng ta quan tm ch y u t i nh ng thng tin m h th ng s gi gn. Chng ta h i ng i dng xem h ngn hng d li u nh p thng tin v in bo co s c n nh ng thng tin no, , cung n c trnh by cc thng tin. Ni ng ( ng x ) r i chng ta thi t k c p Forms ch a nh ng thng tin
m t cch khc, chng ta t p trung vo thng tin v khng m y nh ng g c th x y ra v i nh ng h th ng v cch ho t c a h th ng l ra sao. p d ng y l l i ti m c n xoay quanh d li u v
li u v n m b t thng tin, nhng n u p d ng cho vi c thi t k khi n pht sinh nhi u kh khn. M t trong nh ng i v i cc h th ng th ng xuyn thay l vi c thay i. M t li u c th d dng x i ngn hng
Phng php h ng V i l i ti p c n h ng v n
tr l i cho v n
hai m t c a
i t ng:
thng d ng hi n th i c a ngnh cng ang nhanh chng tm cch p d ng v ng d ng c a h . Th t s l a ph n i i t ng. Nhng h ng
u mang tnh h ng
i t ng l m t l i t duy v
v n
theo l i nh x i th c. V i l i xy d ng n tr
cc thnh ph n trong bi ton vo cc ti p c n ny, chng ta chia i t ng, chng tng chi xy lu lo i m u g M t khi nhau t o i
i t ng ngoi
ng d ng b ng cch ch p cc cn b n, t
i b ng cc m u g . B c
t o nn cc kh i xy d ng cn b n c a mnh. , b n c th nh v y m t khi
c cc kh i xy d ng t o lu i. Tng t
Xin l y m t v d g thnh ph n
4- U
I M C A M HNH H NG
4.1- Tnh ti s d ng (Reusable)
I T NG:
i t ng th c hi n theo cc thu t ng
th ng v v n
bn xe t, m i giai
o n phn tch
c ng tc c a khch hng/ng i dng, nh phn tch, nh thi t k , nh pht tri n, thu t,... nn l i ti p c n ny khi n cho vi c giao ti p gi a h v i nhau c d dng hn. M t trong nh ng u thi t k h ng i m quan tr ng b c nh t c a phng php phn tch v d ng: b n c th t o cc thnh ph n ( i
i t ng l tnh ti s
t ng) m t l n v dng chng nhi u l n sau . Gi ng nh vi c b n c th ti s d ng cc kh i xy d ng (hay b n sao c a n ) trong m t to lu nh , m t con tu v tr , b n cng c th h ng ti s t ng) cn b n trong cc thi t k i, m t ngi i d ng cc thnh ph n ( t hng. , nn kh
i t ng cng nh code c a m t h
th ng k ton, h th ng ki m k, ho c m t h th ng V cc i t ng d ng c th nghi m k
nng ti s
i t ng c tc d ng gi m thi u l i v cc kh khn trong vi c thi t k v pht tri n ph n m m. i t ng gip chng ta x h l cc v n ph c t p trong nng thch ng v
pht tri n ph n m m v t o ra cc th
ph n m m c kh
4.2- Cc giai o n c a chu trnh pht tri n ph n m m v i m hnh h ng i t ng: Phn tch h ng i t ng (Object Oriented Analysis - OOA): L giai an pht tri n m t m hnh chnh xc v sc tch c a v n i t ng v khi ni m o n OOA, v n i th c, d hi u i v i ng i s , c thnh d ng. ng v i
ph n l cc Trong giai cc
c trnh by b ng cc thu t ng , h th ng c n ph i c
tng
i t ng c th c. Thm vo
Ng i bn hng d n khch hng tham quan phng trng by xe. Khch hng ch n m t chi c xe Khch hng vi t phi u Khch hng tr ti n xe Xe t c giao n cho khch hng t xe
i v i v d nh bng l , giai o n OOA s nh n bi t c cc th c th nh: Lo i ti kho n: ATM (rt ti n t (bnh th ng), Fixed ( Khch hng Nhn vin Phng my tnh. Tng tc v quan h gi a cc i t ng trn: u t),... ng), Savings (ti t ki m), Current
ti kho n ti t ki m sang ti kho n ATM n c hai kha c nh: thng tin v cch
ni, ta ch
L i phn tch b ng ki u nh x
t ng trong
c a m t l p. Cc l p l thnh vin c a m t cy c u
trc v i m i quan h th a k . M c ch c a giai kh o n OOD l t o thi t k d a trn k t qu c a giai nh phi ch c nng, nh ng yu c u v o n OOA, c a
d a trn nh ng quy yu c u v
mi tr ng, nh ng m b o tho mn t t
OOA, t i u ha gi i php c cung c p trong khi v n c cc yu c u c xc l p. Trong giai o n OOD, nh thi t k nh chng c n ph i y cng l giai
nh ngha cc ch c nng, th c
t c
(operations), thu c tnh (attributes) cng nh m i quan h l p (class) v quy t mi tr ng pht tri n. o n
c a m t hay nhi u li u v p
d ng cc k thu t tiu chu n ha. V cu i giai Cc bi u o n OOD, nh thi t k ny c th tnh bi u th cc l p v a ra m t lo t cc bi u i t ng, trong khi bi u (diagram) khc ng. ng bi u th n v thnh
nhau. Cc bi u
ng chnh xc c a chng. Cc l p
t ng
(Object
Oriented
h ng ngn ng
d ng m t ngn ng
cu c c a giai
o n ny l m t lo t cc code ch y
d ng sau khi tr i qua nhi u vng quay c a nhi u b c th nghi m khc nhau.
PH N CU H I
H i: M t s t p h p d s truy n t i p: ng n ng i li u ph c t p nh t nh khi c trnh by b ng li u th? th c nhi u thng tin hn so v i cc d
1- GI I THI U UML:
1.1- M hnh ha h Nh trnh by th ng ph n m m: o n phn tch h th ng l s n d ng v nh cc
ph n tr c, m c tiu c a giai
xu t ra m t m hnh t ng th c a h th ng c n xy d ng. M hnh ny c n ph i c trnh by theo h ng nhn (View) c a khch hng hay ng i s lm sao h hi u c. M hnh ny cng c th i v i h th ng v qua n. c lnh h i m t cch th u u tin ng i ta o trong h u nh u, khi mu n quy t cs d ng xc yu c u c a ng i dng kh thi c a d gip chng ta
nh gi tnh
T m quan tr ng c a m hnh xy d ng m t v t th no nh c ,
nhi u th k nay. B t k
t o nn cc b n v
ng c a n. Ch ng h n cc b n v k c th t n t i trong m t s giai o n
thu t th ng g p l m t d ng m hnh quen thu c. M hnh nhn chung l m t cch m t c a m t v t th no nh t nh, d l giai o n thi t k hay giai o n xy d ng ho c ch l m t k c chia thnh nhi u h ng c xy d ng
ho ch. Nh thi t k c n ph i t o ra cc m hnh m t t t c cc kha c nh khc nhau c a s n ph m. Ngoi ra, m t m hnh c th nhn, m i h ng nhn trong s trong nhi u giai chi ti t nh t nh. c m t c th trong ngn ng tr c quan, i u c ngha l a o n v chng s m t m t kha c nh ring bi t c a s n c b sung thm m t s
M hnh th ng
hi n b ng cc k hi u thng tin m i
h a v cc k t n i gi a d ng vn b n; ngn t ". T o m tr
c bi u di n
xy d ng nn chng,
c ch p nh n trong
D thay
xy d ng nn ton th c a n.
Ni tm l i, m hnh ha m t h th ng nh m m c ch: Hnh dung m t h chng ta. Ch r c u trc ho c ng x c a h th ng. th ng theo th c t hay theo mong mu n c a
T o m t khun m u h ng d n nh pht tri n trong su t qu trnh xy d ng h th ng. Ghi l i cc quy t nh c a nh pht tri n s d ng sau ny.
1.2- Tr c khi UML ra i: u nh ng nm 1980, ngnh cng ngh ng h ng h ng trong s ph n m m ch c duy nh t m t ngn 1980, cc ngn ng i t ng. V m t vi u th p k 90
Grady Boochs Booch Modeling Methodology James Rambaughs Object Modeling Technique OMT Ivar Jacobsons OOSE Methodology Hewlett- Packards Fusion Coad and Yordons OOA and OOD M i phng php lu n v ngn ng php x l ring v cng c h tr php no l t t nh t. phng php trn trn u c h th ng k hi u ring, phng l i, b i t t c cc i m
y l cu c tranh lu n kh c cu tr
u c nh ng
pht tri n ph n m m nhi u kinh nghi m th ng s m nh c a m i phng php cho gi a cc phng php gian, t t c Chnh hi n th c ny h u nh khng ng k
ng d ng c a mnh. Trong th c t , s ti m c n l i v b
Trong b i c nh trn, ng i ta nh n th y c n thi t ph i cung c p m t phng php ti m c n cc bi u c chu n ho v th ng nh t cho vi c m hnh ho h ng n m b t cc quy t lnh nh v m t thi t k i t ng. Yu c u c th l a ra m t t p h p chu n ho cc k hi u (Notation) v (Diagram) m t cch r , chng rng, rnh m ch. c ba cng trnh tin phong nh m t i m c tiu
c th c hi n d i s Ng
Jacobson. Chnh nh ng c g ng ny d n
M Hnh Ho Th ng Nh t (Unifield Modeling Language UML). m hnh ho th ng nh t c ph n chnh bao g m nh ng k i t ng s d ng th hi n v c t , tr c quan giao ti p gi a
c cc phng php h ng
ho, xy d ng v lm su li u cho nhi u kha c nh khc nhau c a m t h th ng ng i dng, nh phn tch, nh thi t k v nh pht tri n ph n m m. Trong qu trnh pht tri n c nhi u cng ty h tr v khuy n khch pht tri n
UML c th k t i nh: Hewlett Packard, Microsoft, Oracle, IBM, Unisys. 1.4- UML (Unifield Modeling Language): Ngn ng ngn ng m hnh ha th ng nh t (Unifield Modeling Language UML) l m t bi u di n m hnh theo h ng ch l: d ng cc khi ni m h ng i t ng. ki n i t ng c xy d ng b i ba tc
gi trn v i ch
nh n th c c a con ng i
n cc s
th a k trong cc h th ng ph c t p,
c nhi u rng bu c khc nhau. T o m t ngn ng my. 1.5- Phng php v cc ngn ng m hnh ho: m hnh ho c th s d ng c b i ng i v
Phng php hay phng th c (method) l m t cch tr c ti p c u trc ho s suy ngh v hnh ng c a con ng i. Phng php cho ng i s d ng bi t ph i
c dng
trong qu trnh s
d ng phng php.
khc nhau chnh gi a m t phng php v m t ngn ng cu l nh (instruction) m t nh ng cng vi c ng i s M t m hnh c bi u di n theo m t ngn ng t p cc quy t c ch cch s
m hnh ho (modeling
Syntactic (C php): cho bi t hnh d ng cc bi u t ng v cch k t h p chng trong ngn ng . Semantic (Ng c hi u th ngha): cho bi t ngha c a m i bi u t ng, chng no khi n m trong ho c khng n m trong ng c nh
c a m hnh c th hi n v m i ng i c th hi u c.
TH NG:
pht tri n, thi t k cho t i ny l dng cc bi u
o n, t
ch chnh c a ngn ng
m t h th ng nn mi n
i li u
i u khi n cc c
thi t b k
thu t nh vi n thng, h
n ni khc m t
c xy d ng trn m t s cc k thu t
nguyn (con ng i, my tnh, ), cc quy t c (lu t php, chi n thu t kinh doanh, c ch , ), v cng vi c ho t Ph n m m h hnh, c s d th ng (System Software): d ng. ng kinh doanh. nh ngha c s h i u
d ng, ch ng h n nh h
3- UML V CC GIAI
O N PHT TRI N H
TH NG
Preliminary Investigation: use cases th dng. Ph n miu t use case xc m i quan h v giao ti p v i h th ng. Analysis: M c ch chnh c a giai
hi n cc yu c u c a ng i
nh cc yu c u, ph n diagram th hi n
an ny l tr u t ng ha v tm cs d ng lm r s t n
hi u cc c c u c trong ph m vi bi ton. Class diagrams trn bnh di n tr u t ng ha cc th c th ngoi t i cng nh m i quan h i th c c a chng. Ch nh ng l p (class) n m trong
ph m vi bi ton m i ng quan tm. Design: K t qu ph n analysis c pht tri n thnh gi i php k thu t. Cc l p c m hnh ha chi ti t cung c p h t ng k thu t nh giao c t chi ti t di n, n n t ng cho database, K t qu ph n Design l cc cho giai o n xy d ng ph n m m. Development: M hnh Design s code. Testing: S d ng cc UML diagrams trong cc giai o n tr c. C 4 c chuy n thnh code. Programmer o n Design hi u v n v t o
hnh th c ki m tra h th ng: Unit testing (class diagrams & class specifications): ki m tra t ng n th , c dng ki m tra cc l p hay cc nhm n th . Integration testing (integration diagrams & collaboration diagrams): ki m tra tch h p l ki m tra k t h p cc
PH N CU H I
H i: UML (Unifield Modeling Language) l g? p: Ngn ng m hnh ha th ng nh t UML l m t ngn ng i t ng. m bi u
di n m hnh theo h ng H i:
hnh ho (modeling language) l g? p: i m khc nhau c b n gi a m t phng php v m t ngn ng m hnh ho khng c m t ti n trnh (process) nh ng cng vi c ng i s d ng chng. d ng c n c dng trong m
m hnh ho l ngn ng
hay cc cu l nh (instruction) m t
UML
1- UML V CC GIAI PH N M M
1.1- Giai o n nghin c u s b : UML a ra khi ni m Use Case s d ng). UML s d ng bi u quan h cng nh s n m b t cc yu c u c a khch hng (ng i Use case (Use Case Diagram) nu b t m i
giao ti p v i h th ng.
Qua phng php m hnh ha Use case, cc tc nhn (Actor) bn ngoi quan tm t n h th ng s c m hnh ha song song v i ch c nng m h c miu t trong bi u c t i i u g pha h i h i pha h th ng (t c l Use case). Cc tc nhn v cc Use case c m t trong ti li u, v n s c m hnh
th ng m khng h
c th c thi ra sao.
1.2- Giai o n phn tch: Giai cc o n phn tch quan tm i t ng) cng nh c ch n qu trnh tr u t ng ha u tin (cc l p v . Sau khi nh b ng ng
hi n h u trong ph m vi v n s
phn tch nh n bi t c cc l p thnh ph n c a m hnh cng nh m i quan h gi a chng v i nhau, cc l p cng cc m i quan h cng c bi u l p (class diagram) c a UML. S c miu t th c hi n cc Use case cng s t n t i trong ph m vi v n l p k thu t nh c miu t c ng tc gi a cc l p nh m vo cc m hnh
(cc khi ni m
trng h p, v.v..., cha ph i l m i quan tm c a giai o n ny. 1.3- Giai o n thi t k : Trong giai o n ny, k t qu c a giai o n phn tch s gi i php k thu t. Cc l p m i s k ngn hng d c t kh c b sung thu t: Giao di n ng i dng, cc ch c nng li u, giao ti p v i cc h c m r ng thnh m t cc i t ng trong
t o thnh m t h t ng c s lu tr
c bi n thnh nh ng dng code c th trong m t ngn ng (khng nn dng m t ngn ng cs thu c vo kh nng c a ngn ng khn hay d
l p trnh h ng
nh t nn c g ng n trnh vi c ngay l p t c bi n dng code. Trong nh ng giai lu n v vi c vi t code c th n gi n. Giai giao ti p v t o nn c u trc c a h chnh xc v
th ng; v v y, v i vng
o n xy d ng l m t giai
Nh trnh by trong ph n Chu Trnh Pht Tri n Ph n M m, m t h th ng ph n m m th ng c th nghi m qua nhi u giai nghi m o n v v i nhi u nhm th UML khc nhau lm n n d ng bi u d ng bi u l p (class thnh ph n o n u m b o ban nghi m khc nhau. Cc nhm s diagram) v th h c t l p, th d ng nhi u lo i bi u n v s
nghi m tch h p th ng s
d ng bi u
trong cc bi u
2- CC THNH PH N C A NGN NG
Ngn ng UML bao g m m t lo t cc ph n t t o ra cc bi u c k p h p v i nhau cng c cc nguyn t c
UML
h a (graphic element) c th y l m t ngn ng , nn UML . UML:
.B i
k t h p cc ph n t
M t s nh ng thnh ph n ch y u c a ngn ng
H ng nhn (view): H ng nhn ch ra nh ng kha c nh khc nhau c a h th ng c n ph i c m hnh ha. M t h ng nhn tr u t ng ha bao g m nh ngha c a m t khng ph i l m t b n v , m l m t s m t lo t cc bi u
lo t cc h ng nhn khc nhau, m i h ng nhn ch ra m t kha c nh ring bi t c a h th ng, ng i ta m i c th t o d ng nn m t b c tranh hon thi n v h th ng. Cng chnh cc h ng nhn ny
khc nhau
cung c p t t c
d ng trong cc bi u
m hnh, th hi n i t ng,
i p cng nh cc quan h gi a cc khi ni m ny, bao g m thu c, khi qut ha. M t ph n t m hnh th ng d ng trong nhi u bi u khc nhau, nhng n lun lun c
ch m t ngha v m t k hi u. C ch b th chung: C ch chung cung c p thm nh ng l i nh n xt php chung v c m hnh; chng cn cung c p thm cc c ch
m t ph n t
3- H NG NHN (VIEW)
M hnh ha m t h th ng ph c t p l m t vi c lm kh khn. L t ng nh t l ton b h th ng c miu t ch trong m t b n v , m t b n v cch r rng v m ch l c ton b ti p v d khng th h n m b t t t c h th ng, m t b n v hi u. M c d v y, th ng th c miu t y l chuy n b t kh miu t nh ngha m t thi. M t b n v th ng. M t m t ngoi ra l i cn d giao m t h
th ng c n ph i
ch c nng (c u trc tnh c a n cng nh cc tng tc nng (yu c u v th i gian, v cng nh v kha c nh t ch c (t
module,...). V v y m t h th ng th ng
c bi t c a h th ng. Trong th c t khi phn tch trng l p thng tin, cho nn m t bi u trn th t t th ng t th no
l thnh ph n c a nhi u h ng nhn khc nhau. Khi nhn h th ng. M t bi u t o trong m t h ng nhn c
i m c th ng i ta ch t p trung vo dnh li n v i cc t t c cc
i u ki n giao ti p d dng, k t h p t t c
khc cng nh cc h ng nhn khc, lm sao cho b c tranh ton c nh b ng s cc thng tin t cc ph n t ch a cc k hi u hnh h c m t m hnh
h ng nhn. M t bi u
c a h th ng. UML c t t c cc h ng nhn sau: H ng nhn Use case (use case view): ngoi. H ng nhn logic (logical view): ch ra ch c nng s cng nh ng x ng c a h th ng. c thi t k y l h ng nhn ch ra h ng tc nhn bn
H ng nhn thnh ph n (component view): ch ra kha c nh t ch c c a cc thnh ph n code. H ng nhn song song (concurrency view): ch ra s song/ trng h p trong h th ng, h ng n v n ng b ha trong h th ng. H ng nhn tri n khai (deployment view): ch ra kha c nh tri n khai h th ng vo cc ki n trc v t l (cc my tnh hay trang thi t b c coi l tr m cng tc). t n t i song giao ti p v
h ng nhn ny sang h ng nhn khc. Ngoi ra, cho m c c thi t k nh th no, cng c
ki n d dng cho b n chuy n sang h ng nhn Use case ( nh th no t xem ch c nng ny s c phn b
m t cch khc l n c th n m trong my tnh no). Ngoi cc h ng nhn k trn, ngnh cng nghi p ph n m m cn s h ng nhn khc, v d nghi p v s h ng nhn tnhd ng c cc
nh thi t k c a UML ngh t i, nn c kh nng nhi u cng c h ng nhn . 3.1- H ng nhn Use case (Use case View): H ng nhn Use case miu t tc nhn t bn ngoi mong c th l m t ng i s nghi m; n h
ch c nng c a h th ng s ph i cung c p do
d ng ho c l m t h th ng khc. H ng nhn Use case l qua cc bi u ho t c miu t Use case (use case diagram) v th nh ng (activity diagram). Cch s mang tnh d ng qua m t lo t cc Use case trong h ng c th cho i). y s
h ng nhn dnh cho khch hng, nh thi t k , nh pht tri n v ng i th c miu t tho ng cng bao g m c cc bi u th ng nhn chung s
m t tnh nng c a h th ng (c ngha l m t ch c nng c mong H ng nhn Use case mang tnh trung tm, b i n
t ra n i dung thc
pht tri n cc h ng nhn khc. M c tiu chung c a h tnh phi ch c nng khc v th th ng qua vi c th h ng nhn ny c c s
th ng l cung c p cc n t t c cc i c a
ch c nng miu t trong h ng nhn ny cng v i m t vi cc thu c tnh mang nh h ng h ng nhn khc. H ng nhn ny cng khch hng (H i: " y c ph i l th d ng th m tra (verify) h ng v i mong c t ?).
b n mu n") cng nh c ng v i h th ng
3.2- H ng nhn logic (Logical View): H ng nhn logic miu t cung c p. Ch h s y u n k phng th c m cc ch c nng c a h c s c d ng cho cc nh thi t k th ng s c
v nh pht tri n.
Ng c l i v i h ng nhn Use case, h ng nhn logic nhn vo pha bn trong c a th ng. N miu t tng tc ng s c u trc tnh (l p, i t ng, v quan h ) cng nh i p cho nhau cung x y ra khi cc i t ng g i thng
tr ng t n (persistency) ho c song song (concurrency), cng nh cc giao di n cng nh c u trc n i t i c a cc l p. C u trc tnh c miu t b ng cc bi u l p (class diagram) v bi u (sequence diagram), bi u ng (activity diagram). i
t ng (object diagram). Qu trnh m hnh ha tr ng thi (state diagram), bi u tng tc (collaboration diagram) v bi u trnh t ho t
ng c miu t trong cc bi u
3.3- H ng nhn thnh ph n (Component View): L m t l i miu t c a vi c th c thi cc modul cng nh s v i nhau. N th ng bi u nhau, s c s thnh ph n. Thnh ph n c ch ra trong bi u ph thu c gi a chng
d ng cho nh pht tri n v th ng bao g m nhi u y l cc modul l nh thu c nhi u lo i khc cng v i c u trc cng nh s cc thnh ph n, v d ph thu c c a nh v tr c a ti nguyn c b sung vo
3.4- H ng nhn song song (Concurrency View): H ng nhn song song nh m t i s v cc b c a h x chia h th ng thnh cc qui trnh (process)
l (processor). Kha c nh ny, v n l m t thu c tnh phi ch c nng d ng m t cch h u hi u cc ngu n ti l cc s ki n khng nv n ng b t mi ng b c th c thi
th ng thnh cc ti u trnh c th
giao ti p v
H ng nhn song song ginh cho nh pht tri n v ng i tch h p h bao g m cc bi u bi u th c thi (bi u ng (tr ng thi, trnh t , tng tc v ho t thnh ph n v bi u tri n khai).
th ng, n
ng) cng cc
3.5- H ng nhn tri n khai (Deployment View): Cu i cng, h ng nhn tri n khai ch cho chng ta s c a h th ng, v d tri n khai v m t v t l
lin k t gi a
chng v i nhau. H ng nhn tri n khai ginh cho cc nh pht tri n, ng i tch h p cng nh ng i th hi n b ng cc bi u cc thnh ph n c a h i t ng no s c tri n khai. H ng nhn ny cng bao g m s th ng vo c u trc v t l; v d th c thi trn my tnh no.
4- BI U
Bi u
(DIAGRAM)
bao g m cc k hi u ph n t m hnh ha c s p x p khc th hay m t kha c nh c th c a h th ng. M t , m i lo i c nhi u bi u th ; v khi c v
l cc hnh v
th ng th ng c nhi u lo i bi u
l m t thnh ph n c a m t h ng nhn c
c x p vo m t h ng nhn. M t khc, m t s lo i
cc khi ni m cn b n n m , ng c miu t
ng sau m i lo i bi u
. T t c
bi u
c nh c a chng, ngha chnh xc c a chng v s chi ti t trong cc chng sau (m l y lm v d y c l y ra t nng p d ng ng). Cc bi u
ch ra nt phong ph v kh
Use case ch ra m t s l ng cc tc nhn ngo i c nh v m i lin k t i v i Use case m h th ng cung c p (nhn hnh 3.2). M t Use case c a m t ch c nng m h th ng cung c p. L i miu t Use cng c th l m t bi u ngoi vo bn trong i v i mong i c a ng i s
l m t l i miu t ho t
case th ng l m t vn b n ti li u, nhng km theo c a cc tc nhn (hnh vi c a h d ng), khng miu t h th ng. Cc bi u case). ch c nng Use case s h th ng ra sao. Cc Use case th ng theo nh s c cung c p s
nh ngha cc yu c u v m t ch c nng
4.2- Bi u M t bi u Cc l p l ph
l trong h th ng. Cc l p c th quan thu c vo l p khc), chuyn bi t ha chuyn bi t ha c a l p khc), hay n v ). T t c cc m i quan h c coi l
h v i nhau trong nhi u d ng th c: lin k t (associated - c n i k t v i nhau), thu c (dependent - m t l p ny ph (specialized - m t l p ny l m t k t qu bi u u c th hi n trong bi u
ng gi ( packaged - h p v i nhau thnh m t theo khi ni m thu c tnh (attribute) v th tnh theo phng di n c u trc th i i m no trong ton b vng M t h th ng th ng s cc bi u l p ny cng
i h th ng. l p ch ng ph i bao gi l p t t c
c m t lo t cc bi u
c nh p vo m t bi u l p. Bi u
Hnh 3.3 - Bi u
4.3- Bi u M t bi u bi u M t bi u m t th i l p, ch tr
i t ng l m t phin b n c a bi u l p. S i t ng ch ra m t lo t cc
cc k hi u nh bi u
khc bi t gi a hai lo i bi u c a bi u
i t ng th c th c a l p, thay v cc l p. l p, ch ra m t b c tranh
i t ng v v y l m t v d i m no . Bi u i t ng s
th c th trong m t m i quan h
nh ng m i quan h
t ng th ng th ng
tc (collaboration), ch ra l i
Hnh 3.4 - Bi u
l p v bi u
i t ng th hi n c a l p
4.4- Bi u M t bi u ra t t c khi m t
i t ng c a l p ny c th i p nh n cho n - v d qua
c, v nh ng s nh
g i thng
i tr ng thi
c g i l m t s chuy n
nh i u g ph i c th c hi n khi s
ch ra m t c ng tc
trong trnh t
thi c a h th ng. Cc bi u b ng cc bi u ng th ng i p , v bi u ch ra s
ng. Tr c th i gian c h ng t c bi u di n b ng cc i p) n i li n gi a nh ng
ng g ch ngang g n li n v i ng th ng c a vo ph n
mi tn (bi u th thng l c a bi u .
trnh t
c ng tc (Collaboration Diagram): c ng tc trao ng, cng gi ng nh m t bi u trnh t ho c dng bi u c g i l y u t c nh i p ( c g i l tng tc), c ng tc th ng s trnh t ; n u ng
c ng tc ch ra m t s hi n s
d ng bi u
c quy t
quan tr ng nh t c n ph i nh n m nh th hy ch n bi u
d ng nh ng k i p th ng i u ki n,
hi u nh trong bi u
nh km theo cc nhn (label), m t trong nh ng ch c nng c a nhn l i p cg i v , v.v... Khi i. N cng c th ch ra cc lm quen v i cch vi t nhn, m t theo dng th c thi cng ch a c cc i i t ng tch c c
c bi u
c ng tc v tun th
i thng
i p. M t bi u
ng ch ra m t trnh t ho t ng th ng ng khc, v d ho t
(hnh 3.8). Bi u t
c s
t c, m c d n cng c th
ng c n ph i c th c hi n (m t hnh
tr ng thi: m t tr ng thi ch chuy n sang tr ng thi khc sau khi ki n r rng !). Dng ng lin k t v i nhau. Bi u cn c th ch a cc lo i
cng nh ph n th c thi song song c a cc tr ng thi hnh trong t cch l thnh ph n c a hnh ng c th c hi n.
c t cho cc thng i p c g i i ho c c nh n v ,
ho t
thnh ph n ch ra c u trc v t l c a cc dng l nh (code) theo khi l m t t p tin source code, c phn (binary) hay m t thnh ph n th c thi t
(executable). M t thnh ph n ch a cc thng tin v cc l p logic ho c cc l p m c ngha l n t o ra m t nh x h ng nhn logic vo ph thu c gi a ng m m t h ng nhn thnh ph n. Bi u cc thnh ph n v i nhau, tr thnh ph n cng c th c thay c miu t i s thnh ph n cng ch ra nh ng s gy ra
v i b t k lo i giao di n no m chng b c l , v d
tri n khai ch ra ki n trc v t l c a ph n c ng cng nh ph n m m th v t ng trang thi t b c n i k t gi a chng v i nhau, b n cng c th ch ra lo i c a c xc nh v tr ch ra nh ng ph n m m no s ph thu c gi a
ki n trc v t l th t s ch t t c
c a h th ng.
y l m t h ng nhn r t xa l i miu t duy ch c nng c a h ng m t nt m ng trong m t ki n trc v t l cho t i nh ng r i cu i cng, ti n t i m t Use case. R t nhi u th ng c s d ng ng th i t o ra m t l i t ng th c a n.
thnh ph n c a n, cho t i l p m n th c thi, cho t i nh ng tng tc m cc i t ng c a l p ny tham gia h ng nhn khc nhau c a h miu t th u o
i v i h th ng trong s
Hnh 3.10 - M t bi u
5- PH N T
Cc khi ni m l m t xem n s miu t
(model element). M t ph n t th hi n
nh ngha v b n ch t ph n t miu t
hay l m t xc
nh ngha chnh xc c s d ng
i u g trong nh ng l i kh ng . M t ph n t
nh r rng. M i ph n t
hnh cn c m t s ph n t
tr c quan, m t k hi u hnh h c
ny trong bi u
c th t n t i trong nhi u d ng
no. M t vi v d cho ph n t
v hnh l l p,
Hnh 3.11- Cc thnh ph n m hnh th ng dng Hnh 3.12 ch ra m t vi v d m hnh, chng c s lo i quan h ng ch : N i k t (Association): n i cc ph n t Khi qut ha (Generalization): cn ngha r ng m t ph n t m t ph n t S ph khc. thu c (Dependency): ch ra r ng m t ph n t ny ph v cc th c th n i (link). c g i l tnh th a k , c chuyn bi t ha c a d ng c a m i quan h , n i cc ph n t y cng l m t d ng ph n t m hnh khc v i nhau. M t vi
ny c th l m t s
6- C CH
UML th
hi n m t s
d ng km thm vo cc ph n t
ngha cho ph n t . M t
hi n m t lo i, tn ph n t tn c a th c th c in m s th y l m t v d
hi n ch m t th c th c coi l c
c a lo i ny, tn ph n t l n tn c a lo i
hi n l p v i tn hi n m t
hi n m t l p v tn
i t ng,
lo i nt, v d th c th m t s
khc l cc l i n i v i nhau s g n ph n t
ch ra bao nhiu th c th c a cc lo i th c th
i t ng b ng trang tr
nh ngha t t c m i vi c. Nh m t o
c th hi n b ng ph n t
UML cung c p kh nng km theo l i ghi ch. M t l i ghi ch c th D ng thng tin c a b n thn n l chu i k t i km theo m t s
no, v n c th ch a b t k lo i thng tin no. (string), khng c UML di n gi i. m hnh trong bi u , c m hnh no c chi ti t ha cc ph n t
ng ch m ch m, ch ra ph n t
ho c c gi i thch (hnh 3.14). M t l i ghi ch th ng ch a l i nh n xt ho c cc cu h i c a nh t o m hnh, v d l i nh c nh c n ph i x l v n no trong th i gian sau ny. L i ghi ch cng c th ch a cc thng tin d ng khun m u (stereotype).
s nguyn hay chu i k t . C m t lo t thu c tnh c nh ti li u (docement), trch nhi m (Responsibility), s v tnh song song (Conccurency). Thu c tnh m t l p s c s d ng thm cc c th c t b sung v
tr ng t n (Persistence)
thng tin bnh th ng ra khng c miu t thng tin hn v ph n cc cng c cc thu c tnh s
hi n trong bi u
b ng m t ti li u vn b n nh t
nng c a l p ny. Lo i
bnh th ng ra khng
c ch ra trong cc bi u c th
nh p nt vo m t ph n t
, hi u qu l m t c a s ch a
ct v i t tc
Hnh 3.15- M t c a s
c t th hi n cc
c tnh c a class
7- M
php
R NG UML
c m r ng ho c c th ch c c m th c s a i ph h p v i m t phng th . Chng ta s bn nh c bi t, m t t hay m t ng i dng c
UML c th lu n s qua
n ba c ch
km (tagged value) v h n ch (constraint). 7.1- Khun m u (Stereotype) C ch m r ng khun m u m hnh nh ngha m t lo i ph n t nh ng m hnh m i d a trn ngha (semantic) ring c th cs
m t ph n t m t ph n t
t n t i. Khun m u c th
c s n, c ng thm ph n quy
bi t khng c trong ph n t lo i ph n t h
g c kia. Khun m u c a m t ph n t
l ng l n cc khun m u c cc ph n t ny gip gn gi
tnh n gi n c a n n t ng ngn ng
B t k khi no m t ph n t v i <<Window>> s c n ph i c s Nh c
c " y l m t lo i ph n t
ngn ng
m r ng v s a th c s d ng
ngha c n thi t, nh m m c
Hnh 3.16- Customer l m t l p khun m u <<Actor>> 7.2- Gi tr nh km (Tagged Value) Nh tr v ga tr ni, cc ph n t m hnh c th c cc thu c tnh ch a m t c p tn-gi c g i l cc nh ngha tr c, ch a u c d ng c
b n thn chng (hnh 3.17). Cc thu c tnh ny cng cn nh km. UML c ch a m t lo t cc thu c tnh d ng cng c th cc ph n t sung v
phng php, cc
thng tin c a nh qu n tr v ti n trnh m hnh ha, cc thng tin c s b i cc cng c tin no m ng i s d ng mu n nh km vo ph n t m hnh.
Hnh 3.17 - M t v d v Tagged Value 7.3- H n ch M ts S (Constraint) gi i h n v s c s d ng ho c ngha c a m t ph n t . d ng nhi u l n trong d ng trong ch m t bi u
h n ch l m t s
h n ch ho c s
r t nhi u bi u
, theo nh nhu c u. Hnh 3.18 ch ra m i quan h n i k t gi a nhm cc cng dn l n tu i v l p con ng i, ch ra r ng nhm cng dn c th miu t nhm ny, ng i ta ny s h n ch s nh ngha m t s c nhi u ng i lin quan. M c d v y, tham gia vo i nh ngha r ng ch nh ng ng i no l n hn 60 tu i m i c th
th c thi sai tri c a h th ng. c c t nh ngha v ring, v d cs c ng d ng tr c ti p trong cng c th nh: "cng dn gi" v d ng trong nhi u bi u nh ngha s n, chng c
"ng i c tu i l n hn 60", v h n ch ny s khc nhau. UML c ch a m t lo t cc h n ch miu t chi ti t trong cc chng sau.
i t ng Person gp ph n vo quan h k t
8- M HNH HA V I UML
Khi xy d ng h nh m th ng v i UML, ng i ta khng ch xy d ng duy nh t m t m ch khc nhau. Trong giai o n phn tch, m c ch c a m ch c a hnh. S c nhi u m hnh khc nhau trong nh ng giai o n pht tri n khc nhau, n cc m c hnh l n m b t t t c cc yu c u g m cc l p v cc c ng tc " c ch i v i h th ng v m hnh ha n n t ng bao o n thi t k , m c
m hnh l m r ng m hnh phn tch, t o thnh m t gi i php k thu t kh thi, n mi tr ng c a cng vi c xy d ng (vi t code). Trong giai o n xy c vi t nn v o n tri n khai, m t c d ng code, m hnh chnh l nh ng dng code ngu n th t s , c d ch thnh cc chng trnh. V cu i cng, trong giai Kh nng theo di xuyn su t nhi u giai
l i miu t s gi i thch h th ng c n c tri n khai ra sao trong ki n trc v t l. o n v nhi u m hnh khc nhau m b o qua cc thu c tnh ho c cc m i quan h nng cao (refinement). M c d hnh l cc m hnh khc nhau, nhng chng u c n ph i thay c gn gi t t ng i ta c th u d c xy d ng nn dng i ng c l i, m
m r ng n i dung c a cc m hnh
giai o n tr c. Chnh v th , t t c cc m u v r i d n d n t ng b c
Hnh 3.19- M t h th ng c m t trong nhi u m hnh B n thn ngn ng nguyn t c ngn ng nh ng s quy n quy t kh nng UML khng ph thu c vo giai o n, c ngha l cng nh ng d ng t m hnh ha n m c nh ng m c
v cng nh ng bi u ph i thay
cs i nh m
m hnh ha ch cung c p
nh r nh ng b c cng vi c no
cc cng vi c: phn tch yu c u/ phn tch/ thi t k / th c hi n/ tri n khai. M c d v y, cng c m t quy trnh nh hn nh t, cng vi c s b t c p t i n i dung c a vi c m hnh ha. duy Bnh th ng ra, khi s n xu t m t m hnh ho c s n xu t ch m t bi u khc nhau, trnh by v n khoa h c v phc th o, trao Cng c c s
u b ng vi c thu th p m t nhm thch h p cc c nhn v m c tiu; h c ng tc cho m t giai o n h i th o i nh ng sng ki n v t ng v m hnh c th . c quy t c a o n ny l h t s c khc bi t v mang tnh c c m t n n t ng s th c s
d ng trong giai
ng u h ng - th ng l gi y dn post it hay b ng tr ng. Cng vi c nh ch ng no nh ng ng i tham gia c c m gic h th c ti n cho m t m hnh (gi ng nh m t tiu vo m t cng c , m hnh tiu s c t c t o d ng nn, ph h p v i nh ng quy gi i php ch c, v sau ). K t qu sau nh c a ngn ng c d v n
m t bi u
Sau , m hnh c chi ti t ha qua nh ng cng vi c mang tnh vng l p, cng ngy cng c nhi u chi ti t v c b sung. Khi gi i php c a n, tiu m hnh c kh v th m nh s nng s ban c pht hi n, c nhi u thng tin hn d ng. Khi m hnh c thu th p v
m b o s
ang gi i quy t
Hnh 3.20 - M t ti n trnh cho cng vi c m hnh ho th c t Cu i cng, m hnh s c th c thi v tri n khai thnh m t lo t cc nguyn c ki m tra tm khi m khuy t. Cc th c hi n t i t hay ph l qu l n, nh
m u (prototype), nguyn m u ny s
s n xu t v pht tri n qu cao. Nh ng khi m khuy t th ng s p nh pht tri n kh c ph c chng. N u v n pht tri n c th ch c n thay hon t t bi u i ng c l i t t c cc b c cng vi c c a mnh cho t i t n ny khng l n, nh pht tri n c l c t c a m hnh. Xin l ng l n cc bi u c th c hi n ngay l p t c sau khi c m t s
u tin. N u cc v n
r ng b c t o nguyn m u khng th
9- CNG C
S tr
(TOOL)
m hnh ha ph c t p v r ng m nh UML c n thi t s c ng b u tin c a m t m hnh c th
d ng m t ngn ng
th c hi n b ng b ng tr ng cng gi y v m c, nhng cng vi c b o tr, ha v nh t qun trong m t lo t cc bi u khng th tr thnh kh thi n u khng c cng c . Th tr ng cng c m hnh ha d ng trong m c di k t khi xu t hi n t ng chng trnh. R t nhi u cng c trnh v m t cht, s ti n nh t trong th c t
khc nhau th ng l i
s kh i su t m t th i gian
nhi u hn (Rational Rose), nhng th tr ng v n cn khng t cng c cha c g t gia, v n cn ch a l i ho c nh ng nt k qu c, k c nh ng v n nh copy v dn. Nh ng cng c chng u c ngn ng ny cn h n ch ny. m hnh ha gi phng di n r ng t t c b n
y c th dnh nhi u th i gian hn cho vi c nng c p cng c , b i h khng c n ph i d n tm d n s c cho vi c ngn ng m i. i c n ph i cung c p cc ch c nng sau: i u ki n d dng v v bi t ra cc bi u kh nng thng c nh bo m hnh. c n ph i m hnh c nh ng ng nh ngha cc phng php m i cng nh cc
bi u : c n ph i t o hi u m c
trong ngn ng
c n ph i
n gi n,
n c th
d ng khng thch h p cc ph n t
Ho t ng nh m t nh kho (Repository): cng c h tr m t nh kho trung tm , th s thay t t c cc thng tin v c lu tr c cc bi u trong cng m t ch . N u v d khc c s d ng l p ny.
tn c a m t l p b thay
i trong m t bi u
i ny c n ph i x y ra trong t t
cho nhi u ng i s
ph i c kh nng t o ra code, ni t t c cc thng tin trong m hnh c chuy n t i thnh cc khung code (code skeletons), d ng lm n n t ng cho giai o n xy d ng chng trnh. Ti t o m hnh (Reserve engineer): M t cng c cao c p c n ph i c kh nng nh ng dng code dng chuy n l p trnh. Tch h p v i cc cng c tr ng, v d khc: m t cng c khc, v i c c n ph i c kh c nh ng thnh ph n code ang t n t i v t c lm t d s n xu t ra m hnh. T suy ra, m t m hnh c th
t n t i; ho c m t nh pht tri n c th
vi c pht tri n mi
(compiler), chng trnh tm l i (debugger) cng nh cc cng c c a doanh nghi p khc nh cng c theo di cc phin b n. Bao qut m hnh nhau: cng c khc nhau) , t tc cc m c tr u t ng ha khc l i miu t c p tr u d ng m t l ng cc gi t c c th no
c n ph i d
chuy n t i t th ng (t c l
t ng ha cao nh t c a h
c a m t m ny
m t cng c
10- TM T T V
khc nhau c a h
UML
th ng. Ch khi k t h p t t c cc h ng nhn l i v i nhau, , y l nh ng nh ngha i
UML t ch c m t m hnh thnh m t lo t cc h ng nhn, th hi n cc kha c nh ng i ta m i co c m t b c tranh tr n v n v h th ng. M t h ng nhn khng ph i l m t hnh v , n i dung c a n c miu t qua cc bi u hnh v ch a ng cc ph n t . M t bi u m hnh ha. M t bi u ch a cc ph n t bnh th ng ch trnh nh l p,
t ng, nt m ng, thnh ph n v nh ng m i quan h nh n i k t, khi qut ha, ph thu c. Cc ph n t Cc lo i bi u bi u ny c ngha (semantic) v cc k hi u hnh h c. l p, bi u i t ng, bi u hnh Use case, ng, bi u
trong UML l: bi u
tr ng thi, bi u
trnh t , bi u
c ng tc, bi u
thnh ph n v bi u v chng s
tri n khai. M c ch c a cc lo i bi u
cng nh quy t c
c miu t chi ti t trong chng sau. b sung thng tin khng th c th hi n trong nh ng thnh ph n nh km, h n
trang tr, cc l i ghi ch c th ch a b t k lo i thng tin no cng nh cc thu c c t . Ngoi ra cn c cc c ch m i v i ph n t , v khun m u, s n c. c miu t trong nhi u lo i m hnh khc nhau, m i lo i m nh ng yu c u i th c. M hnh thi t k thu t, theo khi ni m c a hi n i l p trnh h ng r ng, bao g m gi tr nh ngha m t lo i ph n t m hnh m i d a
trn m t ph n t M t h v th ng s
c t o nn
trong m t ki n trc v t l bao g m cc my tnh v cc trang thi t b . Cng vi c c lm theo nhi u vng l p khc nhau ch hi n m t l n. s c d ng UML m t cch nghim ch nh cho m t d n c th t ngoi i, b n , tr t t khng ph i ch l m t chu i th c
c n cng c . M t cng c tn ti n c kh nng cho ng i dng v bi u cc thng tin vo m t kho chung, cho php d h ng nhn v bi u
dng d ch chuy n gi a cc
PH N CU H I
H i: UML c cng c d ng)? p: Use Case H i: M t bi u trong UML c bao ch a cc h ng nhn khc nhau. khc nhau no gip n m b t cc yu c u c a khch hng (ng i s
p: Sai, m t h ng nhn bao g m m t lo i cc bi u H i: Hy li t k cc thnh ph n ch y u c a ngn ng p: H ng nhn( View), Bi u chung. H i: UML c cng c Testing)? p: Bi u H i: UML c cng c Testing)? p: Use case Diagram l p v ct l p cho giai o n th no ph c v cho giai o n th UML
(Diagram), Ph n t
m hnh, C ch
nghi m
n v (Unit
no ph c v
nghi m h th ng (System
H i: UML t o n n t ng cho vi c giao ti p gi a khch hng, nh phn tch, nh thi t k v l p trnh vin. p: ng
Khng ch l ng i cung c p thng tin, b n thn ng i s ph n h t s c quan tr ng trong b c tranh ton c nh ph i ch ra c a ng i s c nh ng h c phng th c ho t d ng. Hi u c th ng v a tho
gip ta m hnh ho h th ng t
h ng nhn c a ng i s
d ng
phng, ti m i nh n ra l ph i ch n l a trong m t danh sch my mc r t phong ph. Lo i my no s v i chi c my fax s h i th t chnh xc mnh mu n lm g ? Ti mu n mua? Ti mu n c nh ng tnh nng no? Ti mu n dng
b ng gi y th ng hay gi y thermal ? Ti mu n copy b ng ci my scanner? Ti c c n ph i g i fax th t nhanh s tng t c? Li u ti c mu n s i n tho i g i t i v m t b n fax g i t i ?. T t c chng ta mn hng no mnh s s k u tr i qua nh ng kinh nghi m nh v y khi quy t nm c
nh mua m t lm trong h i
nh ng tr ng h p nh v y l m t d ng phn tch Use Case: Chng ta t ra sao? Tr l i xong cu h i trn ta m i c kh i h i c a mnh. i u quan tr ng
tho mn nh ng h i l g.
Lo i quy trnh ny
ng vai tr r t quan tr ng
i v i giai
o n phn tch c a
d ng h th ng tng lai, h
th ng m b n s p thi t k v xy d ng, nh th no? Use Case l m t cng c d ng quy t ny. tr gip cho cng vi c c a nh phn tch cng ng i s th ng. M t t p h p cc Use Case s nh lm g v i h lm n i th ng
nh tnh nng c a h
Nhn vin ti p khch s ph c v khch hng. Nhn vin phng d ch lin quan n
u t s u t.
d ng h
th ng
th c hi n cc giao
k s
d ng h
ch xc
ng
thu c vo ch c nng m ng i s
Nhm pht tri n h th ng c n ph i xy d ng nn m t k ch b n nu b t s tc c n thi t gi a ng i s d nh k ch b n cho s d ng v h th ng trong m i kh nng ho t tng tc gi a nhn vin thu ngn v h
tng ng. V
th ng c a b
ph n ti t ki m trong su t ti n trnh c a m t giao d ch. M t k ch b n khc v d l chu i tng tc x y ra gi a b ph n ti t ki m v b ph n d ch chuy n ti n. Nhn chung, c th v vi c s d ng h chu i ny s coi m t Use case nh l t p h p c a m t lo t cc c nh k ch th ng. M i c nh k ch m t m t chu i cc s ki n. M i m t u t trong m t giao
ph n trang thi t b no , ho c l m t chu i th i gian. Nh ng th c th kch ho t nn cc chu i s chu i ny ph i c gi tr s m t tc nhn khc. d ng i v i ho c l tc nhn gy nn n ho c l
2- M T S
V D
USE CASE
trn, m t s nh ng Use Case d th y nh t l:
Trong v d nh bng l
M t chng trnh
u t m i c a vo p d ng.
3- S
ni v
vi c th hi n v m t nh ng m h c th di n t ra: Cng c
Use Case v i cc lo i bi u
Sng ki n ch cho vi c h
nng cao xc su t i v i cc
gip thay v l m t t p h p kh hi u v r i
r m c a cc khi ni m my tnh m ng i dng trong gi i doanh thng c c m gic khng bao gi hi u c v khng th lm vi c cng. Cng tc li ko ng i s c ng i s d ng tham gia tch c c vo qu trnh phn tch l n n th m xc cc nhi m v cn
t ng quan tr ng cho vi c t o d ng m t m hnh "thnh cng", m t m hnh d d ng hi u v ch p nh n sau khi b n. Ngoi ra, Use Case cn gip nhm pht tri n quy t th ng ph i tri n khai. nh cc l p m h
ng i ch p nh n. Ng i cha tinh th n c a m hnh ha Use Case l Ivar t o nn k thu t m hnh ha d a trn nh ng kinh nghi m thu c bi t l n lao t pha c ng ng h ng i t ng v c trong qu trnh t o h th ng AXE c a hng Erisson. Use Case nh n quan tm ng ln r t nhi u phng php h ng i t ng khc nhau.
Nh ng thnh ph n quan tr ng nh t c a m t m hnh Use Case l Use Case, tc nhn v h th ng. Ranh gi i c a h th ng c nh ngha qua ch c nng t ng c th hi n qua m t lo t cc th m h th ng s th c thi. Ch c nng t ng th
ch c nng
m t tc nhn ngo i c nh cho t i khi ch c nng tr ny l nh ng g m tc nhn mong mu n t l m t ng i s v i h th ng. Trong k thu t m hnh ha Use Case, h d ng c a h
m t th c th ngo i c nh no mong mu n tng tc v i h th ng. Th ng th ng, th ng, nhng nhi u khi cng c th th ng khc ho c l m t d ng my mc thi t b ph n c ng no c n tng tc
th ng s
en" v cung c p cc Use Case. H th ng lm i u nh th no, cc Use Case c th c thi ra sao, o n uc ad l nh ng kha c nh cha c ny. Trong th c t , n u m hnh ha Use Case c th c hi n trong nh ng giai
c th c thi (t c l bi n thnh nh ng dng code th t s ) nh th no. M c tiu chnh y u i v i cc Use Case l: nh v m t cc yu c u v s m t ch c nng c a h
quy t th ng,
y l k t qu
rt ra t
(v/ho c ng i s
d ng nh t qun
d ng lm cng c
t o nn m t n n t ng cho vi c t o nn cc m hnh thi t k c p cc ch c nng c yu c u. t o nn m t n n t ng cho cc b c th b o h th ng th a mn ra. Trong th c t ngh ? th ng l tr nghi m h th ng,
m a
ng nh ng yu c u do ng i s l i cu h i: Li u h
d ng
th ng cu i
cng c th c hi n nh ng ch c nng m kh i
u khch hng
cung c p kh nng theo di cc yu c u v m t ch c nng c chuy n thnh cc l p c th ng. n gi n ha vi c thay i v m Use Case b thay i v m r ng h th ng qua vi c thay th cng nh cc th t c c th trong h
k h th ng v xy d ng h th ng.
nh ngha h th ng (xc
2. Tm ra cc tc nhn cng nh cc Use Case 3. M t Use Case 4. nh ngha m i quan h gi a cc Use Case
5. Ki m tra v ph chu n m hnh. y l m t cng vi c mang tnh tng tc r t cao, bao g m nh ng cu c th o lu n v i khch hng v nh ng ng i Case bao g m cc bi u nhng nh ng l i m t h c a chng v i nhau. Cc bi u th c s m hnh tr c quan khng th i di n cho cc lo i tc nhn. M hnh Use Use Case ch ra cc tc nhn, Use Case v m i quan ny cho ta m t ci nhn t ng th v m hnh, c a t ng Use Case th ng l i l vn b n. V cc cung c p t t c cc thng tin c n thi t, nn c n
thi t ph i dng c hai k thu t trnh by . C r t nhi u ng i quan tm hng (v/ho c ng i s n vi c s d ng cc m hnh Use Case. Khch n chng v m hnh Use Case cs v ngn ng c d ng ra
d ng cu i) quan tm c m t
t ch c nng c a h th ng v m t xem h th ng c th v s sao. Cc Use Case v v y ph i c a khch hng/ng i s Nh pht tri n c n v qua c d ng.
trong nh ng thu t ng
hi u h th ng c n ph i lm g,
khc, cc c u trc thi t k v vi c th c thi xy d ng h th ng b ng code). Cc nhm chuyn gia th Case th ch c nng c nghi m tch h p v th u. n nh ng ho t ng lin k t n ch c nh nghi m h th ng c n m b o s th c hi n n Use ng
th ng c
cc nhm ti p th , bn hng, h tr khch hng v cc nhm so n th o ti li u. M hnh Use Case m t r t quan tr ng, b i n C ch c nng c c t h ng nhn Use Case c a h nh h ng nt t c u ch u th ng. H ng nhn ny l cc Use Case, b i c th c
ra m t gi i php th a
c dng
n m b t cc yu c u c a
b ng cch thm vo cc tc nhn m i cng nh cc Use Case m i, ho c l thay c t c a cc Use Case c. Khi b sung thm vo m hnh Use Case ang khng b ra b t k m t ch c nng no v n cn c c n t i. t n t i, hy ch
5- BI U
Use Case bi u
USE CASE
c m t trong ngn ng UML qua bi u Use Case (Use Case m hnh bi u th h c chia thnh m t s l ng l n cc
Use Case ch a cc ph n t
th ng, tc nhn cng nh Use Case v ch ra cc m i quan h gi a cc Use Case. L i m t n i dung Use Case th ng c cung c p d i d ng vn b n. Trong nh ngha cc yu c u v ch c v r ng m t Use d ng,
UML, l i m t nng c m t bi u
c coi l thu c tnh "vn b n" (document) c a Use Case. L i Use Case b ng vn b n, b n cng c th i v i ng i s
ng (activity diagram). M c d u v y, nn nh ho t
Case c n ph i l
ng c th gy c m gic xa
Tm t t: M t bi u
Use Case th hi n:
c th
hi n qua hnh ch
nh t v i tn h
th ng
bn
V h th ng l m t thnh ph n c a m hnh Use Case nn ranh gi i c a h th ng m ta mu n pht tri n c n ph i c nh ngha r rng. Xin nh r ng m t h th ng khng ph i bao gi cng nh t thi t l m t h th ng ph n m m; n c th l m t chi c my, ho c l m t doanh nghi p. gi ng i ta cng r rng nhn ra tc v nh ngha cc ranh gi i v trch nng c t ng ha t t nhi m c a h th ng khng ph i bao gi cng l vi c d dng, b i khng ph i bao no c kh nh t m c h th ng ny v tc v no th t t nh t nn th c hi n th cng ho c dnh no trong phin b n u tin c a n. C g ng t i a cho phin b n u
m c tiu qu t m nh v y c th khi n cho h th ng tr nn qu l n v th i gian cung c p h th ng qu lu. M t sng ki n t t hn l xc nh n cho r cc ch c nng cn b n v t p trung vo vi c r rng, c n n t ng r ng m nh ngha m t ki n trc h th ng thch h p, c b sung vo nhi u ch c nng hn c th
h th ng ny trong cc phin b n sau. Y u t quan tr ng l b n ph i t o d ng nh ng giai t ng, m o n c m t b n catalog c a cc khi ni m v nh ngha thch h p trong i c a h sau s th ng ho c c dng y cha ph i m hnh ph m vi cc thu t ng
doanh nghi p m chng ta c n m hnh ha. Cc thu t ng c th l m t m hnh khi ni m ch ra cc m i quan h vn b n ch a cc thu t ng th gi i th c. 5.2- Tc nhn: M t tc nhn l m t ng i ho c m t v t no h th ng. Trong khi ni m "tng tc v i h tc nhn s g i thng i p th ng, ho c l thay ng i m cng c th khc cng l i m t
tng tc v i h th ng, s
d ng h l
th ng", chng ta mu n ni r ng
c ng no tng tc v i h th ng).
khng ph i l m t ng i s
ng b o hi m t
ng b o hi m, v
ph i b n thn anh chng John. Trong s vai tr lm nhi u tc nhn trong m t h th i cng c th vai tr m m t con ng i c c th b h n ch , v d th
l ng cc n v a
ph duy t ha n . M t tc nhn s c m t tn, v ci tn ny c n ph i ph n nh l i vai tr c a tc nhn. Ci tn . M t tc nhn giao ti p v i h gi ng nh khi ni m chng ta Use Case bao gi cng n. Khi m t Use Case th ng b ng cch g i ho c l nh n thng quen bi t trong l p trnh h ng g i thng i p i p i p, n cho n m t c ph n nh l i m t th c th ring bi t c a m t tc nhn, m cng khng ph n nh ch c nng c a tc nhn
i t ng. M t
n v i cc tc nhn
khc, bn c nh chnh tc nhn kch ho t v gy ra Use Case. Tc nhn cng c th nhn s nhn x c x p lo i. M t tc nhn chnh (Primary Actor) l tc th ng, t c l cc ch c nng l tc th ng b o hi m, m t tc nhn cn b n c th d ng cc ch c n ng ph c a h
chnh. V d , trong m t h
qu n tr khc. M t v d
qu n tr ho c l m t nhn vin s ha m b o m t y
cc ch c nng c a h
th ng, m c d cc ch c
n m trong m i quan tm ch y u c a khch hng. c nh ngha theo d ng tc nhn ch ng khng bao gi ng (active actor)
chng ta c th
g ng nh n ra cc yu c u v
c ng no? H th ng c n ph i tng tc v i cc h th ng khc no? Nhm cc h th ng ny c chia ra lm hai nhm, nhm kch ho t cho m i th ng bao g m c cc quan h v i h th ng, v nhm m h th ng c n ph i xy d ng c a chng ta s h thi t l p quan h . Khi ni m h th ng my tnh khc cng nh cc ng d ng khc trong chnh ng. th ng s s n
(gi tr ) m h
ng quan st nh ng ng i
ang ng i th ng v . ng . T
d ng c th l b t k ng i n m t k t qu no
no hay b t k v t no tng tc ho c tr c ti p ho c gin ti p v i h qun r ng m hnh ha Use Case nghi p, v th suy ra h khng ph i l ng i s c th c hi n d ng theo ngha
m hnh ha m t doanh n gi n v tr c ti p l
ng i ng i tr c mn hnh my tnh v thao tc v i my tnh. c th nh n d ng c t t nhi u tc nhn khc nhau, hy ti n hnh nghin th ng hi n th i (m t h th ng th cng ho c ng nh ng vai tr no khi th c thi cng d ng c th th c thi nhi u
c u nh ng ng i s
d ng c a h
ring l . M c d v y, khi cung c p v d l m t vi cc th c th c a m t tc nhn, t n t i. M t tc nhn ph i c m t lin k t (Association) no s v i m t ho c l nhi u Use Case. M c d c i m no . C n ph i t
nh ng tc nhn c th
khng kch ho t nn m t Use Case no, nhng tc nhn tn ph n nh ng vai tr c a tc nhn trong h
UML:
ny l tn c a tc nhn (ph n nh vai tr c a tc nhn). M t l p tc nhn c th v a c thu c tnh (attribute) l n hnh vi (method) cng nh m t thu c tnh ti li u (document) m t tc nhn . M t l p tc nhn c m t bi u t ng chu n ha, bi u t ng "hnh nhn":
Hnh 4.2- bi u t ng tc nhn trong UML 5.5- Use Case: M t Use Case l chu i hnh st i di n cho m t ch c nng nguyn v n m m t tc nhn nh n UML c nh ngha l m t t p h p c a cc t o ra m t k t qu c th quan th . Nh ng hnh ng ny th ng th c hi n
n v i m t tc nhn c
c th bao g m vi c giao ti p v i m t lo t cc tc nhn cng nh th c hi n tnh ton v cng vi c n i b bn trong h th ng. Cc tnh ch t tiu bi u c a m t Use Case l: M t Use Case bao gi cho h th ng no . M t Use Case ph i cung c p m t gi tr cho m t tc nhn. Gi tr khng ph i bao gi lun ph i c th y r. cng c n thi t ph i n i tr i ra ngoi, nhng cng c gy ra b i m t tc nhn, c
nh ng tc nhn no giao ti p v i Use Case no. M i lin k t bnh th ng ra l m t m i quan h mu n ni ln r ng m t th c c t tn theo m t th c a l p tc nhn s giao ti p v i m t th c th c a m t Use Case v c hai c th giao ti p v i nhau trong c hai chi u. M t Use Case s th c th m Use Case s th c hi n, v d nh k h p danh sch, v.v, v th ng l m t c m t M t Use Case l m t l p, ch ra cng nh nh ng ngo i l c as di n cho m t s s d ng c hn l ch m t t ng b o hi m, c p nh t ring l . tr n v n m t
khng ph i m t th c th . N m t c th
ch c nng, k c cc gi i php b sung v thay th c th c, cc l i c th x y x y ra trong qu trnh th c thi. M t k t qu i th c th ha m t Use Case c g i l m t c nh k ch (scenario) v n ng b o hi m" c th ng b o hi m t
th c a h th ng (m t ng d n th c thi ring bi t
qua h th ng). V d m t c nh k ch c a Use Case "K h p cho chi c xe Toyota Carolla m anh ta v a mua." 5.6- Tm Use Case: Qu trnh tm cc Use Case b t tr c. u v i cc tc nhn
c xc
nh
ph n
i v i m i tc nhn, hy h i cc cu h i sau: a. Tc nhn ny c n nh ng ch c nng no t c a tc nhn l g ?. V d cho m t giao d ch rt ti n bn my ATM trong m t nh bng ng chnh c a khch hng (tc nhn) c th l: h th ng? Hnh ng chnh
l , cc hnh
m t lo i thng tin no trong h th ng? V d : Nhn vin nh bng li u c quy n truy xu t hay thay m c ti n li? Khch hng c th thay i password c a mnh. nh ng s ki n no ? i
c. Tc nhn c c n ph i bo cho h Nh ng s ki n nh th s
th ng bi t v
V d : Khch hng k t thc ti kho n, nhn vin cung c p nh ng thng tin ny cho h th ng. C m t chng trnh u t m i, cc chi ti t c a chng
e. Cng vi c hng ngy c a tc nhn c th hi u ha qua cc ch c nng m i trong h ch c nng tiu bi u cha c t f. Cc cu h i khc: Use Case c th V d : S S c gy ra b i cc s
th ng (th ng
ng ha trong h th ng)?
ki n no khc?
u t. ng chuy n ti n theo
cc l nh xc Cc s
ki n b t bnh th ng: H p
u t k t thc tr c
th i h n.
u t i v s
i u? th ng hi n th i n m u
y khng c tc nhn,
Nh bng ABC a ra cc yu c u sau: M t khch hng c th mu n g i ti n vo, rt ti n ra ho c n gi n ki m tra l i s k t qu ti n trong ti kho n c a anh ta qua my t th c hi n v trao t ng rt ti n (ATM). Khi khch hng. Quan st cc ch c nng cn b n v cc thnh ph n tham gia, ta th y c hai tc nhn d nh n ra nh t l khch hng v nhn vin thu ngn. Qua , c th nhn d ng cc Use Case sau: G i ti n vo. Rt ti n ra. Ki m tra m c ti n trong ti kho n Th c hi n cc chuy n d ch n i b h th ng In k t qu cc chuy n d ch th c hi n. a ti n vo ho c rt ti n ra, c n ph i ghi ra gi y gi y ny cho
nh ng chuy n d ch
Hnh 4.3 Cc Use case trong h th ng ATM Use Case g i ti n vo v rt ti n ra ph chuy n d ch trong n i b kho n l m t Use Case h thu c vo Use Case th c hi n cc ph n n l i ph thu c
th ng, vi c th c hi n ny v
6- CC BI N TH
M i Use Case s
c m t dng hnh
khc. Chng c th
Thay th bnh th ng (Normal Alternative) i u ki n gy l i (Error Condidtions) Nh ng g mang tnh bnh th ng hn trong Use Case th ng. C th miu t cc dng hnh Case ). V d m t khch hng c th ch n cc lo i giao d ch sau c a ATM: G i ti n vo Rt ti n ra Ki m tra m c ti n trong ti kho n y l nh ng v d cho cc dng hnh ng thay th bnh th ng. ng thay th b ng t ng (xem ph n ti li u Use c g i l Thay th bnh
M c ti n trong ti kho n khng Password khng ng ATM b ngh n th Hnh sau nu b t dng hnh nh s khc bi t c a chng
ng thay th cng
i c a Use Case.
7- QUAN H
GI A CC USE CASE
d ng v quan h t o d ng l hai d ng khc nhau c a tnh th a t nhi u Use Case chung v i
C ba lo i quan h Use Case: Quan h m r ng, quan h s nhm. Quan h m r ng v quan h s k . Quan h nhau vo trong m t gi. t o nhm l m t phng cch
Nhi u khi trong qu trnh pht tri n Use Case, ng i ta th y m t s Use Case t n t i cung c p m t ph n nh ng ch c nng c n thi t cho m t Use Case m i. Trong m t tr ng h p nh v y, c th nh ngha m t Use Case m i l Use Case m r ng, Use Case g c (Base Use c c ng thm m t ph n m i. M t Use Case nh v y c g i l m t Use Case m r ng (Extended Use Case ). Trong quan h Case ) c dng m r ng khng nh t thi t ph i s Bi u "K h p r ng ph i l m t Use Case hon thi n. Use Case m d ng ton b hnh vi c a Use Case g c. ng mua t l Use Case m r ng c a
Hnh 4.5 - Quan h m r ng gi a cc Use Case Quan h m r ng gi a cc Use Case c bi u th b ng gic r ng tr v pha Use Case c dng m r ng, <<extends>>. 7.2- Quan h s d ng th hnh vi ny c cs d ng d ng. o n th ng v i hnh tam i km v i stereotype
b i cc Use Case kia, m t m i quan h nh v y c g i l quan h s Trong quan h hnh s d ng, ph i s d ng ton b
Use Case khi qut ha, ni m t m t Use Case khc. Cc c s d ng trong ng x y ra trong
cch khc, ta c m t Use Case ny s cng m t ti n trnh. Chng c th Use Case chuyn bi t ha.
d ng ton b
c tr n l n v i cc hnh
d ng gi a cc Use Case
gic r ng tr v pha Use Case c s 7.3- Quan h chung nhm Khi m t s quan v i nhau. cc Use Case cng x
l cc ch c nng tng t
ho c c th
lin
, ng i ta th ng nhm chng l i
Nhm cc Use Case c th c hi n b ng khi ni m "Gi" (Package) c a UML. Gi khng cung c p gi tr gia tng cho thi t k . V d : t t c cc Use Case c lin quan n s tng tc gi a khch hng v
Hnh 4.7 Package c a UML Tm t t v Use Case v i my ATM trong ngn hng l : Cho t i nay chng ta xc nh c m t vi Use Case, phn tch dng hnh ng thay th , cng nh rt ra cc m i thu th p c v
Hnh 4.8 - Bi u
8- MIU T
y l l i ct
USE CASE
n gi n v nh t qun v vi c cc tc nhn v cc Use Case (h ng x i ngo i c a h v v cc thu t ng c p t i vi c th c hi n n i b bn trong h th ng. Ngn ng cs d ng trong l i miu t chnh l ngn ng
Nh trnh by, l i miu t m t Use Case th ng c th c hi n trong vn b n. th ng) tng tc v i nhau ra sao. N t p trung vo th ng v khng cc thu t ng cs
Vn b n miu t c n ph i bao g m nh ng i m sau: M c ch c a Use Case: M c c ch chung cu c c a Use Case l g? u mang tnh
Ci g c n ph i
h ng m c ch v m c ch c a m i Use Case c n ph i r rng. Use Case c kh i ch y nh th no: Tc nhn no gy ra s hi n Use Case ny? Trong hon c nh no? Chu i cc thng tc nhn trao Y u t no s i p gi a tc nhn v Use Case: Use Case v cc i p hay s ki n no thng bo l n cho nhau quy t th ng nh? i p gi a h c s th c
i thng miu t
ng trong tr ng h p cn b n. Nh ng c miu t thnh cc Use Case khc. Use Case s k t thc v i m t gi tr n tc nhn.
i v i tc nhn nh th
no:
Hy nh r ng l i miu t ny s xc tc nhn bn ngoi, ch hi u v th m tra chng ( ta mu n t d hi u l m. M t Use Case cng c th xc b th nh xem hnh
khng ph i nh ng s r i ng r ng n
c th c hi n bn trong h dng
i di n cho nh ng g m anh/c
ho t
ng. Bi u
ho t
ng ny ch ra chu i cc hnh
c a chng, cc quy t c th c hi n.
nh ch n l a
m t Use Case, ng i ta th ng
a ra m t lo t cc c th c tc d c c bi t, khi c
c nh k ch c
minh h a u
ha. L i miu t
c nh k ch minh h a m t tr ng h p c coi l m t th c th ng x
th . Khch hng c th
dng hi u hn ton b
ng c a h b sung ch
th ng. Nhng xin nh r ng, m t l i miu t c nh k ch ch l m t s thay th cho l i miu t Use Case.
c miu t , m t ho t
ng v m t cng vi c (
c bi t
c n ph i th c hi n l th m tra xem cc m i quan h c nh n di n khng. Tr c khi t t c c thch h p, th pht tri n cha th cc m i quan h
c p t i trong ph n c miu t , nh xc s nh d n c th
cc Use Case
n m t tnh hu ng nguy hi m. Trong th i gian th c hi n cng vi c ny, hy tr l i cc cu h i sau: T t c cc tc nhn lin quan n m t Use Case c m i lin k t
ng chung? N u c, li u i u ny c th
miu t l m t m i quan h s C t n t i nh ng tr ng h p
c bi t c a m t Use Case c th
c miu t l m t m i quan h m r ng? C t n t i m t tc nhn no hay m t Use Case no khng c m i lin k t giao ti p? N u c, ch c ch n tri: T i sao l i xu t hi n tc nhn ny? C l i yu c u no v ch c nng c xc c b t k m t Use Case no x Case cho yu c u . nh, nhng l i khng y c chuy n l m l c, sai
l? N u th , hy t o m t Use
Miu t ng n: // miu t ng n g n Use Case Use Case "chi ti t ti kho n" cho php nhn vin nh bng xem cc chi ti t c a m t ti kho n m anh ta Dng ch y cc s nh tm hi u.
Nhn vin ch n Chi Ti t Ti Kho n trn menu. M t con thng tin chi ti t c a ti kho n l g i t Kho n (xem Use Case s UCSEC99). Dng hnh ng chnh: // dng logic chi ti t. M i khch hng s th c m t s
c ch n l ti kho n ti t ki m, th c in ra:
theo Use Case s UCSEC45, cc chi ti t sau y s M c ti n hi n c Cc t sec cha thanh ton L ng ti n tn d ng c php L ng ti n li cho t i ngy hm nay
L ng ti n cu i h n Ngy cu i h n T l l i Dng hnh ng thay th : // chu i logic thay th Khng tm th y chi ti t: Khi ch n m t s ti kho n khng thch h p (khng c ti kho n tng ng) d v l do ch c nng hay k a ra m t mn hnh bo l i. thu t, theo Use Case s UCSEC12, h th ng s
i u ki n thot: // Use Case k t thc nh th no? Nt Thot: Khi ch n nt thot, ng i s d ng s quay tr l i mn hnh chnh. d ng s c yu c u ch n lo i ti
Nt Xem Giao D ch: Khi ch n nt ny, ng i s hnh "Giao d ch" v theo Use Case s d ch x y ra
d ng s
UCSEC91, mn hnh s
Nt Yu C u In K t Qu : Khi ch n ph n th c n ny, k t qu giao d ch theo Use Case s UCSEC70 s c in ra m t my in a phng n i tr c ti p v i my tnh c a nhn vin.
i u ki n tr c : // i u x y ra tr c khi Use Case c th c hi n B o an: Ng i s ring bi t d ng (nhn vin ti p khch) c cung c p m t s nh danh
D ch chuy n: Ng i s
truy nh p thnh cng v Identify thnh cng. i u ki n sau : // i u g x y ra sau khi Use Case c th c hi n? H th ng s khng lu tr ln a c ng c c b . l i b t k m t thng tin no lin quan t i khch hng
9- TH
th
USE CASE
ch chnh c a Use Case l th c th c hi n ct nghi m (testing). C hai lo i c pht tri n mb o y: ki m tra (verification) v ph m b o l h th ng
M t trong cc m c
c t o ra. Ph duy t xc nh n
m khch hng ho c ng i s
d ng cu i th t s
Cng vi c ph duy t xc nh n Ngay khi m t m hnh Use Case giai hng cng nh ng i s d ng. H
c th c hi n k
tr c giai
c hon t t (hay th m ch c th
c n ph i xc nh n r ng m hnh ny l
c m hnh v ngha c a
ph i c b sung thm vo m hnh Use Case tr c khi chung cu c. Giai nghi m h th ng, nhng
c th c hi n trong th i k th d ng th ton b d
i m y u c a phng th c lm ny l n u h th c a ng i s u.
khng th a mn nh ng yu c u c c th s ph i lm l i t
c th c hi n tr c khi d ng
th ng
t o ra. Ch sau nh ng l i
ng i ta m i c th th
c t m ng i s
ng theo nh ng phng
miu t
th c c miu t trong vn b n miu t Use Case. ib d c Use Case. c dng trong c giai D c Use Case. Theo k o n nh ngha l n
ng i khc nhau trong nhm lm m hnh s th ng trong m t Use Case c s kh i ch y m t Use Case c s th . Ng i th
vi c ni ra tc nhn lm g v i h th ng. K t qu c a cng vi c ny l h th ng c b t ng trn. Ng i vai h th ng sau tri n ni anh ta lm g khi Use Case c miu t c th c hi n. Nh pht c
ng ngoi tr chi di n k ch s ghi chp v tm cch pht hi n ra cc i m b ng cc di n vin. Trong tr ng h p ng b sung khng y chi ti t. c miu
ng khng c miu t v i
Cc "di n vin" cng hi u th u o kha c nh s cng vi c th Use Case s cng hi u qu li u ng nh ng vai tr khc nhau s h ng nhn, cung c p d lm cch no c th hn, v ch ra nh ng l th i
b y nhiu. Vi c thay
d n t i nh ng thay
u vo cho cc nh t o m hnh
a ra nh ng l i miu t
th c thi cc hnh
i t ng c ng tc th c thi ch c nng .
Cc nguyn t c c a UML cho vi c th c hi n cc Use Case l: M t Use Case s c th c hi n trong m t s gi i php (ph ni m l p/ context c a s thu c vo s c ng tc (collaboration): M t s gi a chng c ng tc ch ra m t d ng cc khi c nh t t i ch c nng th c thi n i b ) c a m t Use Case s tng tc gi a chng
i v i nhau (g i l ng
c nh l n chu i tng tc gi a cc thnh ph n tham gia: thnh ph n tham gia trong m t s ho t qut v s i t ng). Cc bi u
ng. C n ph i s
c ng tc l quy t
nh ty thu c vo t ng tr ng h p c c th
m t vi tr ng h p, ch m t bi u khc nhau.
tr ng h p khc, ng i ta nh t thi t c n t i s
k t h p c a nhi u lo i bi u
M t c nh k ch (Scenario) l m t th c th (instance) c a m t Use Case hay l m t s s c ng tc: m t c nh k ch l m t chu i th c thi c ki n) trnh by m t s nh ng ng x th (m t dng ch y c th c a cc s th c th ha c a m t Use Case (t c l m t l n bn ngoi h ng v pha tc nhn. Khi quan c a s c ng tc, ng i ta s y,
ng i ta ch miu t miu t c s
th c hi n m t Use Case l chuy n cc b c v hnh Use Case thnh l p (Class), th gi a chng v i nhau. N c miu t l
t c t i nhi u l p; r t hi m khi x y ra nh x
c a cc l p tham gia. Cng xin nh r ng m t l p c th tham gia nhi u Use Case khc nhau v trch nhi m cao nh t c a l p n m chnh trong vi c k t t p t t c cc vai tr m l p ny m nh n trong cc Use Case khc nhau. th c thi n theo khi ni m c ng tc c
th c hi n c
trch nhi m khc nhau v d n d n nng c p chng trong gi i php c a mnh cho t i khi t o ra c m t m hnh th c hi n ch c nng , nng ng cho php ti n hnh cc s d ng phng php thay i trong tng lai. i t ng cn b n (c ngha l i t ng ch huy (control i i v i m i Use Case, cc l ai
Jacobson s objects) v t ng ny
nh ngha ba lo i
ba lo i l p): cc c s
nhi m c a cc lo i
i t ng ny
i di n cho cc th c th l. Th ng chng gy nn cc i c
th ng x
th ng thng tin, cc i t ng th c th
trong m t h
th ng tham gia vo nhi u Use Case khc nhau. i t ng bin: lo i h i t ng ny n m g n ng ranh gi i c a th ng). Chng tng tc i p cng th ng v nh n thng
th ng (m c d v n n m bn trong h i p n cc lo i
i t ng khc n m bn trong h
i t ng ny ch huy s i t ng nh th c th
ph n i u khi n cho ton b m t Use Case hon t t, hay n c th th c thi m t chu i hnh m t Ba lo i lo i bi u tng t ng chung c a nhi u Use Case. Th ng th i t ng nh v y ch t n t i trong qu trnh th c thi Use Case. cs d ng khi v cc cng i tm s
nh ngha nhi u lo i
d ng trong m t lo t cc Use
Jacobson g i l "Qui Trnh Pht Tri n Theo Use Case" (Use case driven). Nhn chung c nhi u phng php khc nhau Case v quan h cho cc l p. C phng php c a chng v i nhau. Sau thay ngh phn b trch nhi m t Use
ph m vi bi ton, ch ra t t c cc l p th c th (thu c ph m vi bi ton) v i m i nh pht tri n s v phn b nhi u khi s khc l i trch nhi m cho cc l p trong m hnh phn tch (analysis model), i chng ho c b sung thm cc l p m i. M t phng php tm cc l p, lm sao ngh l nn l y cc Use Case lm n n t ng
trong qu trnh phn b trch nhi m th m hnh phn tch c a ph m vi bi ton s t ng b c t ng b c c thi t l p. M t i m quan tr ng c n ph i nh c l i l cng vi c trong cc bi u l p m i s Trong m t s ch a c v ng h bi u l p v qua , d n y mang tnh vng l p. Khi thi u tr ng b ho c l i l p. Nh ng i ho c s a
n vi c s a ch a trong bi u
n. Cc Use Case gip chng ta t p trung vo kha c nh ch c nng c a c miu t x y ra v i nhi u phng i t ng (nhi u khi ng i
d ng chnh xc trong h th ng. M t trong nh ng v n php h ng i t ng m khng s trung qu nhi u vo c u trc tnh c a cc l p v cc b qua cc kha c nh ch c nng v kha c nh
11- TM T T V
USE CASE
d ng miu t nh ng yu c u mang qua cc khi ni m tc c miu t
nhn bn ngoi, Use Case v h th ng. Tc nhn t ng trng cho m t vai tr v nh m t ng i dng, m t b ph n ph n c ng ho c ng c m t h th ng khc tng tc v i h th ng. Tc nhn gy ra v giao ti p v i cc Use Case, trong khi m t Use Case l m t t p h p c a cc chu i hnh th c hi n trong h th ng. M t Use Case ph i cung c p m t gi tr c n h ng t i no cho tc nhn, v bnh th ng n c miu t b ng vn b n. Tc nhn v Use Case l cc l p. M t tc nhn c lin k t v i m t ho c nhi u Use Case qua m i lin k t (Association) v c tc nhn l n Use Case khi qut ha, m i quan h ny miu t nh ng ng x u c th c m i quan h chung trong cc l p cha,
b ng m t hay nhi u bi u
c ng tc l m t l i miu t th c hi n m t ch c ng, bi u c ng
c ng tc c miu t b ng bi u c phn b
, th ng l qua vi c xc
nh cc th
song v i phng th c m chng tng tc v i nhau. M t c nh k ch l m t th c th c a m t Use Case, hay m t s th , m t c nh k ch l m t s m t s Use Case, ch duy nh t s th c th c a m t s c ng tc. Khi c nh k ch c ng tc, ch ra m t chu i th c thi c minh h a hay l m t v d c a m t Use Case hay l c ch ra trong t cch m t th c th c quan st v
c ch ra theo h ng l m t i t ng pha bn
c ng tc, th s c miu t .
PH N CU H I
H i: M t tc nhn (Actor) trong m t Use Case lun l m t con ng i p: Sai, tc nhn l m t ng i ho c m t v t no th ng. H i: H th ng khc cng c th p: ng ng vai tr tc nhn trong m t Use Case? tng tc v i h
Chng 5: M HNH
1- L p, i t ng v quan h cc thnh ph n c b n c a m hnh:
I T NG
s m hnh ha nh ng g c trong h th ng m chng ta mu n miu t , cc m i quan h s bi u th c u trc. t hng ngn nm nay loi ng i bi t th . 1.1M t i t ng (Object) t ng trng cho m t th c th , ho c l th c th c th , v d nh m t chi c xe t ch t n t i c s n gi n ha vi c miu t cc h th ng ph c t p. Khi xy d ng cc h th ng ph n
n vi c l p trnh h ng
m m th l p v cc m i quan h c a chng
i t ng l m t s
trong th gi i
i t ng c th hng c a b n nh m t
t ng trng cho ci g
ho c chi c my tnh c a ti, ho c t ng trng cho m t khi ni m v d quy trnh ha h c, m t giao d ch trong nh bng, m t l i tin trong qu trnh s Cng c nh ng xu t t
t hng, nh ng thng
i t ng (v d
ph n m m) khng th t s th c. Nh ng
t n t i
ngoi th
i t ng ngoi th gi i
ranh gi i v ngha
v nh n di n c a i t ng i t ng
m t danh sch ghi danh cho m t l p h c trong h th ng tr ng h c c th c hai ng v tr ng thi m . N u danh sch sinh vin ghi danh hn s t i a cho php (v d l 10), th tr ng thi c a 10 sinh vin ghi danh cho l p, danh sch
i t ng s
ph n
ng nh th
no tr c i t ng
nh ng yu c u t ny c th
m b o r ng m i i s
M t l p l m t l i miu t chung ng ra
c a m t nhm cc
i t ng m chng ta
chnh. V d , m t l p v a c kh
nng gi
vin v thng tin v t t c nh ng l p h c m ng i sinh vin tr i qua trong nhi u nm tr c khng ph i l m t l p t t, b i n khng c ch ny c n ph i l ch s c chia ra lm hai l p lin quan c a sinh vin. n nhau: l p sinh vin v l p
c n ph i d a trn cc khi ni m c a ngnh b o hi m. N u chng ta xy d ng i, th cc khi ni m c a th gi i qun s th ng. M t h c th d d ng khi m hnh ha h th ng d a trn cc khi ni m chnh c thi t k l i cho ph h p v i c
xy d ng d a trn cc khi ni m l y ra t ni m thu c ph m vi v n quan h gi a chng. M t l p l l i miu t h th ng phn tn, h cho m t d ng th ng k h p b i n n t ng c a phng php h ng
i t ng l cc l p,
i t ng trong b t k m t h th ng no thu t, h
th ng thng tin, h
th ng ph n m m v h
th ng doanh thng. Cc v t d ng
tr thnh cc l p trong cc h th ng doanh nghi p v h th ng thng tin. V d v cc l p trong doanh nghi p v cc h th ng thng tin: Khch hng B n thng thuy t Ha n Mn n Ti s n B n cng b gi c phi u Cc l p trong m t h th ng k d nh my mc c s thu t th ng bao g m cc i t ng k thu t, v
d ng trong h th ng:
l p l m t d ng m hnh tnh. M t bi u
tnh c a m t h
th ng b ng cc khi ni m l p v m i quan h
gi a chng v i
v i m t m hnh d
nn nh r ng cc l p khng ph i ch th hi n c u trc thng tin m cn miu t l p l t o n n t ng cho cc bi u nh tr ng thi c a i ng). khc, th hi n cc kha c nh khc c a h th ng (v d t ng hay c ng tc h ng ng gi a cc l p c th M t l p trong m t bi u i t ng c h tr l p, nhng bn c nh t ng th t s
i t ng, c ch ra trong cc bi u
tr c ti p khi ni m l p. M t bi u
cn c m t bi n t u hi khc
l cc th c th c a cc l p ny (bi u
t o m t bi u
l p,
c m t s l ng cc l p, ta s xt 2- Tm l p:
H u nh khng c m t cng th c chung cho vi c pht hi n ra cc l p. l p l m t cng vi c c a chuyn gia i h i tr sng t o v c n ph i c th c thi v i s thay i theo th i gian. T p h p ban d ng ng d ng. V qui trnh phn tch v thi t k
i tm cc tr gip
nn danh sch cc l p s bi n ng c
tm ra cha ch c l t p h p cu i cng c a cc l p sau ny s i thnh code. V th , th ng ng i ta hay s vin (Candidate Class) miu t t p h p nh ng l p
n khi ni m cc l p
d ng l nh ng l i miu t thu c v cc c xc ta i tm cc l p l
i t ng c ng tc th c thi ch c nng . Ni m t cch khc, chng ti n t i tm gi i php cung c p nh ng d ng. . C phng php cc l p th c th (thu c nh trong cc tr ng h p s
th c hi n cng vi c
ph m vi bi ton) v i m i quan h c a chng v i nhau. Sau nh pht tri n s d ng v phn b trch nhi m cho cc l p trong m i chng ho c b sung thm hnh phn tch (analysis model), nhi u khi s thay
phn tch c a ph m vi bi ton s t ng b c t ng b c c thi t l p. 2.1- Phn tch ph m vi bi ton tm l p: u v i cc khi ni m then nh n di n v l c ra
Qu trnh phn tch ph m vi bi ton th ng c b t ch t (Key Abstraction), m t cng c th ng c s cc l p ng c vin (Candidate class).
d ng
, ABC cn ph i c nh ng th c th lin quan t i ti n nh sau: Khch hng S n ph m (cc ti kho n nh bng) L c l ng nhn vin Ban qu n tr nh bng Phng my tnh trong nh bng Nh ng th c th bng c th ny c g i l cc khi ni m then ch t cho nh ng g m nh c coi l cc s n ph m c a m t
c. Khi ni m then ch t ho c mang tnh c u trc (structural) ho c khch hng. Th c th mang tnh ch c nng duy tr m t ti kho n
mang tnh ch c nng (functional). Th c th mang tnh c u trc l nh ng th c th v t l tng tc v i nh bng, v d ho c chuy n ti n t cc th c th ta l nh ng ch c nng m nh bng ph i th c hi n, v d n
ti kho n ny sang ti kho n khc. Khi ni m then ch t l u tin. Chng r t quan tr ng v gip ta:
Lo i b th c th n m ngoi ph m vi h th ng Cc khi ni m then ch t th ng s phn tch M t khi ni m then ch t tm l i l m t l p hay c a ph m vi bi ton. Khi trnh by v i ng i s gi a v i nh ng th c th ngh rt ti n, s lin quan t i ng i s rt ti n t ti t ki m, th i t ng thu c chuyn ngnh d ng, chng c m t nh x 1-1 d ng nh ha n, sec, gi y tr thnh cc l p trong m hnh
tr u t ng qu cao hay qu th p
d trong m t nh bng, ta khng th ch n khi ni m then ch t l "ng i", b i n c m t ng i khc ti p nh n." trong khi m t yu c u quan tr ng ph i phn bi t gi a nhn vin v i khch hng v ch c nng c a h nhau. Tng t d ng: Form m ti kho n i h i t t c 15 Entry. Nh ng d li u trn Form ny ghi u ph i c cn ph i. a ch c a khch hng trn Form. nh v y, m c tr u t ng qu th p cng d gy hi u l m, b i nh ng nh ng quy t nh y l
l khc h n
i m ny. V d
Khng c nhi u ch nn c
Vi i m c n ch v
Nh ng th c th xu t hi n
i u g khi n nh ng th c th lo i ny c t o ra? N u khng c cu tr l i thch h p, c n ph i suy ngh l i v th c th M i khi ni m then ch t m i c n ph i ch c nng c a khi ni m. 2.1.2- Nh n d ng l p v i t ng N m v ng khi ni m l p, chng ta c th tng i t ng trong ph m vi v n danh t thnh l p v i t ng. i d dng tm th y cc l p v c p d ng l vin chuy n ng c c . ng
. M t nguyn t c th s th ng
danh t
v t l c a h
ngi nh,. Trong m t nh bng ABC, c th l t p sec, phi u ngh rt ti n, s ti t ki m, cc lo i Form c n thi t. Cc s ki n (Events): M t chi c xe b h ng, m t ci c a c m ra. o h n m t ti kho n u t, hi n t ng
Trong m t nh bng l s
rt qu nhi u ti n m t trong m t ti kho n bnh th ng. Cc vai tr (Role): V d khch hng,... Cc s tng tc (Interactions): V d vi c bn hng l m t chu i yu c u m t nh m , khch hng, ng i bn hng, . l nhn vin, nh qu n tr ,
tng tc bao g m khch hng, ng i bn hng v s n ph m. Trong m t nh bng, vi c m m t ti kho n m i s chu i tng tc gi a nhn vin v khch hng. V tr (Location): M t gn cho m t v tr no mnh. n v t ch c (Organisation Unit): V d cc phng ban, phng ph n v t no ho c m t ng i no i v i nh ng c
. V d : t
xe. Trong m t c as c a
N u c thng tin c n ph i
c lu tr , bi n
th ch c ch n s l
cho l p. Nh ng thng tin ny c th l m t khi ni m lun c n ph i th ng ho c l s ki n, giao d ch x y ra t i m t th i i m c th no . Ta c cc h ng ngoi c th th ng ngo i vi khng? N u c, th ng chng cng th ng bn c coi l cc l p ch a h th ng c a chng ta ho c
tng tc v i h th ng c a chng ta. Chng ta c cc m u, th vi n l p, thnh ph n v nh ng th khng? N u chng ta c m u, th vi n, thnh ph n t tr c (xin c c a cc b n ng nghi p, mua c t ng c c p) th chng th ng cng s ch a cc vin l p. l khng? M i tr cc d khc n
cc nh cung
th ng c a chng ta th ng s
c th c hi n v i cc l p,
c bi t l trong cc
ng d ng
vin (Candidate Class). Ngoi ra, nghin c u nh ng h th s mang l i cho ta cc l p Khi nghin c u h then ch t vin khc:
cng c
th ng hi n th i, hy ng c
n cc danh t u
v cc khi ni m c nh n di n theo m t tn
nh n ra l p
vin. Khng nn a cc l p c nh c l i
th ng nh bng c th
nhi u v tr khc nhau l nhi u khch hng khc nhau. C n ch khi phn tch
tin ch c v
nng t o d ng m t m hnh
Cc tr ng h p s tr c s t nt ic a
d ng l ngu n t t nh t cho vi c nh n di n l p v d ng
i t ng. d ng t i s
C n nghin c u k cc Tr ng h p s yu c u ph i a vo m t s
t nt ic am t M t ngu n khc
N u Input bao g m tn khch hng th y l tn hi u cho bi t s i t ng khch hng, b i n l m t attribute c a khch hng. Ni chuy n v i ng i s th ng i s d ng miu t d ng cng g i m
t nt ic am t
h th ng theo l i c n ph i
2.2- Cc l p Theo cc b c k
ng c
trn trong ph n
m t s l p khc nhau. Nh ng l p ny hi n nh ng l p c kh
c g i l cc l p
vin, chng th
nng t n t i trong m t h
th ng cho tr c. M c d v y,
s b lo i b trong cc b c sau v khng thch h p. Giai o n u khi nh ngha cc l p ng c vin, ta cha nn c g ng thanh l c nhi u l.
cc l p, hy t p trung co m c tiu nghin c u bao qut v ton di n t ngu n thng tin khc nhau khng b st nhi u kha c nh c n x ng c vin c th l:
Cc lo i ti kho n khc nhau Sec, s ti t ki m, n, . Phi u yu c u m ti kho n m i Th ATM B n in thng tin v ti kho n Gi y ch ng nh n ti kho n u t
Th x p hng (Token), s th t Nhn vin Nhn vin thu ngn 2.3- Lo i b C r t nhi u lo i l p cc l p ng c ng c vin khng thch h p:
nh ngha ra nh ng th c th
th c t i. M i l p khng xu t pht t c lo i b . V d , l p c a cc my ng c
ph m vi
L p khng r rng: L p khng c ch c nng c l p khng r rng. L p t n t i v c gi tr s th ng l l p c m t ch c nng b . V d quan st nhi u b rng. Cc l p khng r rng c n ph i c
th
c g i l cc nh r
d ng trong m t h
c nh n di n v xc
nh ngha l i ho c lo i
c nh n di n. Cc
c gn cho cc l p thch h p hn. Cc l p ch l vai tr (Role) cc vai tr v gi Hy gi tr. M t l p khng cung c p ng x c n thi t ho c thu c tnh c n thi t ng x no m ch nh ngha m t t p c nghin c u m t khch hng c i v i m t l p khc: Hy lo i b t t c nh qu n tr , nhn vin thu nh ng l p khc ch l vai ch l vai tr c a l p nhn vin.
l i l p chnh. V d
ngn, ng i ch y gi y r t c th
l i l p nhn vin v lo i b t t c
c th s l l p khng c n thi t. Nhi u khi, c th c m t l p ch ng cung c p m t thu c tnh ho c k th xc c nh s h p cc m i quan h . Nh ng l p nh th c n ph i lin quan v i h th ng. V d
nh ngha l khch hng quan tr ng hay khch hng bnh m anh ta c v i nh bng trong t
n gi n ch l m t hm c coi
khng ph i l m t l p. V d
li u (data abstraction)
Trong ph n th
li u thnh ph n c a l p v trong ph n
th ba l cc phng th c hay hm thnh ph n c a l p. 3.1- Tn l p (lass name): Tn l p v n vin,.... 3.2- Thu c tnh (attribute): L p c thu c tnh miu t th ng l nh ng d ng d nh ng li u c i m c a c i t ng. Gi tr c a thu c tnh l p trnh h c in m (bold) v cn gi a. Tn l p ph i c d n xu t t ph m vi
v r rng nh c th . V th
n l danh t , v d
nh ti kho n, nhn
n gi n
a ph n cc ngn ng
tr nh Integer, Boolean, Floats, Char, Thu c tnh c th t li u thu c tnh c nhi u m c c th trng th y c (visibility) khc nhau, miu cc l p khc, khc v i l p nh
c truy xu t t
ngha ra n. N u thu c tnh c tnh trng th y l cng c ng (public), th n c th c nhn th y v s th y khc l b o v b i cc l p d n xu t. Trong UML, thu c tnh cng c ng mang k hi u "+" v thu c tnh ring mang d u "-". Gi tr s thay c gn cho thu c tnh c th l m t cch i trong tr ng thi c a c i t ng. u c th miu t tr ng thi c a i d ng ngoi l p (protected), c s . N u thu c tnh c tnh trng th y l bn ngoi l p . M t tnh trng khi qut ha c th z k d ng chung v i cng c ring (private), b n s khng th truy c p n t
t ng. M i l n cc gi tr ny thay
i l bi u hi n cho th y c th
x y ra m t
Lu : M i
i m c a m t th c th l nh ng thng tin c n lu tr .
chuy n thnh thu c tnh c a l p miu t lo i th c th 3.3- Phng th c (methods): Phng th c t ng c s d ng nh ngha cc ho t m t l p s x l thay ng m l p c th
th c hi n. T t c
cc
c t o t
c chung thu c tnh v phng th c. Phng th c i cc thu c tnh cng nh th c hi n cc cng vi c c g i l cc hm (function), nhng chng n m c p d ng cho cc qua tn, gi tr tr v i t ng c a l p ny. M t v danh sch c a 0 cho t i
l p. V nhm cc phng th c miu t nh ng d ch v m l p c th cung c p nn chng c coi l giao di n c a l p ny. Gi ng nh thu c tnh, phng th c cng c tnh trng th y c nh cng c ng, ring v b o v .
c nh sau: CAH l
c gn gi tr ,
y l cc gi tr khi l p
i t ng khng ch a ph n phng th c.
4- Quan h Bi u
l p th
l p g m c b n lo i: Lin h (Association) Khi qut ha (Generalization) Ph thu c (Dependency) Nng c p (Refinement) M t lin h quan h cc l m t s n i k t gi a cc l p, cng c ngha l s c n i k t gi a cc c nh
nh ngha l m t m i
l p v m t y u t nh h ng M ts
nh ng m c 5- Lin h M t lin h
t ng ny nh n th y nhau. M t m i lin h
l p c n i k t v i nhau, v d r ng "chng bi t v nhau", " c n i v i nhau", "c m i X l i c m t Y",.... L p v lin h gi a cc l p l nh ng cng c r t m nh m cho vi c m hnh ha cc h th ng ph c t p, v d nh c u trc s n ph m, c u trc vn b n v t t c cc c u trc thng tin khc. M i lin k t (hnh 4.18). c th hi n trong bi u UML b ng m t ng th ng n i hai l p
5.1- Vai tr trong lin h M t lin h c th c cc vai tr (Roles). Cc vai tr c n i v i m i l p bao m nh n nhn t h ng l p
ch a trong quan h . Vai tr c a m t l p l ch c nng m n gc nhn c a l p kia. Tn vai tr n. ch nhn ra, th hi n l p ny ng vai tr nh th no
c vi t km v i m t mi tn ch t
i v i l p m mi tn ch
Trong v d
l ch
nhn c a m t ti kho n v ti
kho n c chi m gi
ng th ng th hi n lin h gi a hai l p.
Tn vai tr c th b
Tn vai tr ph i l duy nh t. Tn vai tr ph i khc v i cc thu c tnh c a l p. Tn vai tr ph i miu t ph m vi v n 5.2- Lin h Ta cng c th m t s uc a s c ch c nng m l p ny m
d ng m i lin h
ng th ng n i k t. Mi tn ch ra r ng s
Bi u
ph n 5.15 th
thng tin v s
l ng cc
hng c th c bao nhiu ti kho n v m t ti kho n c th l c a chung cho bao nhiu khch hng. Trong UML, lo i thng tin nh th t (Cardinality) trong quan h . 5.3- S l ng (Cardinality) trong lin h :
Bi u
ti kho n c th thu c v m t cho t i ba khch hng. S l ng c ghi pha u ng th ng th hi n lin h , st vo l p l mi n l ng ph n t v d trong lin h c th t 0-t i-1 nh l
(0..1), 0-t i-nhi u (0..* hay ), m t-t i-nhi u (1..), hai (2), nm-t i-m i m t m t dy s (1,4,6, 8..12). Gi tr m c
cho m t bi u
l p tiu bi u. Bi u u thu c v b
gi i thch r ng b
ph n
v m t ti kho n ti t ki m m thi. M t ti kho n ti t ki m c th thu c v t kho n. 5.4- Pht hi n lin h : Th ng s c nhi u m i lin h gi a cc i t ng trong m t h
th ng. Quy t , cc yu c u.
o n thi t k . C
y s gip ta tm ra
m t v tr
u l m t bi u hi n ch c
Sau khi tm cc m i lin h , b c ti p theo ra kh i cc lin h lin quan khng c n thi t. Lin h ng c nh ng lin h bao ch a cc l p qu . Nh ng lin h nh th
vin b lo i tr
n h th ng. C nh ng lin h l v d
c t o ra nh m m c
lin quan t i giai o n ny. C n ch phn bi t gi a hnh miu t xu t t ng hnh nh ng c m t mang tnh ng v m i lin h . Ng i ta th ng c xu h ng lin h l n hnh ng u c d n ng t trong b n miu t yu c u. Cc hnh
ng nh l lin h , b i c
c lo i b . Khi lm vi c ng v v y
ny, c th nn
ng ch l thao tc x y ra m t l n. Hnh i t ng ch
v i "Ban qu n tr nh bng
u i vi c m t nhn vin",
ng t
u i vi c ng
th hi n hnh
lm vi c" miu t lin h gi a hai l p nhn vin v hng. g ng lo i b cc lin h d th a, b n s c bi t ch tr ng. th y c m t s lin h d
Trong khi c th a
m t s lo i lin h d th a c n
5.6- Nng c p cc m i lin h : M t khi cc m i lin h c n thi t c nh n d ng, b c ti p theo l ngin c u k m hnh v nng c p cc m i lin h ng tc nng c p k v phng di n s . t l i cho h n nh cn
u tin l xem xt l i tn lin h , tn vai tr, l ng thnh ph n tham gia (Cardinality). S ng m t vai tr quan tr ng l ng. N u c n thi t, hy b
ng v i b n ch t quan h m chng th hi n. M i lin h c n ph i c suy xt (Qualification) cho lin h nh c th y, b sung y u t h n sung cc lin h
gip lm gi m s
nh lin h h n
hai l p v m t y u t s nh cc m i lin h
nh (Qualifier) v i
nh l m t thu c tnh h n ch h n
m c c nhi u t p tin.M t t p tin ch thu c v m t th m c m thi. nh, tn c a t p tin s xc nh duy nh t t p tin mang y ng vai tr y u t h n nh y
Trong m t th m c xc
nh m t t p tin. Y u t h n
nhn c a t nh t m t ti kho n
m i lin h V (AND) s
c th hi n nh sau:
Bi u
u t
c m t m i lin h V ng m
HO C (OR Association) u c th k h p ng
b o hi m, nhng c nhn v cng ty khng c php c cng lo i h p hi m nh nhau. Trong m t tr ng h p nh th , gi i php l s HO C (OR Association). M t lin h hai hay nhi u lin h , xc nh r ng HO C l m t s h n ch .
ng b o
d ng lin h i m
i v i m t nhm
i t ng c a m t l p ny t i m t th i
ny l ng u nhin. M t lin h
c tr t t
r rng c th
Nhn {ordered}
c ghi g n l p c
i t ng c s p x p. Bi u
trn c
c l cc ti kho n ti t ki m c s p x p theo khch hng. 5.6.5- Lin h tam nguyn (Ternary Association)
Bi u
trn c
u u
t v m t b ph n nh n ti kho n t.
5.6.6- L p lin h M t l p c th c
(Association Class) c
c n i t i b t k m t l p no c a khc. L p i t ng
m i lin h , m t i chnh b n thn m i lin h . Cng gi ng nh m t l p bnh c thu c tnh, Phng th c v cc quan h g n li n v i m t d ng b sung thm thng tin cho n i k t (link), v d nh th i
c thi t l p. M i n i k t c a lin h
thang my. Cho m i n i k t gi a nhm thang my v b ph n i u khi n c m t hng x p (queue). M i hng lu tr khi n l n t khi n ch n m t thang my nh ng y u c u k pha thang my (nh ng nt b m bn trong thang). Khi b ph n i u th c hi n m t l i yu c u nt m t hnh khch c cc hng v
C th lin k t m t l p v i b n thn n trong m t m i lin h . M i lin h v n th hi n m t s lin quan ng ngha, nhng cc i t ng c n i k t thu c chung m t l p. M t lin h c a m t l p v i chnh b n thn n m t lin h quy, v l n n t ng cho r t nhi u m hnh ph c t p, s i t ng cho bi u l p trong hnh 5.25.
c g i l d ng v d quy
6- Quan h
k t t p (Aggregation)
gi a cc l p d a trn n n t ng c a nguyn t c "m t t ng th b ng cch t p h p cc th c th t n t i v i nhau. M t v d l chi c xe t g m c b n bnh xe, m t v.v.... Qu trnh ghp cc b ph n l i v i nhau s ng t
tiu bi u c a k t t p
ng c, m t khung g m, m t h p s ,
ng m ch a trong n l "bao g m cc thnh ph n". 6.2- K hi u k t t p: K hi u UML cho k t t p l th s k t t p (t ng th ). c t o b i cc l p chi ti t v khch hng, cc l nh giao d ch nh c a nh bng. ng th ng v i hnh thoi (diamond) t st l p bi u
M t l p ti kho n
c trnh by nh sau:
Trong tr ng h p ti kho n k trn, m t trong cc b ph n c a n l cc chi ti t v khch hng. Cc chi ti t v khch hng l i bao g m danh sch ch danh sch kho n. 6.3- K t t p v lin h : Khi ni m k t t p n y sinh trong tnh hu ng m t th c th bao g m nhi u thnh ph n khc nhau. Lin h gi a cc l p m t khc l m i quan h gi a cc th c th . Quan st hnh sau: a ch , cc quy nh v ti kho n, ti k h n cng nh cc chi ti t khc khi m
M t ti kho n c t o b i cc chi ti t v khch hng, cc l nh giao d ch ti kho n cng nh cc quy ph n c a ti kho n, nhng c quan h v i ti kho n. Nhn chung, n u cc l p "ton th b c n i k t v i nhau m t cch ch t ch coi quan h
i v i
qua quan h
ph n" th ng i ta c th
l k t t p. Khng c l i
nn dng k t t p v bao gi n.
7- Khi qut ha v chuyn bi t ha (Generalization & Specialization) Hy quan st c u trc l p trong bi u sau:
Trong hnh trn, ti kho n l khi ni m chung c a cc lo i ti kho n khc nhau v ch a nh ng ch a s suy ra t c t c n thi t cho t t c cc lo i ti kho n. V d ti kho n. Ta c th nh n c th c bi t ti kho n v tn ch c hai lo i ti kho n
d ng ti kho n chung ny, m t lo i mang tnh k h n v m t lo i mang chia cch hai l p ny v i nhau l cc quy ng c a hai lo i ti kho n. nh chuyn
c g i l m t c u trc hnh cy ho c c u trc phn i m xu t pht c a cy xu ng d i, chng ta c chuyn bi t ha nhi u hn. Theo con ph i i qua l p ti kho n
n ti kho n ti t ki m, ta s
giao d ch. L p ny ti p t c phn lo i cc l p chuyn bi t ha cao hn, ty thu c vo ch c nng c a chng. 7.1- K hi u khi qut ha v chuyn bi t ha Trong bi u trn, cc l p trong m t c u trc cy c n i v i nhau b ng m t
mi tn r ng, ch t
Qu trnh b t
u v i m t l p khi qut
bi t cao hn c g i l qu trnh chuyn bi t ho (Specialization) Chuyn bi t ha: l qu trnh tinh ch m t l p thnh nh ng l p chuyn bi t c t cho l p k t qu . L p mang
hn. Chuyn bi t ha b sung thm chi ti t v t o ra cc l p con (Subclass). M t khc, n u chng ta kho n. Con ng b t i d c c u trc cy t u t
d i ln, ta s
g p cc l p ngy
cng mang tnh khi qut cao hn - V d t tnh khi qut cao hn L p chuyn bi t
l p ti kho n ti t ki m ln t i l p ti
ng vi tr l m t l p cha c a l p
phn bi t (Discriminatior)
c g i l y u t
thi t r ng ch c hai lo i ti kho n, m t mang tnh k h n v m t mang , ta ph i t o ra hai l p con, m t cho cc ti kho n mang
tnh k h n v m t cho cc ti kho n mang tnh giao d ch. Trong m hnh i t ng, khng nh t thi t ph i nu b t y u t i t ng hay khng. M c d u v y, phn bi t. Y u t c m b o cho
phn bi t lun c m t trong m t c u trc phn c p l p cha/ con, d c nh n m nh trong m hnh m t m hnh c cng vi c nn th c hi n. 7.2.1- L p tr u t ng Quan st c u trc trong hnh trn, ta th y l p ti kho n s th c th ha, c ngha l h th ng s khng bao gi khng bao gi nh ngha r rng, trnh by y u t
phn bi t v n lun l
t o ra cc
i t ng thu c n m c
l p ny. Nguyn nhn l v l p ti kho n mang tnh khi qut cao vi c kh i t o l p ny s d v y v n s cc n khng c m t ngha no
ng k . L p ti kho n m c c dng
ng m t vai tr quan tr ng trong vi c khi qut ha cc thu c tnh n trong cc l p d n xu t t ngoi i, chng n. Nh ng lo i l p nh th t n t i y ngha trong
c g i l l p tr u tr ng (abstract
c a qu trnh khi qut ha. Hy quan st v d ng u cy c u trc v c g i l l p cn c khi qut n. Trong qu trnh khi
qut ha, cc thu c tnh c dng chung trong cc l p chuyn bi t c a ln l p cha. L p cha v cu i c t o b i cc thu c tnh chung c a t t c cc l p d n xu t t n. Nh ng l p cha d ng nh v y trong r t nhi u tr ng h p s mang tnh i v s khng theo u i m c ch kh i t o, chng c l i ng x cc thu c tnh chung c a cc khi qut tuy t
l p d n xu t. Nh ng l p nh th trong tr ng h p chung th ng l k t qu nh
Bi u
trn cho ta m t v d v khi qut ha v cc thu c tnh chung, n ch ra theo m i m c chuyn bi t ha l i c thm c b sung thm cho cc l p, khi n chng mang tnh chuyn m c tr u t ng bn trn. V d l p ti kho n c y l nh ng thu c tnh h t s c cc d ng cc thu c tnh c a n, d l tr c ti p hay gin ti p (
nhi u l p chuyn bi t. Ch r ng c cc thu c tnh thu c tnh l s m c bi t cao hn so v i cc l p cha chung chung. T t c
tr u t ng th p hn n a),
u c quy n s
l p ti kho n. Cc l p ti kho n c k h n v ti kho n giao d ch l hai l p chuyn bi t d n xu t t ring c a chng - v d v m c ti n t i thi u nh th v i ti kho n l p ti kho n. Chng c nh ng thu c tnh chuyn bi t m c th i gian (duration) t i v i l p ti kho n c k h n l p ti kho n. Cng tng t u t trung h n l cc lo i i v i l p ti kho n giao d ch bn c nh hai thu c tnh s u t ng n h n v ti kho n
l p thu c ti kho n c k h n, ti kho n ti t ki m v ti kho n bnh th ng l cc lo i l p thu c l p ti kho n giao d ch. 7.2.3- L p c L pc th (concrete class) ni t tr c, cc l p c th i
th l nh ng l p c th th c th ha. Nh ha c g i l cc u t di h n c th
khi th c th
i t ng. Trong v d
trn, cc l p ti kho n
c th c th ha thnh
i v i ti kho n ti t ki m v ti kho n bnh th ng. pht tri n cy c u trc d ng nguyn t c khi qut ha c tinh ch (refine) cc ng x khc
7.2.4- T ng k t v
d ng tnh th a k
xy d ng
m t th t c ho c m t thu c tnh chung, nn ki m tra l i xem chng c th t s c p d ng ch khi chng ta c m t t p h p cc l p t ng ring bi t v c m t s t o nn l p cha ch a cc Khi chuyn bi t ha, ta thch cc l c ra ng x c a n ng x l ng l n cc chung . khc bi t trong ng x ng x nh ngha m t lo i
i tm cc s
t o cc l p con
ng. C ngha l ta xem xt m t l p t n t i, ki m tra xem c ph i t t c u c kh nng p d ng cho m i i t ng. N u khng, ta ng x khng ph i lc no cng c n thi t v chia tr ng h p n ra thnh
Th ng x y ra tr ng h p t t c cc l p con cng tham gia vo m t lin h ho c k t t p. Trong tr ng h p ny nn t o l p cha Hnh sau gi i thch thm i m ny: nh ngha lin h /k t t p .
8- Quan h
ph
thu c v nng c p (Dependency & Refinement) v khi qut ha, UML cn nh ngha hai lo i quan h lin quan ng khc.
thu c (Dependency) l m t s cl ps nh h ng
c l p v m t mang tnh ph n ph n t
ph thu c. Ph n t
y c th l m t l p, m t gi (package), m t tr ng h p s
C th nu m t vi c d cho s m t l p g i m t th trn u c m t s
c a m t l p khc, m t l p truy nh p m t ph
i t ng ton c c c a m t l p khc, cc tr ng h p
gi a hai l i miu t
c a cng m t s l m i
khc l quan h
m t l i miu t c m c tr u t ng ha cao v m t l i miu t c m c tr u t ng ha th p (v d m t b c tranh khi qut c a m t s ). Quan h ng v m t bi u d ng m n gi n v m t chi ti t c a cng c ng tc nng c p cn c s
(m t th c thi
ng th ng g ch r i (dashed line) v i
mi tn r ng.
Quan h s
nng c p
c s
n c
l n, m i m hnh
u c n ph i
d ng nh m m c ch: Ch ra m i lin quan gi a cc m hnh nhau. Ch ra m i lin quan gi a cc m hnh nhi u giai o n khc nhau (phn nhi u m c tr u t ng khc
tch yu c u, phn tch, thi t k , th c thi,...). H tr vi c qu n tr c u hnh. H tr vi c theo di trong m hnh. 9- Nng c p m hnh qua cc vng l p k ti p
t o nn phin b n
u tin c a m hnh
l y lm m c tiu cho cc vng l p nng c p ti p theo. Cng vi c nng c p c th giai c th c hi n b ng cch a m hnh qua t t c cc i t ng m t l n n a. L n ny, nh ng ki n th c us t ra r t h u d ng. Khi nng c p m hnh
t c khng t o tnh
ng d ng ng nh t
l p thnh cc l p k t qu v i nh ng th t c c xc
tri u ch ng thi u l p. Hy b sung l p thi u v a th t c k trn vo l p . c) Khi qut ha l cn cha cng cc m i lin h . c bi t quan tr ng i v i h th ng th n u c cc lin h trng l p (nhi u lin h k th p
nh ngha vai tr
y l m t lin h
khng c n thi t. V d
gi a nhn vin thu ngn v khch hng nhng l i khng c th nh ngha gi a hai ng i. Trong tr ng h p ny, r t c th lin h
Khi xy d ng m hnh v
i t ng, khng nn b t
trc l p, cc m i lin h cng nh nh ng m i quan h th a k l r trn b m t p th ng vo m t chng ta. Hy dnh th i gian nghin c u k b n ch t v n . M hnh i t ng ph i c thi t k ph h p v i gi i php cho v n m
chng ta nh m t i.
d ng. Nh ng tn t o ra nh ng hnh xa v i
r t d gy ra
cho m hnh
i t ng c n gi n:
l i xu h ng t o ra cc m hnh ph c t p, chng ch mang l i s u c a quy trnh m hnh ha c i t ng, hy xc dnh cho giai
nh m l n, b i r i. Trong vng
nh cc m i lin h cn b n v g t ra ngoi cc chi ti t, vi c xem xt t i cc s l ng thnh ph n tham gia (Cardinality) trong quan h o n sau; r t c th l th hai ho c vng th vng th cc thnh ph n tham gian trong quan h ch ng i ta th y nh ng phin b n lin h v i s l ng l t Nn s hai. T t nh t l cc chi ti t ph n nh s l ng c b sung thm vo trong vng i t ng. Th ng th ng,
ba c a cng vi c m hnh ha
u tin c a m hnh th ng ch ch a cc m i
d ng cc m i lin h h n
c chuy n thnh cc quan h 1-t i-0 ho c 1-t i-1. T t c cc m hnh c n ph i c l y lm i t ng cho vi c ti p t c nng
c p. N u khng th c hi n nh ng vng nng c p sau , r t c th m hnh c a chng ta s thi u hon ch nh. ng tc Th ng s cho nh ng ng i khc xem xt l i m hnh l r t quan tr ng. lin quan qu c n k v i m hnh s khi n chng ta m la,
khng nh n nh ng ra khi m khuy t c a n. M t ci nhn v t trong tr ng h p ny l r t c n thi t. Khng nn m hnh ha cc m i lin h x y ra, ta th ng c th h . Thm vo , c lc ta b qua s thnh thu c tnh. N u i u ny nh.
th cung c p ng v n l i s
li u m t m hnh v a c t o d ng nn l t t hay khng. Y u t ny m ra m t quan tr ng trong vi c xc chng ta thi t k m hnh l th c nh...). Trong m t m hnh, y u t c av n n ch quan tr ng b t nh t l ph i n m b t c b n ch t n chng ta mu n ni v hi n th c. M hnh mang
. Trong m t h th ng ti chnh, chng ta th ng m hnh ha cc ha khng ph i cc mn n . Trong a ph n doanh nghi p, b n thn ha c t m quan tr ng n ch l m t s ph n nh n nh v y, y u t i u quan tr ng y l cc
khng th t s
mn n . M t ha
m hnh ha lm sao
c m hnh ha
nh l m t l p ho c l m t th c th v m t khch hng l m t thu c tnh). Kh l ti kho n c nhi u ch . V n a ch . hai l nh bng khng th t o ra cc chi n l c maketing nh m t i nh ng
V v y, m t trong nh ng kha c nh c a ch t l ng m hnh l tnh thch h p c a m hnh . M t m hnh thch h p ph i n m b t cc kha c nh quan tr ng c a nh gi ch t l ng l th , d b o qu n, mang tnh i t ng nghin c u. Nh ng kha c nh khc trong vi c m hnh ph i d giao ti p, ph i c m t m c tiu c
v ng b n v c kh nng tch h p. Nhi u m hnh c a cng m t h th ng nhng c cc m c ch khc nhau (ho c l h ng nhn khc nhau) ph i c kh nng tch h p c v i nhau. D l s ph i d ng phng php no ho c ngn ng m hnh ha no, ta v n cn thnh m t ng s can l t t c
i m t v i cc v n
ph n c a doanh ngh p, c ngha l chng ta c n ph i quan st hi u thi p c a chng ta vo doanh nghi p. Y u t cc kha c nh c a s can thi p v d quan tr ng l c n ph i x
a ra khng ph i bao gi c bi t ch
ph h p v i cc m c
l m hnh ha m t b n thi t k c t p h p nh
c th c hi n t p trung vo m c tiu
tr c. Cc nhm
10.2- Ta c th
T i sao m hnh l i ph i l th u c n ph i
li u c a nhau v th o lu n cc n i dung c a chng. Sng ki n kh i th y n m ng sau b t k m t m hnh no cng l N u chng ta t o ra cc m hnh m khng ai v ngha. M hnh ch ng ph i ho c ng i d n um td t o ra kh nng giao ti p v i chng. c n i, hi u n i, th l vi c lm u m t phng php ph c v cho vi c
c t o ra b i ng i d n t
n ra l nh. M hnh c t o ra
n nng su t, hi u qu v
10.3- M hnh c ph h p v i m c ch c a n khng? M t m hnh hnh c n ph i c m t m c nh n c ra. T t c n, v cc m hnh l ng m i u ny khi n cho vi c s ch r rng, sao cho ai dng n cng ch, nhng th ng m c ch ny d ng v hi u n tr c th nn kh khn.
u c m c
th ng, nhng chng v n l nh ng m hnh khc nhau v t p trung vo cc ch khc nhau (hay l chi ti t khc nhau). C n ph i xc m i m hnh c th ki m tra v ph duy t n. N u khng c m c ch r rng,
m t m hnh thi t k . 10.4- N m b t nh ng i m tr ng y u Nhi u m hnh ch bao g m cc ti li u c a doanh nghi p v d n, nh ng thng tin nh n bao g m cc ti li u th v n c, cc h p i u g s x y ra n u doanh nghi p thay nh cc ha i? y l m t
ng b o hi m. N u m hnh ch l s
r t quan tr ng trong th c t . Chng ta c n thi t ph i n m b t b n ch t c kh nng x l cc thay i m t cch thch h p. Hy m hnh n m t m hnh di n gi i ph n i nho nh trong i i cc l p di n gi i cc lo i
c a doanh nghi p (t o nn ph n nhn) v m hnh xoay quanh cc khi ni m thi t y u ha ph n nhn c a doanh nghi p v sau doanh nghi p c th n ). 10.5- Ph i h p cc m hnh Cc m hnh khc nhau c a cng m t h v lin quan th ng ph i c kh nng c k t h p tch ch v th c x m i
di n gi i c a cc mn
nng c rp l i v i nhau m khng lm n y sinh mu thu n. Quan h gi a cc m hnh nh ng m c tr u t ng khc nhau l m t kha n kh nng c th cho cng ngh l p c th hi n b ng c ph i h p tr u khc nhau, ph c v
c nh quan tr ng khc. N l m t trong nh ng cha kha d n theo di b c pht tri n c a cc ph n t trnh. Quan h gi a cc m c quan h nng c p trong UML. t i m i m t m c t ng khc nhau. 10.6Ngay c ph c t p c a m hnh i u tr u t ng khc nhau c th
c ngha l cc m hnh s
tr u t ng cng nh
c ph i h p gi a cc m c
dng giao ti p, c m t m c v c th
ch r c
rng, n m b t
i m tr ng y u trong ph m vi v n
ph i h p v i nhau, ta v n c th g p kh khn n u m hnh qu ph c t p. Nh ng m hnh c c k ph c t p s kh nghin c u, kh th m tra, kh ph duy t v kh b o tr. Sng ki n t t l hy b t ha nhi u hn b ng cch s v n u v i m t m hnh n gi n, v sau chi ti t d ng vi c ph i h p m hnh. N u b n ch t ph m vi
Khi t o m hnh l chng ta di n gi i cc chi ti t v nh ng g m chng ta nghin c u, th nhng m t y u t r t quan tr ng l m hnh ph i n m b t i t ng l m t th l trong m t s phng th c no c nh ng g m i . M t i m tr ng y u c a i t ng nghin c u. M t
hi u bi t
i t ng c th l m t thnh ph n c a m t i t ng v i cng l i ng x . L p v i
h th ng no trong th gi i m t chi c my, m t t ch c, m t doanh ngh p. 0, 1 ho c nhi u bn lu n v cc h th ng. d ng m t ngn ng php v ng ngha m hnh ha v d t o d ng m hnh.
Khi chng ta m hnh ha, chng ta s nh UML, cung c p cho chng ta ng Ngn ng bi t,
t o ra m t m hnh t t hay khng. Ch t l ng m hnh c n ph i c ch ring i u c ngha l t t c cc m hnh c n ph i c m t m c c lm sao d giao ti p, d chnh xc v chng ph i n m b t c b n ch t c a cc m hnh c n ph i b o tr. UML cung c p m hnh tnh, qua cc bi u m ts ph n t ng v theo ch c nng. M hnh tnh c th hi n i t ng nghin c u. T t c th m tra, ph duy t v
l lin h , khi qut ho, ph thu c ho c l nng c p. M t m i quan h lin h l n i k t gi a cc l p, c ngha l s ny. Khi qut ha l quan h gi a m t ph n t mang tnh chuyn bi t hn. Ph n t chuyn bi t hn c th khi qut hn c l p s gy tc mang tnh khi qut hn v m t i t ng l m t th c th c a d ng b t c ni no m thu c l m i quan h thu c. M i thay nhng nh ng thu c. M t quan h
c cho php. Ph ng n ph n t
gi a hai l i miu t
tr u t ng khc nhau.
Ph n cu h i
H i: Cc l p ch th hi n c u trc thng tin? p: sai, cc l p khng ph i ch th hnh vi. H i: Cc khi ni m then ch t th ng s tch? p: ng trong cc l i pht bi u bi ton s l ng c vin tr thnh cc l p trong m hnh phn hi n c u trc thng tin m cn m t c
i t ng?
m t m i quan h
k t h p l m t s
n i k t gi a cc l p, c
ngha l s
n i k t gi a cc
ngy cng mang tnh khi qut cao hn (l p cha) H i: Chuyn bi t ho b sung thm chi ti t v p: c t cho l p k t q a? m t l p thnh nh ng l p
chuyn bi t hn (l p con)
Chng 6: M HNH
NG
1- S
C N THI T C M HNH
i t ng
NG (DYNAMIC MODEL)
nh ngha h th ng theo khi ni m ng x mang tnh c u trc v ho t ng th t s c a
M hnh
ch c nng c a cc l p. M c d u v y, th ng ho t
m hnh ha s i v i h
th ng v trnh by m t h ng nhn
th ng trong th i gian h
ng, chng ta c n t i m hnh ng (dynamic model). ng c p t i cc tr ng thi khc nhau trong vng ng x c a m t h b ng cc i u ki n khc nhau n ic a
th ng. Phng th c
th ng t i m t nh cho s
c miu t
M t y u t
h t s c quan tr ng l c n ph i hi u cho t c s l h qu
c h
th ng s
p l i nh
nh ng kch thch t
v nghin c u nh ng chu i cc th l i ng x
kch thch t
ng b i chng ta c n th
miu t m hnh
ng l khng
c t o ra m t l n, nhng cc thu c tnh c a chng ch d n d n t ng b c nh n nh m t ti kho n u t c k h n c t o ra, nhng t ng s ti n li c ng d n c a n ch Cc m hnh i t ng khi theo c tng ln d n d n theo th i gian. h t s c c n thi t ng ng v v th miu t ng x c a m t c bi u
ng cng l y u t u l cc ho t ng.
a ra cc yu c u ho c th c thi cc tc v . C tc v m ch c th
l n d ch v ,
nh ngha,
di n qua m t m hnh
2- CC THNH PH N C A M HNH
n nhau. V d m t l nh g i th
NG
i t ng trong cc h th ng giao ti p v i nhau, chng g i thng i p (message) i t ng khch hng l John g i m t thng i p mua hng lm m t vi c g ng c a s . M t thng giao ti p nh th i p th ng l m t i t ng i c g i l kha i t ng ny g i qua m t i t ng kia. Cc n ng i bn hng l Bill t c m m t
trong m t nhm cc bi u bi u tu n t ho t
i t ng nh m t o ra m t s cc l nh g i hm
hi n qua ba lo i bi u
c ng tc (collaboration Diagram) v
c p t i b n lo i bi u m t
ng c a UML: i t ng c th c nh ng
tr ng thi: miu t
i c a n,
ng x
ki n no gy ra s c tr
chuy n
ti n (tr ng thi
i m trong cc bi u
gi a m t nhm cc ch c nng. Bi u
ch th c hi n m t s
cc
i m trong m t bi u
m ph i th
ho t ng: l m t con
nhng chng t p trung vo cng vi c. Khi cc v i nhau, cc trong bi u V bi u tu n t , bi u ng. Nh ng ho t ho t ng ny cng th ng. ho t ng t
i t ng cng th c hi n cc tc v , t c l cc ho t c a chng
c ng tc l n bi u d ng bi u ph
u ch ra tng tc c coi l
ph i ch n nn s nh c a b n s
no khi l p ti li u cho m t
thu c vo vi c kha c nh no
ng x
c s
miu t h th ng. H ng nhn ch c nng th hi n cc ch c nng m h cung c p. Tr ng h p s tr c, tr ng h p s o n mu n s th ng theo cc tc nhn c th s d ng h th ng ra sao. Nh ch miu t
d ng bnh th ng ra th ng nh th
tc nhn c th
no. M hnh tr ng h p s
c p kha c nh h th ng c xy d ng bn trong ra sao. L p v cc tng tc d ng. Tng tc ho t d ng c ng tc v ho c/v bi u ng, t c l c m t s th ng. Cc l p c c m hnh ha v tr ng thi s
ng c a h
tr ng thi (m t bi u
nh km cho m t l p, m t h th ng con ho c l m t h th ng). Tr ng h p s d ng v cc m i quan h c a chng 3 (tr ng h p s d ng). ng miu t nm kha c nh cn b n khc nhau: n tng tc c miu t trong chng
ng
ng cng cn
nh xem cc nguyn t c
c th
hi n trong
ng: M t khch hng khng m c ti n trong ti kho n. Nh ng mn ti n u t c k h n khng th chuy n sang m t tn c quy n rt ti n ra n u khng c
3- U
B t c
I M C A M HNH
ng x n m hnh
NG:
ng c n ph i ng. c nghin c u ho c th hi n,
khi no c nh ng
ng ng m t vai tr v cng quan tr ng trong nh ng tr ng h p nh: Cc h th ng mang tnh tng tc cao H th ng c s d ng cc trang thi t b ngo i vi c th g i nn cc
ng x M hnh tnh. V d
c a h th ng. ra th t s h u hi u trong tr ng h p c a cc h ch nh p d li u lu tr th ng
ng khng t m t h li u.
th ng ch nh m m c
vo m t
ng t p trung vo cc chu i tng tc (bi u ki n (bi u tu n t ). M t m hnh ch th hi n r rng theo th i gian ho t i t ng:
c ng tc) v vo ng c th ng c a h c th ng
y u t th i gian c a cc s d ng cho m c
n u trong th i gian ny c nh ng c t o ra B xa i c lu tr B h y
Hy quan st tr ng h p rt ti n m t v tng tc c a khch hng bng: Khch hng ti n m t. Khch hng hng. a gi y yu c u i n t t c
i v i nh
cc chi ti t c n thi t vo gi y yu c u rt
x p
ng v i nh ng s th tu n t
c pht ra.
M t t m th x p hng (token) c trao cho khch hng. Khch hng th c a mnh. Song song v i qu trnh ch c a khch hng, gi y yu c u rt ti n c a anh ta tr i qua nhi u giai o n trong n i b nh bng. i vo hng x p, ch nhn vin bn casse g i ng s
c th a mn, gi y yu c u rt ti n
c g i t i tu n t
Nhn vin bn casse a ti n m t cho khch hng. L i Lo i ng x ng x trong vi c rt ti n m t l mang tnh c a qu trnh ph c th ng. ny khng th n m hnh ng cng t ng. Su t qu trnh rt ti n m t, nh. i t ng, y l tr ng
thu c vo m t s cc i u ki n xc
hi n qua m hnh
vi c m t th ATM u (
l cc yu c u do khch hng a ra, d ng l i v ch yu c u giao d ch khc, l i tr ng thi ban ng yn) sau khi th
rt ra ngoi.
ng c a my rt ti n ATM
4- S
KI N V THNG
4.1- S
ki n (Event):
i t ng ny sang
i t ng khc. ng no . V d
ki n l m t vi c s x y ra v c th gy ra m t hnh b t i n, trong my c
u chi nh c (gi ng y l ki n v
u chi nh c. N u c m t s
ph n m m, chng ta th ng ch m hnh ha cc h th ng mang tnh nhn qu , c n i k t v i nhau. M t ph n v d v i t c nhn qu : b n li xe trn xa l khng ph i l nhn qu rng gi a s th ng ph n qu nhanh, c nh st ngn xe l i. n ik t c
b i hnh
ch n bao gi cng x y ra; v th m khng c m t s ki n (li xe qu nhanh) v hnh n s ng theo m t cch no . v y l ta quan tm
ki n nh sau:
K t thc m t h p
ng tr c k h n.
i n m t gi y yu c u m ti kho n. UML bi t n t t c b n lo i s ki n:
M t i u ki n tr thnh c th a mn (tr thnh ng) Nh n c m t tn hi u ngo i t Nh n c m t l i g i th i t ng ). M t kho ng th i gian xc Xin ch r ng c cc l i x y ra cng l s l n i v i m hnh. 4.1.1- S Cc s ki n c l p v s ki n ph thu c n nhau. C m t s s ki n khc. V d : ki n, nh tr c tri qua. ki n v c th mang tnh h u d ng r t t ct m t m t i t ng khc i t ng khc (hay t chnh
ki n c th mang tnh
theo b n ch t, ph i i tr c ho c l x y ra sau cc s
nh n c m t s th x p hng. S o h n c a m t ti kho n u t c k h n s d n n ng
nh) vo ti kho n.
c n i k t v i nhau trong b t k
c l p cn c th
c g i l cc s
B i chng khng ph thu c vo nhau, nn cc s m t th i i m. Trong nhi u tr ng h p, m t s chuy n t i thnh nhi u s m t cho nhn vin pht th ti p. C nh ng tnh hu ng ni m t s ngn m t t sc c th ng th i ki n ring l c g i s ki n ring l
ki n ny c th x y ra t i cng
trong ph m vi v n l m t lo t cc s
a gi y yu c u rt ti n ki n n i
c nh n b i nhi u nh m t l i
i t ng ngh
ng thch h p. V d
ki n n i (internal) v s h
ki n x y ra trong n i b iv i
m t
i t ng ny gy ra
ti kho n
u t c k h n s
c n i b h th ng th c hi n, tun theo m t
th ng, v d nh s
k t thc tr c k h n m t ti kho n ki n v l p s ki n:
4.1.3- S
ngha xc L ps
nh m t lo i s
ki n c g i l m t l p s c phn lo i:
ki n ngoi ra cn c th
Cc tn hi u n gi n: L p s ha Cc s ch ra m t s
ki n trong tr ng h p ny s
c th c th
ki n ho c l m t tn hi u c a m t s li u: th ng th m t s ki n c n ph i "bi t
ki n. nng v i t ng s i t ng
ki n chuy n t i d
ki n c kh n cc nh cc
chuy n t i d nh n c s s nh n s cc ki n. V
li u. T t c cc s
i t ng g i hay nh n s
m t nguyn t c, cc s n cho t t c cc
c truy n i v i ki n. i
i t ng. N u s
i t ng s b qua s
i t ng "thng
c th c thi
i t ng ny g i m t th
, ho c l qua m ng ho c l n i b trong m t my tnh, y l i u th ng x y th ng th i gian th c. Thng ng (tu n t , c ng tc, ho t i t ng. M t thng i p i t ng g i v ng v tr ng thi) theo ngha l s c v l m t c th ng v i mi ch r i p. Lo i mi tn s
giao ti p gi a cc lo i thng i p.
i t ng nh n thng
d ng trong UML.
Hnh 6.3- Cc k hi u c a cc ki u thng i p Thng i p n gi n (simple): Ch miu t khi n. N ch ra quy n cho ti t no v quan tr ng s giao ti p i v i bi u i u khi n c trao t i p ny n gi n chi u i u i t ng ny sang b t k m t chi c s d ng khi
Thng i p ng b m t l nh g i th t c. Th
c th c thi l c hon i t ng
i p ny ph i l) tr c khi
t t (bao g m b t k nh ng thng g i ti p t c th c thi. Qu trnh tr thng i p n gi n. Thng i p khng ng b khi n trnh t khng t ng g i v ni c a mnh sau khi c x
c l ng vo trong, c ch ra d i d ng
c g i nh l m t thnh ph n c a s
(asynchronous):
y l d ng i u tr v iv i i
ng b , ni khng c m t s i p
l xong. Lo i thng
i t ng th c thi
c k t h p v i nhau trong i p ng b m t tr v i u ny ch r r ng s
ng th ng ch thng
pha v mi tn ch thng i p n gi n
5- BI U
Bi u tu n t
TU N T
(SEQUENCE DIAGRAM)
i t ng tng tc v i nhau ra sao. Chng t p tu n t c hai tr c: tr c n m d c ch i t ng. M t bi u tu n t
minh h a cc
x y ra t i m t th i i m no trong qu trnh th c thi c a h th ng. T cc hnh ch nh t bi u di n ng i i t ng c cc i t ng, t c l s ng g ch r i (dashed line) t n t i c a i t ng trong ha, s n c th i t ng. ng b , pha bn i t ng i u t c th c th ng
th ng sng M i tn khng
ng bi u th
chu i tng tc. Trong kho ng th i gian ny, g i v nh n thng u ng b hi n b ng cc ng th ng thng ng th ng s hay n gi n.
i t ng
tu n t , hy b t
trn c a bi u
r i ch y d c xu ng v quan st s
i p gi a cc
bng l :
n khch hng
Khch hng nh p s ti n c n rt. ATM g i s ti n c n rt i t ng ti kho n tr s n cho ti kho n ti n vo m c ti n trong ti kho n. i t ng ti kho n x l yu
i t ng ti kho n tr v m c ti n m i trong ti kho n cho my ATM. i t ng ATM tr v m c ti n m i trong ti kho n cho khch
hng v d nhin, c l ng ti n khch hng yu c u c rt. i t ng ti kho n ch b t ki m tra m s hon t t. Sau t i, i u ny v , n ch t u c sinh ra khi i t ng ATM c n t i n c
giao d ch khc nn
c ch ra qua vi c cc
ng th ng th hi n s
ki n x y ra gi a chng. M c d v y, khi s
th ng tng ln th m hnh ny s
i t ng lin quan v
th hi n cc s Khi v bi u
ki n x y ra gi a chng. tu n t , c n ch : S ki n c bi u di n b ng cc ng th ng n m ngang. i t ng b ng cc ng n m d c.
ki n c n ph i c th hi n
theo ng th t
6- BI U
M t bi u y u vo s
C NG TC (COLLABORATION DIAGRAM)
c ng tc miu t tng tc gi a cc c ng tc, cc c ng tc c th tng tc gi a cc i t ng. i t ng c bi u di n b ng k hi u l p. Th nh s cc thng i p. K thu t mi tn s i t ng cng gi ng nh bi u ki n, t c l t p trung ch
tu n t , nhng n t p trung tr c h t vo cc s
hi n b ng cch
d ng trong bi u tu n t . Bi u sau t
c ng tc l n c th ch c n trnh trong bi u
ra cc chi ti t v cc l nh g i hm (th
y l m t v d s trong bi u
cho m t bi u .
c ng tc, tu n t
c a ph n tr c. Hy quan l hm AskForPin(), m l p
u tin th t c WithdrawalReq() c g i t
cg it
c vi t d i d ng pin:=
AskForPin(), th
v " c a hm ny chnh l m s
khch hng s cung c p. Hnh cung bn l p ti kho n bi u th r ng hm ComputeNetBalance() trong n i b l p ti kho n v n x l c c b . Th ng th n s ring (private) c a l p. c g i t c
l m t th
Hnh 6.5- M t bi u
c ng tc c a kch c nh rt ti n
my ATM
7- BI U
Bi u
tr ng thi n m b t vng
c nh n di n r rng v c l i v miu t
ph c t p. Bi u
khc bi t ra ki n no
sao ph thu c vo tr ng thi, ngoi ra n cng cn miu t r nh ng s s thay i tr ng thi c a cc 7.1- Tr ng thi v s T t c cc i t ng c i t ng c a m t l p.
ng tr c
nh tr ng thi, ho c tr ng thi
t ng. V d v cc tr ng thi c a Ha n (
Chi c xe t ( ng c (
ng c xe t hay l l y i t ng v ch miu t m t
i t ng khc ra sao (qua vi c g i thng gi tr cc thu c tnh n i b miu t vi c i cc tr ng ki n v chng thay n s chuy n t
tr ng thi c s
i t ng ph n
c a chng nh th no, v d , m t ha
thi cha tr ti n sang tr ng thi tr ti n khi c ai tr ti n cho n. Khi m t ha n c t o ra, 7.2- Bi u Bi u tr ng thi th u tin n b c vo tr ng thi cha c tr ti n. tr ng thi hi n nh ng kha c nh m ta quan tm t i khi xem xt
tr ng thi c a m t
i t ng: u gi a
Nh ng s
ki n cng nh cc tr ng thi c a m t
u, k t thc, s
ki n v tr ng thi c a
Hnh 6.7- Bi u
tr ng thi th c hi n ho n.
ng
nh t ch ra tn c a tr ng thi, v d nh ch , c tr ti n hay ang ng. Ph n th hai (khng b t bu c) dnh cho cc bi n tr ng thi. c th hi n qua bi u ra r t h u d ng trong tr ng thi, v d ng c th c s d ng d ng cs c li t k. C ba lo i s d ng xc xc xc nh hnh nh hnh y l tr ng thi; nhi u khi cc nh cc lo i bi n ng, ni ki n chu n ha c ng kh i nh p i p. S tr ng thi. S c th c hi n
d ng cho ph n hnh
hi n). Lo i s
tr ng thi, v d ki n i ra c th ki n th c hi n
trong tr ng thi, v d
nh g i m t thng
ki n chu n ny khng th M ts bi n
bu c. N u c m t s trnh
c th b ng t b i cc s ang ti p di n.
ki n t
ngoi, c ngha l m t s
ki n ki n gy nn m t
ng th c hi n mang tnh n i
bi n i vo,
ki n
i km th tr ng ng do ng i s c
ng n i b , khi t t c
c th c hi n xong
nh ngha). Theo
ng thu c tr ng thi
Hnh 6.9- Bi n
i tr ng thi khng c s
ki n t
ngoi. S
thay
i tr ng thi
x y ra khi cc ho t
ki n v tr ng thi v m t b n ch t bao g m vi c h i m t
nh ng tr ng thi m m t Nh ng s
ki n no c th x y ra?: B i s
ki n gy ra vi c thay
ki n l m t b c quan tr ng
nh n
ki n, hy xc
nh
ki n ny
c th c thi?: Hy i t ng.
n cc th
t c
n tr ng thi c a m t
c p d ng cho cc ph n nh ki m t a ph n ng
ng c a cc i v i m t s
i t ng ki n s
v i nhau?: Cc qui
Nh ng s
khi c m t s s
ki n ho c s
ki n nh m t nhn vin
khi n cho
Chuy n bi u Xc
nh cc vng l p (loop) c bi t
tr ng thi.
hnh c kh nng cung c p t t c cc cu tr l i. Qui trnh sau y c n ph i c i t ng. tu n t thnh bi u ki n c miu t n tr ng thi trong bi u , ang
7.4.1- Chuy n bi u
ki n thnh m t
i nh c l i r t nhi u l n (v gi i n tr ng thi u
ng d n t
tr ng thi cu i cng
tr ng thi c a m t l p my ATM,
c chi t su t
tu n t
c ng tc c trnh by trong cc ph n tr c.
tu n t
sang bi u
tr ng thi
Hnh 6.11- Bi u Ch :
l p
ki n
c nh c
i nh c l i c n ki n khc chu i
ng nh t v i nhau. N u c m t chu i cc s
khc th tr ng h p khng c vng l p. L t ng nh t l m t tr ng thi trong vng l p s thc. y l y u t bao gi k t thc. 7.4.3- B bi t Sau khi th ng, cc hon t t bi u tr ng thi cho m i i t ng c n thi t trong h i u ki n bin v c quan tm i u cha sung thm cc i u ki n bin v cc i u ki n c c s ki n k t khng
i ch ng chng v i
i u ki n
i u ki n r t c th tr ng thi.
trong th i gian t o d ng bi u
i u ki n bin l nh ng
nh v tr ng thi c a i u ki n
nh v k h n c a
c bi t l nh ng
i u ki n th t s
nh v y t n t i ngoi
tr ng
i t ng khc cng c kh
ny cng c n ph i
d n thay th . C n
n nh ng
ng d n c v ngoi
ng nh t nhng th t
ki n x y ra trong nh ng tnh hu ng b t ti n. M i s d ng gy nn nh i v i ng i s
ki n
u c th sa vo tr ng thi c a cc d ng v i m ki n t i m t th i
nh k t thc tr c k
h n m t ti kho n
c x
l l s
ki n do ng i s
d ng gy
x y ra. C m t lo t cc l do (ng i s
d ng thi u t p trung,
nh bng bi t nh ng m nh l nh c a anh ta v
ng, c n ch nh ng i m sau: Bi u c ng x tr ng thi ch c n c t o d ng nn cho cc l p ng quan tr ng. tr ng thi theo kha c nh tnh nh t qun cho ton b m hnh ng i c i t ng
Hy th m tra bi u v i nh ng s ng n.
ki n dng chung
d ng
h tr cho qu trnh t o d ng bi u
nh ngha m t tr ng thi, hy ch
n nh ng thu c tnh
lin quan.
8- BI U
Bi u ho t
HO T
NG (ACTIVITY DIAGRAM)
ng v cc k t qu c a chng. Bi u ho t t c c th c hi n trong khi th c thi m t th ng l m t bi n th c a bi u
ng n m b t hnh
d ng ho c trong tr ng thi v c bi n i tr ng ng
ng (cng vi c v nh ng ho t
c th c hi n) cng nh k t qu o n k
c a chng theo s
ti p khi hnh
nh b t k m t s ng c a n c
i m phn bi t khc gi a bi u
(swimlane). M t lu ng s ho t
gom nhm cc ho t
ch u trch nhi m cho chng ho c chng n m trch nhi m th i tr ng thi ra Bi u hi n r cc hnh ng). cs
ng l m t phng php b sung cho vi c miu t tng tc, i km v i ng x y ra nh th no, chng lm g (thay ng), v chng x y i t ng), chng x y ra khi no (chu i hnh
u (lu ng hnh ho t ng c th
d ng cho nhi u m c ch khc nhau, v d nh: ng) s ng. i t ng. ph i c th c thi khi m t
n m b t cng vi c (hnh th t c c th c hi n. tr ng nh t c a bi u ho t
y l tc d ng th ng g p nh t v quan
n m b t cng vi c n i b trong m t
i t ng n m xung quanh
i tr ng thi c a
ni m cng nhn (tc nhn), qui trnh nghi p v d ng trong doanh nghi p). Bi u ho t ng c th c coi l m t lo i Flow chart. c p d ng
i m khc bi t l Flow ho t
Chart bnh th ng ra ch ng c th x
i v i cc qui trnh tu n t , bi u
l c cc cc qui trnh song song. thay i tr ng thi s n sinh ra m t k t qu . Vi c th c thi c a th ng lin quan, sau nh ngha ho t ng
c th c hi n
ph n tr c, m t bi u
Hnh
6.12-
Khi
m t
ng i
g i
tc ng th
PrintAllCustomer ng
(trong
l p
ng kh i
ng. hnh
n my in; v hnh ng
cc i u ki n ny ph i c th a mn th s ho c nhi u s i km cc
i i vo v m t ho c nhi u s
bao gi cng c th a mn (l ng). M t s hnh l t t c thanh thay i c chia thnh hai hay nhi u s ng thay i khc s d n n cc y
c th c hi n
ng th i, m c d c th ng i c chia ng song
chng cng c th
nh t l i v i nhau (n u c). M t ng th ng n m ngang k ha Synchronisation Bar) ch r ng m t s d ng ch ra s thnh nhi u nhnh khc nhau v ch ra m t s song. Cng ng th ng c s
m (cn c g i l
Thanh
ng b
ng ho c sai.
9- VNG
Vng i khc nhau vng l p.
I T NG (OBJECT LIFECYCLE)
i t ng i v i m t i qua ph thu c vo lo i i t ng: vng i t ng. C hai lo i vng i; v vng i i sinh ra r i ch t
i m m t
vng
i t ng. Nh ng tr ng thi ny
t ng ti p t c t n t i nhng khng ti p t c th hi n ng x Sau tr ng thi kh i t o v tr c tr ng thi k t thc, ho c l nhi u tr ng thi trung gian. T i m i m t th i tr ng thi hi n th i. Khng c m t
i t ng c th i m,
i t ng ph i
lun lun t n t i
ti p t c t n t i. Khng c tr ng thi kh i t o cng khng c tr ng thi k t thc. M c d th t ra s i t ng c t o ra t i m t th i i m no v cng s th t i m no , nhng n v n i t ng t c coi l lun lun t n i vng l p s ra c m t vng
b h y di t t i m t th i c t o ra t i th i i m ci
t i v c m t. Th ng th nh ng
t h th ng v s ch t i khi h th ng k t thc.
M t
i t ng v i vng
i vng l p s c m t ho c l nhi u tr ng thi "ng yn". i t ng n m ch m t s tr ng thi hi n th i. i l p l i: my rt ti n t ng (ATM), nhn vin ki n x y ra. Bn c nh ,
i t ng c vng
thu ngn.
NG
tr ng thi
tu n t , bi u tri n c th khai c th
ho t
c th coi l ta hon t t m t phin b n c a m hnh Ph n quan tr ng nh t trong m hnh ny l bi u cho m t lo t cc cu h i m t m c ch: Ki m tra tnh tr n v n c a m hnh m b o m i i u ki n gy l i c x Trong giai cx o n ny, c th s xc nh xem bi u
tr ng thi. Hy tm cu tr l i tr ng thi ng n v c
ki n v tr ng thi.
sung nh m
m b o tnh
ng
nc a
m b o m i thng
i p
u c
i t ng g i v
t ng nh n. Trong m t s i t ng nh n s ph i ki n ny.
tr ng h p, s
li u chnh xc c a nh ng x l nh ng s
ki n c th khng
c bi t t i, nhng chng ta
m b o r ng chng ta bi t nh ng l p no s
Hy nghin c u m hnh theo kha c nh tr ng thi, tm ra nh ng tr ng thi khng c tr ng thi d n tr c v khng c tr ng thi ti p theo. Nh ng tr ng thi thi ny r t c th v l tr ng thi kh i u ho c tr ng thi k t thc. M c d v y, n u tr ng thi khng thu c m t trong hai lo i tr ng thi kia, r t c th y l m t tri u ch ng cho th y m hnh cn thi u i u g . Nhn chung, t t c cc tr ng thi th ng u c tr ng thi d n
d ng ni chng xu t pht. ki n c ph h p v i
hy s a l i bi u
d ng bi u
no ng cho t t c cc lo i h th ng. M c nm t
Khng c n ph i v t t c cc lo i bi u s lo i bi u ng nh t
ng x c ng ng
ng c a nhi u d ng. Bi u tc gi a cc x
i t ng/ l p trong n i b m t c nh k ch c a m t tr ng h p s v bi u i t ng. d ng d ng th hi n ng x chnh xc c a m t ng x i t ng. c ng tc r t h u d ng trong vi c ch ra s i t ng, nhng chng l i khng h u d ng khi mu n miu t
chnh xc c a m t
Bi u Bi u h ps Bi u
tr ng thi c s ho t ng cs
th hi n l i
xuyn su t nhi u tr ng
c th a k , l p con cng c bi u c m r ng
tr ng thi c a m t l p cha s
Bi u
ring bi t v
tr ng thi c a l p con c n ph i
mc n i ngoi mu n c a l p cha
m b o tnh m un cho
ng tc m r ng c a b n.
11- PH I H P M HNH
Khi k t h p gi a cc m hnh hnh suy ra, m i s v vo s ki n. gi a m hnh thay i v
I T NG V M HNH
i t ng v m hnh ng, m i s t c trong m hnh
NG
ki n trong m i t ng. T
ng c n ph i ph h p i t ng
v i m t th t c c a
ng ph thu c vo tr ng thi c a
M i quan h sau:
i t ng v m hnh
ng c th
c miu t
nh
M hnh M hnh cc
ng. iv i
c php x y ra
i t ng trong m hnh ng b h n ch
ch trong nh ng
i t ng c m t trong
trong m hnh
ng chnh l m hnh
M hnh s
i t ng miu t
khc bi t gi a cc i t ng ng x
i t ng nh l khc m t i
t ng khc th m i
M c d v y, trong m hnh s l p.
12- TM T T V
T t c cc h th ng miu t
M HNH
NG
ng x ng. C u trc c th c nh l p, quan h cc ph n t gi a cc l p, nt m hnh trong n i th ng
qua cc ph n t
miu t
ho t ng x
tr ng thi
trong m t l p (n cng c th
d ng cho cc h
th i gian s thay
d ng
tng tc
c g i v nh n gi a m t nhm cc
c hai tr c; tr c d c ch th i gian v tr c
i t ng tham gia c nh k ch. Kha c nh quan tr ng nh t l th i gian. d ng miu t cc i t ng tng tc v i nhau ng, n c
c ng tc
c s nh
d ng
miu t s
ho t
ng cng c th
d ng, v cng c th
PH N CU H I
H i: Th no l m t vng l p? p: M t chu i s vng l p (loop). H i: M hnh c a h th ng p: ng ki n c l p cng c th l cc s ki n song song ng chnh l m hnh i t ng c ng thm ph n ng x ng ki n c th c nh c i, nh c l i v s l n c g i l
H i: Cc s p: ng
p: Sai, m i
i t ng khng c tr ng thi kh i
ti p t c t n t i.
ICONIX is Introduction
Modeling
"An Introduction to the Unified Modeling Language (UML)" was developed by Kendall Scott, co-author of the award-winning book UML Distilled, as well as Use Case Driven Object Modeling with UML, and author of the forthcoming UML for the Rest of Us. The course is designed to help you quickly get up to speed on the essential aspects of the UML and the most relevant parts of the associated Unified Process.
This one-day course is designed to provide a quick but insightful introduction to the standard visual modeling language, touching upon all of the key aspects of the UML and its relationship with the use-case-driven, architecture-centric, and iterative and incremental Unified Process. The course also provides pointers about how to go about learning more about the UML, from the published work of the 'three amigos' as well as The the course instructor's is own in UML six material. parts:
presented
The Overview addresses the "mission statement" of the UML, how the language evolved from the work of the "three amigos," and principles of modeling.
Views, Phases, and Diagrams addresses the five architectural views around which the UML is centered, the four Unified Process phases to which the UML relate, and the nine diagrams at the heart of the UML.
that focus on the structural aspects of a system being modeled, as well as the non-standard but popular package diagram.
Behavioral (Dynamic) Diagrams addresses the five UML diagrams that focus on the behavioral aspects of a system being modeled.
processes and threads, and collaborations, which cross the conceptual boundaries that the diagrams establish.
Process-Specific Extensions addresses the class stereotypes that are required for robustness analysis (which is discussed extensively Use Case Driven Object Modeling with UML), and other Unified Process-related extensions associated with testing, use cases, and requirements.
"An Introduction to the Unified Modeling Language (UML)" is suitable for anyone who is interested in learning about the UML. No knowledge of object orientation is assumed; however, the instructor can customize the course as needed to make it more suitable for students who do have that knowledge. The flavor of the course that involves work with Rose assumes no experience working with visual modeling tools.
*UML is a trademark of Object Management Group, Inc. in the U.S. and other countries.
ICONIX Software Engineering, Inc./2800 28th Street, Suite 320/Santa Monica, CA 90405/Tel (310)458-0092/Fax (310)396-3454/email: marketing@iconixsw.com
Please note that this site is no longer being updated. Please click here to return to www.omg.org.
Businesses also seek techniques to manage the complexity of systems as they increase in scope and scale. In particular, they recognize the need to solve recurring architectural problems, such as physical distribution, concurrency, replication, security, load balancing and fault tolerance. Additionally, the development for the World Wide Web, while making some things simpler, has exacerbated these architectural problems. The Unified Modeling Language (UML) was designed to respond to these needs. The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems. The UML was developed by Rational Software and its partners. It is the successor to the modeling languages found in the Booch, OOSE/Jacobson, OMT and other methods. Many companies are incorporating the UML as a standard into their development processes and products, which cover disciplines such as business modeling, requirements management, analysis & design, programming and testing. The Importance Of Modeling
Developing a model for an industrial-strength software system prior to its construction or renovation is as essential as having a blueprint for a building.
Model elements fundamental modeling concepts and semantics. Notation visual rendering of model elements. Guidelines idioms of usage within the trade.
In the face of increasingly complex systems, visualization and modeling become essential. The UML is a well-defined and widely accepted response to that need. It is the visual modeling language of choice for building object-oriented and component-based systems. Goals of the UML
The primary goals in the design of the UML were as follows: 1) Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models. 2) Provide extensibility and specialization mechanisms to extend the core concepts. 3) Be independent of particular programming languages and development processes. 4) Provide a formal basis for understanding the modeling language. 5) Encourage the growth of the OO tools market. 6) Support higher-level development concepts such as collaborations,
frameworks, patterns and components. 7) Integrate best practices. Scope of the OMG-UML
The Unified Modeling Language (UML) is a language for specifying, constructing, visualizing, and documenting the artifacts of a software-intensive system. First and foremost, the Unified Modeling Language fuses the concepts of Booch, OMT and OOSE. The result is a single, common, and widely usable modeling language for users of these and other methods.
While the UML aims to simplify and standardize modeling it is not an all encompassing language. This gives it the flexibility to be used to design a variety of systems over a wide spectrum of industries. Some major areas outside of the scope of the UML include: Programming Languages The UML, a visual modeling language, is not intended to be a visual programming language, in the sense of having all the necessary visual and semantic support to replace programming languages. The UML is a language for visualizing, specifying, constructing, and documenting the artifacts of a softwareintensive system, but it does draw the line as you move toward code. The UML does have a tight mapping to a family of OO languages, so that you can get the best of both worlds Tools Standardizing a language is necessarily the foundation for tools and process. The primary goal of the OMG RFP was to enable tool interoperability. However, tools and their interoperability are very dependent on a solid semantic and notation definition, such as the UML provides. The UML defines a semantic metamodel, not a tool interface, storage, or run-time model, although these should be fairly close to one another. Process
Identifiable object-oriented modeling languages began to appear between mid1970 and the late 1980s as various methodologists experimented with different approaches to object-oriented analysis and design. The number of identified modeling languages increased from less than 10 to more than 50 during the period between 1989-1994. Many users of OO methods had trouble finding complete satisfaction in any one modeling language, fueling the "method wars." By the mid-1990s, new iterations of these methods began to appear and these methods began to incorporate each others techniques, and a few clearly prominent methods emerged. The development of UML began in late 1994 when Grady Booch and Jim Rumbaugh of Rational Software Corporation began their work on unifying the Booch and OMT (Object Modeling Technique) methods. In the Fall of 1995, Ivar Jacobson and his Objectory company joined Rational and this unification effort, merging in the OOSE (Object-Oriented Software Engineering) method. As the primary authors of the Booch, OMT, and OOSE methods, Grady Booch, Jim Rumbaugh, and Ivar Jacobson were motivated to create a unified modeling language for three reasons. First, these methods were already evolving toward each other independently. It made sense to continue that evolution together rather than apart, eliminating the potential for any unnecessary and gratuitous differences that would further confuse users. Second, by unifying the semantics and notation, they could bring some stability to the object-oriented marketplace, allowing projects to settle on one mature modeling language and letting tool builders focus on delivering more useful features. Third, they expected that their collaboration would yield improvements in all three earlier methods, helping them to capture lessons learned and to address problems that none of their methods previously handled well. As they began their unification, they established four goals to focus their efforts:
Enable the modeling of systems (and not just software) using objectoriented concepts.
Establish an explicit coupling to conceptual as well as executable artifacts. Address the issues of scale inherent in complex, mission-critical systems.
The efforts of Booch, Rumbaugh, and Jacobson resulted in the release of the UML 0.9 and 0.91 documents in June and October of 1996. During 1996, the UML authors invited and received feedback from the general community. They incorporated this feedback, but it was clear that additional focused attention was still required. While Rational was bringing UML together, efforts were being made on achieving the broader goal of an industry standard modeling language. In early 1995, Ivar Jacobson (then Chief Technology Officer of Objectory) and Richard Soley (then Chief Technology Officer of OMG) decided to push harder to achieve standardization in the methods marketplace. In June 1995, an OMG-hosted meeting of all major methodologists (or their representatives) resulted in the first worldwide agreement to seek methodology standards, under the aegis of the OMG process. During 1996, it became clear that several organizations saw UML as strategic to their business. A Request for Proposal (RFP) issued by the Object Management Group (OMG) provided the catalyst for these organizations to join forces around producing a joint RFP response. Rational established the UML Partners consortium with several organizations willing to dedicate resources to work toward a strong UML 1.0 definition. Those contributing most to the UML 1.0 definition included: Digital Equipment Corp., HP, i-Logix, IntelliCorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Rational Software, TI, and Unisys. This collaboration produced UML 1.0, a modeling language that was well defined, expressive, powerful, and generally applicable. This was submitted to the OMG in January 1997 as an initial RFP response. In January 1997 IBM, ObjecTime, Platinum Technology, Ptech, Taskon, Reich Technologies and Softeam also submitted separate RFP responses to the OMG. These companies joined the UML partners to contribute their ideas, and together the partners produced the revised UML 1.1 response. The focus of the UML 1.1 release was to improve the clarity of the UML 1.0 semantics and to incorporate contributions from the new partners. It was submitted to the OMG for their consideration and adopted in the fall of 1997. UML Present and Future
The UML is nonproprietary and open to all. It addresses the needs of user and scientific communities, as established by experience with the underlying methods on which it is based. Many methodologists, organizations, and tool vendors have committed to use it. Since the UML builds upon similar semantics and notation
The main purpose of the OMG MOF is to provide a set of CORBA interfaces that can be used to define and manipulate a set of interoperable metamodels. The MOF is a key building block in the construction of CORBA-based distributed development environments. The Meta Object Facility represents the integration of work currently underway by the OMG members in the areas of object repositories, object modeling tools, and meta data management in distributed object environments. The MOF specification uses the Unified Modeling Language (UML) notation. The facility interface and semantics incorporate some of the advanced meta data management concepts that have been implemented in the commercial object repositories, development tools, and object framework products developed by the co-submitters. The specification enhances meta data management and meta data
interoperability in distributed object environments in general and in distributed development environments in particular. While the initial work addresses meta data interoperability in object analysis and design domain, it is anticipated that the MOF will be rich enough to support additional domains. Examples include metamodels that cover the application development life cycle as well as
1997-2001
Object
Management
Group,
Inc.
Reserved. contact
webtech@omg.org
Introduction You're proficient in C++, Java or another OO language, you're designing class hierarchies, using inheritance, and manipulating complex pointer relationships to store the necessary links between your classes. You've probably drawn blobs (representing classes in some way) on whiteboards, with connecting lines to indicate the relationships between classes (inheritance or other). Perhaps you're feeling the need for a more formal notation to express your designs - using something that is language independent, and that enables you to consider the important aspects of design leaving the detail for later. Alternatively, perhaps you're a Project Manager, looking to formalise the OO design process a little to make sure you're getting the most from your move to C++/Java or a similar language. In this paper, I take a look at the UML (Unified Modelling Language) notation for Object Oriented Analysis and Design - the emerging standard designed by Booch, Rumbaugh and Jacobson, each of whom previously had their own notations published independently. The starting point is Object Modelling, a technique that enables you to focus on class structure, inheritance, etc., whilst avoiding language specifics such as pointer dereferencing. Object Modelling In UML
Figure 2 - A Simple Banking System Object Model Examining this Object Model in more detail, we can see the following information about our class structure:
Head-Office
class
(containing
"bankName"
and
"address"
fields,
otherwise known as attributes) "administers" an (unspecified) number of Branch classes; whilst a Branch is "administered-by" exactly one HeadOffice (the little black arrows indicates the direction in which the name given to a relationship should be read). On the diagram this relationship is represented by the line from the Head-Office class to the Brach class which is labelled "administers". The "1" at the Head-Office end of the line shows that exactly one Head-Office is associated with each Branch (as you would expect). The "*" at the Branch end of the line shows that a HeadOffice "administers" many Branches - again as you would expect.
Similarly, a Branch class (which contains "manager" and "address" attributes) "holds" many Account classes; whilst each Account class "isheld-by" exactly one Branch. We can also see that we have determined that an Account class has a "CalcCharges" method (also known as operations or member functions) defined. This method, when invoked, will look at the detail stored within the Account object, and apply the appropriate (undoubtedly extortionate) charges to the Account. The second method -"PrintStatement" - will take the details of the Account and print them out.
The inheritance "triangle" (labelled "account-type") shows us that our system knows about three types of Account: the basic account (in this case a virtual class called Account), and two specialised accounts - the CurrentAccount and SavingsAccount - which are derived from Account. The fact that the "CalcCharges" is shown in both sub-classes indicates that its implementation is re-defined for these classes (in C++ terms it is a virtual function). This is indicative of the fact that charges on a "SavingsAccount" are calculated in a completely different manner to charges on a "CurrentAccount".
Implicit in the decision to use inheritance and redefine methods in subclasses is the fact that the system, when implemented, will use the polymorphism features of the target language (C++, Java...) to enable all Accounts to be treated in a single coherent fashion, regardless of the particular charges mechanism involved. This is of course one of the reasons we use an object-oriented development language in the first place.
Each Account "belongs-to" exactly one owner - the Customer class on the diagram. Customers, on the other hand, may have many Accounts.
It's worth noting here that because an Account may "belong-to" a Customer, both CurrentAccounts and SavingsAccounts may also belong to a Customer. In other words, the "belongs-to" relationship between Accounts and Customers is inherited by the CurrentAccount and SavingsAccount classes. This fact simplifies the diagram considerably, removing the need for these relationships to be noted explicitly. This simplification will also be apparent in our final implementation of the system.
Finally, you can see that there are two relationships shown between the Account and the Transaction classes. This is because, in our banking system, each individual transaction (credit, debit, etc.) must have two associated accounts - the Account the money is "debit(ed)-from", and the
C++!):
OK, that's fine, you may say, but how do Object Models relate to C++ or Java, exactly? Lets take a look at a sub-set of our previous example
Figure 4 - Subset of Banking Model Our Object Model shows us that we need four classes: Transaction; Account; Current Account and Savings Account, and that our implementation must enable us to represent the fact that any particular Account has two sets of Transactions associated with it - which will be needed to implement the PrintStatement
class /*... public: virtual void }; class /* public: virtual /* }; class /* public: virtual /* }; use void the CalcCharges(); base SavingsAccount: any use void the SavingsAccount: any
{ */ CalcCharges(); PrintStatement();
public additional
{ */ */ */
{ */ */ */
Figure 5 - Mapping Object Model Inheritance To C++ Inheritance The Transaction class may be implemented as follows:
class long date_t public: /* Date(date_t); date_t Value(long); long }; Value(); Date(); /* /* Access and /* /* set get Update set functions */ */ get*/ */ */ value; date; /* /* Transaction stored date of in pence transaction { */ */
Figure 6 - Transaction Class In C++ This leaves us with the "debit-from" and "credit-to" relationships to be implemented. Here we have a number of choices: linked-lists; collection-classes; (dynamically bounded) arrays of pointers; etc. could all be used to represent these relationships.
Figure 7 - Simple Transaction List Handler Class For brevity, a linked-list class with a somewhat limited interface is used in this example although this may not the best choice. Amending our Account class definition to use this class gives us the following new definition:
class TransactionList TransactionList public: virtual void PrintStatement(); /* some new methods *); *); to /* /* /* /* manipulate Add Add Iterator:get Iterator:get the a a Transaction debit credit debit cred list Tx Tx Tx Tx */ */ */ */ */ void CalcCharges(); * * debitedFrom; creditedTo; /* Account /* debited credited to from Tx Tx list { list*/ */
(Transaction (Transaction
NextDebitTx(); NextCreditTx();
*/ { */ debitedFrom; TransactionList;
debitedFrom->Data(theTx);
Figure 8 - Account Class amended to use Transaction List Although this is a somewhat simplistic implementation - it demonstrates the point that the model shown in figure 4 is easily translated into C++. Of course, better implementations of the "debit-from" relationship are possible, but the fact
The linked list class contains pointers (references in Java) to Transaction objects. This is implicit in our Object Model, and is what the system's users would expect to see. To see why, consider the case when a new Transaction value is entered in error. The Transaction is linked to two accounts ("debit-from" and "credit-to"). If the Transaction object is shared, only one object need be modified to rectify the situation. Using two objects would either mean that either the system has to update two objects (equals more coding work), or that the user has to update two Transactions (equals greater potential for mistakes).
Although our Object Model "debit-from" relationship uses a linked list, there are many alternatives to this choice - including the use of a relational database to underpin the system. The point is, however, no matter what mechanism is used, we are actually trying to implement a "many-to-one" relationship between an Account and a Transaction. It is this relationship that exists in the banking problem domain - not a relationship involving linked lists or collection classes. Object Modelling enables us to spot the relationship required by the problem domain, and then choose the best way of implementing it.
So far, we have only implemented the "debit-from" relationship in one direction- from the Account class to the Transaction class. Our model does not (yet) specify in which direction the relationship will be traversed. If we need to traverse the relationship in both directions - getting from the Transaction to the related Account - our implementation will prove insufficient, and some form of double pointer schema may be needed. Much work would have been saved if we had known this fact before we had started writing the code.
Although
our
Object
Model
provided
starting
point
for
our
implementation, it was not complete, for example new methods have been added to the Account class.
Other factors may also influence our choice of implementation: do we need a direct form of access - for example using a Transaction number to go directly from the Account to the relevant Transaction? If we do, then a linked-list will prove an inefficient choice of implementation. Again, it would be very useful to know this type of information before we start trying to implement the relationship.
From these points we can see that we need to consider the wider requirements of our system before we can come up with the right implementation of our "debit-from" relationship (not to mention the many other classes and relationships that might be required). We can't produce a good design for a system unless we consider all the required functionality - in detail. Use Cases provide the mechanism for doing this. Use Cases In UML
Use Cases are used to document system requirements. They provide a useful technique which, in conjunction with Object Modelling, help us to clarify exactly what the system is supposed to do. Let's take a look at the requirements for our banking system
The required business functions - that is, the type of operation you'd expect to find on the menu of the application once it had been developed. In this case we have identified the following functions:
Bank managers need to periodically print out a report detailing all the customers who are overdrawn; these appear on the branch printer
Customers may use the system for balance enquiries Data processing staff use the system to do basic data entry (transactions on accounts)
Clerks may periodically request statements on behalf of Customers; There are four distinct types of user of the system: Bank Managers; Clerks; Data Processing Assistants; and Customers. Each type of user typically has their own particular set of requirements for a system: hence identify user types assists in identifying all the required system functions.
The Use Case diagramming technique allows us to make a first cut at defining the system requirements, and will help us in presenting these requirements back to the users of the system. It also partitions the system into single atomic business functions, which may be used as a basis for costing the system, or for planning a phased system delivery. In this case each successive phase would deliver further batches of Use Cases. Further information is still required, however, to tie down the detail of what each businese function does. Use Case Detail provides this information (explanatory notes are shown in bold):
Use Case Detail: Overdrawn Report Used Bank Manager Inputs: Details what information flows from the user to the system for this particular Use Case. theBranchSortCode - The Sort Code of the branch for which the report is required. theOverdraftPeriod - how long an Account has been overdrawn before it is forms By:
As work progresses on the Use Cases, the requirements of the system become clearer enabling the Object Model to be updated in parallel, helping us make sure our model (and the subsequent implementation in the chosen language) contains all the necessary classes and class inter-links. Whilst we're nearer to resolving some of the issues identified at the end of the discussion of implementing Object Models, a number are still outstanding: we still can't be sure in what direction the relationships must be implemented, whether we have identified all the methods; or what implementation of the links will best suit the use to which they'll be put. To sort out the remaining issues we'll need to look in more detail exactly how each Use Case will be implemented, using Sequence Diagrams. Sequence method system. call calls within Diagrams a
Sequence diagrams, performed on a per Use Case basis, examine the flow of
Figure 10 - Sequence Diagram for Overdrawn Report Performing a complete analysis requires that each individual Use Case must be examined, although in practise only selected Use Cases may be examined. The Sequence Diagram in figure 10 shows the Overdrawn Report Use Case defined earlier. The Overdrawn Report Use Case is thus implemented as follows:
The Head-Office object (there is only one of them) has methods which correspond to each Use Case - in this case an OverdrawnReport method (this is a convenience for brevity, normally there would be a single "InitialObject" which the system would know about, and which would provide the entry point into the run-time model for all code).
The Head-Office OverdrawnReport method locates the relevant Branch (as determined by the Use Case input: theBranchUseCase) and cascades the request to the Branch by calling its OverdrawnReport method.
The Branch object in turn passes the request on down to each Account it holds (using the Account's OverdrawnReport method)!
checks if it has been overdrawn for greater than the period specified by theOverdraftPeriod, which is passed as an argument to the Account.OverdrawnReport method (the detail of this is not shown - but involves summing up all the Transactions it holds, and checking the date on which it last became overdrawn).
if appropriate it then calls one of its own methods to print the report (detail not shown), and resets its lastReportDate attribute, again using its own method.
Figure 11 - Updated Banking System Object Model Reviewing the Object Model (see figure 11), we can see a number of additions as a result of completing this Sequence Diagram:
OverdrawnReport methods have been added to the Branch and Account classes.
A lastReportedDate attribute and associated methods have been added to the Account class, along with a printOverdrawnReport method.
The "administers" relationship between Head-Office and Branch has been qualified to indicate that "direct access" via the Branch's "sort-code" is required across the link (thus assisting in link design) - note the consequent change in the multiplicity of the relationship from many-to-one to one-to-one.
We have added directionality to many of the links (e.g. see the arrowhead on the Branch to Account link).
Of course, we've only looked at one Use Case, so its likely the model will change further as more sequence diagrams are developed. The Overall Process
From the above discussion we can see that Use Cases and Sequence Diagrams both add to integrity and completeness of our Object Model, and that a good Object Model provides a firm foundation for a good design, and hence a good implementation system. of the
Figure 12 - The Overall Process This approach separates the Problem and Technical Domain aspects of the project:
Problem Domain Analysis is concerned with capturing requirements and producing a first cut Object Model. Typically the Object Model will be incomplete, having only a subset of the class attributes and methods defined.
Problem Domain Design is concerned with finalising the detail of the problem domain parts of the Object Model, and results in an Object Model with a complete set of Problem Domain specific classes, attributes and methods.
User Interface Design is the first step that focuses on the Technical Domain aspects of the problem, and involves taking the Use Cases as
Technical Domain, High Level Design focuses on adding classes to meet the technical needs of the project, and is driven by the technical architecture of the project. Classes may be GUI related, DBMS (object or relational) related, distribution related (CORBA, DCOM, etc.), external systems related, or may provide an interface to internal system components such as printers. Previous Sequence Diagrams may be updated to confirm the validity of the technical design - in particular you would expect to see GUI classes appearing between the System Boundary and the Problem Domain classes.
Finally, Detailed Technical Design, looks at link implementations, detailed data typing of attributes, full specification of all methods (including parameters), etc. The end result is a complete design of the full system.
The separation between Problem Domain and the Technical Domain aspects of the system is useful in large projects, allowing the focus of those working on the project to be clearly divided, as summarised in figure 13:
Figure 14 - Evolutionary Phasing Of OO Project The object-based structure of the application lends itself well to this approach. Summary This paper has taken a look at the Use Case, Object Modelling, and Sequence Diagramming notations of UML, how Object Modelling maps to OO programming languages, and shown how these notations hang together to complement each other. A number of other UML notations are not covered in this article, however further information can be found on www.ratio.co.uk. I hope you can see that OOA/D offers a number of potential benefits in an OO based development environment. These include:
better modelling of the problem domain (equals happier users) better overall software design with a strong focus on class structure more flexible and maintainable systems through better class partitioning good documentation (the notations) - and a single central overall design notation (the Object Model)
assistance in tie-ing down requirements, and less work (in the long run)
Mark Collins-Cope is Technical Director at Ratio Group Ltd., a consultancy and training company specialising in OO related methods, languages and technologies. For further information on OOA/D using UML, Java, C++, Design Patterns or related topics please contact us Copyright This material remains the copyright of Ratio Group Ltd. Licence is granted for the use of this material for personal development purposes only.