You are on page 1of 171

Vng bc cng doanh nghip s

Phn tch v thit k HTTT theo UML


Chng 1: TNG QUAN V PHN TCH THIT K H THNG
1- Dn nhp:
1.1- Tnh trc quan:
1.2- M hnh tru tng:
1.3- M hnh ha trc quan:
2- M t chu trnh pht trin phn mm:
2.1- Software Development mt bi ton phc tp:
2.2- Chu Trnh Pht Trin Phn Mm (Software Development Life Cycle):
2.3- Cc giai on ca Chu Trnh Pht Trin Phn Mm:
3- Phng php hng chc nng v phng php hng i tng:
3.1- Phng php hng chc nng:
3.2- Phng php hng i tng:
4- u im ca m hnh hng i tng:
4.1- Tnh ti s dng (Reusable)
4.2- Cc giai on ca chu trnh pht trin phn mm vi m hnh
hng i tng:

Phn cu hi

Chng 2: NGN NG M HNH HO THNG NHT L G

1- Gii thiu UML:


1.1- M hnh ha h thng phn mm.
1.2- Trc khi UML ra i.
1.3- S ra i ca UML.

Vng bc cng doanh nghip s


1.4- UML (Unifield Modeling Language).
1.5- Phng php v cc ngn ng m hnh ho.
2- UML trong phn tch thit k h thng:
3- UML v cc giai on pht trin h thng:

Phn cu hi

Chng 3: KHI QUT V UML


1- UML v cc giai on ca chu trnh pht trin phn mm
1.1- Giai on nghin cu s b:
1.2- Giai on phn tch:
1.3- Giai on thit k:
1.4- Giai on xy dng:
1.5- Th nghim:
2- Cc thnh phn ca ngn ng UML
3- Hng nhn (View)
3.1- Hng nhn Use case (Use case View):
3.2- Hng nhn logic (Logical View):
3.3- Hng nhn thnh phn (Component View):
3.4- Hng nhn song song (Concurrency View):
3.5- Hng nhn trin khai (Deployment View):
4- Biu (diagram)
4.1- Biu Use case (Use Case Diagram):
4.2- Biu lp (Class Diagram):
4.3- Biu i tng (Object Diagram):
4.4- Biu trng thi (State Diagram):

Vng bc cng doanh nghip s


4.5- Biu trnh t (Sequence Diagram):
4.6- Biu cng tc (Collaboration Diagram):
4.7- Biu hot ng (Activity Diagram):
4.8- Biu thnh phn (Component Diagram):
4.9- Biu trin khai (Deployment Diagram):
5- Phn t m hnh (model element)
6- C ch chung (General Mechanism)
6.1- Trang tr (Adornment)
6.2- Ghi ch (Note)
6.3- c t (Specification)
7- M rng UML
7.1- Khun mu (Stereotype)
7.2- Gi tr nh km (Tagged Value)
7.3- Hn ch (Constraint)
8- M hnh ha vi UML
9- Cng c (Tool)
10- Tm tt v UML

Phn Cu hi

Chng 4: M hnh ha USE CASE


1- Gii thiu Use Case
2- Mt s v d Use Case
3- S cn thit phi c Use Case
4- M hnh ha Use Case
5- Biu Use Case
5.1- H thng

Vng bc cng doanh nghip s


5.2- Tc nhn
5.3- Tm tc nhn
5.4- Biu din tc nhn trong ngn ng UML
5.5- Use Case
5.6- Tm Use Case
5.7- V d tm Use Case:
6- Cc bin th (Variations) trong mt Use Case
7- Quan h gia cc Use Case
7.1- Quan h m rng
7.2- Quan h s dng
7.3- Quan h chung nhm
8- Miu t Use Case
9- Th Use Case
10- Thc hin cc Use Case
11- Tm tt v Use Case

Phn cu hi

Chng 6: M HNH NG
1- S cn thit c m hnh ng (Dynamic model)
2- Cc thnh phn ca m hnh ng
3- u im ca m hnh ng
4- S kin v thng ip (Event & Message)
4.1- S kin (Event)
4.2- Thng ip (Message)
5- Biu tun t (Sequence diagram)
6- Biu cng tc (Collaboration Diagram)

Vng bc cng doanh nghip s


7- Biu trng thi (State Diagram)
7.1- Trng thi v s bin i trng thi (State transition)
7.2- Biu trng thi
7.3- Nhn bit trng thi v s kin
7.4- Mt s li mch bo cho vic to dng biu trng thi
8- Biu hot ng (Activity Diagram)
9- Vng i i tng (Object lifecycle)
9.1- Vng i sinh ra v cht i
9.2- Vng i lp
10- Xem xt li m hnh ng
10.1- Thm vn biu trng thi
10.2- Phi hp s kin
10.3- Bao gi th s dng biu no
10.4- Lp con v biu trng thi
11- Phi hp m hnh i tng v m hnh ng
12- Tm tt v m hnh ng

Phn cu hi

Vng bc cng doanh nghip s

1- DN NHP
1.1- Tnh trc quan:
Chng ta c th thy rng: "Mt s tp hp d liu phc tp nht nh khi
c trnh by bng th s truyn ti n ngi c nhiu thng tin hn
so vi cc d liu th". Vi phn mm cng vy, khi ngnh Cng nghip
ca chng ta ngy cng pht trin, cc h thng s tr nn phc tp hn.
Kh nng nm bt v kim sot s phc tp ca chng ta i km vi
kh nng trnh by h thng mt cch ton din - mt s trnh by vt ra
ngoi gii hn ca nhng dng lnh th. S thnh cng trn th trng ca
nhng ngn ng nh Visual Basic v phn giao din trc quan ca C++,
Java cho thy s trnh by trc quan mang tnh ct yu i vi qu
trnh pht trin cc h thng phc tp.

1.2- M hnh tru tng:


Trc y, c mt thi gian di, ngnh cng nghip chng ta phi ni
ti mt "Cuc khng hong phn mm". Cc cuc tranh lun u da trn
thc t l chng nhng nhiu n phn mm khng th sn sinh ra
nhng h thng tho mn i hi v nhu cu ca khch hng, m cn
vt qu ngn sch v thi hn. Cc cng ngh mi nh lp trnh hng
i tng, lp trnh trc quan cng nh cc mi trng pht trin tin tin
c gip chng ta nng cao nng sut lao ng, nhng trong nhiu trng
hp, chng ch hng ti tng thp nht ca vic pht trin phn mm:
phn vit lnh (coding). Mt trong nhng vn chnh ca ngnh pht
trin phn mm thi nay l c nhiu n bt tay vo lp trnh qu sm
v tp trung qu nhiu vo vic vit code. L do mt phn l do ban qun
tr thiu hiu bit v quy trnh pht trin phn mm v h ny lo u khi
thy i qun lp trnh ca h khng vit code. V bn thn cc lp trnh
vin cng cm thy an tm hn khi h ngi vit code - vn l tc v m
h quen thuc! hn l khi xy dng cc m hnh tru tng cho h
thng m h phi to nn.

1.3- M hnh ha trc quan:


M hnh ho trc quan l mt phng thc t duy v vn s dng cc
m hnh c t chc xoay quanh cc khi nim i thc. M hnh gip
chng ta hiu vn , giao tip vi mi ngi c lin quan n d n
(khch hng, chuyn gia lnh vc thuc n, nh phn tch, nh thit

Vng bc cng doanh nghip s


k, ). M hnh rt hu dng trong vic m hnh ho doanh nghip, son
tho ti liu, thit k chng trnh cng nh ngn hng d liu. M hnh
gip hiu cc i hi ca h thng tt hn, to cc thit k r rng hn v
xy dng nn cc h thng d bo tr hn.
M hnh l kt qu ca s tru tng ha nhm miu t cc thnh phn
ct yu ca mt vn hay mt cu trc phc tp qua vic lc bt cc chi
tit khng quan trng v lm cho vn tr thnh d hiu hn. Tru
tng ha l mt nng lc cn bn ca con ngi, cho php chng ta gii
quyt cc vn phc tp. Cc k s, ngh s v th th cng xy
dng m hnh t hng ngn nm nay th nghim thit k trc khi
thc hin. Pht trin phn mm cng khng l ngoi l. xy dng cc
h thng phc tp, nh pht trin phi tru tng ha nhiu hng nhn
khc nhau ca h thng, s dng k hiu chnh xc xy dng m hnh,
kim tra xem m hnh c tha mn cc i hi ca h thng, v dn dn
b sung thm chi tit chuyn cc m hnh thnh thc hin.
Chng ta xy dng m hnh cho cc h thng phc tp bi chng ta khng
th hiu thu o nhng h thng nh th trong trng thi ton vn ca
chng. Kh nng thu hiu v nm bt tnh phc tp ca con ngi l c
hn. iu ny ta c th thy r trong v d ca ngnh xy dng. Nu bn
mun to mt tp lu gc vn, bn c th bt tay vo xy ngay. Nu
bn xy mt ngi nh, c l bn s cn ti bn v, nhng nu bn mun
xy mt to nh chc tri th chc chn bn khng th khng cn bn v.
Th gii phn mm ca chng ta cng th. Ch tp trung vo cc dng
code hay thm ch c phn tch Forms trong Visual Basic chng cung cp
mt ci nhn ton cc v vic pht trin n. Xy dng m hnh cho
php nh thit k tp trung vo bc tranh ln v s tng tc gia cc
thnh phn trong n, trnh b sa ly vo nhng chi tit ring bit ca
tng thnh phn.
Mt mi trng kinh doanh mang tnh cnh tranh gay gt v lun lun
thay i dn n tnh phc tp ngy cng tng cao, v tnh phc tp ny
t ra nhng thch thc c trng cho cc nh pht trin h thng. M
hnh gip chng ta t chc, trnh by trc quan, thu hiu v to nn cc
h thng phc tp. Chng gip chng ta p ng cc thch thc ca vic
pht trin phn mm, hm nay cng nh ngy mai.

Vng bc cng doanh nghip s

2- M T CHU TRNH PHT TRIN PHN MM:


2.1- Software Development mt bi ton phc tp:
Kinh nghim ca nhiu nh thit k v pht trin cho thy pht trin phn
mm l mt bi ton phc tp. Xin nu mt s cc l do thng c k
n:
Nhng ngi pht trin phn mm rt kh hiu cho ng nhng g
ngi dng cn
Yu cu ca ngi dng thng thay i trong thi gian pht trin.
Yu cu thng c miu t bng vn bn, di dng, kh hiu,
nhiu khi thm ch mu thun.
i qun pht trin phn mm, vn l ngi "ngoi cuc", rt kh
nhn thc thu o cc mi quan h tim n v phc tp cn c
th hin chnh xc trong cc ng dng ln.
Kh nng nm bt cc d liu phc tp ca con ngi (ti cng
mt thi im) l c hn.
Kh nh lng chnh xc hiu sut ca thnh phm v tha mn
chnh xc s mong ch t pha ngi dng.
Chn la phn cng v phn mm thch hp cho gii php l mt
trong nhng thch thc ln i vi Designer.
Phn mm ngoi ra cn c kh nng thch ng v m rng. Phn mm
c thit k tt l phn mm ng vng trc nhng bin i trong mi
trng, d t pha cng ng ngi dng hay t pha cng ngh. V d
phn mm c pht trin cho mt nh bng cn c kh nng ti s
dng cho mt nh bng khc vi rt t sa i hoc hon ton khng cn
sa i. Phn mm tho mn cc yu cu c coi l phn mm c kh
nng thch ng.
Mt phn mm c kh nng m rng l phn mm c thit k sao cho
d pht trin theo yu cu ca ngi dng m khng cn sa cha nhiu.
Chnh v vy, mt s cc khim khuyt thng gp trong pht trin phn
mm l:
Hiu khng ng nhng g ngi dng cn
Khng th thch ng cho ph hp vi nhng thay i v yu cu
i vi h thng

Vng bc cng doanh nghip s


Cc Module khng khp vi nhau
Phn mm kh bo tr v nng cp, m rng
Pht hin tr cc l hng ca d n
Cht lng phn mm km
Hiu nng ca phn mm thp
Cc thnh vin trong nhm khng bit c ai thay i ci g,
khi no, u, ti sao phi thay i.

2.2- Chu Trnh Pht Trin Phn Mm (Software Development Life


Cycle):
V pht trin phn mm l mt bi ton kh, nn c l trc ht ta cn
im qua mt s cc cng vic cn bn ca qu trnh ny. Thng ngi
ta hay tp hp chng theo tin trnh thi gian mt cch tng i, xoay
quanh chu trnh ca mt phn mm, dn ti kt qa khi nim Chu Trnh
Pht Trin Phn Mm (Software Development Life Cycle - SDLC) nh sau:
Chu Trnh Pht Trin Phn Mm l mt chui cc hot ng ca nh phn
tch (Analyst), nh thit k (Designer), ngi pht trin (Developer) v
ngi dng (User) pht trin v thc hin mt h thng thng tin.
Nhng hot ng ny c thc hin trong nhiu giai an khc nhau.
Nh phn tch (Analyst): l ngi nghin cu yu cu ca
khch hng/ngi dng nh ngha mt phm vi bi ton, nhn
dng nhu cu ca mt t chc, xc nh xem nhn lc, phng
php v cng ngh my tnh c th lm sao ci thin mt cch
tt nht cng tc ca t chc ny.
Nh thit k (Designer): thit k h thng theo hng cu trc
ca database, screens, forms v reports quyt nh cc yu cu
v phn cng v phn mm cho h thng cn c pht trin.
Chuyn gia lnh vc (Domain Experts): l nhng ngi hiu
thc cht vn cng tt c nhng s phc tp ca h thng cn
tin hc ho. H khng nht thit phi l nh lp trnh, nhng h c
th gip nh lp trnh hiu yu cu t ra i vi h thng cn pht
trin. Qu trnh pht trin phn mm s c rt nhiu thun li nu
i ng lm phn mm c c s tr gip ca h.

Vng bc cng doanh nghip s


Lp trnh vin (Programmer): l nhng ngi da trn cc
phn tch v thit k vit chng trnh (coding) cho h thng
bng ngn ng lp trnh c thng nht.
Ngi dng (User): l i tng phc v ca h thng cn c
pht trin.
cho r hn, xin ly v d v mt vn n gin sau:
Ngi bnh thng chng ta khi nhn mt chic xe t thng s c mt
bc tranh t bn ngoi nh sau:
Vn

Hnh 1.1: Nhn vn t ca ngi bnh thng


Chuyn gia lnh vc s gip nh phn tch "trnh by li" vn nh sau:

Hnh 1.2: Nhn vn t ca chuyn gia phn tch


Chnh v s tr gip ca chuyn gia lnh vc c th ng vai tr rt quan
trng nn trong nhng giai on u ca qu trnh pht trin phn mm,
kt qu phn tch nn c th hin sao cho d hiu i vi cc chuyn
gia lnh vc. y cng l mt trong rt nhiu l do khin cho phng php
hng i tng c nhiu ngi hng ng.

Vng bc cng doanh nghip s

2.3- Cc giai on ca Chu Trnh Pht Trin Phn Mm:


Chu trnh ca mt phn mm c th c chia thnh cc giai on nh
sau:
Nghin cu s b (Preliminary Investigation hay cn gi l
Feasibility Study)
Phn tch yu cu (Analysis)
Thit k h thng (Design of the System)
Xy dng phn mm (Software Construction)
Th nghim h thng (System Testing)
Thc hin, trin khai (System Implementation)
Bo tr, nng cp (System Maintenance)
a - Nghin cu s b:
Cu hi quan trng nht khi pht trin mt h thng hon ton
khng phi cu hi mang tnh phng php lun. M cng chng
phi cu hi v k thut. N l mt cu hi dng nh c v n
gin, nhng tht ra c bit kh tr li: y c ng l mt h
thng thc hin khng? ng bun l chnh cu hi ny trong
thc t thng chng h c t ra v li cng khng c tr li.
Mc d vic lm ln v phng php hay quyt nh sai lm v k
thut cng c th dn ti tht bi, nhng thng th d n c th
c cu vn nu c y ti nguyn cng s c gng qun mnh
ca cc nhn vin ti gii. Nhng s chng mt ai v mt iu g
cu vn cho mt h thng phn mm hon ton chng c cn ti
hoc c gng t ng ha mt quy trnh lm lc.
Trc khi bt tay vo mt d n, bn phi c mt tng cho n.
tng ny i song song vi vic nm bt cc yu cu v xut hin
trong giai on khi u. N hon tt mt pht biu: "H thng m
chng ta mong mun s lm c nhng vic nh sau....". Trong
sut giai on ny, chng ta to nn mt bc tranh v tng ,
rt nhiu gi thuyt s c cng nhn hay loi b. Cc hot ng
trong thi gian ny thng bao gm thu thp cc tng, nhn bit
ri ro, nhn bit cc giao din bn ngoi, nhn bit cc cc chc
nng chnh m h thng cn cung cp, v c th to mt vi
nguyn mu dng minh chng cc khi nim ca h thng.
tng c th n t nhiu ngun khc nhau: khch hng, chuyn

Vng bc cng doanh nghip s


gia lnh vc, cc nh pht trin khc, chuyn gia v k ngh, cc
bn nghin cu tnh kh thi cng nh vic xem xt cc h thng
khc ang tn ti. Mt kha cnh cn nhc ti l code vit trong thi
k ny thng s b "b i, bi chng c vit nhm mc ch
thm tra hay tr gip cc gi thuyt khc nhau, ch cha phi th
code c vit theo kt qu phn tch v thit k thu o.
Trong giai an nghin cu s b, nhm pht trin h thng cn
xem xt cc yu cu ca doanh nghip (cn dng h thng), nhng
ngun ti nguyn c th s dng, cng ngh cng nh cng ng
ngi dng cng cc tng ca h i vi h thng mi. C th
thc hin tho lun, nghin cu, xem xt kha cnh thng mi,
phn tch kh nng li-l, phn tch cc trng hp s dng v to
cc nguyn mu xy dng nn mt khi nim cho h thng ch
cng vi cc mc ch, quyn u tin v phm vi ca n.
Thng trong giai on ny ngi ta cng tin hnh to mt phin
bn th ca lch trnh v k hoch s dng ti nguyn.
Mt giai on nghin cu s b thch ng s lp nn tp hp cc
yu cu (d mc khi qut cao) i vi mt h thng kh thi
v c mong mun, k c v phng din k thut ln x hi. Mt
giai on nghin cu s b khng c thc hin tho ng s dn
ti cc h thng khng c mong mun, t tin, bt kh thi v
c nh ngha lm lc nhng h thng thng chng c hon
tt hay s dng.
Kt qu ca giai on nghin cu s b l Bo Co Kt Qu Nghin
Cu Tnh Kh Thi. Khi h thng tng lai c chp nhn da trn
bn bo co ny cng l lc giai on Phn tch bt u.
b- Phn tch yu cu
Sau khi xem xt v tnh kh thi ca h thng cng nh to lp
mt bc tranh s b ca d n, chng ta bc sang giai on
thng c coi l quan trng nht trong cc cng vic lp trnh:
hiu h thng cn xy dng. Ngi thc hin cng vic ny l nh
phn tch.
Qu trnh phn tch nhn chung l h qu ca vic tr li cu hi "H
thng cn phi lm g?". Qu trnh phn tch bao gm vic nghin
cu chi tit h thng doanh nghip hin thi, tm cho ra nguyn l
hot ng ca n v nhng v tr c th c nng cao, ci thin.
Bn cnh l vic nghin cu xem xt cc chc nng m h thng

Vng bc cng doanh nghip s


cn cung cp v cc mi quan h ca chng, bn trong cng nh
vi pha ngoi h thng. Trong ton b giai on ny, nh phn tch
v ngi dng cn cng tc mt thit vi nhau xc nh cc yu
cu i vi h thng, tc l cc tnh nng mi cn phi c a
vo h thng.
Nhng mc tiu c th ca giai on phn tch l:
Xc nh h thng cn phi lm g.
Nghin cu thu o tt c cc chc nng cn cung cp v nhng
yu t lin quan
Xy dng mt m hnh nu bt bn cht vn t mt hng
nhn c thc (trong i sng thc).
Trao nh ngha vn cho chuyn gia lnh vc nhn s nh
gi, gp .
Kt qu ca giai on phn tch l bn c T Yu Cu
(Requirements Specifications).
c - Thit k h thng
Sau giai on phn tch, khi cc yu cu c th i vi h thng c
xc nh, giai on tip theo l thit k cho cc yu cu mi. Cng tc
thit k xoay quanh cu hi chnh: H thng lm cch no tha mn
cc yu cu c nu trong c T Yu Cu?
Mt s cc cng vic thng c thc hin trong giai on thit k:
Nhn bit form nhp liu ty theo cc thnh phn d liu cn
nhp.
Nhn bit reports v nhng output m h thng mi phi sn sinh
Thit k forms (v trn giy hay my tnh, s dng cng c thit
k)
Nhn bit cc thnh phn d liu v bng to database
c tnh cc th tc gii thch qu trnh x l t input n output.
Kt qu giai on thit k l c T Thit K (Design Specifications). Bn
c T Thit K Chi Tit s c chuyn sang cho cc lp trnh vin
thc hin giai on xy dng phn mm.
d - Xy dng phn mm

Vng bc cng doanh nghip s


y l giai on vit lnh (code) thc s, to h thng. Tng ngi vit
code thc hin nhng yu cu c nh thit k nh sn. Cng chnh
ngi vit code chu trch nhim vit ti liu lin quan n chng trnh,
gii thch th tc (procedure) m anh ta to nn c vit nh th no v
l do cho vic ny.
m bo chng trnh c vit nn phi tho mn mi yu cu c ghi
trc trong bn c T Thit K Chi Tit, ngi vit code cng ng thi
phi tin hnh th nghim phn chng trnh ca mnh. Phn th nghim
trong giai on ny c th c chia thnh hai bc chnh:
Th nghim n v:
Ngi vit code chy th cc phn chng trnh ca mnh vi d liu gi
(test/dummy data). Vic ny c thc hin theo mt k hoch th, cng
do chnh ngi vit code son ra. Mc ch chnh trong giai on th ny
l xem chng trnh c cho ra nhng kt qu mong i. Giai on th
nghim n v nhiu khi c gi l "Th hp trng" (White Box Testing)
Th nghim n v c lp:
Cng vic ny do mt thnh vin khc trong nhm m trch. Cn chn
ngi khng c lin quan trc tip n vic vit code ca n v chng
trnh cn th nghim m bo tnh c lp. Cng vic th t ny
cng c thc hin da trn k hoch th do ngi vit code son nn.
e- Th nghim h thng
Sau khi cc th tc c th nghim ring, cn phi th nghim ton
b h thng. Mi th tc c tch hp v chy th, kim tra xem mi chi
tit ghi trong c T Yu Cu v nhng mong ch ca ngi dng c c
tho mn. D liu th cn c chn lc c bit, kt qu cn c phn
tch pht hin mi lch lc so vi mong ch.
f - Thc hin, trin khai
Trong giai on ny, h thng va pht trin s c trin khai sao cho
pha ngi dng. Trc khi ngi dng tht s bt tay vo s dng h
thng, nhm cc nh pht trin cn to cc file d liu cn thit cng nh
hun luyn cho ngi dng, m bo h thng c s dng hu hiu
nht.
g - Bo tr, nng cp
Ty theo cc bin i trong mi trng s dng, h thng c th tr nn
li thi hay cn phi c sa i nng cp s dng c hiu qu. Hot

Vng bc cng doanh nghip s


ng bo tr h thng c th rt khc bit ty theo mc sa i v
nng cp cn thit.

S tng qut cc giai on ca Chu Trnh Pht Trin Phn Mm:

Hnh 1.3: S tng qut cc giai on ca Chu Trnh Pht Trin Phn Mm

3- Phng php hng chc nng v phng php hng i


tng:
3.1- Phng php hng chc nng:
y l li tip cn truyn thng ca ngnh Cng ngh phn mm. Theo li
tip cn ny, chng ta quan tm ch yu ti nhng thng tin m h thng
s gi gn. Chng ta hi ngi dng xem h s cn nhng thng tin no,
ri chng ta thit k ngn hng d liu cha nhng thng tin , cung
cp Forms nhp thng tin v in bo co trnh by cc thng tin. Ni
mt cch khc, chng ta tp trung vo thng tin v khng my n
nhng g c th xy ra vi nhng h thng v cch hot ng (ng x)
ca h thng l ra sao. y l li tim cn xoay quanh d liu v c
p dng to nn hng ngn h thng trong sut nhiu nm tri.

Vng bc cng doanh nghip s


Li tip cn xoay quanh d liu l phng php tt cho vic thit k ngn
hng d liu v nm bt thng tin, nhng nu p dng cho vic thit k
ng dng li c th khin pht sinh nhiu kh khn. Mt trong nhng
thch thc ln l yu cu i vi cc h thng thng xuyn thay i. Mt
h thng xoay quanh d liu c th d dng x l vic thay i ngn hng
d liu, nhng li kh thc thi nhng thay i trong nguyn tc nghip v
hay cch hot ng ca h thng.
Phng php hng i tng c pht trin tr li cho vn .
Vi li tip cn hng i tng, chng ta tp trung vo c hai mt ca
vn : thng tin v cch hot ng.

3.2- Phng php hng i tng:


Hng i tng l thut ng thng dng hin thi ca ngnh cng
nghip phn mm. Cc cng ty ang nhanh chng tm cch p dng v
tch hp cng ngh mi ny vo cc ng dng ca h. Tht s l a phn
cc ng dng hin thi u mang tnh hng i tng. Nhng hng i
tng c ngha l g?
Li tip cn hng i tng l mt li t duy v vn theo li nh x
cc thnh phn trong bi ton vo cc i tng ngoi i thc. Vi li
tip cn ny, chng ta chia ng dng thnh cc thnh phn nh, gi l cc
i tng, chng tng i c lp vi nhau. Sau ta c th xy dng
ng dng bng cch chp cc i tng li vi nhau. Hy ngh n tr
chi xy lu i bng cc mu g. Bc u tin l to hay mua mt vi
loi mu g cn bn, t to nn cc khi xy dng cn bn ca mnh.
Mt khi c cc khi xy dng , bn c th chp rp chng li vi
nhau to lu i. Tng t nh vy mt khi xy dng mt s i
tng cn bn trong th gii my tnh, bn c th chp chng li vi nhau
to ng dng ca mnh.
Xin ly mt v d n gin: vn rt tin mt ti nh bng. Cc mu
g thnh phn y s l nh x ca cc i tng ngoi i thc nh
ti khon, nhn vin, khch hng, V ng dng s c s c nhn
din cng nh gii p xoay quanh cc i tng .

4- U IM CA M HNH HNG I TNG:


4.1- Tnh ti s dng (Reusable)
Phng php phn tch v thit k hng i tng thc hin theo cc thut ng
v khi nim ca phm vi lnh vc ng dng (tc l ca doanh nghip hay n v

Vng bc cng doanh nghip s


m h thng tng lai cn phc v), nn n to s tip cn tng ng gia h
thng v vn thc ngoi i. Trong v d bn xe t, mi giai on phn tch
thit k v thc hin u xoay quanh cc khi nim nh khch hng, nhn vin
bn hng, xe t, V qu trnh pht trin phn mm ng thi l qu trnh
cng tc ca khch hng/ngi dng, nh phn tch, nh thit k, nh pht trin,
chuyn gia lnh vc, chuyn gia k thut,... nn li tip cn ny khin cho vic
giao tip gia h vi nhau c d dng hn.
Mt trong nhng u im quan trng bc nht ca phng php phn tch v
thit k hng i tng l tnh ti s dng: bn c th to cc thnh phn (i
tng) mt ln v dng chng nhiu ln sau . Ging nh vic bn c th ti s
dng cc khi xy dng (hay bn sao ca n ) trong mt to lu i, mt ngi
nh , mt con tu v tr, bn cng c th ti s dng cc thnh phn (i
tng) cn bn trong cc thit k hng i tng cng nh code ca mt h
thng k ton, h thng kim k, hoc mt h thng t hng.
V cc i tng c th nghim k cng trong ln dng trc , nn kh
nng ti s dng i tng c tc dng gim thiu li v cc kh khn trong vic
bo tr, gip tng tc thit k v pht trin phn mm.
Phng php hng i tng gip chng ta x l cc vn phc tp trong
pht trin phn mm v to ra cc th h phn mm c kh nng thch ng v
bn chc.
4.2- Cc giai on ca chu trnh pht trin phn mm vi m
hnh hng i tng:
Phn tch hng i tng (Object Oriented Analysis
- OOA):
L giai an pht trin mt m hnh chnh xc v sc tch ca vn , c thnh
phn l cc i tng v khi nim i thc, d hiu i vi ngi s dng.
Trong giai on OOA, vn c trnh by bng cc thut ng tng ng vi
cc i tng c thc. Thm vo , h thng cn phi c nh ngha sao cho
ngi khng chuyn Tin hc c th d dng hiu c.
Da trn mt vn c sn, nh phn tch cn nh x cc i tng hay thc
th c thc nh khch hng, t, ngi bn hng, vo thit k to ra c
bn thit k gn cn vi tnh hung thc. M hnh thit k s cha cc thc th
trong mt vn c thc v gi nguyn cc mu hnh v cu trc, quan h cng
nh hnh vi ca chng. Ni mt cch khc, s dng phng php hng i
tng chng ta c th m hnh ha cc thc th thuc mt vn c thc m
vn gi c cu trc, quan h cng nh hnh vi ca chng.

Vng bc cng doanh nghip s


i vi v d mt phng bn t, giai on OOA s nhn bit c cc thc th
nh:
Khch hng
Ngi bn hng
Phiu t hng
Phiu (ho n) thanh ton
Xe t
Tng tc v quan h gia cc i tng trn l:
Ngi bn hng dn khch hng tham quan phng trng by xe.
Khch hng chn mt chic xe
Khch hng vit phiu t xe
Khch hng tr tin xe
Xe t c giao n cho khch hng
i vi v d nh bng l, giai on OOA s nhn bit c cc thc th nh:
Loi ti khon: ATM (rt tin t ng), Savings (tit kim), Current
(bnh thng), Fixed (u t),...
Khch hng
Nhn vin
Phng my tnh.
Tng tc v quan h gia cc i tng trn:
Mt khch hng mi m mt ti khon tit kim
Chuyn tin t ti khon tit kim sang ti khon u t
Chuyn tin t ti khon tit kim sang ti khon ATM
Xin ch l y, nh ni, ta ch n c hai kha cnh: thng tin v cch
hot ng ca h thng (tc l nhng g c th xy ra vi nhng thng tin ).
Li phn tch bng kiu nh x "i thc vo my tnh nh th tht s l u
im ln ca phng php hng i tng.
Thit k hng i tng (Object Oriented Design OOD):

Vng bc cng doanh nghip s


L giai on t chc chng trnh thnh cc tp hp i tng cng tc, mi i
tng trong l thc th ca mt lp. Cc lp l thnh vin ca mt cy cu
trc vi mi quan h tha k.
Mc ch ca giai on OOD l to thit k da trn kt qu ca giai on OOA,
da trn nhng quy nh phi chc nng, nhng yu cu v mi trng, nhng
yu cu v kh nng thc thi,.... OOD tp trung vo vic ci thin kt qu ca
OOA, ti u ha gii php c cung cp trong khi vn m bo tho mn tt
c cc yu cu c xc lp.
Trong giai on OOD, nh thit k nh ngha cc chc nng, th tc
(operations), thuc tnh (attributes) cng nh mi quan h ca mt hay nhiu
lp (class) v quyt nh chng cn phi c iu chnh sao cho ph hp vi
mi trng pht trin. y cng l giai on thit k ngn hng d liu v p
dng cc k thut tiu chun ha.
V cui giai on OOD, nh thit k a ra mt lot cc biu (diagram) khc
nhau. Cc biu ny c th c chia thnh hai nhm chnh l Tnh v ng.
Cc biu tnh biu th cc lp v i tng, trong khi biu ng biu th
tng tc gia cc lp v phng thc hot ng chnh xc ca chng. Cc lp
sau ny c th c nhm thnh cc gi (Packages) tc l cc n v thnh
phn nh hn ca ng dng.
Lp

trnh

hng

tng

(Object

Oriented

Programming - OOP):
Giai on xy dng phn mm c th c thc hin s dng k thut lp trnh
hng i tng. l phng thc thc hin thit k hng i tng qua vic
s dng mt ngn ng lp trnh c h tr cc tnh nng hng i tng. Mt vi
ngn ng hng i tng thng c nhc ti l C++ v Java. Kt qu chung
cuc ca giai on ny l mt lot cc code chy c, n ch c a vo s
dng sau khi tri qua nhiu vng quay ca nhiu bc th nghim khc nhau.

PHN CU HI
Hi: Mt s tp hp d liu phc tp nht nh khi c trnh by bng th
s truyn ti n ngi c nhiu thng tin hn so vi cc d liu th?
p: ng
Hi: M hnh gip chng ta t chc, trnh by trc quan, thu hiu v to nn
cc h thng phc tp.
p: ng

Vng bc cng doanh nghip s


Hi: u im ln nht ca m hnh hng i tng l tnh ti s dng
(Reusable)?
p: ng.

Vng bc cng doanh nghip s

1- GII THIU UML:


1.1- M hnh ha h thng phn mm:
Nh trnh by phn trc, mc tiu ca giai on phn tch h thng l sn
xut ra mt m hnh tng th ca h thng cn xy dng. M hnh ny cn phi
c trnh by theo hng nhn (View) ca khch hng hay ngi s dng v
lm sao h hiu c. M hnh ny cng c th c s dng xc nh cc
yu cu ca ngi dng i vi h thng v qua gip chng ta nh gi tnh
kh thi ca d n.
Tm quan trng ca m hnh c lnh hi mt cch thu o trong hu nh
tt c cc ngnh khoa hc k thut t nhiu th k nay. Bt k u, khi mun
xy dng mt vt th no , u tin ngi ta to nn cc bn v quyt
nh c ngoi hnh ln phng thc hot ng ca n. Chng hn cc bn v k
thut thng gp l mt dng m hnh quen thuc. M hnh nhn chung l mt
cch m t ca mt vt th no . Vt c th tn ti trong mt s giai on
nht nh, d l giai on thit k hay giai on xy dng hoc ch l mt k
hoch. Nh thit k cn phi to ra cc m hnh m t tt c cc kha cnh khc
nhau ca sn phm. Ngoi ra, mt m hnh c th c chia thnh nhiu hng
nhn, mi hng nhn trong s chng s m t mt kha cnh ring bit ca sn
phm hay h thng cn c xy dng. Mt m hnh cng c th c xy dng
trong nhiu giai on v mi giai on, m hnh s c b sung thm mt s
chi tit nht nh.
M hnh thng c m t trong ngn ng trc quan, iu c ngha l a
phn cc thng tin c th hin bng cc k hiu ha v cc kt ni gia
chng, ch khi cn thit mt s thng tin mi c biu din dng vn bn;
Theo ng nh cu ngn ng "Mt bc tranh ni nhiu hn c ngn t". To m
hnh cho cc h thng phn mm trc khi thc s xy dng nn chng, tr
thnh mt chun mc trong vic pht trin phn mm v c chp nhn trong
cng ng lm phn mm ging nh trong bt k mt ngnh khoa hc k thut
no khc. Vic biu din m hnh phi tho mn cc yu t sau:
Chnh xc (accurate): M t ng h thng cn xy dng.
ng nht (consistent): Cc view khc nhau khng c mu
thun vi nhau.
C th hiu c (understandable): Cho nhng ngi xy dng ln
s dng
D thay i (changeable)

Vng bc cng doanh nghip s


D dng lin lc vi cc m hnh khc.
C th ni thm rng m hnh l mt s n gin ho hin thc. M hnh c
xy dng nn chng ta d dng hiu v hiu tt hn h thng cn xy dng.
To m hnh s gip cho chng ta hiu thu o mt h thng phc tp trong s
ton th ca n.
Ni tm li, m hnh ha mt h thng nhm mc ch:
Hnh dung mt h thng theo thc t hay theo mong mun ca
chng ta.
Ch r cu trc hoc ng x ca h thng.
To mt khun mu hng dn nh pht trin trong sut qu trnh
xy dng h thng.
Ghi li cc quyt nh ca nh pht trin s dng sau ny.
1.2- Trc khi UML ra i:
u nhng nm 1980, ngnh cng ngh phn mm ch c duy nht mt ngn
ng hng i tng l Simula. Sang na sau ca thp k 1980, cc ngn ng
hng i tng nh Smalltalk v C++ xut hin. Cng vi chng, ny sinh nhu
cu m hnh ho cc h thng phn mm theo hng i tng. V mt vi
trong s nhng ngn ng m hnh ho xut hin nhng nm u thp k 90
c nhiu ngi dng l:
Grady Boochs Booch Modeling Methodology
James Rambaughs Object Modeling Technique OMT
Ivar Jacobsons OOSE Methodology
Hewlett- Packards Fusion
Coad and Yordons OOA and OOD
Mi phng php lun v ngn ng trn u c h thng k hiu ring, phng
php x l ring v cng c h tr ring, khin ny ra cuc tranh lun phng
php no l tt nht. y l cuc tranh lun kh c cu tr li, bi tt c cc
phng php trn u c nhng im mnh v im yu ring. V th, cc nh
pht trin phn mm nhiu kinh nghim thng s dng phi hp cc im
mnh ca mi phng php cho ng dng ca mnh. Trong thc t, s khc bit
gia cc phng php hu nh khng ng k v theo cng tin trnh thi
gian, tt c nhng phng php trn tim cn li v b sung ln cho nhau.
Chnh hin thc ny c nhng ngi tin phong trong lnh vc m hnh ho

Vng bc cng doanh nghip s


hng i tng nhn ra v h quyt nh ngi li cng nhau tch hp nhng
im mnh ca mi phng php v a ra mt m hnh thng nht cho lnh vc
cng ngh phn mm.
1.3- S ra i ca UML:
Trong bi cnh trn, ngi ta nhn thy cn thit phi cung cp mt phng
php tim cn c chun ho v thng nht cho vic m hnh ho hng i
tng. Yu cu c th l a ra mt tp hp chun ho cc k hiu (Notation) v
cc biu (Diagram) nm bt cc quyt nh v mt thit k mt cch r
rng, rnh mch. c ba cng trnh tin phong nhm ti mc tiu , chng
c thc hin di s lnh o ca James Rumbaugh, Grady Booch v Ivar
Jacobson. Chnh nhng c gng ny dn n kt qu l xy dng c mt Ngn
Ng M Hnh Ho Thng Nht (Unifield Modeling Language UML).
UML l mt ngn ng m hnh ho thng nht c phn chnh bao gm nhng k
hiu hnh hc, c cc phng php hng i tng s dng th hin v
miu t cc thit k ca mt h thng. N l mt ngn ng c t, trc quan
ho, xy dng v lm su liu cho nhiu kha cnh khc nhau ca mt h thng
c nng phn mm cao. UML c th c s dng lm cng c giao tip gia
ngi dng, nh phn tch, nh thit k v nh pht trin phn mm.
Trong qu trnh pht trin c nhiu cng ty h tr v khuyn khch pht trin
UML c th k ti nh: Hewlett Packard, Microsoft, Oracle, IBM, Unisys.
1.4- UML (Unifield Modeling Language):
Ngn ng m hnh ha thng nht (Unifield Modeling Language UML) l mt
ngn ng biu din m hnh theo hng i tng c xy dng bi ba tc
gi trn vi ch ch l:
M hnh ho cc h thng s dng cc khi nim hng i tng.
Thit lp mt kt ni t nhn thc ca con ngi n cc s kin
cn m hnh ho.
Gii quyt vn v mc tha k trong cc h thng phc tp,
c nhiu rng buc khc nhau.
To mt ngn ng m hnh ho c th s dng c bi ngi v
my.
1.5- Phng php v cc ngn ng m hnh ho:
Phng php hay phng thc (method) l mt cch trc tip cu trc ho s
suy ngh v hnh ng ca con ngi. Phng php cho ngi s dng bit phi

Vng bc cng doanh nghip s


lm g, lm nh th no, khi no v ti sao (mc ch ca hnh ng). Phng
php cha cc m hnh (model), cc m hnh c dng m t nhng g s
dng cho vic truyn t kt qu trong qu trnh s dng phng php. im
khc nhau chnh gia mt phng php v mt ngn ng m hnh ho (modeling
language) l ngn ng m hnh ho khng c mt tin trnh (process) hay cc
cu lnh (instruction) m t nhng cng vic ngi s dng cn lm.
Mt m hnh c biu din theo mt ngn ng m hnh ho. Ngn ng m hnh
ho bao gm cc k hiu nhng biu tng c dng trong m hnh v mt
tp cc quy tc ch cch s dng chng. Cc quy tc ny bao gm:
Syntactic (C php): cho bit hnh dng cc biu tng v cch kt
hp chng trong ngn ng.
Semantic (Ng ngha): cho bit ngha ca mi biu tng, chng
c hiu th no khi nm trong hoc khng nm trong ng cnh
ca cc biu tng khc.
Pragmatic: nh ngha ngha ca biu tng sao cho mc ch
ca m hnh c th hin v mi ngi c th hiu c.

2- UML TRONG PHN TCH THIT K H THNG:


UML c th c s dng trong nhiu giai on, t pht trin, thit k cho ti
thc hin v bo tr. V mc ch chnh ca ngn ng ny l dng cc biu
hng i tng m t h thng nn min ng dng ca UML bao gm nhiu
loi h thng khc nhau nh:
H thng thng tin (Information System): Ct gi, ly, bin i
biu din thng tin cho ngi s dng. X l nhng khong d liu
ln c cc quan h phc tp, m chng c lu tr trong cc c s
d liu quan h hay hng i tng.
H thng k thut (Technical System): X l v iu khin cc
thit b k thut nh vin thng, h thng qun s, hay cc qu
trnh cng nghip. y l loi thit b phi x l cc giao tip c
bit, khng c phn mm chun v thng l cc h thng thi gian
thc (real time).
H thng nhng (Embeded System): Thc hin trn phn cng
gn vo cc thit b nh in thoi di ng, iu khin xe hi,
iu ny c thc hin bng vic lp trnh mc thp vi h tr thi
gian thc. Nhng h thng ny thng khng c cc thit b nh
mn hnh a cng,

Vng bc cng doanh nghip s


H thng phn b ( Distributed System): c phn b trn
mt s my cho php truyn d liu t ni ny n ni khc mt
cch d dng. Chng i hi cc c ch lin lc ng b m bo
ton vn d liu v thng c xy dng trn mt s cc k thut
i tng nh CORBA, COM/DCOM, hay Java Beans/RMI.
H thng Giao dch (Business System): M t mc ch, ti
nguyn (con ngi, my tnh, ), cc quy tc (lut php, chin
thut kinh doanh, c ch, ), v cng vic hot ng kinh doanh.
Phn mm h thng (System Software): nh ngha c s h
tng k thut cho phn mm khc s dng, chng hn nh h iu
hnh, c s d liu, giao din ngi s dng.

3- UML V CC GIAI ON PHT TRIN H THNG


Preliminary Investigation: use cases th hin cc yu cu ca ngi
dng. Phn miu t use case xc nh cc yu cu, phn diagram th hin
mi quan h v giao tip vi h thng.
Analysis: Mc ch chnh ca giai an ny l tru tng ha v tm
hiu cc c cu c trong phm vi bi ton. Class diagrams trn bnh din
tru tng ha cc thc th ngoi i thc c s dng lm r s tn
ti cng nh mi quan h ca chng. Ch nhng lp (class) nm trong
phm vi bi ton mi ng quan tm.
Design: Kt qu phn analysis c pht trin thnh gii php k thut.
Cc lp c m hnh ha chi tit cung cp h tng k thut nh giao
din, nn tng cho database, Kt qu phn Design l cc c t chi tit
cho giai on xy dng phn mm.
Development: M hnh Design c chuyn thnh code. Programmer
s dng cc UML diagrams trong giai on Design hiu vn v to
code.
Testing: S dng cc UML diagrams trong cc giai on trc. C 4
hnh thc kim tra h thng:
Unit testing (class diagrams & class specifications): kim tra
tng n th, c dng kim tra cc lp hay cc nhm
n th.
Integration testing (integration diagrams & collaboration
diagrams): kim tra tch hp l kim tra kt hp cc

Vng bc cng doanh nghip s


component vi cc lp xem chng hot ng vi nhau c
ng khng.
System testing (use-case diagrams): kim tra xem h thng
c p ng c chc nng m ngi s dng yu cu hay
khng.
Acceptance testing: Kim tra tnh chp nhn c ca h
thng, thng c thc hin bi khch hng, vic kim tra
ny thc hin tng t nh kim tra h thng.

PHN CU HI
Hi: UML (Unifield Modeling Language) l g?
p: Ngn ng m hnh ha thng nht UML l mt ngn ng biu
din m hnh theo hng i tng.
Hi: im khc nhau c bn gia phng php (method) v mt ngn ng m
hnh ho (modeling language) l g?
p: im khc nhau c bn gia mt phng php v mt ngn ng
m hnh ho l ngn ng m hnh ho khng c mt tin trnh (process)
hay cc cu lnh (instruction) m t nhng cng vic ngi s dng cn
lm m n bao gm cc k hiu nhng biu tng c dng trong m
hnh v mt tp cc quy tc ch cch s dng chng.

Vng bc cng doanh nghip s

Chng 3: KHI QUT V UML

1- UML V CC GIAI ON CA CHU TRNH PHT TRIN


PHN MM
1.1- Giai on nghin cu s b:
UML a ra khi nim Use Case nm bt cc yu cu ca khch hng (ngi
s dng). UML s dng biu Use case (Use Case Diagram) nu bt mi
quan h cng nh s giao tip vi h thng.
Qua phng php m hnh ha Use case, cc tc nhn (Actor) bn ngoi quan
tm n h thng s c m hnh ha song song vi chc nng m h i hi
t pha h thng (tc l Use case). Cc tc nhn v cc Use case c m hnh
ha cng cc mi quan h v c miu t trong biu Use case ca UML. Mi
mt Use case c m t trong ti liu, v n s c t cc yu cu ca khch
hng: Anh ta hay ch ta ch i iu g pha h thng m khng h n
vic chc nng ny s c thc thi ra sao.
1.2- Giai on phn tch:
Giai on phn tch quan tm n qu trnh tru tng ha u tin (cc lp v
cc i tng) cng nh c ch hin hu trong phm vi vn . Sau khi nh
phn tch nhn bit c cc lp thnh phn ca m hnh cng nh mi quan
h gia chng vi nhau, cc lp cng cc mi quan h s c miu t bng
cng c biu lp (class diagram) ca UML. S cng tc gia cc lp nhm
thc hin cc Use case cng s c miu t nh vo cc m hnh ng
(dynamic models) ca UML. Trong giai on phn tch, ch duy nht cc lp c
tn ti trong phm vi vn (cc khi nim i thc) l c m hnh ha. Cc
lp k thut nh ngha chi tit cng nh gii php trong h thng phn mm, v
d nh cc lp cho giao din ngi dng, cho ngn hng d liu, cho s giao tip,
trng hp, v.v..., cha phi l mi quan tm ca giai on ny.
1.3- Giai on thit k:
Trong giai on ny, kt qu ca giai on phn tch s c m rng thnh mt
gii php k thut. Cc lp mi s c b sung to thnh mt h tng c s
k thut: Giao din ngi dng, cc chc nng lu tr cc i tng trong
ngn hng d liu, giao tip vi cc h thng khc, giao din vi cc thit b
ngoi vi v cc my mc khc trong h thng,.... Cc lp thuc phm vi vn
c t giai on phn tch s c "nhng" vo h tng c s k thut ny, to ra
kh nng thay i trong c hai phng din: Phm vi vn v h tng c s.

Vng bc cng doanh nghip s


Giai on thit k s a ra kt qu l bn c t chi tit cho giai on xy dng
h thng.
1.4- Giai on xy dng:
Trong giai on xy dng (giai on lp trnh), cc lp ca giai on thit k s
c bin thnh nhng dng code c th trong mt ngn ng lp trnh hng i
tng c th (khng nn dng mt ngn ng lp trnh hng chc nng!). Ph
thuc vo kh nng ca ngn ng c s dng, y c th l mt cng vic kh
khn hay d dng. Khi to ra cc m hnh phn tch v thit k trong UML, tt
nht nn c gng n trnh vic ngay lp tc bin i cc m hnh ny thnh cc
dng code. Trong nhng giai on trc, m hnh c s dng d hiu, d
giao tip v to nn cu trc ca h thng; v vy, vi vng a ra nhng kt
lun v vic vit code c th s thnh mt tr ngi cho vic to ra cc m hnh
chnh xc v n gin. Giai on xy dng l mt giai on ring bit, ni cc
m hnh c chuyn thnh code.
1.5- Th nghim:
Nh trnh by trong phn Chu Trnh Pht Trin Phn Mm, mt h thng phn
mm thng c th nghim qua nhiu giai on v vi nhiu nhm th
nghim khc nhau. Cc nhm s dng nhiu loi biu UML khc nhau lm nn
tng cho cng vic ca mnh: Th nghim n v s dng biu lp (class
diagram) v c t lp, th nghim tch hp thng s dng biu thnh phn
(component diagram) v biu cng tc (collaboration diagram), v giai on
th nghim h thng s dng biu Use case (use case diagram) m bo
h thng c phng thc hot ng ng nh c nh ngha t ban u
trong cc biu ny.

2- CC THNH PHN CA NGN NG UML


Ngn ng UML bao gm mt lot cc phn t ha (graphic element) c th
c kp hp vi nhau to ra cc biu . Bi y l mt ngn ng, nn UML
cng c cc nguyn tc kt hp cc phn t .
Mt s nhng thnh phn ch yu ca ngn ng UML:
Hng nhn (view): Hng nhn ch ra nhng kha cnh khc
nhau ca h thng cn phi c m hnh ha. Mt hng nhn
khng phi l mt bn v, m l mt s tru tng ha bao gm
mt lot cc biu khc nhau. Ch qua vic nh ngha ca mt
lot cc hng nhn khc nhau, mi hng nhn ch ra mt kha
cnh ring bit ca h thng, ngi ta mi c th to dng nn mt
bc tranh hon thin v h thng. Cng chnh cc hng nhn ny

Vng bc cng doanh nghip s


ni kt ngn ng m hnh ha vi quy trnh c chn cho giai on
pht trin.
Biu (diagram): Biu l cc hnh v miu t ni dung
trong mt hng nhn. UML c tt c 9 loi biu khc nhau c
s dng trong nhng s kt hp khc nhau cung cp tt c cc
hng nhn ca mt h thng.
Phn t m hnh ha (model element): Cc khi nim c
s dng trong cc biu c gi l cc phn t m hnh, th hin
cc khi nim hng i tng quen thuc. V d nh lp, i tng,
thng ip cng nh cc quan h gia cc khi nim ny, bao gm
c lin kt, ph thuc, khi qut ha. Mt phn t m hnh thng
c s dng trong nhiu biu khc nhau, nhng n lun lun c
ch mt ngha v mt k hiu.
C ch chung: C ch chung cung cp thm nhng li nhn xt
b sung, cc thng tin cng nh cc quy tc ng php chung v
mt phn t m hnh; chng cn cung cp thm cc c ch c
th m rng ngn ng UML cho ph hp vi mt phng php xc
nh (mt quy trnh, mt t chc hoc mt ngi dng).

3- HNG NHN (VIEW)


M hnh ha mt h thng phc tp l mt vic lm kh khn. L tng nht l
ton b h thng c miu t ch trong mt bn v, mt bn v nh ngha mt
cch r rng v mch lc ton b h thng, mt bn v ngoi ra li cn d giao
tip v d hiu. Mc d vy, thng th y l chuyn bt kh thi. Mt bn v
khng th nm bt tt c cc thng tin cn thit miu t mt h thng. Mt
h thng cn phi c miu t vi mt lot cc kha cnh khc nhau: V mt
chc nng (cu trc tnh ca n cng nh cc tng tc ng), v mt phi chc
nng (yu cu v thi gian, v ng tin cy, v qu trnh thc thi, v.v. v v.v.)
cng nh v kha cnh t chc (t chc lm vic, nh x n vo cc code
module,...). V vy mt h thng thng c miu t trong mt lot cc hng
nhn khc nhau, mi hng nhn s th hin mt bc nh nh x ca ton b h
thng v ch ra mt kha cnh ring ca h thng.

Vng bc cng doanh nghip s

Hnh 3.1- Cc View trong UML


Mi mt hng nhn c miu t trong mt lot cc biu , cha ng cc
thng tin nu bt kha cnh c bit ca h thng. Trong thc t khi phn tch
v thit k rt d xy ra s trng lp thng tin, cho nn mt biu trn tht t
c th l thnh phn ca nhiu hng nhn khc nhau. Khi nhn h thng t
nhiu hng nhn khc nhau, ti mt thi im c th ngi ta ch tp trung vo
mt kha cnh ca h thng. Mt biu trong mt hng nhn c th no
cn phi n gin to iu kin giao tip d dng, dnh lin vi cc
biu khc cng nh cc hng nhn khc, lm sao cho bc tranh ton cnh
ca h thng c miu t bng s kt hp tt c cc thng tin t tt c cc
hng nhn. Mt biu cha cc k hiu hnh hc m t cc phn t m hnh
ca h thng. UML c tt c cc hng nhn sau:
Hng nhn Use case (use case view): y l hng nhn ch ra
kha cnh chc nng ca mt h thng, nhn t hng tc nhn bn
ngoi.
Hng nhn logic (logical view): ch ra chc nng s c thit k
bn trong h thng nh th no, qua cc khi nim v cu trc tnh
cng nh ng x ng ca h thng.
Hng nhn thnh phn (component view): ch ra kha cnh t chc
ca cc thnh phn code.
Hng nhn song song (concurrency view): ch ra s tn ti song
song/ trng hp trong h thng, hng n vn giao tip v
ng b ha trong h thng.
Hng nhn trin khai (deployment view): ch ra kha cnh trin
khai h thng vo cc kin trc vt l (cc my tnh hay trang thit
b c coi l trm cng tc).

Vng bc cng doanh nghip s


Khi bn chn cng c v biu , hy chn cng c no to iu kin d dng
chuyn t hng nhn ny sang hng nhn khc. Ngoi ra, cho mc ch quan
st mt chc nng s c thit k nh th no, cng c ny cng phi to iu
kin d dng cho bn chuyn sang hng nhn Use case ( xem chc nng ny
c miu t nh th no t pha tc nhn), hoc chuyn sang hng nhn trin
khai ( xem chc nng ny s c phn b ra sao trong cu trc vt l - Ni
mt cch khc l n c th nm trong my tnh no).
Ngoi cc hng nhn k trn, ngnh cng nghip phn mm cn s dng c cc
hng nhn khc, v d hng nhn tnh-ng, hng nhn logic-vt l, quy trnh
nghip v (workflow) v cc hng nhn khc. UML khng yu cu chng ta phi
s dng cc hng nhn ny, nhng y cng chnh l nhng hng nhn m cc
nh thit k ca UML ngh ti, nn c kh nng nhiu cng c s da trn cc
hng nhn .
3.1- Hng nhn Use case (Use case View):
Hng nhn Use case miu t chc nng ca h thng s phi cung cp do c
tc nhn t bn ngoi mong i. Tc nhn l thc th tng tc vi h thng;
c th l mt ngi s dng hoc l mt h thng khc. Hng nhn Use case l
hng nhn dnh cho khch hng, nh thit k, nh pht trin v ngi th
nghim; n c miu t qua cc biu Use case (use case diagram) v thnh
thong cng bao gm c cc biu hot ng (activity diagram). Cch s dng
h thng nhn chung s c miu t qua mt lot cc Use case trong hng
nhn Use case, ni mi mt Use case l mt li miu t mang tnh c th cho
mt tnh nng ca h thng (c ngha l mt chc nng c mong i).
Hng nhn Use case mang tnh trung tm, bi n t ra ni dung thc y s
pht trin cc hng nhn khc. Mc tiu chung ca h thng l cung cp cc
chc nng miu t trong hng nhn ny cng vi mt vi cc thuc tnh mang
tnh phi chc nng khc v th hng nhn ny c nh hng n tt c cc
hng nhn khc. Hng nhn ny cng c s dng thm tra (verify) h
thng qua vic th nghim xem hng nhn Use case c ng vi mong i ca
khch hng (Hi: "y c phi l th bn mun") cng nh c ng vi h thng
va c hon thnh (Hi: "H thng c hot ng nh c t?).
3.2- Hng nhn logic (Logical View):
Hng nhn logic miu t phng thc m cc chc nng ca h thng s c
cung cp. Ch yu n c s dng cho cc nh thit k v nh pht trin.
Ngc li vi hng nhn Use case, hng nhn logic nhn vo pha bn trong ca
h thng. N miu t k c cu trc tnh (lp, i tng, v quan h) cng nh
s tng tc ng s xy ra khi cc i tng gi thng ip cho nhau cung

Vng bc cng doanh nghip s


cp chc nng nh sn. Hng nhn logic nh ngha cc thuc tnh nh
trng tn (persistency) hoc song song (concurrency), cng nh cc giao din
cng nh cu trc ni ti ca cc lp.
Cu trc tnh c miu t bng cc biu lp (class diagram) v biu i
tng (object diagram). Qu trnh m hnh ha ng c miu t trong cc biu
trng thi (state diagram), biu trnh t (sequence diagram), biu
tng tc (collaboration diagram) v biu hot ng (activity diagram).
3.3- Hng nhn thnh phn (Component View):
L mt li miu t ca vic thc thi cc modul cng nh s ph thuc gia chng
vi nhau. N thng c s dng cho nh pht trin v thng bao gm nhiu
biu thnh phn. Thnh phn y l cc modul lnh thuc nhiu loi khc
nhau, s c ch ra trong biu cng vi cu trc cng nh s ph thuc ca
chng. Cc thng tin b sung v cc thnh phn, v d nh v tr ca ti nguyn
(trch nhim i vi mt thnh phn), hoc cc thng tin qun tr khc, v d
nh mt bn bo co v tin trnh ca cng vic cng c th c b sung vo
y.
3.4- Hng nhn song song (Concurrency View):
Hng nhn song song nhm ti s chia h thng thnh cc qui trnh (process)
v cc b x l (processor). Kha cnh ny, vn l mt thuc tnh phi chc nng
ca h thng, cho php chng ta s dng mt cch hu hiu cc ngun ti
nguyn, thc thi song song, cng nh x l cc s kin khng ng b t mi
trng. Bn cnh vic chia h thng thnh cc tiu trnh c th c thc thi
song song, hng nhn ny cng phi quan tm n vn giao tip v ng b
ha cc tiu trnh .
Hng nhn song song ginh cho nh pht trin v ngi tch hp h thng, n
bao gm cc biu ng (trng thi, trnh t, tng tc v hot ng) cng cc
biu thc thi (biu thnh phn v biu trin khai).
3.5- Hng nhn trin khai (Deployment View):
Cui cng, hng nhn trin khai ch cho chng ta s trin khai v mt vt l
ca h thng, v d nh cc my tnh cng nh cc my mc v s lin kt gia
chng vi nhau. Hng nhn trin khai ginh cho cc nh pht trin, ngi tch
hp cng nh ngi th nghim h thng v c th hin bng cc biu
trin khai. Hng nhn ny cng bao gm s nh x cc thnh phn ca h
thng vo cu trc vt l; v d nh chng trnh no hay i tng no s c
thc thi trn my tnh no.

Vng bc cng doanh nghip s

4- BIU (DIAGRAM)
Biu l cc hnh v bao gm cc k hiu phn t m hnh ha c sp xp
minh ha mt thnh phn c th hay mt kha cnh c th ca h thng. Mt
m hnh h thng thng c nhiu loi biu , mi loi c nhiu biu khc
nhau. Mt biu l mt thnh phn ca mt hng nhn c th; v khi c v
ra, n thng thng cng c xp vo mt hng nhn. Mt khc, mt s loi
biu c th l thnh phn ca nhiu hng nhn khc nhau, ty thuc vo ni
dung ca biu .
Phn sau miu t cc khi nim cn bn nm ng sau mi loi biu . Tt c
cc chi tit v biu , ng cnh ca chng, ngha chnh xc ca chng v s
tng tc gia chng vi nhau c miu t chi tit trong cc chng sau (m
hnh i tng m hnh ng). Cc biu ly lm v d y c ly ra t
nhiu loi h thng khc nhau ch ra nt phong ph v kh nng p dng
rng khp ca ULM.
4.1- Biu Use case (Use Case Diagram):
Mt biu Use case ch ra mt s lng cc tc nhn ngoi cnh v mi lin kt
ca chng i vi Use case m h thng cung cp (nhn hnh 3.2). Mt Use case
l mt li miu t ca mt chc nng m h thng cung cp. Li miu t Use
case thng l mt vn bn ti liu, nhng km theo cng c th l mt biu
hot ng. Cc Use case c miu t duy nht theo hng nhn t ngoi vo
ca cc tc nhn (hnh vi ca h thng theo nh s mong i ca ngi s
dng), khng miu t chc nng c cung cp s hot ng ni b bn trong
h thng ra sao. Cc Use case nh ngha cc yu cu v mt chc nng i vi
h thng. Cc biu Use case s c miu t chi tit hn trong chng 4 (Use
case).

Vng bc cng doanh nghip s


Hnh 3.2- Biu use case ca mt cng ty bo him
4.2- Biu lp (Class Diagram):
Mt biu lp ch ra cu trc tnh ca cc lp trong h thng (nhn hnh 3.3).
Cc lp l i din cho cc vt c x l trong h thng. Cc lp c th quan
h vi nhau trong nhiu dng thc: lin kt (associated - c ni kt vi nhau),
ph thuc (dependent - mt lp ny ph thuc vo lp khc), chuyn bit ha
(specialized - mt lp ny l mt kt qu chuyn bit ha ca lp khc), hay
ng gi ( packaged - hp vi nhau thnh mt n v). Tt c cc mi quan h
u c th hin trong biu lp, i km vi cu trc bn trong ca cc lp
theo khi nim thuc tnh (attribute) v th tc (operation). Biu c coi l
biu tnh theo phng din cu trc c miu t y c hiu lc ti bt k
thi im no trong ton b vng i h thng.
Mt h thng thng s c mt lot cc biu lp chng phi bao gi tt c
cc biu lp ny cng c nhp vo mt biu lp tng th duy nht v
mt lp c th tham gia vo nhiu biu lp. Biu lp c miu t chi tit
trong chng sau.

Hnh 3.3 - Biu lp cho mt giao dch Ti chnh


4.3- Biu i tng (Object Diagram):
Mt biu i tng l mt phin bn ca biu lp v thng cng s dng
cc k hiu nh biu lp. S khc bit gia hai loi biu ny nm ch
biu i tng ch ra mt lot cc i tng thc th ca lp, thay v cc lp.
Mt biu i tng v vy l mt v d ca biu lp, ch ra mt bc tranh
thc t c th xy ra khi h thng thc thi: bc tranh m h thng c th c ti
mt thi im no . Biu i tng s dng chung cc k hiu ca biu
lp, ch tr hai ngoi l: i tng c vit vi tn c gch di v tt c cc
thc th trong mt mi quan h u c ch ra (nhn hnh 3.4).

Vng bc cng doanh nghip s


Biu i tng khng quan trng bng biu lp, chng c th c s
dng v d ha mt biu lp phc tp, ch ra vi nhng thc th c th v
nhng mi quan h nh th th bc tranh ton cnh s ra sao. Mt biu i
tng thng thng c s dng lm mt thnh phn ca mt biu cng
tc (collaboration), ch ra li ng x ng gia mt lot cc i tng.

Hnh 3.4 - Biu lp v biu i tng th hin ca lp


4.4- Biu trng thi (State Diagram):
Mt biu trng thi thng l mt s b sung cho li miu t mt lp. N ch
ra tt c cc trng thi m i tng ca lp ny c th c, v nhng s kin
(event) no s gy ra s thay i trng thi (hnh 3.5). Mt s kin c th xy ra
khi mt i tng t gi thng ip n cho n - v d nh thng bo rng
mt khong thi gian c xc nh qua i hay l mt s iu kin no
c tha mn. Mt s thay i trng thi c gi l mt s chuyn i
trng thi (State Transition). Mt chuyn i trng thi cng c th c mt hnh
ng lin quan, xc nh iu g phi c thc hin khi s chuyn i trng thi
ny din ra.
Biu trng thi khng c v cho tt c cc lp, m ch ring cho nhng lp
c mt s lng cc trng thi c nh ngha r rng v hnh vi ca lp b nh
hng v thay i qua cc trng thi khc nhau. Biu trng thi cng c th
c v cho h thng tng th. Biu trng thi c miu t chi tit hn trong
chng sau (M hnh ng).

Vng bc cng doanh nghip s

Hnh 3.5- Mt v d v biu trng thi


4.5- Biu trnh t (Sequence Diagram):
Mt biu trnh t ch ra mt cng tc ng gia mt lot cc i tng (xem
hnh 3.6). Kha cnh quan trng ca biu ny l ch ra trnh t cc thng ip
(message) c gi gia cc i tng. N cng ch ra trnh t tng tc gia
cc i tng, iu s xy ra ti mt thi im c th no trong trnh t thc
thi ca h thng. Cc biu trnh t cha mt lot cc i tng c biu din
bng cc ng thng ng. Trc thi gian c hng t trn xung di trong
biu , v biu ch ra s trao i thng ip gia cc i tng khi thi gian
tri qua. Cc thng ip c biu din bng cc ng gch ngang gn lin vi
mi tn (biu th thng ip) ni lin gia nhng ng thng ng th hin i
tng. Trc thi gian cng nhng li nhn xt khc thng s c a vo phn
l ca biu .

Hnh 3.6 - Mt biu trnh t cho Print Server


4.6- Biu cng tc (Collaboration Diagram):
Mt biu cng tc ch ra mt s cng tc ng, cng ging nh mt biu
trnh t. Thng ngi ta s chn hoc dng biu trnh t hoc dng biu
cng tc. Bn cnh vic th hin s trao i thng ip (c gi l tng tc),
biu cng tc ch ra cc i tng v quan h ca chng (nhiu khi c gi
l ng cnh). Vic nn s dng biu trnh t hay biu cng tc thng s
c quyt nh theo nguyn tc chung sau: Nu thi gian hay trnh t l yu t
quan trng nht cn phi nhn mnh th hy chn biu trnh t; nu ng cnh

Vng bc cng doanh nghip s


l yu t quan trng hn, hy chn biu cng tc. Trnh t tng tc gia cc
i tng c th hin trong c hai loi biu ny.
Biu cng tc c v theo dng mt biu i tng, ni mt lot cc i
tng c ch ra cng vi mi quan h gia chng vi nhau (s dng nhng k
hiu nh trong biu lp/ biu i tng). Cc mi tn c v gia cc i
tng ch ra dng chy thng ip gia cc i tng. Cc thng ip thng
c nh km theo cc nhn (label), mt trong nhng chc nng ca nhn l
ch ra th t m cc thng ip c gi i. N cng c th ch ra cc iu kin,
ch ra nhng gi tr c tr v, v.v... Khi lm quen vi cch vit nhn, mt
nh pht trin c th c biu cng tc v tun th theo dng thc thi cng
nh s trao i thng ip. Mt biu cng tc cng c th cha c cc i
tng tch cc (active objects), hot ng song song vi cc i tng tch cc
khc (hnh 3.7). Biu cng tc c miu t chi tit trong chng sau.

Hnh 3.7 - Mt biu cng tc ca mt printer server


4.7- Biu hot ng (Activity Diagram):
Mt biu hot ng ch ra mt trnh t ln lt ca cc hot ng (activity)
(hnh 3.8). Biu hot ng thng c s dng miu t cc hot ng
c thc hin trong mt th tc, mc d n cng c th c s dng miu
t cc dng chy hot ng khc, v d nh trong mt Use case hay trong mt
trnh t tng tc. Biu hot ng bao gm cc trng thi hnh ng, cha
c t ca mt hot ng cn phi c thc hin (mt hnh ng - action). Mt
trng thi hnh ng s qua i khi hnh ng c thc hin xong (khc vi biu
trng thi: mt trng thi ch chuyn sang trng thi khc sau khi xy ra
mt s kin r rng !). Dng iu khin y chy gia cc trng thi hnh
ng lin kt vi nhau. Biu cn c th ch ra cc quyt nh, cc iu kin,
cng nh phn thc thi song song ca cc trng thi hnh ng. Biu ngoi ra
cn c th cha cc loi c t cho cc thng ip c gi i hoc c nhn v,
trong t cch l thnh phn ca hnh ng c thc hin.

Vng bc cng doanh nghip s

Hnh 3.8 - Mt biu hot ng cho mt printer server


4.8- Biu thnh phn (Component Diagram):
Mt biu thnh phn ch ra cu trc vt l ca cc dng lnh (code) theo khi
nim thnh phn code. Mt thnh phn code c th l mt tp tin source code,
mt thnh phn nh phn (binary) hay mt thnh phn thc thi c
(executable). Mt thnh phn cha cc thng tin v cc lp logic hoc cc lp m
n thi hnh, nh th c ngha l n to ra mt nh x t hng nhn logic vo
hng nhn thnh phn. Biu thnh phn cng ch ra nhng s ph thuc gia
cc thnh phn vi nhau, tr gip cho cng vic phn tch hiu ng m mt
thnh phn c thay i s gy ra i vi cc thnh phn khc. Thnh phn
cng c th c miu t vi bt k loi giao din no m chng bc l, v d
nh giao din OLE/COM; v chng c th c nhm gp li vi nhau thnh tng
gi (package). Biu thnh phn c s dng trong cng vic lp trnh c th
(xem hnh 3.9).

Vng bc cng doanh nghip s


Hnh 3.9 - Mt biu thnh phn ch ra s ph thuc gia cc thnh phn m
4.9- Biu trin khai (Deployment Diagram):
Biu trin khai ch ra kin trc vt l ca phn cng cng nh phn mm
trong h thng. Bn c th ch ra tng my tnh c th v tng trang thit b c
th (node) i km s ni kt gia chng vi nhau, bn cng c th ch ra loi ca
cc mi ni kt . Bn trong cc nt mng (node), cc thnh phn thc thi c
cng nh cc i tng s c xc nh v tr ch ra nhng phn mm no s
c thc thi ti nhng nt mng no. Bn cng c th ch ra s ph thuc gia
cc thnh phn.
Biu trin khai ch ra hng nhn trin khai, miu t kin trc vt l tht s
ca h thng. y l mt hng nhn rt xa li miu t duy chc nng ca hng
nhn Use case. Mc d vy, trong mt m hnh tt, ngi ta c th ch tt c
nhng con ng dn t mt nt mng trong mt kin trc vt l cho ti nhng
thnh phn ca n, cho ti lp m n thc thi, cho ti nhng tng tc m cc
i tng ca lp ny tham gia ri cui cng, tin ti mt Use case. Rt nhiu
hng nhn khc nhau ca h thng c s dng ng thi to ra mt li
miu t thu o i vi h thng trong s tng th ca n.

Hnh 3.10 - Mt biu trin khai ch ra kin trc vt l ca h thng

5- PHN T M HNH (MODEL ELEMENT):


Cc khi nim c s dng trong cc biu c gi l cc phn t m hnh
(model element). Mt phn t m hnh c nh ngha vi ng ngha (semantic),
l mt nh ngha v bn cht phn t hay l mt xc nh ngha chnh xc
xem n s th hin iu g trong nhng li khng nh r rng. Mi phn t m
hnh cn c mt s miu t trc quan, mt k hiu hnh hc c s dng
miu t phn t ny trong biu . Mt phn t c th tn ti trong nhiu dng

Vng bc cng doanh nghip s


biu khc nhau, nhng cng c nhng nguyn tc xc nh loi phn t no
c th c ch ra trong loi biu no. Mt vi v d cho phn t v hnh l lp,
i tng, trng thi, nt mng, gi, thnh phn (hnh 3.11).

Hnh 3.11- Cc thnh phn m hnh thng dng


Hnh 3.12 ch ra mt vi v d ca mi quan h, y cng l mt dng phn t
m hnh, chng c s dng ni cc phn t m hnh khc vi nhau. Mt vi
loi quan h ng ch :
Ni kt (Association): ni cc phn t v cc thc th ni (link).
Khi qut ha (Generalization): cn c gi l tnh tha k, c
ngha rng mt phn t ny c th l mt s chuyn bit ha ca
mt phn t khc.
S ph thuc (Dependency): ch ra rng mt phn t ny ph
thuc trong mt phng thc no vo mt phn t khc.
Kt tp (Aggregation): Mt dng ca ni kt, trong mt phn
t ny cha cc phn t khc.
Ngoi ra cn c cc phn t m hnh khc nh thng ip (Message), hnh ng
(action) v khun mu (stereotype). Tt c cc phn t m hnh, ngha ca
chng cng nh nhng ng dng u c gii thch k lng hn trong cc
chng sau.

Vng bc cng doanh nghip s

Hnh 3.12 cc v d v vi loi quan h

6- C CH CHUNG (GENERAL MECHANISM):


UML th hin mt s cc c ch chung trong tt c cc biu nhm mc ch
cung cp thm cc thng tin b sung, thng y l nhng thng tin khng th
c th hin qua cc chc nng v kh nng c bn ca cc phn t m hnh.
6.1- Trang tr (Adornment)
Cc s trang tr trc quan c th c s dng km thm vo cc phn t m
hnh trong biu . ng tc trang tr b sung thm ng ngha cho phn t. Mt
v d l k thut c s dng phn bit mt loi thc th (lp) v mt thc
th. Khi th hin mt loi, tn phn t s c in m. Khi cng chnh phn t
th hin ch mt thc th ca loi ny, tn phn t s c gch di v c
th c coi l c tn ca thc th ln tn ca loi . Mt hnh ch nht th
hin lp vi tn c in m s th hin mt lp v tn c gch di s th
hin mt i tng, y l mt v d tiu biu ca adornment. Cng nguyn tc
c p dng cho cc nt mng, khi k hiu nt c in m l th hin mt
loi nt, v d nh my in (Printer), khi k hiu c gch di l th hin mt
thc th ca lp nt mng ny v d Johns HP 5MP-printer. Cc kiu trang tr
khc l cc li c t v s lng trong quan h (multiplicity), ni s lng l
mt s hay mt khong s ch ra bao nhiu thc th ca cc loi thc th c
ni vi nhau s c th tham gia trong mt quan h. K hiu trang tr c vit
gn phn t m hnh c m n b sung thng tin (hnh 3.13).

Hnh 3.13 - Phn bit gia lp v i tng bng trang tr


6.2- Ghi ch (Note)

Vng bc cng doanh nghip s


Cho d mt ngn ng m hnh ha c c m rng n bao nhiu chng na,
n cng khng th nh ngha tt c mi vic. Nhm to iu kin b sung thm
cho mt m hnh nhng thng tin khng th c th hin bng phn t m hnh,
UML cung cp kh nng km theo li ghi ch. Mt li ghi ch c th c bt
k ni no trong bt k biu no, v n c th cha bt k loi thng tin no.
Dng thng tin ca bn thn n l chui k t (string), khng c UML din gii.
Li ghi ch thng i km theo mt s cc phn t m hnh trong biu , c
ni bng mt ng chm chm, ch ra phn t m hnh no c chi tit ha
hoc c gii thch (hnh 3.14).
Mt li ghi ch thng cha li nhn xt hoc cc cu hi ca nh to m hnh,
v d li nhc nh cn phi x l vn no trong thi gian sau ny. Li ghi
ch cng c th cha cc thng tin dng khun mu (stereotype).

Hnh 3.14 - Mt v d v ghi ch


6.3- c t (Specification)
Cc phn t m hnh c thuc tnh (Property) cha cc gi tr d liu v phn t
ny. Mt thuc tnh c nh ngha vi mt tn v mt gi tr nh km (tagged
value), thng chng trong mt dng thng tin c xc nh trc, v d nh
s nguyn hay chui k t. C mt lot thuc tnh c nh ngha trc, v d
nh ti liu (docement), trch nhim (Responsibility), s trng tn (Persistence)
v tnh song song (Conccurency).
Thuc tnh c s dng thm cc c t b sung v mt phn t, nhng
thng tin bnh thng ra khng c th hin trong biu . V d tiu biu l
mt lp s c miu t bng mt ti liu vn bn nht nh, cung cp nhiu
thng tin hn v trch nhim cng nh kh nng ca lp ny. Loi c t ny
bnh thng ra khng c ch ra trong cc biu , nhng thng th trong a
phn cc cng c m hnh ha chng s c th c truy cp qua hnh ng
nhp nt vo mt phn t no , hiu qu l mt ca s cha c t vi tt c
cc thuc tnh s c ch ra (Hnh 3.15).

Vng bc cng doanh nghip s

Hnh 3.15- Mt ca s c t th hin cc c tnh ca class

7- M RNG UML
UML c th c m rng hoc c th c sa i ph hp vi mt phng
php c bit, mt t chc c th hay mt ngi dng c th. Chng ta s bn
lun s qua n ba c ch m rng UML: khun mu (stereotype), gi tr nh
km (tagged value) v hn ch (constraint).
7.1- Khun mu (Stereotype)
C ch m rng khun mu nh ngha mt loi phn t m hnh mi da trn
mt phn t m hnh tn ti. Khun mu c th c coi l "tng t" nh
mt phn t c sn, cng thm phn quy nh ng ngha (semantic) ring
bit khng c trong phn t gc kia. Khun mu ca mt phn t c th c s
dng trong cng tnh hung nh phn t cn bn. Khun mu da trn tt c cc
loi phn t m hnh sn c - lp, nt mng, thnh phn, cng nh cc mi quan
h nh lin kt, khi qut ha, s ph thuc. Ngn ng UML c cha mt s
lng ln cc khun mu c nh ngha sn v chng c s dng sa i
cc phn t m hnh sn c, thay cho vic phi nh ngha hon ton mi. C ch
ny gip gn gi tnh n gin ca nn tng ngn ng UML.

Vng bc cng doanh nghip s


Khun mu c miu t qua vic a tn ca chng vo trong mt cp k t
ngoc nhn <<>>, theo nh trong hnh 3.16. K t ngoc nhn ny c gi l
guillements. Khun mu cng c th c k hiu hnh hc ring. Mt phn t ca
mt loi khun mu c th c th c th hin bi tn khun mu i km k
hiu hnh hc m t phn t cn bn, hay l s kt hp ca c hai yu t ny.
Bt k khi no mt phn t m hnh c ni kt vi mt tn hoc k hiu khun
mu, ta s c "y l mt loi phn t thuc loi khun mu...". V d, mt lp
vi <<Window>> s c gi l "mt lp trong dng khun mu ca s",
ngha ca n l mt dng lp ca s. Nhng thuc tnh c th m mt lp ca s
cn phi c s c nh ngha khi khun mu ny c nh ngha.
Nh ni, khun mu l mt c ch m rng xut sc, l mt c ch ngn cho
ngn ng UML khng tr nn qu phc tp, mc d vn cho php thc hin s
m rng v sa i cn thit. a phn cc phn t m hnh mi m bn cn n
u c mt khun mu nn tng trong ngn ng UML. Mt khun mu sau c
th c s dng cng thm cc ng ngha cn thit, nhm mc ch nh
ngha nn cc phn t m hnh cn thiu.

Hnh 3.16- Customer l mt lp khun mu <<Actor>>


7.2- Gi tr nh km (Tagged Value)
Nh ni, cc phn t m hnh c th c cc thuc tnh cha mt cp tn-gi
tr v bn thn chng (hnh 3.17). Cc thuc tnh ny cng cn c gi l cc
ga tr nh km. UML c cha mt lot cc thuc tnh c nh ngha trc,
nhng k c ngi s dng cng c th nh ngha ra cc thuc tnh mi cha
cc thng tin b sung v cc phn t m hnh. Mi hnh dng thng tin u c
th c nh km vo phn t: cc thng tin chuyn bit v phng php, cc
thng tin ca nh qun tr v tin trnh m hnh ha, cc thng tin c s dng
bi cc cng c khc, v d nh cc cng c to code, hay bt k mt loi thng
tin no m ngi s dng mun nh km vo phn t m hnh.

Vng bc cng doanh nghip s

Hnh 3.17 - Mt v d v Tagged Value


7.3- Hn ch (Constraint)
Mt s hn ch l mt s gii hn v s s dng hoc ngha ca mt phn t.
S hn ch hoc s c khai bo trong cng c v c s dng nhiu ln trong
rt nhiu biu khc nhau, hay c nh ngha v s dng trong ch mt biu
, theo nh nhu cu.
Hnh 3.18 ch ra mi quan h ni kt gia nhm cc cng dn ln tui v lp con
ngi, ch ra rng nhm cng dn c th c nhiu ngi lin quan. Mc d vy,
miu t rng ch nhng ngi no ln hn 60 tui mi c th tham gia vo
nhm ny, ngi ta nh ngha mt s hn ch, hn hp tiu chun tham gia i
vi ch nhng ngi no m thuc tnh tui tc c gi tr ln hn 60. nh ngha
ny s hn ch s lng nhng ngi c s dng trong mi quan h. Nu
khng c n, ngi ta rt d hiu lm khi din t biu . Trong trng hp ti
t, n c th dn n s thc thi sai tri ca h thng.
Trong trng hp ny, hn ch c nh ngha v ng dng trc tip trong
chnh biu m n c cn ti. Nhng nhn chung th hn ch cng c th
c nh ngha vi tn cng li c t ring, v d nh: "cng dn gi" v
"ngi c tui ln hn 60", v hn ch ny s c s dng trong nhiu biu
khc nhau. UML c cha mt lot cc hn ch c nh ngha sn, chng c
miu t chi tit trong cc chng sau.

Hnh 3.18- Mt rng buc hn ch i tng Person gp phn vo quan h kt


hp

Vng bc cng doanh nghip s

8- M HNH HA VI UML
Khi xy dng h thng vi UML, ngi ta khng ch xy dng duy nht mt m
hnh. S c nhiu m hnh khc nhau trong nhng giai on pht trin khc nhau,
nhm n cc mc ch khc nhau. Trong giai on phn tch, mc ch ca m
hnh l nm bt tt c cc yu cu i vi h thng v m hnh ha nn tng bao
gm cc lp v cc cng tc "i thc". Trong giai on thit k, mc ch ca
m hnh l m rng m hnh phn tch, to thnh mt gii php k thut kh thi,
c ch n mi trng ca cng vic xy dng (vit code). Trong giai on xy
dng code, m hnh chnh l nhng dng code ngun tht s, c vit nn v
c dch thnh cc chng trnh. V cui cng, trong giai on trin khai, mt
li miu t s gii thch h thng cn c trin khai ra sao trong kin trc vt l.
Kh nng theo di xuyn sut nhiu giai on v nhiu m hnh khc nhau c
m bo qua cc thuc tnh hoc cc mi quan h nng cao (refinement).
Mc d l cc m hnh khc nhau, nhng chng u c xy dng nn
m rng ni dung ca cc m hnh giai on trc. Chnh v th, tt c cc m
hnh u cn phi c gn gi tt ngi ta c th d dng i ngc li, m
rng ra hay ti thit lp m hnh phn tch khi u v ri dn dn tng bc
a cc s thay i vo m hnh thit k cng nh cc m hnh xy dng (hnh
3.19).

Hnh 3.19- Mt h thng c m t trong nhiu m hnh


Bn thn ngn ng UML khng ph thuc vo giai on, c ngha l cng nhng
nguyn tc ngn ng v cng nhng biu c s dng m hnh ha
nhng s vic khc nhau trong nhng giai on khc nhau. Nh thit k nm
quyn quyt nh xem mt m hnh s phi thay i nhm t c nhng mc
ch no v bao trm nhng phm vi no. Ngn ng m hnh ha ch cung cp
kh nng to ra cc m hnh trong mt phong cch m rng v nht qun.
Khi m hnh ha bng ngn ng UML, ton b cng vic cn phi c thc hin
theo mt phng php hay mt qui trnh, xc nh r nhng bc cng vic no
phi c tin hnh v chng phi c thc thi ra sao. Mt qui trnh nh vy

Vng bc cng doanh nghip s


thng s chia cng vic ra thnh cc vng lp k tip, mi vng lp bao gm
cc cng vic: phn tch yu cu/ phn tch/ thit k/ thc hin/ trin khai. Mc
d vy, cng c mt quy trnh nh hn cp ti ni dung ca vic m hnh ha.
Bnh thng ra, khi sn xut mt m hnh hoc sn xut ch mt biu duy
nht, cng vic s bt u bng vic thu thp mt nhm thch hp cc c nhn
khc nhau, trnh by vn v mc tiu; h cng tc cho mt giai on hi tho
khoa hc v phc tho, trao i nhng sng kin v tng v m hnh c th.
Cng c c s dng trong giai on ny l ht sc khc bit v mang tnh
ngu hng - thng l giy dn post it hay bng trng. Cng vic c quyt
nh chng no nhng ngi tham gia c cm gic h c c mt nn tng
thc tin cho mt m hnh (ging nh mt tiu ). Kt qu sau s c a
vo mt cng c, m hnh tiu c t chc, v sau mt biu thc s
s c to dng nn, ph hp vi nhng quy nh ca ngn ng m hnh ha.
Sau , m hnh c chi tit ha qua nhng cng vic mang tnh vng lp, cng
ngy cng c nhiu chi tit v gii php c pht hin, c d liu ha v
c b sung. Khi c nhiu thng tin hn c thu thp v vn cng nh
gii php ca n, tiu ban u dn dn tr thnh mt li chun on cho mt
m hnh c kh nng s dng. Khi m hnh gn hon thin, mt s tch hp
v thm nh s c thc hin, dn ti vic m hnh hoc biu s c tch
hp vi nhng m hnh v biu khc trong cng d n m bo s nht
qun. M hnh sau cng c kim tra li chc chn n ang gii quyt
ng vn cn gii quyt (hnh 3.20).

Vng bc cng doanh nghip s

Hnh 3.20 - Mt tin trnh cho cng vic m hnh ho thc t


Cui cng, m hnh s c thc thi v trin khai thnh mt lot cc nguyn
mu (prototype), nguyn mu ny s c kim tra tm khim khuyt. Cc
khim khuyt bao gm k c cc chc nng cn thiu, s thc hin ti t hay ph
sn xut v pht trin qu cao. Nhng khim khuyt thng s p nh pht trin
r i r li cng vic ca mnh khc phc chng. Nu vn l qu ln, nh
pht trin c th s i ngc li tt c cc bc cng vic ca mnh cho ti tn
giai on s phc u tin. Nu cc vn ny khng ln, nh pht trin c l
ch cn thay i mt vi thnh phn trong t chc hoc c t ca m hnh. Xin
nh rng bc to nguyn mu khng th c thc hin ngay lp tc sau khi
hon tt biu ; n ch nn c thc hin khi c mt s lng ln cc biu

Vng bc cng doanh nghip s


lin quan. Nguyn mu sau ny c th c vt i, c th c to dng nn
ch nhm mc ch kim tra, hoc l nu bc to nguyn mu ny thnh
cng, n s tr thnh mt vng lp trong quy trnh pht trin tht s.

9- CNG C (TOOL)
S dng mt ngn ng m hnh ha phc tp v rng m nh UML cn thit s
tr gip ca cng c. Mc d phc tho u tin ca mt m hnh c th c
thc hin bng bng trng cng giy v mc, nhng cng vic bo tr, ng b
ha v m bo s nht qun trong mt lot cc biu khc nhau thng li
khng th tr thnh kh thi nu khng c cng c.
Th trng cng c m hnh ha dng trong mc s khi sut mt thi gian
di k t khi xut hin tng u tin v cc chng trnh tr gip cho vic to
chng trnh. Rt nhiu cng c trong thc t ch thng minh hn cc chng
trnh v mt cht, s dng mt vi quy ch kim tra tnh nht qun hoc mt vi
kin thc v phng php v ngn ng m hnh ha. Mc d c mt vi bc
tin nht nh v nhiu cng c hm nay ti gn sng kin khi thy kia
nhiu hn (Rational Rose), nhng th trng vn cn khng t cng c cha c
gt gia, vn cn cha li hoc nhng nt k quc, k c nhng vn n gin
nh copy v dn. Nhng cng c ny cn hn ch phng din rng tt c bn
chng u c ngn ng m hnh ha ring, hay t nht th cng c nhng nh
ngha ring ca chng v ngn ng ny.
Cng vi s ra i ca ngn ng UML, cc nh cung cp cng c m hnh ha gi
y c th dnh nhiu thi gian hn cho vic nng cp cng c, bi h khng cn
phi dn tm dn sc cho vic nh ngha cc phng php mi cng nh cc
ngn ng mi.
Mt cng c m hnh ha hn i cn phi cung cp cc chc nng sau:
V biu : cn phi to iu kin d dng v ra cc biu
trong ngn ng m hnh ha. Cng c cn phi kh nng thng
minh hiu mc ch ca cc biu v bit c nhng ng
ngha cng nh cc quy tc n gin, n c th cnh bo
hoc ngn chn vic s dng khng thch hp cc phn t m hnh.
Hot ng nh mt nh kho (Repository): cng c cn phi
h tr mt nh kho trung tm tt c cc thng tin v m hnh
c lu tr trong cng mt ch. Nu v d tn ca mt lp b thay
i trong mt biu , th s thay i ny cn phi xy ra trong tt
c cc biu khc c s dng lp ny.

Vng bc cng doanh nghip s


H tr nh hng (Navigation): cng c cn phi to iu
kin d dng cho ngi s dng nh hng v chuyn dch trong
m hnh theo di mt phn t t biu ny sang biu khc,
hoc m rng li miu t ca mt phn t.
H tr nhiu ngi s dng (multiuser support): Cng c
cn h tr cho nhiu ngi s dng, v to iu kin cho h cng
lm vic vi mt m hnh m khng ngn chn hoc quy ph ln
nhau.
T ng to code (code generate): mt cng c cao cp cn
phi c kh nng to ra code, ni tt c cc thng tin trong m hnh
c chuyn ti thnh cc khung code (code skeletons), c s
dng lm nn tng cho giai on xy dng chng trnh.
Ti to m hnh (Reserve engineer): Mt cng c cao cp cn
phi c kh nng c nhng thnh phn code ang tn ti v t
sn xut ra m hnh. T suy ra, mt m hnh c th c lm t
nhng dng code tn ti; hoc mt nh pht trin c th d
dng chuyn i chuyn v gia cng vic m hnh ha v cng vic
lp trnh.
Tch hp vi cc cng c khc: mt cng c cn phi c kh
nng tch hp vi nhng cng c khc, vi c vic pht trin mi
trng, v d nh cc trnh son tho (editor), chng trnh dch
(compiler), chng trnh tm li (debugger) cng nh cc cng c
ca doanh nghip khc nh cng c qun tr cu hnh, h thng
theo di cc phin bn.
Bao qut m hnh tt c cc mc tru tng ha khc
nhau: cng c cn phi d chuyn ti t li miu t cp tru
tng ha cao nht ca h thng (tc l dng mt lng cc gi
khc nhau) i xung cho ti cp ca nhng dng code tht s. Sau
, truy xut nhng dng lnh code cho mt th tc c th no
trong mt lp no , bn c th ch cn nhp chut vo tn ca
th tc trong mt biu .
Trao i m hnh: Mt m hnh hay mt biu ca mt m
hnh no cn phi c kh nng c xut ra t mt cng c ny
ri nhp vo mt cng c khc, ging nh nhng dng lnh code
c sn sinh trong mt cng c ny c th c s dng trong mt
cng c khc. Nguyn tc trao i cn phi c p dng cho

Vng bc cng doanh nghip s


cc m hnh trong mt ngn ng m hnh ha c nh ngha chnh
xc.

10- TM TT V UML
UML t chc mt m hnh thnh mt lot cc hng nhn, th hin cc kha cnh
khc nhau ca h thng. Ch khi kt hp tt c cc hng nhn li vi nhau,
ngi ta mi co c mt bc tranh trn vn v h thng. Mt hng nhn khng
phi l mt hnh v, ni dung ca n c miu t qua cc biu , y l nhng
hnh v cha ng cc phn t m hnh ha. Mt biu bnh thng ch trnh
by mt phn ni dung ca mt hng nhn, v mt hng nhn c nh ngha
vi rt nhiu biu . Mt biu cha cc phn t m hnh, v d nh lp, i
tng, nt mng, thnh phn v nhng mi quan h nh ni kt, khi qut ha,
ph thuc. Cc phn t ny c ngha (semantic) v cc k hiu hnh hc.
Cc loi biu trong UML l: biu lp, biu i tng, biu Use case,
biu trng thi, biu trnh t, biu cng tc, biu hnh ng, biu
thnh phn v biu trin khai. Mc ch ca cc loi biu cng nh quy tc
v chng s c miu t chi tit trong chng sau.
UML c mt s c ch chung b sung thng tin khng th c th hin trong
qu trnh v biu . Nhng thng tin ny bao gm v d nhng thnh phn
trang tr, cc li ghi ch c th cha bt k loi thng tin no cng nh cc thuc
tnh c t. Ngoi ra cn c cc c ch m rng, bao gm gi tr nh km, hn
ch i vi phn t, v khun mu, nh ngha mt loi phn t m hnh mi da
trn mt phn t sn c.
Mt h thng s c miu t trong nhiu loi m hnh khc nhau, mi loi m
hnh nhm mt mc ch khc nhau. M hnh phn tch miu t nhng yu cu
v mt chc nng v m hnh ha cc lp ngoi i thc. M hnh thit k
chuyn ti kt qu phn tch thnh mt gii php k thut, theo khi nim ca
mt thit k phn mm hot ng hon chnh. M hnh xy dng code th hin
h thng qua vic tho chng cho n trong mt ngn ng lp trnh hng i
tng. V cui cng, m hnh trin khai nh v chng trnh va c to nn
trong mt kin trc vt l bao gm cc my tnh v cc trang thit b. Cng vic
c lm theo nhiu vng lp khc nhau ch khng phi ch l mt chui thc
hin mt ln.
s dng UML mt cch nghim chnh cho mt d n c tht ngoi i, bn
cn cng c. Mt cng c tn tin c kh nng cho ngi dng v biu , tr tt
c cc thng tin vo mt kho chung, cho php d dng dch chuyn gia cc
hng nhn v biu khc nhau trong m hnh, to bo co v ti liu, to

Vng bc cng doanh nghip s


khung code t m hnh, c nhng dng code sn c ri sn sinh ra m hnh t
, v d dng tch hp vi cc cng c pht trin khc.

PHN CU HI
Hi: UML c cng c no gip nm bt cc yu cu ca khch hng (ngi s
dng)?
p: Use Case
Hi: Mt biu trong UML c bao cha cc hng nhn khc nhau.
p: Sai, mt hng nhn bao gm mt loi cc biu khc nhau
Hi: Hy lit k cc thnh phn ch yu ca ngn ng UML
p: Hng nhn( View), Biu (Diagram), Phn t m hnh, C ch
chung.
Hi: UML c cng c no phc v cho giai on th nghim n v (Unit
Testing)?
p: Biu lp v c t lp
Hi: UML c cng c no phc v cho giai on th nghim h thng (System
Testing)?
p: Use case Diagram
Hi: UML to nn tng cho vic giao tip gia khch hng, nh phn tch, nh
thit k v lp trnh vin.
p: ng

Vng bc cng doanh nghip s

Chng 4: M hnh ha USE CASE

1- GII THIU USE CASE


Trong giai on phn tch, ngi s dng cng tc cng nhm pht trin phn
mm to nn mt t hp thng tin quan trng v yu cu i vi h thng.
Khng ch l ngi cung cp thng tin, bn thn ngi s dng cn l mt thnh
phn ht sc quan trng trong bc tranh ton cnh v nhm pht trin cn
phi ch ra c phng thc hot ng ca h thng tng lai theo hng nhn
ca ngi s dng. Hiu c im quan trng ny l cha kha to dng
c nhng h thng va tho mn cc yu cu t ra va d dng s dng,
thm ch to nim vui thch trong s dng.
Nh vy cng c gip ta m hnh ho h thng t hng nhn ca ngi s dng
gi l Use Case. V tr li r hn v Use Case ta xt mt trng hp sau:
Gi s ti quyt nh mua mt chic my fax mi. Khi n ca hng my vn
phng, ti mi nhn ra l phi chn la trong mt danh sch my mc rt phong
ph. Loi my no s c chn y? Ti t hi tht chnh xc mnh mun lm g
vi chic my fax s mua? Ti mun c nhng tnh nng no? Ti mun dng
bng giy thng hay giy thermal ? Ti mun copy bng ci my ? Ti mun
ni n vi my tnh ca mnh? Ti mun dng n va lm my fax va lm
scanner? Ti c cn phi gi fax tht nhanh n mc cn mt chc nng chn
s tng tc? Liu ti c mun s dng my fax ny phn bit gia mt c
in thoi gi ti v mt bn fax gi ti ?.
Tt c chng ta u tri qua nhng kinh nghim nh vy khi quyt nh mua mt
mn hng no khng phi v nim vui bc pht. Vic chng ta s lm trong
nhng trng hp nh vy l mt dng phn tch Use Case: Chng ta t hi
mnh s s dng sn phm (hay h thng) sp bt ta b ra mt khon tin ng
k ra sao? Tr li xong cu hi trn ta mi c kh nng chn ra sn phm
tho mn nhng i hi ca mnh. iu quan trng y l phi bit nhng i
hi l g.
Loi quy trnh ny ng vai tr rt quan trng i vi giai on phn tch ca
mt nhm pht trin h thng. Ngi dng mun s dng h thng tng lai, h
thng m bn sp thit k v xy dng, nh th no?
Use Case l mt cng c tr gip cho cng vic ca nh phn tch cng ngi s
dng quyt nh tnh nng ca h thng. Mt tp hp cc Use Case s lm ni
bt mt h thng theo phng din nhng ngi dng nh lm g vi h thng
ny.

Vng bc cng doanh nghip s


lm r hn, ta hy xt mt v d nh bng l. H thng tng lai trong trng
hp ny s s nhiu ngi s dng, mi ngi s giao tip vi h thng cho mt
mc ch khc bit:
Qun tr gia s dng h thng cho mc ch thng k
Nhn vin tip khch s dng h thng thc hin cc dch v
phc v khch hng.
Nhn vin phng u t s dng h thng thc hin cc giao
dch lin quan n u t.
Nhn vin thm tra ch k s dng h thng cho mc ch xc
nhn ch k v bo tr thng tin lin quan n khch hng.
Khch hng giao tip vi h thng (nh bng) cho cc hot ng
s dng dch v nh m ti khon, gi tin vo, rt tin mt,
Qu trnh tng tc gia ngi s dng v h thng trong mi mt tnh hung k
trn s khc nhau v ph thuc vo chc nng m ngi s dng mun thc thi
cng h thng.
Nhm pht trin h thng cn phi xy dng nn mt kch bn nu bt s tng
tc cn thit gia ngi s dng v h thng trong mi kh nng hot ng. V
d nh kch bn cho s tng tc gia nhn vin thu ngn v h thng ca b
phn tit kim trong sut tin trnh ca mt giao dch. Mt kch bn khc v d l
chui tng tc xy ra gia b phn tit kim v b phn u t trong mt giao
dch chuyn tin.
Nhn chung, c th coi mt Use case nh l tp hp ca mt lot cc cnh kch
v vic s dng h thng. Mi cnh kch m t mt chui cc s kin. Mi mt
chui ny s c kch hot bi mt ngi no , mt h thng khc hay l mt
phn trang thit b no , hoc l mt chui thi gian. Nhng thc th kch hot
nn cc chui s kin nh th c gi l cc Tc Nhn (Actor). Kt qu ca
chui ny phi c gi tr s dng i vi hoc l tc nhn gy nn n hoc l
mt tc nhn khc.

2- MT S V D USE CASE
Trong v d nh bng l trn, mt s nhng Use Case d thy nht l:
Mt khch hng m mt ti khon mi.
Phng u t tnh ton tin li cho cc ti khon u t.
Mt chng trnh u t mi c a vo p dng.

Vng bc cng doanh nghip s


Yu cu chuyn tin ca khch hng c thc hin.
Chuyn tin theo k hn t mt ti khon u t sang mt ti
khon tit kim.

3- S CN THIT PHI C USE CASE


Use Case l mt cng c xut sc khuyn khch nhng ngi dng tim nng
ni v h thng t hng nhn ca h. i vi ngi dng, chng phi bao gi
vic th hin v m t nhng nh trong vic s dng h thng cng l chuyn
d dng. Mt hin thc c tht l ngi s dng thng bit nhiu hn nhng g
m h c th din t ra: Cng c Use Case s gip cho nhm pht trin b gy
"lp bng" , ngoi ra mt s trnh by trc quan cng cho php bn kt hp
cc biu Use Case vi cc loi biu khc.
Sng kin ch o l li cun c ngi dng tham gia vo nhng giai on u
tin ca qu trnh phn tch v thit k h thng. Vic ny s nng cao xc sut
cho vic h thng chung cuc tr thnh mt cng c quen thuc i vi cc
ngi dng m n d nh s tr gip thay v l mt tp hp kh hiu v ri
rm ca cc khi nim my tnh m ngi dng trong gii doanh thng c cm
gic khng bao gi hiu c v khng th lm vic cng.
Cng tc li ko ngi s dng tham gia tch cc vo qu trnh phn tch l nn
tng quan trng cho vic to dng mt m hnh "thnh cng", mt m hnh d
c ngi s dng hiu v chp nhn sau khi thm xc cc nhim v cn
bn. Ngoi ra, Use Case cn gip nhm pht trin quyt nh cc lp m h
thng phi trin khai.

4- M HNH HA USE CASE


Trng hp s dng l mt k thut m hnh ha c s dng m t mt h
thng mi s phi lm g hoc mt h thng ang tn ti lm g. Mt m hnh
Use Case c xy dng qua mt qu trnh mang tnh vng lp (interative),
trong nhng cuc hi tho bn lun gia nhm pht trin h thng v khch
hng (hoc/v ngi s dng cui) s dn ti mt c t yu cu c tt c mi
ngi chp nhn. Ngi cha tinh thn ca m hnh ha Use Case l Ivar
Jacobson, ng to nn k thut m hnh ha da trn nhng kinh nghim thu
thp c trong qu trnh to h thng AXE ca hng Erisson. Use Case nhn
c mt s quan tm c bit ln lao t pha cng ng hng i tng v
tc ng ln rt nhiu phng php hng i tng khc nhau.
Nhng thnh phn quan trng nht ca mt m hnh Use Case l Use Case, tc
nhn v h thng. Ranh gii ca h thng c nh ngha qua chc nng tng
th m h thng s thc thi. Chc nng tng th c th hin qua mt lot cc

Vng bc cng doanh nghip s


Use Case v mi mt Use Case c t mt chc nng trn vn, c ngha l Use
Case phi thc thi ton b chc nng , t s kin c kch hot u tin bi
mt tc nhn ngoi cnh cho ti khi chc nng i hi c thc hin hon tt.
Mt Use Case lun lun phi cung cp mt gi tr no cho mt tc nhn, gi
tr ny l nhng g m tc nhn mong mun t pha h thng. Tc nhn l bt k
mt thc th ngoi cnh no mong mun tng tc vi h thng. Thng thng,
l mt ngi s dng ca h thng, nhng nhiu khi cng c th l mt h
thng khc hoc l mt dng my mc thit b phn cng no cn tng tc
vi h thng.
Trong k thut m hnh ha Use Case, h thng s c hnh dng ca mt "hp
en" v cung cp cc Use Case. H thng lm iu nh th no, cc Use Case
c thc thi ra sao, l nhng kha cnh cha c cp ti trong giai on
ny. Trong thc t, nu m hnh ha Use Case c thc hin trong nhng giai
on u ca d n th thng nh pht trin s khng bit Use Case sau ny s
c thc thi (tc l bin thnh nhng dng code tht s) nh th no.
Mc tiu chnh yu i vi cc Use Case l:
quyt nh v m t cc yu cu v mt chc nng ca h
thng, y l kt qu rt ra t s tha thun gia khch hng
(v/hoc ngi s dng cui) v nhm pht trin phn mm.
to nn mt li m t r rng v nht qun v vic h thng
cn phi lm g, lm sao m hnh c th c s dng nht qun
sut ton b qu trnh pht trin, c s dng lm cng c giao
tip cho tt c nhng ngi pht trin nn cc yu cu ny, v
to nn mt nn tng cho vic to nn cc m hnh thit k cung
cp cc chc nng c yu cu.
to nn mt nn tng cho cc bc th nghim h thng, m
bo h thng tha mn ng nhng yu cu do ngi s dng a
ra. Trong thc t thng l tr li cu hi: Liu h thng cui
cng c thc hin nhng chc nng m khi u khch hng
ngh?
cung cp kh nng theo di cc yu cu v mt chc nng c
chuyn thnh cc lp c th cng nh cc th tc c th trong h
thng.
n gin ha vic thay i v m rng h thng qua vic thay
i v m rng m hnh Use Case, sau ch theo di ring nhng
Use Case b thay i cng nhng hiu ng ca chng trong thit
k h thng v xy dng h thng.

Vng bc cng doanh nghip s


Nhng cng vic c th cn thit to nn mt m hnh Use Case bao gm:
1. nh ngha h thng (xc nh phm vi h thng)
2. Tm ra cc tc nhn cng nh cc Use Case
3. M t Use Case
4. nh ngha mi quan h gia cc Use Case
5. Kim tra v ph chun m hnh.
y l mt cng vic mang tnh tng tc rt cao, bao gm nhng cuc tho
lun vi khch hng v nhng ngi i din cho cc loi tc nhn. M hnh Use
Case bao gm cc biu Use Case ch ra cc tc nhn, Use Case v mi quan
h ca chng vi nhau. Cc biu ny cho ta mt ci nhn tng th v m hnh,
nhng nhng li m t thc s ca tng Use Case thng li l vn bn. V cc
m hnh trc quan khng th cung cp tt c cc thng tin cn thit, nn cn
thit phi dng c hai k thut trnh by .
C rt nhiu ngi quan tm n vic s dng cc m hnh Use Case. Khch
hng (v/hoc ngi s dng cui) quan tm n chng v m hnh Use Case c
t chc nng ca h thng v m t xem h thng c th v s c s dng ra
sao. Cc Use Case v vy phi c m t trong nhng thut ng v ngn ng
ca khch hng/ngi s dng.
Nh pht trin cn n cc m hnh Use Case hiu h thng cn phi lm g,
v qua c c mt nn tng cho nhng cng vic tng lai (cc m hnh
khc, cc cu trc thit k v vic thc thi xy dng h thng bng code).
Cc nhm chuyn gia th nghim tch hp v th nghim h thng cn n Use
Case th nghim v kim tra xem h thng c m bo s thc hin ng
chc nng c c t trong giai on u.
V cui cng, bt k ngi no lin quan n nhng hot ng lin kt n chc
nng ca h thng u c th quan tm n cc m hnh Use Case; v d nh
cc nhm tip th, bn hng, h tr khch hng v cc nhm son tho ti liu.
M hnh Use Case m t hng nhn Use Case ca h thng. Hng nhn ny l
rt quan trng, bi n nh hng n tt c cc hng nhn khc ca h thng.
C cu trc logic ln cu trc physic u chu nh hng t cc Use Case, bi
chc nng c c t trong m hnh ny chnh l nhng chc nng c thc
thi trong cc cu trc kia. Mc ch cui cng l thit k ra mt gii php tha
mn cc yu cu .
M hnh ha cc Use Case chng phi ch c dng nm bt cc yu cu ca
h thng mi; n cng cn c s dng h tr cho vic pht trin mt phin

Vng bc cng doanh nghip s


bn mi ca h thng. Khi pht trin mt phin bn mi ca h thng ang tn
ti, ngi ta s b sung thm cc chc nng mi vo m hnh Use Case c
bng cch thm vo cc tc nhn mi cng nh cc Use Case mi, hoc l thay
i c t ca cc Use Case c. Khi b sung thm vo m hnh Use Case ang
tn ti, hy ch khng b ra bt k mt chc nng no vn cn c cn ti.

5- BIU USE CASE


Use Case c m t trong ngn ng UML qua biu Use Case (Use Case
Diagram), v mt m hnh Use Case c th c chia thnh mt s lng ln cc
biu nh th. Mt biu Use Case cha cc phn t m hnh biu th h
thng, tc nhn cng nh Use Case v ch ra cc mi quan h gia cc Use Case.
Li m t ni dung Use Case thng c cung cp di dng vn bn. Trong
UML, li m t c coi l thuc tnh "vn bn" (document) ca Use Case. Li
m t ny bao cha nhng thng tin quan trng, nh ngha cc yu cu v chc
nng c th. Thay cho vic m t Use Case bng vn bn, bn cng c th v
mt biu hot ng (activity diagram). Mc du vy, nn nh rng mt Use
Case cn phi c m t sao cho d hiu v d giao tip i vi ngi s dng,
m nhng cu trc phc tp nh mt biu hot ng c th gy cm gic xa
l i vi nhng ngi khng quen s dng.
Tm tt: Mt biu Use Case th hin:
H thng
Tc nhn v
Use Case.
V d biu Use Case trong UML:

Hnh 4.1- Mt v d biu Use case trong UML


Trong :
H thng c th hin qua hnh ch nht vi tn h thng bn
trn

Vng bc cng doanh nghip s


Tc nhn c th hin qua k hiu hnh nhn
Use Case c th hin qua hnh ellipse
5.1- H thng:
V h thng l mt thnh phn ca m hnh Use Case nn ranh gii ca h thng
m ta mun pht trin cn phi c nh ngha r rng. Xin nh rng mt h
thng khng phi bao gi cng nht thit l mt h thng phn mm; n c th
l mt chic my, hoc l mt doanh nghip. nh ngha cc ranh gii v trch
nhim ca h thng khng phi bao gi cng l vic d dng, bi khng phi bao
gi ngi ta cng r rng nhn ra tc v no c kh nng c t ng ha tt
nht h thng ny v tc v no th tt nht nn thc hin th cng hoc dnh
cho cc h thng khc. Mt kha cnh khc cn ch l h thng cn phi ln ti
mc no trong phin bn u tin ca n. C gng ti a cho phin bn u
tin ca h thng thng l cch m ngi ta hay thc hin, th nhng nhng
mc tiu qu tm nh vy c th khin cho h thng tr nn qu ln v thi gian
cung cp h thng qu lu. Mt sng kin tt hn l xc nhn cho r cc chc
nng cn bn v tp trung vo vic nh ngha mt kin trc h thng thch hp,
r rng, c nn tng rng m nhiu chc nng hn c th c b sung vo
h thng ny trong cc phin bn sau.
Yu t quan trng l bn phi to dng c mt bn catalog ca cc khi nim
(cc thc th) trung tm cng vi cc thut ng v nh ngha thch hp trong
nhng giai on u ca thi k phn tch. y cha phi m hnh phm vi i
tng, m ng hn l mt c gng m t cc thut ng ca h thng hoc
doanh nghip m chng ta cn m hnh ha. Cc thut ng sau s c dng
m t Use Case. Phng thc c th ca catalog ny c th rt khc nhau; n
c th l mt m hnh khi nim ch ra cc mi quan h n gin hoc ch l mt
vn bn cha cc thut ng cng li m t vn tt nhng thut ng ny trong
th gii thc.
5.2- Tc nhn:
Mt tc nhn l mt ngi hoc mt vt no tng tc vi h thng, s dng
h thng. Trong khi nim "tng tc vi h thng", chng ta mun ni rng
tc nhn s gi thng ip n h thng hoc l nhn thng ip xut pht t h
thng, hoc l thay i cc thng tin cng vi h thng. Ni mt cch ngn gn,
tc nhn thc hin cc Use Case. Thm mt iu na, mt tc nhn c th l
ngi m cng c th l mt h thng khc (v d nh l mt chic my tnh
khc c ni kt vi h thng ca chng ta hoc mt loi trang thit b phn
cng no tng tc vi h thng).

Vng bc cng doanh nghip s


Mt tc nhn l mt dng thc th (mt lp), ch khng phi mt thc th. Tc
nhn m t v i din cho mt vai tr, ch khng phi l mt ngi s dng
tht s v c th ca h thng. Nu mt anh chng John no mun mua hp
ng bo him t mt hng bo him, th vai tr ca anh ta s l ngi mua hp
ng bo him, v y mi l th m chng ta mun m hnh ha, ch khng
phi bn thn anh chng John. Trong s thc, mt con ngi c th c th ng
vai tr lm nhiu tc nhn trong mt h thng: mt nhn vin ngn hng ng
thi cng c th l khch hng ca chnh ngn hng . Mt khc, s lng cc
vai tr m mt con ngi c th c php m trch trong mt h thng cng
c th b hn ch, v d cng mt ngi khng c php va son ha n va
ph duyt ha n . Mt tc nhn s c mt tn, v ci tn ny cn phi phn
nh li vai tr ca tc nhn. Ci tn khng c phn nh li mt thc th
ring bit ca mt tc nhn, m cng khng phn nh chc nng ca tc nhn
.
Mt tc nhn giao tip vi h thng bng cch gi hoc l nhn thng ip,
ging nh khi nim chng ta quen bit trong lp trnh hng i tng. Mt
Use Case bao gi cng c kch hot bi mt tc nhn gi thng ip n cho
n. Khi mt Use Case c thc hin, Use Case c th gi thng ip n mt
hay l nhiu tc nhn. Nhng thng ip ny cng c th n vi cc tc nhn
khc, bn cnh chnh tc nhn kch hot v gy ra Use Case.
Tc nhn cng c th c xp loi. Mt tc nhn chnh (Primary Actor) l tc
nhn s dng nhng chc nng cn bn ca h thng, tc l cc chc nng
chnh. V d, trong mt h thng bo him, mt tc nhn cn bn c th l tc
nhn x l vic ghi danh v qun l cc hp ng bo him. Mt tc nhn ph
(secondary actor) l tc nhn s dng cc chc nng ph ca h thng, v d
nh cc chc nng bo tr h thng nh qun tr ngn hng d liu, giao tip,
back-up v cc tc v qun tr khc. Mt v d cho tc nhn ph c th l nh
qun tr hoc l mt nhn vin s dng chc nng trong h thng rt ra cc
thng tin thng k v doanh nghip. C hai loi tc nhn ny u c m hnh
ha m bo m t y cc chc nng ca h thng, mc d cc chc
nng chnh mi tht s nm trong mi quan tm ch yu ca khch hng.
Tc nhn cn c th c nh ngha theo dng tc nhn ch ng (active actor)
hay tc nhn th ng (passive actor). Mt tc nhn ch ng l tc nhn gy ra
Use Case, trong khi tc nhn th ng khng bao gi gy ra Use Case m ch
tham gia vo mt hoc l nhiu Use Case.
5.3- Tm tc nhn:

Vng bc cng doanh nghip s


Khi nhn din tc nhn, c ngha l chng ta lc ra cc thc th ng quan tm
theo kha cnh s dng v tng tc vi h thng. Sau chng ta c th th
t mnh vo v tr ca tc nhn c gng nhn ra cc yu cu v i hi ca
tc nhn i vi h thng v xc nh tc nhn cn nhng Use Case no. C th
nhn din ra cc tc nhn qua vic tr li mt s cc cu hi nh sau:
Ai s s dng nhng chc nng chnh ca h thng (tc nhn
chnh)?
Ai s cn s h tr ca h thng thc hin nhng tc v hng
ngy ca h?
Ai s cn bo tr, qun tr v m bo cho h thng hot ng (tc
nhn ph)?
H thng s phi x l v lm vic vi nhng trang thit b phn
cng no?
H thng cn phi tng tc vi cc h thng khc no? Nhm cc
h thng ny c chia ra lm hai nhm, nhm kch hot cho mi
quan h vi h thng, v nhm m h thng cn phi xy dng ca
chng ta s thit lp quan h. Khi nim h thng bao gm c cc
h thng my tnh khc cng nh cc ng dng khc trong chnh
chic my tnh m h thng ny s hot ng.
Ai hay ci g quan tm n kt qu (gi tr) m h thng s sn
sinh ra?
Khi i tm nhng ngi s dng h thng, ng quan st nhng ngi ang ngi
trc mn hnh my tnh. Nn nh rng, ngi s dng c th l bt k ngi
no hay bt k vt no tng tc hoc trc tip hoc gin tip vi h thng v
s dng cc dch v ca h thng ny t n mt kt qu no . ng
qun rng m hnh ha Use Case c thc hin m hnh ha mt doanh
nghip, v th tc nhn thng thng l khch hng ca doanh nghip . T
suy ra h khng phi l ngi s dng theo ngha n gin v trc tip l
ngi ngi trc mn hnh my tnh v thao tc vi my tnh.
c th nhn dng c tt nhiu tc nhn khc nhau, hy tin hnh nghin
cu nhng ngi s dng ca h thng hin thi (mt h thng th cng hoc
mt h thng ang tn ti), hi xem h ng nhng vai tr no khi thc thi cng
vic hng ngy ca h vi h thng. Cng ngi s dng c th thc thi nhiu
vai tr khc nhau ti nhiu thi im khc nhau, ty thuc vo vic chc nng
no trong h thng ang c s dng.

Vng bc cng doanh nghip s


Xin nhc li, mt tc nhn l mt vai tr (mt lp), ch khng phi mt thc th
ring l. Mc d vy, khi cung cp v d l mt vi cc thc th ca mt tc nhn,
bn c th m bo rng tc nhn tht s tn ti. Mt tc nhn phi c mt
s lin kt (Association) no vi mt hoc l nhiu Use Case. Mc d c
nhng tc nhn c th khng kch hot nn mt Use Case no, nhng tc nhn
s giao tip t nht vi mt Use Case ti mt thi im no . Cn phi t
tn cho tc nhn lm sao tn phn nh ng vai tr ca tc nhn trong h
thng.
5.4- Biu din tc nhn trong ngn ng UML:
Tc nhn trong UML l mt lp vi bit ng "Actor" (Tc nhn) v tn ca lp
ny l tn ca tc nhn (phn nh vai tr ca tc nhn). Mt lp tc nhn c th
va c thuc tnh (attribute) ln hnh vi (method) cng nh mt thuc tnh ti
liu (document) m t tc nhn . Mt lp tc nhn c mt biu tng chun
ha, biu tng "hnh nhn":

Hnh 4.2- biu tng tc nhn trong UML


5.5- Use Case:
Mt Use Case l i din cho mt chc nng nguyn vn m mt tc nhn nhn
c. Mt Use Case trong ngn ng UML c nh ngha l mt tp hp ca cc
chui hnh ng m mt h thng thc hin to ra mt kt qu c th quan
st c, tc l mt gi tr n vi mt tc nhn c th. Nhng hnh ng ny
c th bao gm vic giao tip vi mt lot cc tc nhn cng nh thc hin tnh
ton v cng vic ni b bn trong h thng.
Cc tnh cht tiu biu ca mt Use Case l:
Mt Use Case bao gi cng c gy ra bi mt tc nhn, c
thc hin nhn danh mt tc nhn no . Tc nhn phi ra lnh
cho h thng thc hin Use Case , d l trc tip hay gin tip.
Him khi c tc nhn khng lin quan n vic gy ra mt Use Case
no .
Mt Use Case phi cung cp mt gi tr cho mt tc nhn. Gi tr
khng phi bao gi cng cn thit phi ni tri ra ngoi, nhng
lun phi c thy r.

Vng bc cng doanh nghip s


Mt Use Case l phi hon tt. Mt trong nhng li thng gp l
s chia mt Use Case thnh cc Use Case nh hn, v cc Use Case
ny thc thi ln nhau ging nh vic gi hm cho mt ngn ng lp
trnh. Mt Use Case s khng c coi l hon tt chng no m gi
tr cui cng ca n cha c sn sinh ra, thm ch ngay c khi
xy ra nhiu ng tc giao tip (v d nh i thoi vi ngi s
dng).
Use Case c ni vi tc nhn qua lin kt (association). ng lin kt ch ra
nhng tc nhn no giao tip vi Use Case no. Mi lin kt bnh thng ra l
mt mi quan h 1-1 v khng c hng. iu mun ni ln rng mt thc
th ca lp tc nhn s giao tip vi mt thc th ca mt Use Case v c hai c
th giao tip vi nhau trong c hai chiu. Mt Use Case s c t tn theo mt
thc th m Use Case s thc hin, v d nh k hp ng bo him, cp nht
danh sch, v.v, v thng l mt cm t hn l ch mt t ring l.
Mt Use Case l mt lp, ch khng phi mt thc th. N m t trn vn mt
chc nng, k c cc gii php b sung v thay th c th c, cc li c th xy
ra cng nh nhng ngoi l c th xy ra trong qu trnh thc thi. Mt kt qu
ca s thc th ha mt Use Case c gi l mt cnh kch (scenario) v n i
din cho mt s s dng c th ca h thng (mt ng dn thc thi ring bit
qua h thng). V d mt cnh kch ca Use Case "K hp ng bo him" c th
l "John lin h vi h thng qua in thoi ri sau k hp ng bo him t
cho chic xe Toyota Carolla m anh ta va mua."
5.6- Tm Use Case:
Qu trnh tm cc Use Case bt u vi cc tc nhn c xc nh phn
trc. i vi mi tc nhn, hy hi cc cu hi sau:
a. Tc nhn ny cn nhng chc nng no t h thng? Hnh ng chnh
ca tc nhn l g ?.
V d cho mt giao dch rt tin bn my ATM trong mt nh bng
l, cc hnh ng chnh ca khch hng (tc nhn) c th l:
t th vo my ATM
Nhp password
Nhp loi chuyn dch
Nhp s tin mt mun rt ra
Yu cu v loi tin

Vng bc cng doanh nghip s


Nht tin ra t my
Rt th v t in kt qu giao dch
b. Tc nhn c cn phi c, phi to, phi hy b, phi sa cha, hay l
lu tr mt loi thng tin no trong h thng?
V d:
Nhn vin nh bng liu c quyn truy xut hay thay i
mc tin li?
Khch hng c th thay i password ca mnh.
c. Tc nhn c cn phi bo cho h thng bit v nhng s kin no ?
Nhng s kin nh th s i din cho nhng chc nng no?
V d:
Khch hng kt thc ti khon, nhn vin cung cp nhng
thng tin ny cho h thng.
C mt chng trnh u t mi, cc chi tit ca chng
trnh ny s phi c nhn vin nh bng nhp vo h thng.
d. H thng c cn phi thng bo cho Actor v nhng thay i bt ng
trong ni b h thng?
Trong ti khon cn qu t tin.
Ba k lin tip tin lng cha v ti khon.
e. Cng vic hng ngy ca tc nhn c th c n gin ha hoc hu
hiu ha qua cc chc nng mi trong h thng (thng y l nhng
chc nng tiu biu cha c t ng ha trong h thng)?
f. Cc cu hi khc:
Use Case c th c gy ra bi cc s kin no khc?
V d:
S kin thi gian: Cui thng, ht hn u t.
S kin bnh thng ca h thng: T ng chuyn tin theo
cc lnh xc nh trc.
Cc s kin bt bnh thng: Hp ng u t kt thc trc
thi hn.

Vng bc cng doanh nghip s


H thng cn nhng thng tin u vo/u ra no? Nhng thng
tin u vo/u ra t u ti v s i u?
Kh khn v thiu ht chnh trong h thng hin thi nm u
(th cng /t ng ha)?
i vi nhm cu hi cui khng c ngha l Use Case y khng c tc nhn,
m tc nhn s c nhn ra ch khi chng ta nhn din ra cc Use Case ny v
sau xc nh tc nhn da trn c s l Use Case. Xin nhc li, mt Use Case
bao gi cng phi c lin kt vi t nht mt tc nhn.
5.7- V d tm Use Case:
Nh bng ABC a ra cc yu cu sau:
Mt khch hng c th mun gi tin vo, rt tin ra hoc n gin
kim tra li s tin trong ti khon ca anh ta qua my t ng rt
tin (ATM). Khi a tin vo hoc rt tin ra, cn phi ghi ra giy
kt qu nhng chuyn dch thc hin v trao t giy ny cho
khch hng.
Quan st cc chc nng cn bn v cc thnh phn tham gia, ta thy c hai tc
nhn d nhn ra nht l khch hng v nhn vin thu ngn.
Qua , c th nhn dng cc Use Case sau:
Gi tin vo.
Rt tin ra.
Kim tra mc tin trong ti khon
Thc hin cc chuyn dch ni b h thng
In kt qu cc chuyn dch thc hin.

Vng bc cng doanh nghip s

Hnh 4.3 Cc Use case trong h thng ATM


Use Case gi tin vo v rt tin ra ph thuc vo Use Case thc hin cc
chuyn dch trong ni b h thng, vic thc hin ny v phn n li ph thuc
vo chc nng in ra cc cng vic c thc hin. Kim tra mc tin trong ti
khon l mt Use Case c lp, khng ph thuc vo cc Use Case khc.

6- CC BIN TH (VARIATIONS) TRONG MT USE CASE


Mi Use Case s c mt dng hnh ng chnh (Basic Course). l tin trnh
bnh thng hay tin trnh mong i i vi Use Case ny.
Ngoi ra, c th cn c mt hay nhiu dng hnh ng thay th (Alternative)
khc. Chng c th c chia lm hai nhm chnh:
Thay th bnh thng (Normal Alternative)
iu kin gy li (Error Condidtions)
Nhng g mang tnh bnh thng hn trong Use Case c gi l Thay th bnh
thng.
C th miu t cc dng hnh ng thay th bng t ng (xem phn ti liu Use
Case ).
V d mt khch hng c th chn cc loi giao dch sau ca ATM:
Gi tin vo
Rt tin ra
Kim tra mc tin trong ti khon
y l nhng v d cho cc dng hnh ng thay th bnh thng.

Vng bc cng doanh nghip s


iu kin gy li i din cho nhng bc tin hnh bt bnh thng trong mt
Use Case. Cn phi tnh trc n nhng iu kin gy li , v d:
Mc tin trong ti khon khng tin hnh giao dch
Password khng ng
ATM b nghn th
Hnh sau nu bt dng hnh ng chnh v nhng dng hnh ng thay th cng
nh s khc bit ca chng i vi tin trnh mong i ca Use Case.

Hnh 4.4 Cc tin trnh trong h thng ATM

7- QUAN H GIA CC USE CASE


C ba loi quan h Use Case: Quan h m rng, quan h s dng v quan h to
nhm. Quan h m rng v quan h s dng l hai dng khc nhau ca tnh tha
k. Quan h to nhm l mt phng cch t nhiu Use Case chung vi
nhau vo trong mt gi.

Vng bc cng doanh nghip s


7.1- Quan h m rng
Nhiu khi trong qu trnh pht trin Use Case, ngi ta thy mt s Use Case
tn ti cung cp mt phn nhng chc nng cn thit cho mt Use Case mi.
Trong mt trng hp nh vy, c th nh ngha mt Use Case mi l Use Case
c cng thm mt phn mi. Mt Use Case nh vy c gi l mt Use Case m
rng (Extended Use Case ). Trong quan h m rng, Use Case gc (Base Use
Case ) c dng m rng phi l mt Use Case hon thin. Use Case m
rng khng nht thit phi s dng ton b hnh vi ca Use Case gc.
Biu sau ch ra Use Case K hp ng mua t l Use Case m rng ca
"K hp ng bo him.

Hnh 4.5 - Quan h m rng gia cc Use Case


Quan h m rng gia cc Use Case c biu th bng on thng vi hnh tam
gic rng tr v pha Use Case c dng m rng, i km vi stereotype
<<extends>>.
7.2- Quan h s dng
Khi mt nhm cc Use Case cng chung mt hnh vi no th hnh vi ny c
th c tch ring ra thnh mt Use Case ring bit v n c th c s dng
bi cc Use Case kia, mt mi quan h nh vy c gi l quan h s dng.
Trong quan h s dng, phi s dng ton b Use Case khi qut ha, ni mt
cch khc, ta c mt Use Case ny s dng ton b mt Use Case khc. Cc
hnh ng trong Use Case khi qut ha khng cn phi c s dng trong
cng mt tin trnh. Chng c th c trn ln vi cc hnh ng xy ra trong
Use Case chuyn bit ha.

Vng bc cng doanh nghip s

Hnh 4.6 - Quan h s dng gia cc Use Case


Quan h s dng gia cc Use Case c biu th bng on thng vi hnh tam
gic rng tr v pha Use Case c s dng, i km vi stereotype <<uses>>.
7.3- Quan h chung nhm
Khi mt s cc Use Case cng x l cc chc nng tng t hoc c th lin
quan n nhau theo mt phng thc no , ngi ta thng nhm chng li
vi nhau.
Nhm cc Use Case c thc hin bng khi nim "Gi" (Package) ca UML. Gi
khng cung cp gi tr gia tng cho thit k.
V d: tt c cc Use Case c lin quan n s tng tc gia khch hng v
nhn vin thu ngn s c nhm thnh "Package Khch hng- N/v thu ngn"

Hnh 4.7 Package ca UML


Tm tt v Use Case vi my ATM trong ngn hng l:
Cho ti nay chng ta xc nh c mt vi Use Case, phn tch dng hnh
ng chnh cng nh cc dng hnh ng thay th, cng nh rt ra cc mi
quan h gia chng. Biu sau tng hp nhng thng tin thu thp c v
nhm cc Use Case cn bn ca mt h thng ATM.

Vng bc cng doanh nghip s

Hnh 4.8 - Biu mt s Use Case trong h thng ATM

8- MIU T USE CASE


Nh trnh by, li miu t mt Use Case thng c thc hin trong vn bn.
y l li c t n gin v nht qun v vic cc tc nhn v cc Use Case (h
thng) tng tc vi nhau ra sao. N tp trung vo ng x i ngoi ca h
thng v khng cp ti vic thc hin ni b bn trong h thng. Ngn ng v
cc thut ng c s dng trong li miu t chnh l ngn ng v cc thut ng
c s dng bi khch hng/ngi dng.
Vn bn miu t cn phi bao gm nhng im sau:
Mc ch ca Use Case: Mc ch chung cuc ca Use Case l g?
Ci g cn phi c t ti? Use Case ni chung u mang tnh
hng mc ch v mc ch ca mi Use Case cn phi r rng.
Use Case c khi chy nh th no: Tc nhn no gy ra s thc
hin Use Case ny? Trong hon cnh no?
Chui cc thng ip gia tc nhn v Use Case: Use Case v cc
tc nhn trao i thng ip hay s kin no thng bo ln cho
nhau, cp nht hoc nhn thng tin v gip nhau quyt nh?
Yu t no s miu t dng chy chnh ca cc thng ip gia h
thng v tc nhn, v nhng thc th no trong h thng c s
dng hoc l b thay i?

Vng bc cng doanh nghip s


Dng chy thay th trong mt Use Case: Mt Use Case c th c
nhng dng thc thi thay th ty thuc vo iu kin. Hy nhc n
cc yu t ny, nhng ch ng miu t chng qu chi tit n
mc chng c th che khut dng chy chnh ca cc hot
ng trong trng hp cn bn. Nhng ng tc x l li c bit s
c miu t thnh cc Use Case khc.
Use Case s kt thc vi mt gi tr i vi tc nhn nh th no:
Hy miu t khi no Use Case c coi l kt thc, v loi gi tr
m n cung cp n tc nhn.
Hy nh rng li miu t ny s xc nh nhng g c thc thi c lin quan n
tc nhn bn ngoi, ch khng phi nhng s vic c thc hin bn trong h
thng. Vn bn phi r rng, nht qun, khin cho khch hng c th d dng
hiu v thm tra chng ( ri ng rng n i din cho nhng g m anh/c
ta mun t pha h thng). Trnh dng nhng cu vn phc tp, kh din gii v
d hiu lm.
Mt Use Case cng c th c miu t qua mt biu hot ng. Biu hot
ng ny ch ra chui cc hnh ng, th t ca chng, cc quyt nh chn la
xc nh xem hnh ng no sau s c thc hin.
b sung cho li miu t mt Use Case, ngi ta thng a ra mt lot cc
cnh kch c th minh ha iu g s xy ra mt khi Use Case ny c thc
th ha. Li miu t cnh kch minh ha mt trng hp c bit, khi c tc
nhn ln Use Case u c coi l mt thc th c th. Khch hng c th d
dng hiu hn ton b mt Use Case phc tp nu c nhng cnh kch c
miu t thc tin hn, minh ha li li ng x v phng thc hot ng ca h
thng. Nhng xin nh rng, mt li miu t cnh kch ch l mt s b sung ch
khng phi l ng c vin thay th cho li miu t Use Case.
Sau khi cc Use Case c miu t, mt hot ng v mt cng vic c bit
cn phi thc hin l thm tra xem cc mi quan h ( cp ti trong phn
2.7) c c nhn din khng. Trc khi tt c cc Use Case c miu t, nh
pht trin cha th c c nhng kin thc hon tt v tng th xc nh
cc mi quan h thch hp, th nghim lm theo phng thc c th s dn
n mt tnh hung nguy him. Trong thi gian thc hin cng vic ny, hy tr
li cc cu hi sau:
Tt c cc tc nhn lin quan n mt Use Case c mi lin kt
giao tip vi Use Case khng?

Vng bc cng doanh nghip s


C tn ti nhng s tng t gia mt lot cc tc nhn minh ha
mt vai tr chung v nhm ny liu c th c miu t l mt lp
tc nhn cn bn (base class)?
C tn ti nhng s tng t gia mt lot cc Use Case, minh ha
mt dng chy hnh ng chung? Nu c, liu iu ny c th c
miu t l mt mi quan h s dng n vi mt Use Case khc?
C tn ti nhng trng hp c bit ca mt Use Case c th
c miu t l mt mi quan h m rng?
C tn ti mt tc nhn no hay mt Use Case no khng c mi
lin kt giao tip? Nu c, chc chn y c chuyn lm lc, sai
tri: Ti sao li xut hin tc nhn ny?
C li yu cu no v chc nng c xc nh, nhng li khng
c bt k mt Use Case no x l? Nu th, hy to mt Use
Case cho yu cu .

Vn bn miu t mt Use Case n gin:


V d Use Case "Cung Cp Thng Tin V Mt Ti Khon Ti Nh Bng ABC: Sau
khi phn tch h thng, ta nhn thy cn c mt Use Case in ln mn hnh ca
nhn vin nh bng tt c nhng chi tit v mt ti khon ca mt khch hng.
c t Use Case:
Chi tit ti khon: // tn Use Case
S Use Case: UCSEC35
Miu t ngn: // miu t ngn gn Use Case
Use Case "chi tit ti khon" cho php nhn vin nh bng xem cc chi tit ca
mt ti khon m anh ta nh tm hiu.
Dng chy cc s kin: // dng logic chung
Nhn vin chn Chi Tit Ti Khon trn menu. Mt con ng khc ch ra cc
thng tin chi tit ca ti khon l gi t Mn Hnh Tm Tt Thng Tin V Ti
Khon (xem Use Case s UCSEC99).
Dng hnh ng chnh: // dng logic chi tit.
Mi khch hng s c mt s nh danh gi l CustomerId. Mt khch hng c
th c nhiu ti khon. Sau khi nhn vin nhp CustomerId vo h thng, mn
hnh phi in ra tt c nhng ti khon thuc v khch hng ny v thuc v nh

Vng bc cng doanh nghip s


bng ABC, ri rc ti tt c cc chi nhnh. Khi chn tip loi ti khon v s ti
khon, cc chi tit ca ti khon mong mun s c in ra.
Loi ti khon tit kim: Nu loi ti khon c chn l ti khon tit kim, th
theo Use Case s UCSEC45, cc chi tit sau y s c in ra:
Mc tin hin c
Cc t sec cha thanh ton
Lng tin tn dng c php
Lng tin li cho ti ngy hm nay
Lng tin ti thiu cn phi c trong ti khon
Loi ti khon u t: Nu loi ti khon c chn l loi u t, th theo Use
Case s UCSEC46, cc chi tit sau y s c in ra.
Hn u t
S tin u t
Ngy u t
Lng tin cui hn
Ngy cui hn
T l li
Dng hnh ng thay th: // chui logic thay th
Khng tm thy chi tit: Khi chn mt s ti khon khng thch hp (khng c ti
khon tng ng) d v l do chc nng hay k thut, theo Use Case s
UCSEC12, h thng s a ra mt mn hnh bo li.
iu kin thot: // Use Case kt thc nh th no?
Nt Thot: Khi chn nt thot, ngi s dng s quay tr li mn hnh chnh.
Nt Xem Thm: Khi chn nt ny, ngi s dng s c yu cu chn loi ti
khon t mt danh sch xung.
Nt Xem Giao Dch: Khi chn nt ny, ngi s dng s c chuyn sang mn
hnh "Giao dch" v theo Use Case s UCSEC91, mn hnh s ch ra nhng giao
dch xy ra i vi ti khon, bn cnh nhng chi tit chnh ca ti khon.
Nt Yu Cu In Kt Qu: Khi chn phn thc n ny, kt qu giao dch theo Use
Case s UCSEC70 s c in ra mt my in a phng ni trc tip vi my
tnh ca nhn vin.

Vng bc cng doanh nghip s


Cc yu cu c bit: // cc yu cu c bit
Theo Use Case s UCSEC110, h thng c kh nng in ln mn hnh bng nhng
ngn ng khc. Chc nng ny s c kch hot khi ngi s dng chn mc
Ngoi Ng trn menu.
iu kin trc : // iu xy ra trc khi Use Case c thc hin
Bo an: Ngi s dng (nhn vin tip khch) c cung cp mt s nh danh
ring bit truy nhp vo h thng.
Dch chuyn: Ngi s dng ch n c mn hnh Chi Tit Ti Khon sau khi
truy nhp thnh cng v Identify thnh cng.
iu kin sau : // iu g xy ra sau khi Use Case
c thc hin?
H thng s khng lu tr li bt k mt thng tin no lin quan ti khch hng
ln a cng cc b.

9- TH USE CASE
Mt trong cc mc ch chnh ca Use Case l th nghim (testing). C hai loi
th nghim khc nhau c thc hin y: kim tra (verification) v ph
duyt xc nhn (validation). Kim tra m bo l h thng c pht trin
ng n v ph hp vi cc c t c to ra. Ph duyt xc nhn m bo
rng h thng s c pht trin chnh l th m khch hng hoc ngi s
dng cui tht s cn n.
Cng vic ph duyt xc nhn c thc hin k trc giai on pht trin.
Ngay khi mt m hnh Use Case c hon tt (hay thm ch c th ang trong
giai on pht trin), m hnh ny phi c trnh by v tho lun vi khch
hng cng nh ngi s dng. H cn phi xc nhn rng m hnh ny l ng
n, hon tt v tha mn s mong i ca h i vi h thng; c bit l
phng cch m h thng cung cp chc nng cho h. lm iu , nh pht
trin phi m bo rng khch hng tht s hiu c m hnh v ngha ca
chng, trnh trng hp to ra nhng th khng th chp nhn ni. Trong
giai on ny, r rng l cc cu hi v cc tng s xut hin v chng cn
phi c b sung thm vo m hnh Use Case trc khi n giai on ph duyt
chung cuc. Giai on xc nhn cng c th c thc hin trong thi k th
nghim h thng, nhng im yu ca phng thc lm ny l nu h thng
khng tha mn nhng yu cu c th ca ngi s dng th ton b d n rt
c th s phi lm li t u.

Vng bc cng doanh nghip s


Kim tra h thng l m bo n hot ng ng nh c t. iu ny
khng th c thc hin trc khi c nhng thnh phn ca h thng c
to ra. Ch sau ngi ta mi c th th xem h thng c hot ng ng nh
c t m ngi s dng a ra, rng cc Use Case thc hin ng theo nh
nhng li miu t trong m hnh, rng chng hot ng theo ng phng
thc c miu t trong vn bn miu t Use Case.
i b dc Use Case.
Mt trong nhng k thut hu dng c dng trong c giai on nh ngha ln
th nghim Use Case gi l "i B Dc Use Case. Theo k thut ny, nhiu
ngi khc nhau trong nhm lm m hnh s ng vai cc tc nhn cng nh h
thng trong mt Use Case c th. Ngi m nhn vai tc nhn s bt u bng
vic ni ra tc nhn lm g vi h thng. Kt qu ca cng vic ny l h thng
s khi chy mt Use Case c th c bt u t hnh ng trn. Ngi ng
vai h thng sau s ni anh ta lm g khi Use Case c thc hin. Nh pht
trin ng ngoi tr chi din kch s ghi chp v tm cch pht hin ra cc im
yu trong cc Use Case c miu t bng cc din vin. Trong trng hp c
th, bn s tm thy rng c mt vi chui hnh ng b sung khng c miu
t cng nh mt vi hnh ng khng c miu t vi y chi tit.
Cc "din vin" cng hiu thu o kha cnh s dng ca h thng bao nhiu th
cng vic th Use Case s cng hiu qu by nhiu. Vic thay i cc din vin
ng nhng vai tr khc nhau s dn ti nhng thay i trong miu t v
hng nhn, cung cp d liu u vo cho cc nh to m hnh h bit c
lm cch no c th a ra nhng li miu t Use Case r rng hn, minh bch
hn, v ch ra nhng im cn thiu. Mt khi vai tr ca tt c cc tc nhn
c din v thc thi, v tt c cc Use Case c thc thi theo kiu ny,
l thi im m ngi ta ni mt qu trnh th nghim ca m hnh Use Case
hon tt.

10- THC HIN CC USE CASE


Use Case l nhng li miu t c lp vi s thc thi cc chc nng ca h thng.
iu c ngha l Use Case s c thc hin (thc th ha) trong h thng,
vy nn trch nhim thc thi cc hnh ng c miu t trong ti liu Use
Case u c phn b v cho cc i tng cng tc thc thi chc nng .
Cc nguyn tc ca UML cho vic thc hin cc Use Case l: Mt Use Case s
c thc hin trong mt s cng tc (collaboration): Mt s cng tc ch ra mt
gii php (ph thuc vo s thc thi ni b) ca mt Use Case s dng cc khi
nim lp/i tng v mi quan h gia chng i vi nhau (gi l ng cnh
context ca s cng tc) cng nh s tng tc gia chng t ti chc nng

Vng bc cng doanh nghip s


mong mun (gi l chui tng tc ca s cng tc). K hiu cho s cng tc l
mt hnh ellipse c cha tn ca s cng tc .
Mt s cng tc c trnh by trong UML qua mt lot cc biu ch ra c ng
cnh ln chui tng tc gia cc thnh phn tham gia: thnh phn tham gia
trong mt s cng tc l mt lot cc lp (v trong mt thc th cng tc: cc
i tng). Cc biu s dng y l biu cng tc, biu chui v biu
hot ng. Cn phi s dng loi biu no to ra mt bc tranh bao
qut v s cng tc l quyt nh ty thuc vo tng trng hp c th. Trong
mt vi trng hp, ch mt biu cng tc c th l ; nhng trong cc
trng hp khc, ngi ta nht thit cn ti s kt hp ca nhiu loi biu
khc nhau.
Mt cnh kch (Scenario) l mt thc th (instance) ca mt Use Case hay l mt
s cng tc: mt cnh kch l mt chui thc thi c th (mt dng chy c th
ca cc s kin) trnh by mt s thc th ha ca mt Use Case (tc l mt ln
s dng h thng). Khi mt cnh kch c quan st trong t cch mt Use Case,
ngi ta ch miu t nhng ng x bn ngoi hng v pha tc nhn. Khi quan
st mt cnh kch trong t cch l mt thc th ca s cng tc, ngi ta s
miu t c s thc thi ni ti (cc dng lnh code) ca cc lp tham gia y,
thut ton cng nh th tc ca chng cng s giao tip gia chng vi nhau.
Tc v thc hin mt Use Case l chuyn cc bc v hnh ng khc nhau
trong li miu t Use Case thnh lp (Class), th tc trong nhng lp ny cng
nh quan h gia chng vi nhau. N c miu t l ng tc phn b trch
nhim ca mi bc i trong Use Case vo cc lp tham gia s cng tc thc
hin Use Case . Ti giai on ny, ngi ta phi tm ra mt gii php cung cp
nhng hnh vi hng ngoi c xc nh ca Use Case; n c miu t
trong nhng thut ng ca mt s cng tc ni b trong h thng.
Mi bc hnh ng trong Use Case s c chuyn thnh th tc (operation)
trong cc lp tham gia. Mt bc trong Use Case s c chuyn thnh mt lot
cc th tc ti nhiu lp; rt him khi xy ra nh x 1-1 gia cc hnh ng
trong Use Case v cc th tc c thc thi trong tng tc gia cc i tng
ca cc lp tham gia. Cng xin nh rng mt lp c th tham gia nhiu Use Case
khc nhau v trch nhim cao nht ca lp nm chnh trong vic kt tp tt c
cc vai tr m lp ny m nhn trong cc Use Case khc nhau.
Mi quan h gia mt Use Case v s thc thi n theo khi nim cng tc c
ch ra hoc qua mt mi quan h nng cao (refinement relationship) biu th
bng on thng chm chm vi mi tn - - - -> hay mt hyperlink ngm trong
mt cng c no . Mt hyperlink trong mt cng c s to iu kin chuyn t

Vng bc cng doanh nghip s


vic quan st mt Use Case trong mt biu Use Case sang ngay s cng tc
thc thi Use Case . Cc hyperlink cng c s dng chuyn t Use Case
ny sang mt cnh kch (thng l mt m hnh ng biu hot ng, biu
chui hay biu cng tc) miu t mt s thc hin c th no ca Use
Case.
Phn b trch nhim cho cc lp mt cch thnh cng l mt tc v i hi kinh
nghim. Cng ging nh mi cng on hng i tng khc, cng vic ny
mang tnh vng lp (iterative). Nh pht trin th nghim vi nhiu s phn b
trch nhim khc nhau v dn dn nng cp chng trong gii php ca mnh cho
ti khi to ra c mt m hnh thc hin chc nng , ng thi li mc
nng ng cho php tin hnh cc s thay i trong tng lai.
Jacobson s dng phng php nh ngha ba loi i tng cn bn (c ngha l
ba loi lp): cc i tng bin (boundary objects), i tng ch huy (control
objects) v i tng thc th (entity objects). i vi mi Use Case, cc lai i
tng ny c s dng miu t mt s cng tc thc thi Use Case. Trch
nhim ca cc loi i tng k trn nh sau:
i tng thc th: loi i tng ny i din cho cc thc th
ca bi ton nm trong phm vi m h thng x l. Thng chng
mang tnh th ng, theo khi nim l chng khng t gy nn cc
tng tc i vi chng. Trong mt h thng thng tin, cc i
tng thc th thng mang tnh trng tn (persistent) v c
lu tr trong mt h ngn hng d liu. Cc i tng thc th
thng tham gia vo nhiu Use Case khc nhau.
i tng bin: loi i tng ny nm gn ng ranh gii ca
h thng (mc d vn nm bn trong h thng). Chng tng tc
vi cc tc nhn nm bn ngoi h thng v nhn thng ip cng
nh gi thng ip n cc loi i tng khc nm bn trong h
thng.
i tng ch huy: loi i tng ny ch huy s tng tc gia
cc nhm i tng. Mt i tng nh th c th ng vai tr "b
phn iu khin cho ton b mt Use Case hon tt, hay n c th
thc thi mt chui hnh ng chung ca nhiu Use Case. Thng th
mt i tng nh vy ch tn ti trong qu trnh thc thi Use Case.
Ba loi i tng ny c ba k hiu khc nhau v c th c s dng khi v cc
loi biu miu t cng tc hoc biu lp. Sau khi nh ngha nhiu loi
i tng khc nhau v xc nhn cc cng tc, ngi ta c th cng i tm s
tng t gia chng mt s lp c th c s dng trong mt lot cc Use

Vng bc cng doanh nghip s


Case khc nhau. S dng cc Use Case theo phng thc ny ta c th to nn
nn tng cho vic phn tch v thit k h thng; qui trnh pht trin c Ivar
Jacobson gi l "Qui Trnh Pht Trin Theo Use Case" (Use case driven).
Nhn chung c nhiu phng php khc nhau phn b trch nhim t Use
Case v cho cc lp. C phng php ngh u tin phi tin hnh phn tch
phm vi bi ton, ch ra tt c cc lp thc th (thuc phm vi bi ton) vi mi
quan h ca chng vi nhau. Sau nh pht trin s phn tch tng Use Case
v phn b trch nhim cho cc lp trong m hnh phn tch (analysis model),
nhiu khi s thay i chng hoc b sung thm cc lp mi. Mt phng php
khc li ngh l nn ly cc Use Case lm nn tng tm cc lp, lm sao
trong qu trnh phn b trch nhim th m hnh phn tch ca phm vi bi ton
s tng bc tng bc c thit lp.
Mt im quan trng cn phi nhc li l cng vic y mang tnh vng lp. Khi
phn b trch nhim cho cc lp, ta c th pht hin ra s thiu ng b hoc li
trong cc biu lp v qua , dn n vic sa cha trong biu lp. Nhng
lp mi s c nhn dng v tm ra nhm mc ch h tr cho cc Use Case.
Trong mt s trng hp, thm ch c th xy ra chuyn phi thay i hoc sa
cha c biu Use Case v khi hiu h thng mt cch su sc hn, nh pht
trin s nhn ra rng c mt Use Case no khng c miu t chnh xc
v ng n. Cc Use Case gip chng ta tp trung vo kha cnh chc nng ca
h thng, lm sao phi m bo cho n c miu t chnh xc v c xy
dng chnh xc trong h thng. Mt trong nhng vn xy ra vi nhiu phng
php hng i tng m khng s dng n khi nim Use Case l chng tp
trung qu nhiu vo cu trc tnh ca cc lp v cc i tng (nhiu khi ngi
ta gi l phng php m hnh ha khi nim conceptual modeling) nhng li
b qua cc kha cnh chc nng v kha cnh ng ca h thng.

11- TM TT V USE CASE


M hnh Use Case l mt k thut c s dng miu t nhng yu cu mang
tnh chc nng ca mt h thng. Use Case c miu t qua cc khi nim tc
nhn bn ngoi, Use Case v h thng. Tc nhn tng trng cho mt vai tr v
mt thc th bn ngoi v d nh mt ngi dng, mt b phn phn cng hoc
mt h thng khc tng tc vi h thng. Tc nhn gy ra v giao tip vi cc
Use Case, trong khi mt Use Case l mt tp hp ca cc chui hnh ng c
thc hin trong h thng. Mt Use Case phi cung cp mt gi tr cn hng ti
no cho tc nhn, v bnh thng n c miu t bng vn bn. Tc nhn v
Use Case l cc lp. Mt tc nhn c lin kt vi mt hoc nhiu Use Case qua
mi lin kt (Association) v c tc nhn ln Use Case u c th c mi quan h
khi qut ha, mi quan h ny miu t nhng ng x chung trong cc lp cha,

Vng bc cng doanh nghip s


s c tha k bi mt hoc nhiu lp con. Mt m hnh Use Case c miu t
bng mt hay nhiu biu trng hp thuc ngn ng UML.
Use Case c thc hin qua cc s cng tc. Mt s cng tc l mt li miu t
mt ng cnh, ch ra cc lp/ i tng v mi quan h ca chng v mt tng
tc ch ra cc lp/i tng tng tc vi nhau ra sao thc hin mt chc
nng c th. Mt s cng tc c miu t bng biu hot ng, biu cng
tc v biu chui. Khi mt Use Case c thc hin, trch nhim cho mi
bc hnh ng trong Use Case cn phi c phn b cho cc lp tham gia s
cng tc , thng l qua vic xc nh cc th tc ca cc lp ny, i song
song vi phng thc m chng tng tc vi nhau. Mt cnh kch l mt thc
th ca mt Use Case, hay mt s cng tc, ch ra mt chui thc thi c th. V
th, mt cnh kch l mt s minh ha hay l mt v d ca mt Use Case hay l
mt s cng tc. Khi cnh kch c ch ra trong t cch mt thc th ca mt
Use Case, ch duy nht s tng tc gia Use Case v tc nhn ngoi lai s c
miu t, nhng khi cnh kch c quan st v c ch ra theo hng l mt
thc th ca mt s cng tc, th s tng tc gia cc lp/i tng pha bn
trong h thng cng s c miu t.

PHN CU HI
Hi: Mt tc nhn (Actor) trong mt Use Case lun l mt con ngi
p: Sai, tc nhn l mt ngi hoc mt vt no tng tc vi h
thng.
Hi: H thng khc cng c th ng vai tr tc nhn trong mt Use Case?
p: ng
Hi: Mi h thng ch c mt Use Case?
p: Sai
Hi: Biu Use case m t chc nng h thng?
p: ng

Chng 5: M HNH I TNG

1- Lp, i tng v quan h cc thnh phn c bn ca m hnh:

Vng bc cng doanh nghip s


Trong m hnh ha hng i tng, nhng phn t cu thnh cn bn nht ca
m hnh l lp, i tng v mi quan h gia chng vi nhau. Lp v i tng
s m hnh ha nhng g c trong h thng m chng ta mun miu t, cc mi
quan h s biu th cu trc. ng tc phn lp (classification) c s dng
t hng ngn nm nay n gin ha vic miu t cc h thng phc tp. Khi
loi ngi bit n vic lp trnh hng i tng xy dng cc h thng phn
mm th lp v cc mi quan h ca chng c chuyn thnh cc dng code c
th.
1.1- i tng (Object)
Mt i tng l mt s tng trng cho mt thc th, hoc l thc th tn ti
trong th gii i thc hoc thc th mang tnh khi nim. Mt i tng c th
tng trng cho ci g c th, v d nh mt chic xe t ch hng ca bn
hoc chic my tnh ca ti, hoc tng trng cho mt khi nim v d nh mt
quy trnh ha hc, mt giao dch trong nh bng, mt li t hng, nhng thng
tin trong qu trnh s dng tn dng ca khch hng hay mt t l tin li.
Cng c nhng i tng (v d nh cc i tng thc thi mt trong h thng
phn mm) khng tht s tn ti ngoi th gii thc, nhng l kt qu dn
xut t qu trnh nghin cu cu trc v ng x ca cc i tng ngoi th gii
thc. Nhng i tng , d l bng cch ny hay cch khc, u lin quan n
quan nim ca chng ta v th gii thc.
Mt i tng l mt khi nim, mt s tru tng ha, hoc l mt vt vi
ranh gii v ngha c nh ngha r rng cho mt ng dng no . Mi i
tng trong mt h thng u c ba c tnh: trng thi, ng x v s nhn din.
1.2- Trng thi, ng x v nhn din ca i tng
Trng thi (state) ca mt i tng l mt trong nhng hon cnh ni i tng
c th tn ti. Trng thi ca mt i tng thng s thay i theo thi gian, v
n c nh ngha qua mt t hp cc thuc tnh, vi gi tr ca cc thuc tnh
ny cng nh mi quan h m i tng c th c vi cc i tng khc. V d
mt danh sch ghi danh cho mt lp hc trong h thng trng hc c th c hai
trng thi: trng thi ng v trng thi m. Nu danh sch sinh vin ghi danh
cho lp hc ny cn nh hn s ti a cho php (v d l 10), th trng thi ca
bng ghi danh ny l m. Mt khi 10 sinh vin ghi danh cho lp, danh sch
s chuyn sang trng thi ng.
ng x (Behaviour) xc nh mt i tng s phn ng nh th no trc
nhng yu cu t cc i tng khc, n tiu biu cho nhng g m i tng
ny c th lm. ng x c thc thi qua lot cc Phng thc (operation) ca

Vng bc cng doanh nghip s


i tng. Trong v d trng i hc, mt i tng bng ghi danh lp hc c
th c ng x l b sung thm mt sinh vin hay xa i tn ca mt sinh vin
khi sinh vin ng k hc hay bi b ng k.
S nhn din (Identity) m bo rng mi i tng l duy nht d trng thi
ca n c th ging vi trng thi ca cc i tng khc. V d, kha hc i s
101 chng 1 v kha hc i s 101 chng 2 l hai i tng trong h thng
ghi danh trng hc. Mc d c hai u thuc loi bng ghi danh, mi kha hc
vn c s nhn dng duy nht ca mnh.
1.3- Lp (Class):
Mt lp l mt li miu t ca mt nhm cc i tng c chung thuc tnh,
chung phng thc (ng x), chung cc mi quan h vi cc i tng khc v
chung ng ngha (semantic). Ni nh th c ngha lp l mt khun mu to
ra i tng. Mi i tng l mt thc th ca mt lp no v mt i tng
khng th l kt qu thc th ha ca nhiu hn mt lp. Chng ta s dng khi
nim lp bn lun v cc h thng v phn loi cc i tng m chng ta
nhn dng ra trong th gii thc.
Mt lp tt s nm bt mt v ch mt s tru tng ha - n phi c mt ch
chnh. V d, mt lp va c kh nng gi tt c cc thng tin v mt sinh
vin v thng tin v tt c nhng lp hc m ngi sinh vin tri qua trong
nhiu nm trc khng phi l mt lp tt, bi n khng c ch chnh. Lp
ny cn phi c chia ra lm hai lp lin quan n nhau: lp sinh vin v lp
lch s ca sinh vin.

Vng bc cng doanh nghip s


Khi to dng m hnh cng nh tht s xy dng cc h thng doanh nghip, cc
h thng thng tin, my mc hoc cc lai h thng khc, chng ta cn s dng
cc khi nim ca chnh phm vi vn khin cho m hnh d hiu v d giao
tip hn. Nu chng ta xy dng h thng cho mt cng ty bo him, m hnh
cn phi da trn cc khi nim ca ngnh bo him. Nu chng ta xy dng
mt h thng cho qun i, th cc khi nim ca th gii qun s cn phi c
s dng khi m hnh ha h thng. Mt h thng da trn cc khi nim chnh
ca mt ngnh doanh nghip no c th d c thit k li cho ph hp vi
nhng qui ch, chin lc v qui nh mi, bi chng ta ch cn cn bng v khc
phc s chnh lch gia cng vic c v cng vic mi. Khi cc m hnh c
xy dng da trn cc khi nim ly ra t cuc i thc v da trn cc khi
nim thuc phm vi vn , hng i tng s l mt phng php rt thch
hp bi nn tng ca phng php hng i tng l cc lp, i tng v mi
quan h gia chng.
Mt lp l li miu t cho mt dng i tng trong bt k mt h thng no
h thng thng tin, h thng k thut, h thng nhng thi gian thc, h
thng phn tn, h thng phn mm v h thng doanh thng. Cc vt dng
(artifact) trong mt doanh nghip, nhng thng tin cn c lu tr, phn tch
hoc cc vai tr m mt tc nhn m nhn trong mt doanh nghip thng s
tr thnh cc lp trong cc h thng doanh nghip v h thng thng tin.
V d v cc lp trong doanh nghip v cc h thng thng tin:
Khch hng
Bn thng thuyt
Ha n
Mn n
Ti sn
Bn cng b gi c phiu
Cc lp trong mt h thng k thut thng bao gm cc i tng k thut, v
d nh my mc c s dng trong h thng:
Sensor
Mn hnh
I/O card
ng c
Nt bm

Vng bc cng doanh nghip s


Lp iu khin
Cc h thng phn mm thng c cc lp i din cho cc thc th phn mm
trong mt h iu hnh:
File
Chng trnh chy c
Trang thit b
Icon
Ca s
Thanh ko
1.4- Biu lp (Class diagram):
Mt biu lp l mt dng m hnh tnh. Mt biu lp miu t hng nhn
tnh ca mt h thng bng cc khi nim lp v mi quan h gia chng vi
nhau. Mc d n cng c nhng nt tng t vi mt m hnh d liu, nhng
nn nh rng cc lp khng phi ch th hin cu trc thng tin m cn miu t
c hnh vi. Mt trong cc mc ch ca biu lp l to nn tng cho cc biu
khc, th hin cc kha cnh khc ca h thng (v d nh trng thi ca i
tng hay cng tc ng gia cc i tng, c ch ra trong cc biu ng).
Mt lp trong mt biu lp c th c thc thi trc tip trong mt ngn ng
hng i tng c h tr trc tip khi nim lp. Mt biu lp ch ch ra cc
lp, nhng bn cnh cn c mt bin tu hi khc i mt cht ch ra cc i
tng tht s l cc thc th ca cc lp ny (biu i tng).

Vng bc cng doanh nghip s

to mt biu lp, u tin ta phi nhn din v miu t cc lp. Mt khi


c mt s lng cc lp, ta s xt n quan h gia cc lp vi nhau.
2- Tm lp:
Hu nh khng c mt cng thc chung cho vic pht hin ra cc lp. i tm cc
lp l mt cng vic i hi tr sng to v cn phi c thc thi vi s tr gip
ca chuyn gia ng dng. V qui trnh phn tch v thit k mang tnh vng lp,
nn danh sch cc lp s thay i theo thi gian. Tp hp ban u ca cc lp
tm ra cha chc l tp hp cui cng ca cc lp sau ny s c thc thi v
bin i thnh code. V th, thng ngi ta hay s dng n khi nim cc lp
ng c vin (Candidate Class) miu t tp hp nhng lp u tin c tm ra
cho h thng.
Nh ni trong phn 2.10 (Thc hin Trng hp s dng), trng hp s
dng l nhng li miu t chc nng ca h thng, cn trch nhim thc thi
thuc v cc i tng cng tc thc thi chc nng . Ni mt cch khc, chng
ta i tm cc lp l tin ti tm gii php cung cp nhng ng x hng ngoi
c xc nh trong cc trng hp s dng.
C nhiu phng php khc nhau thc hin cng vic . C phng php
ngh tin hnh phn tch phm vi bi ton, ch ra tt c cc lp thc th (thuc
phm vi bi ton) vi mi quan h ca chng vi nhau. Sau nh pht trin s
phn tch tng trng hp s dng v phn b trch nhim cho cc lp trong m
hnh phn tch (analysis model), nhiu khi s thay i chng hoc b sung thm

Vng bc cng doanh nghip s


cc lp mi. C phng php ngh nn ly cc trng hp s dng lm nn
tng tm cc lp, lm sao trong qu trnh phn b trch nhim th m hnh
phn tch ca phm vi bi ton s tng bc tng bc c thit lp.
2.1- Phn tch phm vi bi ton tm lp:
Qu trnh phn tch phm vi bi ton thng c bt u vi cc khi nim then
cht (Key Abstraction), mt cng c thng c s dng nhn din v lc ra
cc lp ng c vin (Candidate class).
2.1.1- Khi nim then cht
Hy ly v d mt nh bng ABC, iu u tin ta ngh ti l g? Tin! Bn cnh
, ABC cn phi c nhng thc th lin quan ti tin nh sau:
Khch hng
Sn phm (cc ti khon c coi l cc sn phm ca mt
nh bng)
Lc lng nhn vin
Ban qun tr nh bng
Phng my tnh trong nh bng
Nhng thc th ny c gi l cc khi nim then cht cho nhng g m nh
bng c th c. Khi nim then cht hoc mang tnh cu trc (structural) hoc
mang tnh chc nng (functional). Thc th mang tnh cu trc l nhng thc th
vt l tng tc vi nh bng, v d khch hng. Thc th mang tnh chc nng
l nhng chc nng m nh bng phi thc hin, v d duy tr mt ti khon
hoc chuyn tin t ti khon ny sang ti khon khc. Khi nim then cht l
cc thc th ta n u tin. Chng rt quan trng v gip ta:
nh ngha ranh gii ca vn
Nhn mnh n cc thc th c lin quan n thit k ca h thng
Loi b thc th nm ngoi phm vi h thng
Cc khi nim then cht thng s tr thnh cc lp trong m hnh
phn tch
Mt khi nim then cht tm li l mt lp hay i tng thuc chuyn ngnh
ca phm vi bi ton. Khi trnh by vi ngi s dng, chng c mt nh x 1-1
gia vi nhng thc th lin quan ti ngi s dng nh ha n, sec, giy
ngh rt tin, s tit kim, th rt tin t ng, nhn vin thu ngn, nhn vin
nh bng, cc phng ban,.

Vng bc cng doanh nghip s


Mc tru tng:
Khi phn tch phm vi bi ton, cn ch rng mc tru tng ca cc khi
nim then cht l rt quan trng, bi mc tru tng qu cao hay qu thp
u rt d gy nhm ln.
Mc tru tng qu cao dn ti nhng nh ngha qu khi qut v mt thc th,
to nn mt ci nhn v m v thng khng nhm vo mt mc tiu c th. V
d trong mt nh bng, ta khng th chn khi nim then cht l "ngi", bi n
s dn n li miu t: "Mt ngi n nh bng gi tin vo, v s tin
c mt ngi khc tip nhn." trong khi mt yu cu quan trng y l
phi phn bit gia nhn vin vi khch hng v chc nng ca h l khc hn
nhau.
Tng t nh vy, mc tru tng qu thp cng d gy hiu lm, bi nhng
thng tin qu vn vt cha thch hp vi thi im ny. V d nhng quyt nh
dng:
Form m ti khon i hi tt c 15 Entry.
Nhng d liu trn Form ny u phi c cn phi.
Khng c nhiu ch ghi a ch ca khch hng trn Form.
nn c dnh cho cc giai on sau.
Vi im cn ch v khi nim then cht:
Nhng thc th xut hin u tin trong c no chng ta l nhng thc th d c
kh nng tr thnh khi nim then cht cho mt vn nh trc.
Mi ln tm thy mt khi nim then cht mi, cn xem xt n theo cch nhn
ca vn , c th hi cc cu hi sau:
Nhng chc nng no c th c thc hin i vi thc th ny?
iu g khin nhng thc th loi ny c to ra?
Nu khng c cu tr li thch hp, cn phi suy ngh li v thc th .
Mi khi nim then cht mi cn phi c t tn cho thch hp, miu t ng
chc nng ca khi nim.
2.1.2- Nhn dng lp v i tng
Nm vng khi nim lp, chng ta c th tng i d dng tm thy cc lp v
i tng trong phm vi vn . Mt nguyn tc th s thng c p dng l
danh t trong cc li pht biu bi ton thng l cc ng c vin chuyn
thnh lp v i tng.

Vng bc cng doanh nghip s


Mt s gi thc t cho vic tm lp trong phm vi vn :
Bc u tin l cn phi tp trung nghin cu k:
Cc danh t trong nhng li pht biu bi ton
Kin thc chuyn ngnh thuc phm vi bi ton
Cc Trng hp s dng
V d trong li pht biu "C mt s ti khon mang li tin li", ta thy c hai
danh t l ti khon v tin li. Chng c th l cc lp tim nng cho m hnh
nh bng l.
Th hai, chng ta cn ch n cc nhm vt th trong h thng hin thi nh:
Cc thc th vt l ca h thng: nhng vt th tng tc vi h
thng, v d khch hng.
Cc vt th hu hnh: cc vt th vt l m ta c th nhn v s
thy. V d nh cng c giao thng, sch v, mt con ngi, mt
ngi nh,. Trong mt nh bng ABC, c th l tp sec, phiu
ngh rt tin, s tit kim, cc loi Form cn thit.
Cc s kin (Events): Mt chic xe b hng, mt ci ca c m ra.
Trong mt nh bng l s o hn mt ti khon u t, hin tng
rt qu nhiu tin mt trong mt ti khon bnh thng.
Cc vai tr (Role): V d nh m, khch hng, ngi bn hng, .
Trong mt nh bng, vai tr c th l nhn vin, nh qun tr,
khch hng,...
Cc s tng tc (Interactions): V d vic bn hng l mt chui
tng tc bao gm khch hng, ngi bn hng v sn phm.
Trong mt nh bng, vic m mt ti khon mi s yu cu mt
chui tng tc gia nhn vin v khch hng.
V tr (Location): Mt vt no hoc mt ngi no c
gn cho mt v tr no . V d: t i vi nh xe. Trong mt
nh bng ta c th thy nhn vin thu ngn lun ng ca s ca
mnh.
n v t chc (Organisation Unit): V d cc phng ban, phng
trng by sn phm, cc b phn. Trong mt nh bng c th c b
phn ti khon bnh thng, b phn ti khon tit kim, b phn
ti khon u t.
Bn cnh , cn nhiu cu hi khc gip ta nhn dng lp. V d nh:

Vng bc cng doanh nghip s


Ta c thng tin cn c lu tr hoc cn c phn tch khng?
Nu c thng tin cn phi c lu tr, bin i, phn tch hoc x
l trong mt phng thc no th chc chn s l ng c vin
cho lp. Nhng thng tin ny c th l mt khi nim lun cn phi
c ghi trong h thng hoc l s kin, giao dch xy ra ti mt
thi im c th no .
Ta c cc h thng ngoi vi khng? Nu c, thng chng cng
ng c quan tm ti khi to dng m hnh. Cc h thng bn
ngoi c th c coi l cc lp cha h thng ca chng ta hoc
tng tc vi h thng ca chng ta.
Chng ta c cc mu, th vin lp, thnh phn v nhng th khc
khng? Nu chng ta c mu, th vin, thnh phn t cc d n
trc (xin c ca cc bn ng nghip, mua c t cc nh cung
cp) th chng thng cng s cha cc ng c vin lp.
C thit b ngoi vi m h thng ca chng ta cn x l khng? Mi
thit b k thut c ni vi h thng ca chng ta thng s tr
thnh ng c vin cho lp x l loi thit b ngoi vi ny.
Chng ta c phn cng vic t chc khng? Miu t mt n v t
chc l cng vic c thc hin vi cc lp, c bit l trong cc
m hnh doanh nghip.
2.1.3- Tng kt v cc ngun thng tin cho vic tm lp:
Nhn chung, cc ngun thng tin chnh cn c bit ch khi tm lp l:
Cc li pht biu yu cu
Cc Trng hp s dng
S tr gip ca cc chuyn gia ng dng
Nghin cu h thng hin thi
Lot cc lp u tin c nhn dng qua y thng c gi l cc lp ng c
vin (Candidate Class). Ngoi ra, nghin cu nhng h thng tng t cng c
th s mang li cho ta cc lp ng c vin khc:
Khi nghin cu h thng hin thi, hy n cc danh t v cc khi nim
then cht nhn ra lp ng c vin. Khng nn a cc lp c nhn din
mt ln na vo m hnh ch bi v chng c nhc li u theo mt tn
gi khc. V d, mt h thng nh bng c th coi cng mt khch hng vi
nhiu v tr khc nhau l nhiu khch hng khc nhau. Cn ch khi phn tch

Vng bc cng doanh nghip s


nhng li miu t nh th trnh dn n s trng lp trong qu trnh nhn
din lp.
C nhiu ngun thng tin m nh thit k cn phi ch ti khi thit k lp v
ch khi lm nh vy, ta mi c th tin chc v kh nng to dng mt m hnh
tt. Hnh sau tng kt cc ngun thng tin k trn.

Cc trng hp s dng l ngun tt nht cho vic nhn din lp v i tng.


Cn nghin cu k cc Trng hp s dng tm cc thuc tnh (attribute) bo
trc s tn ti ca i tng hoc lp tim nng. V d nu Trng hp s dng
yu cu phi a vo mt s ti khon (account-number) th iu ny tr ti s
tn ti ca mt i tng ti khon.
Mt ngun khc nhn ra lp/i tng l cc Input v Output ca h thng.
Nu Input bao gm tn khch hng th y l tn hiu cho bit s tn ti ca mt
i tng khch hng, bi n l mt attribute ca khch hng.
Ni chuyn vi ngi s dng cng gi m n cc khi nim then cht. Thng
th ngi s dng miu t h thng theo li cn phi a vo nhng g v mong
ch kt qu g. Thng tin a vo v kt qu theo li miu t ca ngi s dng
cn phi c tp hp li vi nhau nhn dng khi nim then cht.

2.2- Cc lp ng c vin:
Theo cc bc k trn trong phn u giai on phn tch, ta miu t c
mt s lp khc nhau. Nhng lp ny c gi l cc lp ng c vin, chng th
hin nhng lp c kh nng tn ti trong mt h thng cho trc. Mc d vy,

Vng bc cng doanh nghip s


y vn c th cha phi l kt qu chung cuc, mt s lp ng c vin c th
s b loi b trong cc bc sau v khng thch hp.
Giai on u khi nh ngha cc lp ng c vin, ta cha nn c gng thanh lc
cc lp, hy tp trung co mc tiu nghin cu bao qut v ton din t nhiu
ngun thng tin khc nhau khng b st nhiu kha cnh cn x l.
V d trong nh mt bng l, cc lp ng c vin c th l:
Khch hng
Cc loi ti khon khc nhau
Sec, s tit kim, n, .
Phiu yu cu m ti khon mi
Th ATM
Bn in thng tin v ti khon
Giy chng nhn ti khon u t
Th xp hng (Token), s th t
Nhn vin
Nhn vin thu ngn
2.3- Loi b cc lp ng c vin khng thch hp:
C rt nhiu loi lp ng c vin khng thch hp cn phi c loi b:
Lp d, tha: Khi c hn mt lp nh ngha cng mt thc th, nn
gi li lp tt nht v loi b nhng lp khc. V d, trong mt nh
bng c hai lp ch ti khon v khch hng. C hai lp biu hin
cng mt thc th v v th ch cn gi li mt.
Lp khng thch hp: Lp nh ngha ra nhng thc th khng lin
quan n vn thc ti. Mi lp khng xut pht t phm vi ng
dng cn phi c loi b. V d, lp ca cc my m tin bn
casse trong mt nh bng c th l mt ng c vin cho khi nim
lp khng thch hp.
Lp khng r rng: Lp khng c chc nng c th c gi l cc
lp khng r rng. Lp tn ti v c gi tr s dng trong mt h
thng l lp c mt chc nng c nhn din v xc nh r
rng. Cc lp khng r rng cn phi c nh ngha li hoc loi
b. V d quan st nhiu b phn khc nhau trong mt nh bng

Vng bc cng doanh nghip s


ABC. Mt trong nhng b phn c nhn din c th l b phn
hnh chnh. V phm vi cho qu trnh vi tnh ha ca nh bng hin
thi cha bao gm mng hnh chnh nn lp ny c th c coi l
mt lp khng r rng (v khng c chc nng r rng trong h
thng cn xy dng trc mt).
Tng t, nhng thuc tnh v phng thc khng r rng cn phi
c loi ra khi danh sch cc lp ng c vin. Chng khng cn
phi b xo hn, nhng cn c a ra ngoi ta c th nhn r
cc lp cn thit c nhn din. Cc ng x sau ny c th
c gn cho cc lp thch hp hn.
Cc lp ch l vai tr (Role) i vi mt lp khc: Hy loi b tt c
cc vai tr v gi li lp chnh. V d nh qun tr, nhn vin thu
ngn, ngi chy giy rt c th ch l vai tr ca lp nhn vin.
Hy gi li lp nhn vin v loi b tt c nhng lp khc ch l vai
tr.
Mt lp khng cung cp ng x cn thit hoc thuc tnh cn thit
c th s l lp khng cn thit. Nhiu khi, c th c mt lp chng
cung cp mt thuc tnh hoc ng x no m ch nh ngha mt tp
hp cc mi quan h. Nhng lp nh th cn phi c nghin cu
k xc nh s lin quan vi h thng. V d mt khch hng c
th c nh ngha l khch hng quan trng hay khch hng bnh
thng ty theo mi quan h m anh ta c vi nh bng trong t
cch ch nhn ti khon.
Tt c nhng cng c xy dng (Implementation constructs) v d
nh stack, arrays, link lists, cn phi c a ra khi m hnh
phn tch. Chng s c dng ti trong giai on xy dng phn
mm.
Mt lp c tn mang tnh ng t c th n gin ch l mt hm
ch khng phi l mt lp. V d "rt tin" khng cn phi c coi
l mt lp, n c th l chc nng ca mt lp.
Lp ch c mt hm hoc ch l s miu t vic thc hin mt chc
nng no c th n gin ch l mt hm, hoc qu trnh tru
tng ha d liu (data abstraction) y cha c thc hin y
.
Lp khng c hm l mt thiu st trong m hnh. Vn hm
thnh phn (phng thc) ca lp ny cha c suy ngh thu o.

Vng bc cng doanh nghip s


3- Lp v i tng trong UML:
UML th hin lp bng hnh ch nht c 3 phn. Phn th nht cha tn lp.
Trong phn th hai l thuc tnh v cc d liu thnh phn ca lp v trong phn
th ba l cc phng thc hay hm thnh phn ca lp.
3.1- Tn lp (lass name):
Tn lp c in m (bold) v cn gia. Tn lp phi c dn xut t phm vi
vn v r rng nh c th. V th n l danh t, v d nh ti khon, nhn
vin,....
3.2- Thuc tnh (attribute):
Lp c thuc tnh miu t nhng c im ca i tng. Gi tr ca thuc tnh
thng l nhng dng d liu n gin c a phn cc ngn ng lp trnh h
tr nh Integer, Boolean, Floats, Char,
Thuc tnh c th c nhiu mc trng thy c (visibility) khc nhau, miu
t liu thuc tnh c th c truy xut t cc lp khc, khc vi lp nh
ngha ra n. Nu thuc tnh c tnh trng thy l cng cng (public), th n c th
c nhn thy v s dng ngoi lp . Nu thuc tnh c tnh trng thy l
ring (private), bn s khng th truy cp n t bn ngoi lp . Mt tnh trng
thy khc l bo v (protected), c s dng chung vi cng c khi qut ha
v chuyn bit ha. N cng ging nh cc thuc tnh ring nhng c thz k
bi cc lp dn xut.
Trong UML, thuc tnh cng cng mang k hiu "+" v thuc tnh ring mang du
"-".
Gi tr c gn cho thuc tnh c th l mt cch miu t trng thi ca i
tng. Mi ln cc gi tr ny thay i l biu hin cho thy c th xy ra mt
s thay i trong trng thi ca i tng.
Lu : Mi c im ca mt thc th l nhng thng tin cn lu tr u c th
chuyn thnh thuc tnh ca lp miu t loi thc th .
3.3- Phng thc (methods):
Phng thc nh ngha cc hot ng m lp c th thc hin. Tt c cc i
tng c to t mt lp s c chung thuc tnh v phng thc. Phng thc
c s dng x l thay i cc thuc tnh cng nh thc hin cc cng vic
khc. Phng thc thng c gi l cc hm (function), nhng chng nm
trong mt lp v ch c th c p dng cho cc i tng ca lp ny. Mt
phng thc c miu t qua tn, gi tr tr v v danh sch ca 0 cho ti

Vng bc cng doanh nghip s


nhiu tham s. Lc thi hnh, phng thc c gi km theo mt i tng ca
lp. V nhm cc phng thc miu t nhng dch v m lp c th cung cp nn
chng c coi l giao din ca lp ny. Ging nh thuc tnh, phng thc cng
c tnh trng thy c nh cng cng, ring v bo v.

3.4- K hiu i tng:


i tng l thc th ca cc lp nn k hiu dng cho i tng cng l k hiu
dng cho lp.

Hnh trn c c nh sau: CAH l i tng ca lp AccountHolder. Cc thuc


tnh c gn gi tr, y l cc gi tr khi lp c thc th ha. Ch rng k
hiu i tng khng cha phn phng thc.

4- Quan h gia cc lp:


Biu lp th hin cc lp v cc mi quan h gia chng. Quan h gia cc
lp gm c bn loi:
Lin h (Association)
Khi qut ha (Generalization)
Ph thuc (Dependency)
Nng cp (Refinement)
Mt lin h l mt s ni kt gia cc lp, cng c ngha l s ni kt gia cc
i tng ca cc lp ny. Trong UML, mt lin h c nh ngha l mt mi
quan h miu t mt tp hp cc ni kt (links), trong khi ni kt c nh
ngha l mt s lin quan v ng ngha (semantic connection) gia mt nhm
cc i tng.
Khi qut ha l mi quan h gia mt yu t mang tnh khi qut cao hn v
mt yu t mang tnh chuyn bit hn. Yu t mang tnh chuyn bit hn c th
cha ch cc thng tin b sung. Mt thc th (mt i tng l mt thc th ca
mt lp) ca yu t mang tnh chuyn bit hn c th c s dng bt c ni
no m i tng mang tnh khi qut ha hn c php.

Vng bc cng doanh nghip s


S ph thuc l mt mi quan h gia cc yu t, gm mt yu mang tnh c
lp v mt yu t mang tnh ph thuc. Mt s thay i trong yu t c lp s
nh hng n yu t ph thuc.
Mt s nng cp l mi quan h gia hai li miu t ca cng mt s vt, nhng
nhng mc tru tng ha khc nhau.
5- Lin h (Association)
Mt lin h l mt s ni kt gia cc lp, mt lin quan v ng ngha gia cc
i tng ca cc lp tham gia. Lin h thng thng mang tnh hai chiu, c
ngha khi mt i tng ny c lin h vi mt i tng khc th c hai i
tng ny nhn thy nhau. Mt mi lin h biu th bng cc i tng ca hai
lp c ni kt vi nhau, v d rng "chng bit v nhau", "c ni vi nhau", "c
mi X li c mt Y",.... Lp v lin h gia cc lp l nhng cng c rt mnh m
cho vic m hnh ha cc h thng phc tp, v d nh cu trc sn phm, cu
trc vn bn v tt c cc cu trc thng tin khc.
Mi lin kt c th hin trong biu UML bng mt ng thng ni hai lp
(hnh 4.18).

5.1- Vai tr trong lin h


Mt lin h c th c cc vai tr (Roles). Cc vai tr c ni vi mi lp bao
cha trong quan h. Vai tr ca mt lp l chc nng m n m nhn nhn t
gc nhn ca lp kia. Tn vai tr c vit km vi mt mi tn ch t hng lp
ch nhn ra, th hin lp ny ng vai tr nh th no i vi lp m mi tn ch
n.

Trong v d trn: mt khch hng c th l ch nhn ca mt ti khon v ti


khon c chim gi bi khch hng. ng thng th hin lin h gia hai lp.

Vng bc cng doanh nghip s


Mt s im cn ch khi t tn vai tr:
Tn vai tr c th b i nu trng vi tn lp
Tn vai tr phi l duy nht.
Tn vai tr phi khc vi cc thuc tnh ca lp.
Tn vai tr phi miu t c chc nng m lp ny m
nhn trong quan h, tc cn phi l cc khi nim ly ra t
phm vi vn , ging nh tn cc lp.
5.2- Lin h mt chiu (Uni-Directional Association)
Ta cng c th s dng mi lin h mt chiu bng cch thm mt mi tn v
mt u ca ng thng ni kt. Mi tn ch ra rng s ni kt ch c th c
s dng duy nht theo chiu ca mi tn.

Biu phn 5.15 th hin rng gia hai lp c lin h, nhng khng h c
thng tin v s lng cc i tng trong quan h. Ta khng th bit mt khch
hng c th c bao nhiu ti khon v mt ti khon c th l ca chung cho bao
nhiu khch hng. Trong UML, loi thng tin nh th c gi l s lng phn
t (Cardinality) trong quan h.
5.3- S lng (Cardinality) trong lin h:

Vng bc cng doanh nghip s

Biu trn ni r mt khch hng c th m mt hoc nhiu ti khon v mt


ti khon c th thuc v mt cho ti ba khch hng.
S lng c ghi pha u ng thng th hin lin h, st vo lp l min
p dng ca n. Phm vi ca s lng phn t trong lin h c th t 0-ti-1
(0..1), 0-ti-nhiu (0..* hay ), mt-ti-nhiu (1..), hai (2), nm-ti-mi mt
(5..11). Cng c th miu t mt dy s v d (1,4,6, 8..12). Gi tr mc nh l
1.

Hnh trn l v d cho mt biu lp tiu biu. Biu gii thch rng b phn
dch v ti khon tit kim ca mt nh bng c th c nhiu ti khon tit kim
nhng tt c nhng ti khon ny u thuc v b phn . Mt ti khon tit
kim v phn n li c th c nhiu ti liu, nhng nhng ti liu ny ch thuc
v mt ti khon tit kim m thi. Mt ti khon tit kim c th thuc v t 1
cho ti nhiu nht l 3 khch hng. Mi khch hng c th c nhiu hn mt ti
khon.
5.4- Pht hin lin h:
Thng s c nhiu mi lin h gia cc i tng trong mt h thng. Quyt
nh lin h no cn phi c thc thi l cng vic thc giai on thit k. C
th tm cc mi lin h qua vic nghin cu cc li pht biu vn , cc yu cu.
Ging nh danh t gip chng ta tm lp, cc ng t y s gip ta tm ra
cc mi quan h.
Mt vi li mch bo khi tm lin h:
V tr v mt vt l hoc s thay th, i din: Mi cm ng
t xc nh hay biu l mt v tr u l mt biu hin chc
chn cho lin h. V d: ti a im, ngi trong,
S bao cha: Cm ng t biu l s bao cha, v d nh: l
thnh phn ca....
Giao tip: C nhiu cm ng t biu l s giao tip, v d
truyn thng ip, ni chuyn vi,
Quyn s hu: V d: thuc v, ca,

Vng bc cng doanh nghip s


Tho mn mt iu kin: Nhng cm t nh: lm vic cho, l
chng/v ca, qun tr, .
5.5- X l cc lin h khng cn thit:
Sau khi tm cc mi lin h, bc tip theo l phn bic cc lin h cn thit
ra khi cc lin h khng cn thit. Lin h khng cn thit c th bao gm
nhng lin h bao cha cc lp ng c vin b loi tr hoc cc lin h khng
lin quan n h thng. C nhng lin h c to ra nhm mc ch tng hiu
qu. Nhng lin h nh th l v d tiu tiu ca cc chi tit thc thi v khng
lin quan ti giai on ny.
Cn ch phn bit gia hnh ng v mi lin h. Ngi ta thng c xu hng
miu t hnh ng nh l lin h, bi c lin h ln hnh ng u c dn
xut t nhng cm t mang tnh ng t trong bn miu t yu cu. Cc hnh
ng c th hin sai thnh lin h cng cn phi c loi b. Khi lm vic
ny, c th p dng mt nguyn tc: lin h l ni kt mang tnh tnh gia cc
i tng, trong khi hnh ng ch l thao tc xy ra mt ln. Hnh ng v vy
nn c coi l Phng thc i vi mt i tng ch khng phi quan h gia
cc lp.
V d vi "Ban qun tr nh bng ui vic mt nhn vin", ng t ui vic
th hin hnh ng. Trong khi vi Mt nhn vin lm vic cho hng" th ng
t lm vic" miu t lin h gia hai lp nhn vin v hng.
Trong khi c gng loi b cc lin h d tha, bn s thy c mt s lin h d
tha "ln vo" m hnh ca chng ta trong giai on thit k. Hnh sau ch ra
mt s loi lin h d tha cn c bit ch trng.

5.6- Nng cp cc mi lin h:


Mt khi cc mi lin h cn thit c nhn dng, bc tip theo l ngin cu
k m hnh v nng cp cc mi lin h .
ng tc nng cp u tin l xem xt li tn lin h, tn vai tr, t li cho
ng vi bn cht quan h m chng th hin. Mi lin h cn phi c suy xt
k v phng din s lng thnh phn tham gia (Cardinality). S hn nh
(Qualification) cho lin h ng mt vai tr quan trng y, b sung yu t hn
nh c th gip lm gim s lng. Nu cn thit, hy b sung cc lin h cn

Vng bc cng doanh nghip s


thiu. Nghin cu k cc thuc tnh, xem liu trong s chng c thuc tnh no
tht ra th hin lin h. Nu c, hy chuyn chng thnh lin h. B sung cc
thng tin v iu kin cn thit cng nh xem xt cc mi lin h trong m hnh
tng th xc nh cc dng quan h gia chng vi nhau.
5.6.1- Lin h v yu t hn nh (Qualifier):
Mt lin h c hn nh lin h hai lp v mt yu t hn nh (Qualifier) vi
nhau. Yu t hn nh l mt thuc tnh hn ch s lng thnh phn tham gia
trong mt mi lin h. C th hn nh cc mi lin h mt-ti nhiu v nhiuti-nhiu. Yu t hn nh gip phn bit trong nhm i tng ca u nhiu
ca lin h.
V d mt th mc c nhiu tp tin.Mt tp tin ch thuc v mt th mc m thi.
Trong mt th mc xc nh, tn ca tp tin s xc nh duy nht tp tin mang
tn . Th mc v Tp tin l hai lp, v tn tptin y ng vai tr yu t hn
nh. Mt th mc v mt tn tp tin xc nh mt tp tin. Yu t hn nh y
chuyn mt mi lin h mt-ti-nhiu thnh lin h mt-ti-mt.

5.6.2- Lin h V (AND Association)


Nh bng n a ra quy nh: khch hng khi mun m mt ti khon ATM phi
l ch nhn ca t nht mt ti khon u t. Trong mt trng hp nh th,
mi lin h V (AND) s c th hin nh sau:

Biu trn cho thy mt khch hng c th c nhiu hn mt ti khon u t


c thi hn v ch mt ti khon ATM. Trong biu c mt mi lin h V ngm
c p dng gia nhm ti khon u t v ti khon ATM m mt khch hng
c th c.
5.6.3- Lin h HOC (OR Association)
V d ti mt hng bo him n, c nhn cng cng ty u c th k hp ng
bo him, nhng c nhn v cng ty khng c php c cng loi hp ng bo
him nh nhau. Trong mt trng hp nh th, gii php l s dng lin h
HOC (OR Association). Mt lin h HOC l mt s hn ch i vi mt nhm
hai hay nhiu lin h, xc nh rng i tng ca mt lp ny ti mt thi im
ch c th tham gia vo nhiu nht mt trong cc mi lin h .

Vng bc cng doanh nghip s


5.6.4- Lin h c sp xp (Ordered Association)
Cc mi ni kt (link) gia cc i tng c mt trt t ngm nh. Gi tr mc
nh ca trt t ny l ngu nhin. Mt lin h c trt t r rng c th c
hiu l mt lin h vi trt t sp xp (sort order) trong nhm cc ni kt, n
s c th hin nh sau:

Nhn {ordered} c ghi gn lp c i tng c sp xp. Biu trn c


c l cc ti khon tit kim c sp xp theo khch hng.
5.6.5- Lin h tam nguyn (Ternary Association)
C th c nhiu hn hai lp ni kt vi nhau trong mt lin h tam nguyn.

Biu trn c c nh sau: Mt khch hng c th quan h vi b phn u


t v mt b phn u t c th c mt hoc nhiu khch hng. Mt giy chng
nhn ti khon u t s xut hin qua quan h gia khch hng v b phn u
t.
5.6.6- Lp lin h (Association Class)
Mt lp c th c nh km theo mt lin h, trong trng hp ny n s c
gi l mt lp lin h. Mt lp lin h khng c ni ti bt k mt lp no ca
mi lin h, m ti chnh bn thn mi lin h. Cng ging nh mt lp bnh
thng, lp lin h c th c thuc tnh, Phng thc v cc quan h khc. Lp
lin h c s dng b sung thm thng tin cho ni kt (link), v d nh thi
im ni kt c thit lp. Mi ni kt ca lin h gn lin vi mt i tng
ca lp lin h.
V d sau miu t mt h thng thang my. B phn iu khin ch huy bn
thang my. Cho mi ni kt gia nhm thang my v b phn iu khin c mt
hng xp (queue). Mi hng lu tr nhng yu cu k c t pha b phn iu
khin ln t pha thang my (nhng nt bm bn trong thang). Khi b phn iu
khin chn mt thang my thc hin mt li yu cu n t mt hnh khch
ng ngoi thang my (mt hnh khch trn hnh lang), n s c cc hng v
chn thang my no c hng yu cu ngn nht.

Vng bc cng doanh nghip s


5.6.7- Lin h quy (Recursive Association)
C th lin kt mt lp vi bn thn n trong mt mi lin h. Mi lin h y
vn th hin mt s lin quan ng ngha, nhng cc i tng c ni kt u
thuc chung mt lp. Mt lin h ca mt lp vi chnh bn thn n c gi l
mt lin h quy, v l nn tng cho rt nhiu m hnh phc tp, s dng v d
miu t cc cu trc sn phm. Hnh 5.25 ch ra mt v d ca lin h quy
v hnh 5.26 l mt biu i tng cho biu lp trong hnh 5.25.

6- Quan h kt tp (Aggregation)
6.1- Khi nim kt tp:
Kt tp l mt trng hp c bit ca lin h. Kt tp biu th rng quan h
gia cc lp da trn nn tng ca nguyn tc "mt tng th c to thnh bi
cc b phn". N c s dng khi chng ta mun to nn mt thc th mi
bng cch tp hp cc thc th tn ti vi nhau. Mt v d tiu biu ca kt tp
l chic xe t gm c bn bnh xe, mt ng c, mt khung gm, mt hp s,
v.v....
Qu trnh ghp cc b phn li vi nhau to nn thc th cn thit c gi l
s kt tp. Trong qu trnh tm lp, kt tp s c ch ti khi gp cc loi
ng t c to bi", "gm c", . Quan h kt tp khng c tn ring. Tn
ngm cha trong n l "bao gm cc thnh phn".
6.2- K hiu kt tp:
K hiu UML cho kt tp l ng thng vi hnh thoi (diamond) t st lp biu
th s kt tp (tng th).
Mt lp ti khon c to bi cc lp chi tit v khch hng, cc lnh giao dch
i vi ti khon cng nh cc quy nh ca nh bng.
Quan h trn c th c trnh by nh sau:

Mi thnh phn to nn kt tp (tng th) c gi l mt b phn (aggregates).


Mi b phn v phn n li c th c to bi cc b phn khc.

Vng bc cng doanh nghip s

Trong trng hp ti khon k trn, mt trong cc b phn ca n l cc chi tit


v khch hng. Cc chi tit v khch hng li bao gm danh sch ch ti khon,
danh sch a ch, cc quy nh v k hn cng nh cc chi tit khc khi m ti
khon.
6.3- Kt tp v lin h:
Khi nim kt tp ny sinh trong tnh hung mt thc th bao gm nhiu thnh
phn khc nhau. Lin h gia cc lp mt khc l mi quan h gia cc thc th.
Quan st hnh sau:

Mt ti khon c to bi cc chi tit v khch hng, cc lnh giao dch i vi


ti khon cng nh cc quy nh ca nh bng. Khch hng khng phi l l b
phn ca ti khon, nhng c quan h vi ti khon.
Nhn chung, nu cc lp c ni kt vi nhau mt cch cht ch qua quan h
"ton th b phn" th ngi ta c th coi quan h l kt tp. Khng c li
hng dn chc chn v r rng cho vic bao gi nn dng kt tp v bao gi
nn dng lin h. Mt li tim cn nht qun i km vi nhng kin thc su sc
v phm vi vn s gip nh phn tch chn gii php ng n.

7- Khi qut ha v chuyn bit ha (Generalization & Specialization)


Hy quan st cu trc lp trong biu sau:

Trong hnh trn, ti khon l khi nim chung ca cc loi ti khon khc nhau
v cha nhng c t cn thit cho tt c cc loi ti khon. V d nh n c th
cha s ti khon v tn ch ti khon. Ta c th c hai loi ti khon c bit
suy ra t dng ti khon chung ny, mt loi mang tnh k hn v mt loi mang
tnh giao dch. Yu t chia cch hai lp ny vi nhau l cc quy nh chuyn
ngnh hay ng hn l phng thc hot ng ca hai loi ti khon.

Vng bc cng doanh nghip s


Tng t nh vy, ti khon u t trung hn v di hn li l nhng khi nim
chuyn bit ca khi nim ti khon c k hn. Mt khc, ti khon bnh thng
v ti khon tit kim l nhng trng hp c bit ca loi ti khon giao dch.
Loi cu trc lp nh th c gi l mt cu trc hnh cy hoc cu trc phn
cp. Khi chng ta dch chuyn t im xut pht ca cy xung di, chng ta
s gp cc khi nim cng ngy cng c chuyn bit ha nhiu hn. Theo con
ng i t ti khon n ti khon tit kim, ta s phi i qua lp ti khon
giao dch. Lp ny tip tc phn loi cc lp chuyn bit ha cao hn, ty thuc
vo chc nng ca chng.
7.1- K hiu khi qut ha v chuyn bit ha
Trong biu trn, cc lp trong mt cu trc cy c ni vi nhau bng mt
mi tn rng, ch t lp chuyn bit hn ti lp khi qut hn.

Qu trnh bt u vi mt lp khi qut sn xut ra cc lp mang tnh chuyn


bit cao hn c gi l qu trnh chuyn bit ho (Specialization)
Chuyn bit ha: l qu trnh tinh ch mt lp thnh nhng lp chuyn bit
hn. Chuyn bit ha b sung thm chi tit v c t cho lp kt qu. Lp mang
tnh khi qut c gi l lp cha (superclass), kt qu chuyn bit ha l vic
to ra cc lp con (Subclass).
Mt khc, nu chng ta i dc cu trc cy t di ln, ta s gp cc lp ngy
cng mang tnh khi qut cao hn - V d t lp ti khon tit kim ln ti lp ti
khon. Con ng bt u t mt lp chuyn bit v khin n ngy cng mang
tnh khi qut cao hn c gi l qu trnh khi qut ha (Generalization).
Lp chuyn bit y c gi l lp con, trong v d trn l ti khon tit kim,
trong khi lp khi qut kt qu c gi l lp cha.
Chuyn bit ha v khi qut ha l hai con ng khc nhau xem xt cng
mt mi quan h.
Mt lp l lp con ca mt lp ny c th ng vi tr l mt lp cha ca lp
khc.
7.2- Yu t phn bit (Discriminatior)

Vng bc cng doanh nghip s


to mt cu trc phn cp, cn phi c mt s thuc tnh lm nn tng cho
qu trnh chuyn bit ha. Thuc tnh c gi l yu t phn bit
(Discriminator).
Vi mi gi tr c th gn cho yu t phn bit trong lp cha, ta s c mt lp
con tng ng.

Trong hnh trn, yu t phn bit trong lp ti khon l "loi ti khon". Chng
ta gi thit rng ch c hai loi ti khon, mt mang tnh k hn v mt mang
tnh giao dch. Theo , ta phi to ra hai lp con, mt cho cc ti khon mang
tnh k hn v mt cho cc ti khon mang tnh giao dch.
Trong m hnh i tng, khng nht thit phi nu bt yu t phn bit. Yu t
phn bit lun c mt trong mt cu trc phn cp lp cha/ con, d c c
nhn mnh trong m hnh i tng hay khng. Mc du vy, m bo cho
mt m hnh c nh ngha r rng, trnh by yu t phn bit vn lun l
cng vic nn thc hin.
7.2.1- Lp tru tng
Quan st cu trc trong hnh trn, ta thy lp ti khon s khng bao gi c
thc th ha, c ngha l h thng s khng bao gi to ra cc i tng thuc
lp ny. Nguyn nhn l v lp ti khon mang tnh khi qut cao n mc
vic khi to lp ny s khng c mt ngha no ng k. Lp ti khon mc
d vy vn ng mt vai tr quan trng trong vic khi qut ha cc thuc tnh
s c cn n trong cc lp dn xut t n. Nhng loi lp nh th c dng
cung cp mt cy cu trc lp v khng c s tn ti y ngha trong
mt m hnh tht s ngoi i, chng c gi l lp tru trng (abstract
class).
7.2.2- To lp tru tng
Cc lp tru trng l kt qu ca qu trnh khi qut ha. Hy quan st v d
cu trc lp sau y. Lp ti khon ng u cy cu trc v c gi l lp cn
bn. Lp cn bn ca mt cy cu trc cha nhng thuc tnh c khi qut
ha v c th c p dng cho mi lp dn xut t n. Trong qu trnh khi
qut ha, cc thuc tnh c dng chung trong cc lp chuyn bit c a ln
lp cha. Lp cha v cui c to bi cc thuc tnh chung ca tt c cc lp dn
xut t n. Nhng lp cha dng nh vy trong rt nhiu trng hp s mang tnh
khi qut tuyt i v s khng theo ui mc ch khi to, chng c li ng x
ging nh mt thng cha (container) cho tt c cc thuc tnh chung ca cc
lp dn xut. Nhng lp nh th trong trng hp chung thng l kt qu nh

Vng bc cng doanh nghip s


x ca nhng danh t tru tng, l h qu ca phng php s dng cc danh
t nhn din lp.

Biu trn cho ta mt v d v khi qut ha v cc thuc tnh chung, n ch ra


nhiu lp chuyn bit. Ch rng c theo mi mc chuyn bit ha li c thm
cc thuc tnh c b sung thm cho cc lp, khin chng mang tnh chuyn
bit cao hn so vi cc lp cha mc tru tng bn trn. V d lp ti khon c
thuc tnh l s ti khon v tn khch hng. y l nhng thuc tnh ht sc
chung chung. Tt c cc lp dn xut t n, d l trc tip hay gin tip ( cc
mc tru tng thp hn na), u c quyn s dng cc thuc tnh ca
lp ti khon. Cc lp ti khon c k hn v ti khon giao dch l hai lp
chuyn bit dn xut t lp ti khon. Chng c nhng thuc tnh chuyn bit
ring ca chng - v d mc thi gian (duration) i vi lp ti khon c k hn
v mc tin ti thiu i vi lp ti khon giao dch bn cnh hai thuc tnh s
ti khon v tn khch hng m chng tha k t lp ti khon. Cng tng t
nh th vi ti khon u t ngn hn v ti khon u t trung hn l cc loi
lp thuc ti khon c k hn, ti khon tit kim v ti khon bnh thng l
cc loi lp thuc lp ti khon giao dch.
7.2.3- Lp c th (concrete class)
Lp c th l nhng lp c th thc th ha. Nh ni t trc, cc lp c th
khi thc th ha c gi l cc i tng. Trong v d trn, cc lp ti khon
u t ngn hn v ti khon u t di hn c th c thc th ha thnh i
tng. Tng t i vi ti khon tit kim v ti khon bnh thng.
7.2.4- Tng kt v pht trin cy cu trc
C ch dng chung thuc tnh v th tc s dng nguyn tc khi qut ha c
gi l tnh tha k (inheritance). S dng tnh tha k tinh ch (refine) cc
lp s dn ti vic pht trin mt cy cu trc. Nn pht hin nhng ng x
(behaviour) chung trong mt lot lp ri th hin n thnh mt lp cha. S khc
bit trong ng x ca cng mt lp s dn ti vic to ra cc lp con.
Khi pht trin cy cu trc, hy quan st ng x ca cc lp. Trong trng hp
c mt lin h tn ti t mt lp c th n tt c cc lp con ca mt lp cha,
nn dch chuyn lin h ny ln lp cha.
Nu tn ti mt lin h gia mt lp no v mt lp cha, hy chuyn bit ha
v nng cao cu trc xc nh xem liu lin h ny c c p dng cho tt c

Vng bc cng doanh nghip s


cc lp con ca lp cha n hay khng. Nu c th gn n vo lp cha, nu khng
th dch xung cho nhng lp con ph hp.
Trong khi tin hnh khi qut ha, trng tm cng vic l xc nh cc ng x
chung trong mt nhm nhiu lp chuyn bit bc trung. Khi xy dng c
mt th tc hoc mt thuc tnh chung, nn kim tra li xem chng c tht s l
yu t chung ca tt c cc lp chuyn bit trong phm vi ny. Khi qut ha
c p dng ch khi chng ta c mt tp hp cc lp nh ngha mt loi i
tng ring bit v c mt s lng ln cc ng x chung. Trng tm y l
to nn lp cha cha cc ng x chung .
Khi chuyn bit ha, ta i tm cc s khc bit trong ng x to cc lp con
thch ng. C ngha l ta xem xt mt lp tn ti, kim tra xem c phi tt c
cc ng x ca n u c kh nng p dng cho mi i tng. Nu khng, ta
lc ra ng x khng phi lc no cng cn thit v chia trng hp n ra thnh
cc lp con. Trng tm ca chuyn bit ha l to cc lp con.
Vi c ch tha k, mt lp con s k tha mi thuc tnh th tc ca tt c
cc lp cha ca n.
Hnh sau lm r vic to cu trc lp s dng tnh khi qut.

Thng xy ra trng hp tt c cc lp con cng tham gia vo mt lin h hoc


kt tp. Trong trng hp ny nn to lp cha nh ngha lin h /kt tp .
Hnh sau gii thch thm im ny:

8- Quan h ph thuc v nng cp (Dependency & Refinement)


Bn cnh lin h v khi qut ha, UML cn nh ngha hai loi quan h khc.
Quan h ph thuc (Dependency) l mt s lin quan ng ngha gia hai
phn t m hnh, mt mang tnh c lp v mt mang tnh ph thuc. Mi s
thay i trong phn t c lp s nh hng n phn t ph thuc. Phn t m
hnh y c th l mt lp, mt gi (package), mt trng hp s dng,.v.v...
C th nu mt vi c d cho s ph thuc nh: mt lp ly tham s l i tng
ca mt lp khc, mt lp truy nhp mt i tng ton cc ca mt lp khc,
mt lp gi mt th tc thuc thuc mt lp khc. Trong tt c cc trng hp
trn u c mt s ph thuc ca mt lp ny vo mt lp kia, mc d chng
khng c lin h r rng vi nhau.

Vng bc cng doanh nghip s


Quan h ph thuc c th hin bng ng thng gch ri (dashed line) vi
mi tn (v c th thm mt nhn) gia cc phn t m hnh. Nu s dng nhn
th n s l mt khun mu (stereotype), xc nh loi ph thuc. Hnh sau ch ra
mt s ph thuc dng "friend", c ngha rng mt phn t m hnh nhn c
quyn truy cp c bit ti cu trc ni b ca phn t th hai (thm ch ti c
nhng phn mang tnh nhn thy l private).

Nng cp (Refinement) l mt quan h gia hai li miu t ca cng mt s


vt, nhng nhng mc tru tng ha khc nhau. Nng cp c th l mi
quan h gia mt loi i tng v lp thc hin n. Cc nng cp thng gp
khc l quan h gia mt lp phn tch (trong m hnh phn tch) v mt lp
thit k (trong m hnh thit k) u m hnh ha cng mt th, quan h gia
mt li miu t c mc tru tng ha cao v mt li miu t c mc tru tng
ha thp (v d mt bc tranh khi qut ca mt s cng tc ng v mt biu
chi tit ca cng cng tc ). Quan h nng cp cn c s dng m
hnh ha nhiu mc thc thi ca cng mt th (mt thc thi n gin v mt
thc thi phc tp hn, hiu qu hn).
Quan h nng cp c th hin bng ng thng gch ri (dashed line) vi
mi tn rng.

Quan h nng cp c s dng trong vic phi hp m hnh. Trong cc d n


ln, mi m hnh u cn phi c phi hp vi nhau. Phi hp m hnh c
s dng nhm mc ch:
Ch ra mi lin quan gia cc m hnh nhiu mc tru tng khc
nhau.
Ch ra mi lin quan gia cc m hnh nhiu giai on khc nhau (phn
tch yu cu, phn tch, thit k, thc thi,...).
H tr vic qun tr cu hnh.
H tr vic theo di trong m hnh.
9- Nng cp m hnh qua cc vng lp k tip

Vng bc cng doanh nghip s


Cho ti thi im ny, chng ta i qua cc bc cng vic phn tch cn bn v
to nn phin bn u tin ca m hnh i tng. M hnh ny cn phi c
ly lm mc tiu cho cc vng lp nng cp tip theo.
Cng vic nng cp c th c thc hin bng cch a m hnh qua tt c cc
giai on pht trin m hnh i tng mt ln na. Ln ny, nhng kin thc
thu c trong vng pht trin u s t ra rt hu dng. Khi nng cp m hnh
cn ch n cc bc sau:
a) Nghin cu cc lp tm cc thuc tnh v th tc khng ng dng
(dissimilar). Nu c, x lp thnh cc thnh phn to tnh ng nht
(harmony) trong lp. V d vi mt lp m nhn hai vai tr khc nhau, hy x
lp thnh cc lp kt qu vi nhng th tc c xc nh r rng.
b) Nu pht hin thy mt chc nng khng hng ti mt lp ch no th l
triu chng thiu lp. Hy b sung lp thiu v a th tc k trn vo lp .
c) Khi qut ha l cn cha nu c cc lin h trng lp (nhiu lin h
cng nh ngha mt quan h). Trong trng hp ny, cn to lp cha kt hp
cc mi lin h .
d) Nu mt vai tr mang mt ngha c bit quan trng i vi h thng th
thng n cn mt lp ring. Mt la chn khc l bin lin h nh ngha vai tr
ny thnh mt lp lin h.
e) Nu mt lp thiu c thuc tnh ln th tc v / hoc lin h th rt c th y
l mt lp khng cn thit. Hy loi b nhng lp nu c th.
f) Hy r st ton b h thng tm nhng vai tr gia cc lp cn cha c
th hin. Nu c, y l triu chng thiu lin h.
g) Nu c mt lin h gia cc i tng nhng li chng c th tc no s
dng ti th rt c th y l mt lin h khng cn thit. V d ta xc nh
mt lin h gia nhn vin thu ngn v khch hng nhng li khng c th tc
no c nh ngha gia hai ngi. Trong trng hp ny, rt c th lin h
l khng cn thit.
Mt s mch bo thc t:
Nghin cu hiu thu o vn cn gii quyt:
Khi xy dng m hnh i tng, khng nn bt u bng cch vit ra cc cu
trc lp, cc mi lin h cng nh nhng mi quan h tha k l r trn b mt
v p thng vo mt chng ta. Hy dnh thi gian nghin cu k bn cht vn
. M hnh i tng phi c thit k ph hp vi gii php cho vn m
chng ta nhm ti.

Vng bc cng doanh nghip s


Cn thn khi chn tn:
Tn cn c chn mt cch cn thn bi n chng nhn s tn ti cc thc th.
Tn cn phi chnh xc, ngn gn, trnh gy bn ci. Tn phi th hin tng th
i tng ch khng ch nhm ti mt kha cnh no ca i tng.
Bt c ni no c th, hy chn nhng tn no bao cha cc danh t chuyn
ngnh quen thuc i vi ngi s dng. Nhng tn to ra nhng hnh xa vi i
vi ngi s dng, hoc cc thc th c t tn mt cch ti t rt d gy ra
nhm ln.
Cn gi cho m hnh i tng c n gin:
Hy khng c li xu hng to ra cc m hnh phc tp, chng ch mang li s
nhm ln, bi ri. Trong vng u ca quy trnh m hnh ha i tng, hy xc
nh cc mi lin h cn bn v gt ra ngoi cc chi tit, vic xem xt ti cc s
lng thnh phn tham gia (Cardinality) trong quan h c dnh cho giai
on sau; rt c th l vng th hai. Tt nht l cc chi tit phn nh s lng
cc thnh phn tham gian trong quan h ch c b sung thm vo trong vng
th hai hoc vng th ba ca cng vic m hnh ha i tng. Thng thng,
ngi ta thy nhng phin bn u tin ca m hnh thng ch cha cc mi
lin h vi s lng l t 0-ti-0; 0-ti-1, 1- ti-1; 1-ti-nhiu.
Nn s dng cc mi lin h hn nh bt c khi no c th.
Trnh khi qut ha qu nhiu. Thng ch nn hn ch ba tng khi
qut.
Hy nghin cu tht k cc mi lin h 1-ti-nhiu. Chng thng c th
c chuyn thnh cc quan h 1-ti-0 hoc 1-ti-1.
Tt c cc m hnh cn phi c ly lm i tng cho vic tip tc nng
cp. Nu khng thc hin nhng vng nng cp sau , rt c th m hnh
ca chng ta s thiu hon chnh.
ng tc cho nhng ngi khc xem xt li m hnh l rt quan trng.
Thng s lin quan qu cn k vi m hnh s khin chng ta m la,
khng nhn nhng ra khim khuyt ca n. Mt ci nhn v t trong
trng hp ny l rt cn thit.
Khng nn m hnh ha cc mi lin h thnh thuc tnh. Nu iu ny
xy ra, ta thng c th nhn thy qua triu chng l m hnh thiu lin
h. Thm vo , c lc ta b qua s cn thit ca mt yu t hn nh.

Vng bc cng doanh nghip s


Vic vit ti liu cho m hnh l v cng quan trng. Cc ti liu cn phi nm
bt thu o nhng nguyn nhn nm ng sau m hnh v trnh by chng
chnh xc nh c th.
10- Cht lng m hnh
Lm sao bit c m hnh l tt hay cha tt? Mt ngn ng m hnh ha c
th cung cp ng php v ng ngha cho ta lm vic, nhng n khng cho ta bit
liu mt m hnh va c to dng nn l tt hay khng. Yu t ny m ra mt
vn quan trng trong vic xc nh cht lng m hnh. iu ch cht khi
chng ta thit k m hnh l th chng ta mun ni v hin thc. M hnh mang
li s din gii cho nhng g m chng ta nghin cu (hin thc, mt vin
cnh...).
Trong mt m hnh, yu t quan trng bt nht l phi nm bt c bn cht
ca vn . Trong mt h thng ti chnh, chng ta thng m hnh ha cc ha
n ch khng phi cc mn n. Trong a phn doanh nghip, bn thn ha n
khng tht s c tm quan trng n nh vy, yu t quan trng y l cc
mn n. Mt ha n ch l mt s th hin ca mt mn n, nhng ta cn phi
m hnh ha lm sao phn nh iu . Mt khi nim khc l mt ti khon
nh bng. Trong nhng nm 70 v 80 c rt nhiu m hnh th hin ti
khon nh bng. Khch hng (ch nhn ca ti khon ti nh bng) c coi l
mt thnh phn ca ti khon ny (mt ti khon nh bng c m hnh ha
nh l mt lp hoc l mt thc th v mt khch hng l mt thuc tnh). Kh
khn u tin xy ra l nh bng khng th x l ti khon c nhiu ch. Vn
th hai l nh bng khng th to ra cc chin lc maketing nhm ti nhng
khch hng khng c ti khon trong nh bng ch bi v h khng c a ch.
V vy, mt trong nhng kha cnh ca cht lng m hnh l tnh thch hp ca
m hnh . Mt m hnh thch hp phi nm bt cc kha cnh quan trng ca
i tng nghin cu. Nhng kha cnh khc trong vic nh gi cht lng l
m hnh phi d giao tip, phi c mt mc tiu c th, d bo qun, mang tnh
vng bn v c kh nng tch hp. Nhiu m hnh ca cng mt h thng nhng
c cc mc ch khc nhau (hoc l hng nhn khc nhau) phi c kh nng tch
hp c vi nhau.
D l s dng phng php no hoc ngn ng m hnh ha no, ta vn cn
phi i mt vi cc vn khc. Khi to dng m hnh, chng ta tr thnh mt
phn ca doanh nghp, c ngha l chng ta cn phi quan st hiu ng s can
thip ca chng ta vo doanh nghip. Yu t quan trng l cn phi x l tt c
cc kha cnh ca s can thip v d nh v chnh sch, vn ha, cu trc x
hi v nng sut. Nu khng lm c iu ny, rt c th ta khng c kh nng

Vng bc cng doanh nghip s


pht hin v nm bt tt c nhng i hi cn thit t pha khch hng (cn ch
rng nhng pht biu yu cu c a ra khng phi bao gi cng chnh xc
l nhng g khch hng thc s cn). Hy c bit ch n cc vn vi
chnh sch ni b, cc mu hnh x hi, cc cu trc khng chnh thc v cc th
lc bao quanh khch hng.
10.1- Th no l mt m hnh tt?
Mt m hnh s l mt m hnh tt nu ta c kh nng giao tip vi n, nu n
ph hp vi cc mc ch ca n v nu chng ta nm bt c nhng im
ct yu ca vn . Mt m hnh tt i hi thi gian xy dng; bnh thng ra
n c to bi mt nhm pht trin, c thnh lp vi mt mc ch c th.
Mt trong nhng mc ch ny c th l huy ng ton b lc lng pht hin
ra cc yu cu ca mt c quan. Mt mc ch khc rt c th l m hnh ha
mt c t yu cu, thc hin mt giai on phn tch, hay v mt bn thit k
k thut cho mt h thng thng tin. Khi cc c nhn khc nhau c tp hp
thnh nhm, ng tc ny cn phi c thc hin tp trung vo mc tiu nh
trc. Cc nhm m hnh ha mt doanh nghp hoc l mt h thng thng
tin rt c th c to bi khch hng, chuyn gia m hnh ha v chuyn gia
ng dng.
10.2- Ta c th giao tip vi m hnh?
Ti sao m hnh li phi l th d giao tip? Tt c cc d n, d ln hay nh,
u cn phi c giao tip. Con ngi ta ni chuyn vi nhau. H c cc ti
liu ca nhau v tho lun cc ni dung ca chng. Sng kin khi thy nm
ng sau bt k mt m hnh no cng l to ra kh nng giao tip vi chng.
Nu chng ta to ra cc m hnh m khng ai c ni, hiu ni, th l vic lm
v ngha. M hnh chng phi c to ra bi ngi dn u mt phng php
hoc ngi dn u mt d n ra lnh. M hnh c to ra phc v cho vic
giao tip v tp hp cc c gng ca chng ta t n nng sut, hiu qu v
cht lng cao nh c th.
10.3- M hnh c ph hp vi mc ch ca n khng?
Mt m hnh hnh cn phi c mt mc ch r rng, sao cho ai dng n cng
nhn c ra. Tt c cc m hnh u c mc ch, nhng thng mc ch ny
l ngm n, v iu ny khin cho vic s dng v hiu n tr nn kh khn.
Cc m hnh phn tch v m hnh thit k c th l m hnh ca cng mt h
thng, nhng chng vn l nhng m hnh khc nhau v tp trung vo cc ch
khc nhau (hay l chi tit khc nhau). Cn phi xc nh r rng mc ch cho
mi m hnh c th kim tra v ph duyt n. Nu khng c mc ch r rng,

Vng bc cng doanh nghip s


chng ta v d rt c th s thm tra mt m hnh hnh phn tch nh th n l
mt m hnh thit k.
10.4- Nm bt nhng im trng yu
Nhiu m hnh ch bao gm cc ti liu ca doanh nghip v d nh cc ha
n, nhng thng tin nhn c, cc hp ng bo him. Nu m hnh ch l s
bao gm cc ti liu th iu g s xy ra nu doanh nghip thay i? y l mt
vn rt quan trng trong thc t. Chng ta cn thit phi nm bt bn cht
ca doanh nghip (to nn phn nhn) v m hnh xoay quanh cc khi nim
thit yu c kh nng x l cc thay i mt cch thch hp. Hy m hnh
ha phn nhn ca doanh nghip v sau mi n mt m hnh din gii phn
nhn . Mt khi phn nhn c m hnh ha, nhng thay i nho nh trong
doanh nghip c th c x l qua vic sa i cc lp din gii cc loi i
tng thuc phn nhn (v d nh cc ha n l mt s din gii ca cc mn
n).
10.5- Phi hp cc m hnh
Cc m hnh khc nhau ca cng mt h thng phi c kh nng c kt hp
v lin quan n nhau. Mt trong cc kha cnh ca phi hp m hnh l s tch
hp. Tch hp c ngha l mt nhm cc m hnh cng chung mc ch v th
hin cng mt th (mc d chng c th c nhiu hng nhn khc nhau, v d
nh m hnh ng, m hnh chc nng, m hnh tnh), th chng phi c kh
nng c rp li vi nhau m khng lm ny sinh mu thun.
Quan h gia cc m hnh nhng mc tru tng khc nhau l mt kha
cnh quan trng khc. N l mt trong nhng cha kha dn n kh nng c th
theo di bc pht trin ca cc phn t khc nhau, phc v cho cng ngh lp
trnh. Quan h gia cc mc tru tng khc nhau c th c th hin bng
quan h nng cp trong UML. iu c ngha l cc m hnh s c phi hp
ti mi mt mc tru tng cng nh c phi hp gia cc mc tru
tng khc nhau.
10.6- phc tp ca m hnh
Ngay c khi cc m hnh ca chng ta d dng giao tip, c mt mc ch r
rng, nm bt c nhng im trng yu trong phm vi vn v c th c
phi hp vi nhau, ta vn c th gp kh khn nu m hnh qu phc tp. Nhng
m hnh cc k phc tp s kh nghin cu, kh thm tra, kh ph duyt v kh
bo tr. Sng kin tt l hy bt u vi mt m hnh n gin, v sau chi tit
ha nhiu hn bng cch s dng vic phi hp m hnh. Nu bn cht phm vi
vn ca chng ta l phc tp, hy x m hnh thnh nhiu m hnh khc nhau

Vng bc cng doanh nghip s


(s dng cc tiu m hnh tc l cc gi) v c gng qui trnh ny c th
kim sot c tnh hung.
11- Tm tt v m hnh i tng
Khi to m hnh l chng ta din gii cc chi tit v nhng g m chng ta nghin
cu, th nhng mt yu t rt quan trng l m hnh phi nm bt c nhng
im trng yu ca i tng nghin cu. Mt i tng l mt th g m
chng ta c th ni v v c th x l trong mt s phng thc no . Mt i
tng tn ti trong th gii thc (hoc ni cho chnh xc hn l trong s hiu bit
ca chng ta v th gii thc). Mt i tng c th l mt thnh phn ca mt
h thng no trong th gii mt chic my, mt t chc, mt doanh nghp.
Mt lp l li miu t t 0, 1 hoc nhiu i tng vi cng li ng x. Lp v i
tng c s dng bn lun v cc h thng.
Khi chng ta m hnh ha, chng ta s dng mt ngn ng m hnh ha v d
nh UML, cung cp cho chng ta ng php v ng ngha to dng m hnh.
Ngn ng m hnh ha mc d vy khng th cho chng ta bit liu chng ta
to ra mt m hnh tt hay khng. Cht lng m hnh cn phi c ch ring
bit, iu c ngha l tt c cc m hnh cn phi c mt mc ch r rng v
chnh xc v chng phi nm bt c bn cht ca i tng nghin cu. Tt c
cc m hnh cn phi c lm sao d giao tip, d thm tra, ph duyt v
bo tr.
UML cung cp m hnh tnh, ng v theo chc nng. M hnh tnh c th hin
qua cc biu lp, bao gm cc lp v mi quan h gia chng. Quan h c th
l lin h, khi qut ho, ph thuc hoc l nng cp. Mt mi quan h lin h l
mt s ni kt gia cc lp, c ngha l s ni kt gia cc i tng ca cc lp
ny. Khi qut ha l quan h gia mt phn t mang tnh khi qut hn v mt
phn t mang tnh chuyn bit hn. Phn t mang tnh chuyn bit hn c th
ch cha cc thng tin b sung. Mt thc th (mt i tng l mt thc th ca
mt lp) ca phn t chuyn bit hn c th c s dng bt c ni no m
thc th ca phn t khi qut hn c cho php. Ph thuc l mi quan h
gia hai phn t, mt mang tnh c lp v mt mang tnh ph thuc. Mi thay
i trong phn t c lp s gy tc ng n phn t ph thuc. Mt quan h
nng cp l mt quan h gia hai li miu t ca cng mt th nhng nhng
mc tru tng khc nhau.

Phn cu hi

Vng bc cng doanh nghip s


Hi: Khi to dng m hnh, cn s dng cc khi nim ca chnh phm vi vn
m hnh d hiu v d giao tip.
p: ng
Hi: Cc lp ch th hin cu trc thng tin?
p: sai, cc lp khng phi ch th hin cu trc thng tin m cn m t c
hnh vi.
Hi: Cc khi nim then cht thng s tr thnh cc lp trong m hnh phn
tch?
p: ng
Hi: Thng cc danh t trong cc li pht biu bi ton s l ng c vin
chuyn thnh lp v i tng?
p: ng
Hi: Quan h kt hp (Association) gia cc lp nh ngha cc mi lin quan c
th tn ti gia cc i tng?
p: ng, v d mt mi quan h kt hp l mt s ni kt gia cc lp, c
ngha l s ni kt gia cc i tng ca cc lp ny.
Hi: Kt tp biu th rng quan h gia cc lp da trn nn tng ca nguyn
tc "mt tng th c to thnh bi cc b phn"
p: ng, n c s dng khi chng ta mun to nn mt thc th mi bng
cch tp hp cc thc th tn ti vi nhau
Hi: Khi qut ho c s dng to cc lp con?
p: Sai, khi qut ho l qu trnh bt u t mt lp chuyn bit v khin n
ngy cng mang tnh khi qut cao hn (lp cha)
Hi: Chuyn bit ho b sung thm chi tit v c t cho lp kt qa?
p: ng, chuyn bit ho l qu trnh tinh ch mt lp thnh nhng lp
chuyn bit hn (lp con)

Vng bc cng doanh nghip s

Chng 6: M HNH NG

1- S CN THIT C M HNH NG (DYNAMIC MODEL)


M hnh i tng v qu trnh pht trin n l trng tm ca nhng cuc tho
lun trong chng trc. M hnh i tng nh ngha h thng theo khi nim
cc thnh phn tnh. M hnh i tng miu t ng x mang tnh cu trc v
chc nng ca cc lp. Mc du vy, m hnh ha s hot ng tht s ca
mt h thng v trnh by mt hng nhn i vi h thng trong thi gian h
thng hot ng, chng ta cn ti m hnh ng (dynamic model).
Trong UML, m hnh ng cp ti cc trng thi khc nhau trong vng i ca
mt i tng thuc h thng. Phng thc ng x ca mt h thng ti mt
thi im c th s c miu t bng cc iu kin khc nhau n nh cho s
hot ng ca n.
Mt yu t ht sc quan trng l cn phi hiu cho c h thng s p li
nhng kch thch t pha bn ngoi ra sao, c ngha l chng ta cn phi xc nh
v nghin cu nhng chui cc th tc s l h qu ca mt s kch thch t
ngoi. Cho vic ny, ta cn ti m hnh ng bi trng tm ca m hnh ny l
li ng x ph thuc vo thi gian ca cc i tng trong h thng.
Chng ta cn ti m hnh ng bi chng ta cn th hin s thay i xy ra
trong h thng dc theo thi gian chy. Cng c miu t m hnh ng l khng
th thiu v d trong trng hp cc i tng tri qua nhiu giai on khc
nhau trong thi gian h thng hot ng. iu c ngha l mc d i tng
c to ra mt ln, nhng cc thuc tnh ca chng ch dn dn tng bc nhn
c gi tr. V d nh mt ti khon u t c k hn c to ra, nhng tng
s tin li cng dn ca n ch c tng ln dn dn theo thi gian.
Cc m hnh ng cng l yu t ht sc cn thit miu t ng x ca mt
i tng khi a ra cc yu cu hoc thc thi cc tc v. C tc v ln dch v,
theo nh ngha, u l cc hot ng ng v v th m ch c th c biu
din qua mt m hnh ng.

2- CC THNH PHN CA M HNH NG


i tng trong cc h thng giao tip vi nhau, chng gi thng ip (message)
n nhau. V d mt i tng khch hng l John gi mt thng ip mua hng
n ngi bn hng l Bill lm mt vic g . Mt thng ip thng l mt
lnh gi th tc m mt i tng ny gi qua mt i tng kia. Cc i tng
giao tip vi nhau ra sao v hiu ng ca s giao tip nh th c gi l kha
cnh ng ca mt h thng, ngha ca khi nim ny l cu hi: cc i
tng cng tc vi nhau qua giao tip nh th no v cc i tng trong mt h

Vng bc cng doanh nghip s


thng thay i trng thi ra sao trong thi gian h thng hot ng. S giao tip
trong mt nhm cc i tng nhm to ra mt s cc lnh gi hm c gi l
tng tc (interaction), tng tc c th c th hin qua ba loi biu :
biu tun t (sequence Diagram), biu cng tc (collaboration Diagram) v
biu hot ng (activity Diagram).
Trong chng ny, chng ta s cp ti bn loi biu ng ca UML:
Biu trng thi: miu t mt i tng c th c nhng
trng thi no trong vng i ca n, ng x trong cc trng thi
cng nh cc s kin no gy ra s chuyn i trng thi, v d,
mt t ha n c th c tr tin (trng thi tr tin) hoc l
cha c tr tin (trng thi cha tr tin).
Biu tun t: miu t cc i tng tng tc v giao tip vi
nhau ra sao. Tiu im trong cc biu tun t l thi gian. Cc
biu tun t ch ra chui ca cc thng ip c gi v nhn
gia mt nhm cc i tng, nhm mc ch thc hin mt s
chc nng.
Biu cng tc: cng miu t cc i tng tng tc vi
nhau ra sao, nhng trng im trong mt biu cng tc l s
kin. Tp trung vo s kin c ngha l ch c bit n mi quan
h (ni kt) gia cc i tng, v v th m phi th hin chng
mt cch r rng trong biu .
Biu hot ng: l mt con ng khc ch ra tng tc,
nhng chng tp trung vo cng vic. Khi cc i tng tng tc
vi nhau, cc i tng cng thc hin cc tc v, tc l cc hot
ng. Nhng hot ng ny cng th t ca chng c miu t
trong biu hot ng.
V biu tun t, biu cng tc ln biu hot ng u ch ra tng tc
nn thng bn s phi chn nn s dng biu no khi lp ti liu cho mt
tng tc. Quyt nh ca bn s ph thuc vo vic kha cnh no c coi l
quan trng nht.
Ngoi cu trc tnh v ng x ng, hng nhn chc nng cng c th c s
dng miu t h thng. Hng nhn chc nng th hin cc chc nng m h
thng s cung cp. Trng hp s dng chnh l cc li miu t h thng theo
chc nng; chng miu t cc tc nhn c th s dng h thng ra sao. Nh
cp t trc, trng hp s dng bnh thng ra c m hnh ha trong
nhng giai on u tin ca qu trnh phn tch, nhm mc ch miu t xem
tc nhn c th mun s dng h thng nh th no. M hnh trng hp s

Vng bc cng doanh nghip s


dng ch nn nm bt duy nht kha cnh tc nhn s dng h thng, khng nn
cp kha cnh h thng c xy dng bn trong ra sao. Lp v cc tng tc
trong h thng thc hin trng hp s dng. Tng tc c miu t bi cc
biu tun t, biu cng tc v hoc/v biu hot ng, tc l c mt s
ni kt gia hng nhn chc nng v hng nhn ng ca h thng. Cc lp
c s dng trong vic thc thi cc trng hp s dng c m hnh ha v
miu t qua cc biu lp v biu trng thi (mt biu trng thi s c
nh km cho mt lp, mt h thng con hoc l mt h thng). Trng hp s
dng v cc mi quan h ca chng n tng tc c miu t trong chng
3 (trng hp s dng).
Nhn chung, mt m hnh ng miu t nm kha cnh cn bn khc nhau:

Hnh 6.1- Cc thnh phn ca m hnh ng


Cc thnh phn k trn s c cp chi tit hn trong cc phn sau.
Ngoi ra, mt m hnh ng cng cn c s dng xc nh cc nguyn tc
chuyn ngnh (business rule) cn phi c p dng trong m hnh. N cng
c s dng n nh xem cc nguyn tc c a vo nhng v tr no
trong m hnh.
Mt vi v d cho nhng nguyn tc chuyn ngnh cn phi c th hin trong
m hnh ng:
Mt khch hng khng c quyn rt tin ra nu khng c
mc tin trong ti khon.
Nhng mn tin u t c k hn khng th chuyn sang mt tn
khc trc khi o hn.
Gii hn cao nht trong mt ln rt tin ra bng th ATM l 500
USD.

Vng bc cng doanh nghip s

3- U IM CA M HNH NG:
Bt c khi no c nhng ng x ng cn phi c nghin cu hoc th hin,
chng ta s phi dng n m hnh ng.
M hnh ng ng mt vai tr v cng quan trng trong nhng trng hp nh:
Cc h thng mang tnh tng tc cao
H thng c s dng cc trang thit b ngoi vi c th gi nn cc
ng x ca h thng.
M hnh ng khng t ra tht s hu hiu trong trng hp ca cc h thng
tnh. V d mt h thng ch nhm mc ch nhp d liu lu tr vo mt
ngn hng d liu.
Mt m hnh ng tp trung vo cc chui tng tc (biu cng tc) v vo
yu t thi gian ca cc s kin (biu tun t). Mt m hnh ng c th c
s dng cho mc ch th hin r rng theo thi gian hot ng ca h thng
nu trong thi gian ny c nhng i tng:
c to ra
B xa i
c lu tr
B hy
Hy quan st trng hp rt tin mt v tng tc ca khch hng i vi nh
bng:
Khch hng in tt c cc chi tit cn thit vo giy yu cu rt
tin mt.
Khch hng a giy yu cu cho mt nhn vin pht th xp
hng.
Nhn vin pht th ghi s ca giy yu cu rt tin vo danh sch.
ng tc ghi s ca giy yu cu rt tin c thc hin tun t,
tng ng vi nhng s th tun t c pht ra.
Mt tm th xp hng (token) c trao cho khch hng.
Khch hng i vo hng xp, ch nhn vin bn casse gi ng s
th ca mnh.
Song song vi qu trnh ch ca khch hng, giy yu cu rt tin
ca anh ta tri qua nhiu giai on trong ni b nh bng.

Vng bc cng doanh nghip s


Ch k ca khch hng trn giy yu cu rt tin c thm tra.
Giy yu cu c xem xt v phng din s ti khon v mc
tin trong ti khon.
Nu mt trong hai iu kin trn khng c tha mn, qu trnh
rt tin mt s b chn li hoc l c sa i v tip tc.
Khi c hai iu kin nu trn c tha mn, giy yu cu rt tin
mt s c a n cho nhn vin ngi bn casse, ni khch hng
s c gi ti tun t d theo s th xp hng.
Nhn vin bn casse a tin mt cho khch hng.
Li ng x trong vic rt tin mt l mang tnh ng. Sut qu trnh rt tin mt,
tng tc v trnh t ca qu trnh ph thuc vo mt s cc iu kin xc nh.
Loi ng x ny khng th c th hin qua m hnh i tng, y l trng
hp ta cn n m hnh ng.
M hnh ng cng t ra hu dng trong trng hp c nhng trang thit b tri
qua tun t cc bc trong mt vng lp v tin trnh ph thuc vo mt s iu
kin nht nh. V d mt i tng m hnh ha li ng x ca mt my rt tin
mt t ng (ATM). My ATM ln lt i qua cc bc ca mt vng lp mang
tnh th tc (chc nng), bt u t vic mt th ATM c t vo trong my,
x l cc yu cu do khch hng a ra, dng li v ch yu cu giao dch khc,
ri sau quay tr li trng thi ban u (ng yn) sau khi th ATM c
rt ra ngoi.

Hnh 6.2- M hnh ng ca my rt tin ATM

4- S KIN V THNG IP (EVENT & MESSAGE)


4.1- S kin (Event):

Vng bc cng doanh nghip s


Mt trong nhng thnh phn quan trng bc nht ca mt i tng l s kin.
Mt s kin l mt s kch thch c gi t i tng ny sang i tng khc.
Mt s kin l mt vic s xy ra v c th gy ra mt hnh ng no . V d
nh khi bn bm ln nt Play trn my CD-Player, n s bt u chi nhc (gi
s rng CD-Player c in, trong my c a CD v ni chung l dn CD-Player
hot ng tt). S kin y l bn nhn ln nt Play, v hnh ng y l
bt u chi nhc. Nu c mt s ni kt c nh ngha r rng gia s kin v
hnh ng, ngi ta gi n l quan h nhn qu (Causality). Trong cng ngh
phn mm, chng ta thng ch m hnh ha cc h thng mang tnh nhn qu,
ni s kin v hnh ng c ni kt vi nhau. Mt phn v d ca quan h
nhn qu: bn li xe trn xa l vi tc qu nhanh, cnh st ngn xe li. y
khng phi l nhn qu bi hnh ng ngn bn li ca cnh st khng chc
chn bao gi cng xy ra; v th m khng c mt s ni kt c nh ngha r
rng gia s kin (li xe qu nhanh) v hnh ng (ngn xe). Trong m hnh ha,
vy l ta quan tm n s kin theo ngha l bt k hnh ng no khin h
thng phn ng theo mt cch no .
Quan st v d mt nh bng l, ta c mt vi v d v s kin nh sau:
in mt t giy yu cu rt tin.
S o hn mt ti khon u t c k hn.
Kt thc mt hp ng trc k hn.
in mt giy yu cu m ti khon.
UML bit n tt c bn loi s kin:
Mt iu kin tr thnh c tha mn (tr thnh ng)
Nhn c mt tn hiu ngoi t mt i tng khc
Nhn c mt li gi th tc t mt i tng khc (hay t chnh
i tng ).
Mt khong thi gian xc nh trc tri qua.
Xin ch rng c cc li xy ra cng l s kin v c th mang tnh hu dng rt
ln i vi m hnh.
4.1.1- S kin c lp v s kin ph thuc
Cc s kin c th mang tnh c lp hay lin quan n nhau. C mt s s kin,
theo bn cht, phi i trc hoc l xy ra sau cc s kin khc. V d:

Vng bc cng doanh nghip s


in cc chi tit trong mt t yu cu rt tin mt s dn ti vic
nhn c mt s th xp hng.
S o hn ca mt ti khon u t c k hn s dn n ng
tc gia hn hoc rt tin mt.
in cc chi tit trong mt giy yu cu m ti khon s dn ti
vic phi np mt khon tin ti thiu (theo quy nh) vo ti khon.
Cc s kin c lp l nhng s kin khng c ni kt vi nhau trong bt k
mt phng din no. V d:
Rt tin mt v a tin vo ti khon l cc s kin c lp vi
nhau.
M mt ti khon u t c k hn v m mt ti khon giao dch
l c lp vi nhau.
Kt thc trc k hn mt ti khon u t v vic m mt ti
khon u t c k hn khc l c lp vi nhau.
Cc s kin c lp cn c th c gi l cc s kin song song hay ng thi.
Bi chng khng ph thuc vo nhau, nn cc s kin ny c th xy ra ti cng
mt thi im.
Trong nhiu trng hp, mt s kin ring l trong phm vi vn s c
chuyn ti thnh nhiu s kin trong h thng. V d: a giy yu cu rt tin
mt cho nhn vin pht th xp hng s c kt qu l mt lot cc s kin ni
tip.
C nhng tnh hung ni mt s kin ring l s c nhn bi nhiu i tng
khc nhau v khin cho chng phn ng thch hp. V d nh mt li ngh
ngn mt t sc c th ng thi c gi n cho nhn vin thu ngn v nhn
vin kim tra sc.
4.1.2-S kin ni (internal) v s kin ngoi (external):
S kin ni l cc s kin xy ra trong ni b h thng. y l cc s kin do
mt i tng ny gy ra i vi i tng khc. V d, tnh ton tin li cho mt
ti khon u t c k hn s c ni b h thng thc hin, tun theo mt i
tng quan st ngy thng.
S kin ngoi l nhng s kin c kch nn t pha bn ngoi bin gii ca h
thng, v d nh s kt thc trc k hn mt ti khon u t.
4.1.3- S kin v lp s kin:

Vng bc cng doanh nghip s


Lp s kin i vi s kin cng nh lp i vi i tng bnh thng. Li nh
ngha xc nh mt loi s kin c gi l mt lp s kin.
Lp s kin ngoi ra cn c th c phn loi:
Cc tn hiu n gin: Lp s kin trong trng hp ny s c thc th
ha ch ra mt s kin hoc l mt tn hiu ca mt s kin.
Cc s kin chuyn ti d liu: thng th mt s kin c kh nng v
chuyn ti d liu. Tt c cc s kin cn phi "bit n cc i tng s
nhn c s kin ny. Thng tin v ngi nhn s kin c gi l thng
tin nhn din. Ni mt cch khc, yu t nhn din xc nh cc i tng
s nhn s kin. Bn cnh , cn c th c cc d liu b sung thuc v
cc i tng khc, khng nht thit phi l i tng gi hay nhn s
kin.
V mt nguyn tc, cc s kin thuc dng pht tin (Broadcast) s c truyn
n cho tt c cc i tng. Nu s kin ny l khng quan trng i vi i
tng no trong trng thi hin thi ca n th i tng s b qua s kin.
4.2- Thng ip (Message):
Trong lp trnh hng i tng, mt tng tc gia hai i tng c thc thi
di dng thng ip c gi t i tng ny sang i tng khc. Trong ng
cnh ny, yu t quan trng l khng nn hiu danh t "thng ip qu chnh
xc theo ngha vn hc bnh thng. Mt thng ip y thng c thc hin
qua mt lnh gi th tc n gin (mt i tng ny gi mt th tc ca mt
i tng khc); khi th tc c thc hin xong, quyn iu khin c trao
tr v cho i tng gi th tc cng vi gi tr tr v. Mt thng ip mt khc
cng c th l mt thng ip thc th c gi qua mt s c ch giao tip no
, hoc l qua mng hoc l ni b trong mt my tnh, y l iu thng xy
ra trong cc h thng thi gian thc. Thng ip c th hin trong tt c cc
loi biu ng (tun t, cng tc, hot ng v trng thi) theo ngha l s
giao tip gia cc i tng. Mt thng ip c v l mt c thng vi mi
tn ni gia i tng gi v i tng nhn thng ip. Loi mi tn s ch r
loi thng ip.
Hnh 6.3 ch r cc loi thng ip c s dng trong UML.

Vng bc cng doanh nghip s

Hnh 6.3- Cc k hiu ca cc kiu thng ip


Thng ip n gin (simple): Ch miu t n gin chiu iu
khin. N ch ra quyn iu khin c trao t i tng ny sang
cho i tng khc m khng km thm li miu t bt k mt chi
tit no v s giao tip . Loi thng ip ny c s dng khi
ngi ta khng bit cc chi tit v giao tip hoc coi chng l khng
quan trng i vi biu .
Thng ip ng b (synchronous): thng c thc thi l
mt lnh gi th tc. Th tc x l thng ip ny phi c hon
tt (bao gm bt k nhng thng ip no c lng vo trong,
c gi nh l mt thnh phn ca s x l) trc khi i tng
gi tip tc thc thi. Qu trnh tr v c th c ch ra di dng
thng ip n gin.
Thng ip khng ng b (asynchronous): y l dng iu
khin trnh t khng ng b, ni khng c mt s tr v i vi i
tng gi v ni i tng gi thng ip tip tc qu trnh thc thi
ca mnh sau khi gi thng ip i, khng ch cho ti khi n
c x l xong. Loi thng ip ny thng c s dng trong
cc h thng thi gian thc, ni cc i tng thc thi ng thi.
Thng ip n gin v thng ip ng b c th c kt hp vi nhau trong
ch mt ng thng ch thng ip vi mi tn ch thng ip ng b mt
pha v mi tn ch thng ip n gin pha kia. iu ny ch r rng s tr v
c xy ra hu nh ngay lp tc sau lnh gi hm.

5- BIU TUN T (SEQUENCE DIAGRAM)


Biu tun t minh ha cc i tng tng tc vi nhau ra sao. Chng tp
trung vo cc chui thng ip, c ngha l cc thng ip c gi v nhn gia
mt lot cc i tng nh th no. Biu tun t c hai trc: trc nm dc ch
thi gian, trc nm ngang ch ra mt tp hp cc i tng. Mt biu tun t

Vng bc cng doanh nghip s


cng nu bt s tng tc trong mt cnh kch (scenario) mt s tng tc s
xy ra ti mt thi im no trong qu trnh thc thi ca h thng.
T cc hnh ch nht biu din i tng c cc ng gch ri (dashed line)
thng ng biu th ng i i tng, tc l s tn ti ca i tng trong
chui tng tc. Trong khong thi gian ny, i tng c thc th ha, sn
sng gi v nhn thng ip. Qu trnh giao tip gia cc i tng c th
hin bng cc ng thng thng ip nm ngang ni cc ng i i tng.
Mi tn u ng thng s ch ra loi thng ip ny mang tnh ng b,
khng ng b hay n gin. c biu tun t, hy bt u t pha bn
trn ca biu ri chy dc xung v quan st s trao i thng ip gia cc
i tng xy ra dc theo tin trnh thi gian.
V d hy quan st mt cnh kch rt tin mt ti mt my ATM ca mt nh
bng l:

Hnh 6.4- Biu cnh kch rt tin mt ti my ATM


Biu trn c th c din gii theo trnh t thi gian nh sau:

Vng bc cng doanh nghip s


C ba lp tham gia cnh kch ny: khch hng, my ATM v ti
khon.
Khch hng a yu cu rt tin vo my ATM
i tng my ATM yu cu khch hng cung cp m s
M s c gi cho h thng kim tra ti khon
i tng ti khon kim tra m s v bo kt qu kim tra n
cho ATM
ATM gi kt qu kim tra ny n khch hng
Khch hng nhp s tin cn rt.
ATM gi s tin cn rt n cho ti khon
i tng ti khon tr s tin vo mc tin trong ti khon.
Ti thi im ny, chng ta thy c mt mi tn quay tr li ch vo
i tng ti khon. ngha ca n l i tng ti khon x l yu
cu ny trong ni b i tng v khng gi s kin ra ngoi.
i tng ti khon tr v mc tin mi trong ti khon cho my
ATM.
i tng ATM tr v mc tin mi trong ti khon cho khch
hng v d nhin, c lng tin khch hng yu cu c rt.
i tng ti khon ch bt u c sinh ra khi i tng ATM cn ti n
kim tra m s v i tng ti khon tip tc sng cho ti khi giao dch c
hon tt. Sau , n cht i. Bi khch hng c th mun tip tc thc hin cc
giao dch khc nn i tng khch hng v i tng my ATM vn tip tc tn
ti, iu ny c ch ra qua vic cc ng i i tng c ko vt qu
ng thng th hin s kin cui cng trong chui tng tc.
Loi tng tc ny l rt hu dng trong mt h thng c mt s lng nh cc
i tng vi mt s lng ln cc s kin xy ra gia chng. Mc d vy, khi s
lng cc i tng trong mt h thng tng ln th m hnh ny s khng cn
my thch hp.
c th v biu tun t, u tin hy xc nh cc i tng lin quan v
th hin cc s kin xy ra gia chng.
Khi v biu tun t, cn ch :
S kin c biu din bng cc ng thng nm ngang.
i tng bng cc ng nm dc.

Vng bc cng doanh nghip s


Thi gian c th hin bng ng thng nm dc bt u t
trn biu . iu c ngha l cc s kin cn phi c th hin
theo ng th t m chng xy ra, v t trn xung di.

6- BIU CNG TC (COLLABORATION DIAGRAM)


Mt biu cng tc miu t tng tc gia cc i tng cng ging nh biu
tun t, nhng n tp trung trc ht vo cc s kin, tc l tp trung ch
yu vo s tng tc gia cc i tng.
Trong mt biu cng tc, cc i tng c biu din bng k hiu lp. Th
t trong biu cng tc c th hin bng cch nh s cc thng ip. K
thut nh s c coi l hi c phn kh hiu hn so vi k thut mi tn s
dng trong biu tun t. Nhng u im ca biu cng tc l n c th ch
ra cc chi tit v cc lnh gi hm (th tc), yu t c n trnh trong biu
tun t.
Biu sau y l mt v d cho mt biu cng tc, c chun b cng cho
mt cnh kch rt tin mt nh trong biu tun t ca phn trc. Hy quan
st cc th t s trong biu . u tin th tc WithdrawalReq() c gi t lp
khch hng. l lnh gi s 1. Bc tip theo trong tun t l hm AskForPin(),
s 1.1, c gi t lp ATM. Thng ip trong biu c vit di dng pin:=
AskForPin(), th hin rng "gi tr tr v" ca hm ny chnh l m s m lp
khch hng s cung cp.
Hnh cung bn lp ti khon biu th rng hm ComputeNetBalance() c gi
trong ni b lp ti khon v n x l cc b. Thng th n s l mt th tc
ring (private) ca lp.

Vng bc cng doanh nghip s

Hnh 6.5- Mt biu cng tc ca kch cnh rt tin my ATM

7- BIU TRNG THI (STATE DIAGRAM)


Biu trng thi nm bt vng i ca cc i tng, cc h thng con
(Subsystem) v cc h thng. Chng cho ta bit cc trng thi m mt i tng
c th c v cc s kin (cc thng ip nhn c, cc khong thi gian qua
i, cc li xy ra, cc iu kin c tha mn) s nh hng n nhng trng
thi nh th no dc theo tin trnh thi gian. Biu trng thi c th nh
km vi tt c cc lp c nhng trng thi c nhn din r rng v c li ng
x phc tp. Biu trng thi xc nh ng x v miu t n s khc bit ra
sao ph thuc vo trng thi, ngoi ra n cng cn miu t r nhng s kin no
s thay i trng thi ca cc i tng ca mt lp.
7.1- Trng thi v s bin i trng thi (State transition)
Tt c cc i tng u c trng thi; trng thi l mt kt qu ca cc hot
ng trc c i tng thc hin v n thng c xc nh qua gi
tr ca cc thuc tnh cng nh cc ni kt ca i tng vi cc i tng khc.
Mt lp c th c mt thuc tnh c bit xc nh trng thi, hoc trng thi
cng c th c xc nh qua gi tr ca cc thuc tnh bnh thng" trong i
tng. V d v cc trng thi ca i tng:
Ha n (i tng) c tr tin (trng thi).
Chic xe t (i tng) ang ng yn (trng thi).
ng c (i tng) ang chy (trng thi).

Vng bc cng doanh nghip s


Jen (i tng) ang ng vai tr ngi bn hng (trng thi).
Kate (i tng) ly chng (trng thi).
Mt i tng s thay i trng thi khi c mt vic no xy ra, th c gi
l s kin; v d c ai tr tin cho ha n, bt ng c xe t hay l ly
chng ly v. Kha cnh ng c hai chiu khng gian: tng tc v s bin i
trng thi ni b. Tng tc miu t li ng x i ngoi ca cc i tng v ch
ra i tng ny s tng tc vi cc i tng khc ra sao (qua vic gi thng
ip, ni kt hoc chm dt ni kt). S bin i trng thi ni b miu t mt
i tng s thay i cc trng thi ra sao v d gi tr cc thuc tnh ni b
ca n s thay i nh th no. Biu trng thi c s dng miu t vic
bn thn i tng phn ng ra sao trc cc s kin v chng thay i cc
trng thi ni b ca chng nh th no, v d, mt ha n s chuyn t trng
thi cha tr tin sang trng thi tr tin khi c ai tr tin cho n. Khi mt
ha n c to ra, u tin n bc vo trng thi cha c tr tin.
7.2- Biu trng thi
Biu trng thi th hin nhng kha cnh m ta quan tm ti khi xem xt
trng thi ca mt i tng:
Trng thi ban u
Mt s trng thi gia
Mt hoc nhiu trng thi kt thc
S bin i gia cc trng thi
Nhng s kin gy nn s bin i t mt trng thi ny sang
trng thi khc
Hnh sau s ch ra cc k hiu UML th hin trng thi bt u v trng thi kt
thc, s kin cng nh cc trng thi ca mt i tng.

Hnh 6.6- Cc k hiu UML th hin bt u, kt thc, s kin v trng thi ca


mt i tng.

Vng bc cng doanh nghip s

Hnh 6.7- Biu trng thi thc hin ho n.


Mt trng thi c th c ba thnh phn, nh c ch trong hnh sau:

Hnh 6.8- Cc ngn Tn, Bin trng thi v hnh ng


Phn th nht ch ra tn ca trng thi, v d nh ch, c tr tin hay ang
chuyn ng. Phn th hai (khng bt buc) dnh cho cc bin trng thi. y l
nhng thuc tnh ca lp c th hin qua biu trng thi; nhiu khi cc
bin tm thi cng t ra rt hu dng trong trng thi, v d nh cc loi bin
m (counter). Phn th ba (khng bt buc) l phn dnh cho hot ng, ni
cc s kin v cc hnh ng c th c lit k. C ba loi s kin chun ha c
th c s dng cho phn hnh ng: entry (i vo), exit (i ra), v do (thc
hin). Loi s kin i vo c s dng xc nh cc hnh ng khi nhp
trng thi, v d gn gi tr cho mt thuc tnh hoc gi i mt thng ip. S
kin i ra c th c s dng xc nh hnh ng khi ri b trng thi. S
kin thc hin c s dng xc nh hnh ng cn phi c thc hin
trong trng thi, v d nh gi mt thng ip, ch, hay tnh ton. Ba loi s
kin chun ny khng th c s dng cho cc mc ch khc.
Mt s bin i trng thi thng c mt s kin i km vi n, nhng khng bt
buc. Nu c mt s kin i km, s thay i trng thi s c thc hin khi s
kin kia xy ra. Mt hnh ng loi thc hin trong trng thi c th l mt qu
trnh ang tip din (v d ch, iu khin cc th tc,...) phi c thc hin
trong khi i tng vn nguyn trong trng thi ny. Mt hnh ng thc hin
c th b ngt bi cc s kin t ngoi, c ngha l mt s kin kin gy nn mt
s bin i trng thi c th ngng ngt mt hnh ng thc hin mang tnh ni
b ang tip din.
Trong trng hp mt s bin i trng thi khng c s kin i km th trng
thi s thay i khi hnh ng ni b trong trng thi c thc hin xong
(hnh ng ni b kiu i vo, i ra, thc hin hay cc hnh ng do ngi s
dng nh ngha). Theo , khi tt c cc hnh ng thuc trng thi c

Vng bc cng doanh nghip s


thc hin xong, mt s thay i trng thi s t ng xy ra m khng cn s
kin t ngoi.

Hnh 6.9- Bin i trng thi khng c s kin t ngoi. S thay i trng thi
xy ra khi cc hot ng trong mi trng thi c thc hin xong.
7.3- Nhn bit trng thi v s kin
Qu trnh pht hin s kin v trng thi v mt bn cht bao gm vic hi mt
s cc cu hi thch hp:
Mt i tng c th c nhng trng thi no?: Hy lit k ra tt c
nhng trng thi m mt i tng c th c trong vng i ca n.
Nhng s kin no c th xy ra?: Bi s kin gy ra vic thay i
trng thi nn nhn ra cc s kin l mt bc quan trng nhn
din trng thi.
Trng thi mi s l g?: Sau khi nhn din s kin, hy xc nh
trng thi khi s kin ny xy ra v trng thi sau khi s kin ny
xy ra.
C nhng th tc no s c thc thi?: Hy n cc th tc
nh hng n trng thi ca mt i tng.
Chui tng tc gia cc i tng l g?: Tng tc gia cc i
tng cng c th nh hng n trng thi ca i tng.
Qui nh no s c p dng cho cc phn ng ca cc i tng
vi nhau?: Cc qui nh kim ta phn ng i vi mt s kin s
xc nh r hn cc trng thi.
Nhng s kin v s chuyn ti no l khng th xy ra?: Nhiu
khi c mt s s kin hoc s thay i trng thi khng th xy ra.
V d nh bn mt chic t c bn ri.
Ci g khin cho mt i tng c to ra?: i tng c to ra
tr li cho mt s kin. V d nh mt sinh vin ghi danh cho
mt kha hc.

Vng bc cng doanh nghip s


Ci g khin cho mt i tng b hy?: i tng s b hy i khi
chng khng c cn ti na. V d khi mt sinh vin kt thc mt
kha hc.
Ci g khin cho i tng cn phi c ti phn loi (reclassfied)?:
Nhng loi s kin nh mt nhn vin c tng chc thnh nh
qun tr s khin cho ng tc ti phn loi ca nhn vin c
thc hin.
7.4- Mt s li mch bo cho vic to dng biu trng thi
Chuyn biu tun t thnh biu trng thi.
Xc nh cc vng lp (loop)
B sung thm cc iu kin bin v cc iu kin c bit
Trn ln cc cnh kch khc vo trong biu trng thi.
Mt khi m hnh c to nn, hy nu ra cc cu hi v kim tra xem m
hnh c kh nng cung cp tt c cc cu tr li. Qui trnh sau y cn phi c
nhc li cho mi i tng.
7.4.1- Chuyn biu tun t thnh biu trng thi
Hy di theo mt chui cc s kin c miu t trong biu ,
chui ny phi mang tnh tiu biu cho cc tng tc trong h thng.
Hy quan st cc s kin nh hng n i tng m ta ang
nghin cu.
Hy sp xp cc s kin thnh mt ng dn, dn nhn input
(hoc entry) v output (exit) cho cc s kin. Khong cch gia hai
s kin ny s l mt trng thi.
Nu cnh kch c th c nhc i nhc li rt nhiu ln (v gii
hn), hy ni ng dn t trng thi cui cng n trng thi u
tin.
Biu sau y ch ra biu trng thi ca mt lp my ATM, c chit sut
t biu tun t hoc biu cng tc c trnh by trong cc phn trc.

Vng bc cng doanh nghip s

Hnh 6.10- Chuyn mt biu tun t sang biu trng thi


7.4.2- Nhn ra cc vng lp (loop)
Mt chui s kin c th c nhc i nhc li v s ln c gi l vng lp
(loop).

Hnh 6.11- Biu lp


Ch :
Trong mt vng lp, chui cc s kin c nhc i nhc li cn
phi ng nht vi nhau. Nu c mt chui cc s kin khc chui
khc th trng hp khng c vng lp.
L tng nht l mt trng thi trong vng lp s c s kin kt
thc. y l yu t quan trng, nu khng th vng lp s khng
bao gi kt thc.
7.4.3- B sung thm cc iu kin bin v cc iu kin c
bit
Sau khi hon tt biu trng thi cho mi i tng cn thit trong h
thng, n lc chng ta cn kim tra, i chng chng vi iu kin bin v
cc iu kin c bit khc, nhng iu kin rt c th cha c quan tm
trong thi gian to dng biu trng thi. iu kin bin l nhng iu

Vng bc cng doanh nghip s


kin thao tc trn gi tr, y l nhng gi tr nm bn ranh gii ca mt iu
kin quyt nh v trng thi ca i tng, v d nh quy nh v k hn ca
mt ti khon l 30 ngy th ngy th 31 i vi ti khon ny s l mt iu
kin bin. Cc iu kin c bit l nhng iu kin ngoi l, v d ngy th 30
ca thng 2 nm 2000 (nu c mt iu kin tht s nh vy tn ti ngoi i
thc).
7.4.4- Trn ln cc cnh kch khc vo trong biu trng
thi
Mt khi biu trng thi cho mt i tng sn sng, chng ta cn phi trn
nhng chui s kin c nh hng n i tng ny vo trong biu trng
thi. iu ny c ngha l chng ta cn phi quan st cc hiu ng gin tip ca
cc s kin khc i vi i tng ang l ch chnh ca biu trng thi.
y l vic quan trng, bi cc i tng trong mt h thng tng tc vi nhau
v v cc i tng khc cng c kh nng gy nn s kin cho mt i tng
nh trc, nn li ng x ny cng cn phi c th hin trong biu trng
thi.
im bt u cho cng vic ny l:
n nh mt im bt u chung cho tt c cc chui s kin b
sung.
Xc nh im ni cc ng x bt u khc bit vi nhng ng x
c m hnh ha trong biu trng thi.
B sung thm s cc bin i mi t trng thi ny, trong t cch mt ng
dn thay th. Cn n nhng ng dn c v ngoi ng nht nhng tht
ra c khc bit trong mt tnh hung nht nh no .
Hy ch n cc s kin xy ra trong nhng tnh hung bt tin. Mi s kin
do khch hng hay ngi s dng gy nn u c th sa vo trng thi ca cc
s kin bt tin. H thng khng nm quyn iu khin i vi ngi s dng v
ngi s dng c th quyt nh lm ny ra mt s kin ti mt thi im
tin li i vi anh ta. V d nh khch hng c th quyt nh kt thc trc k
hn mt ti khon u t.
Mt trng hp khc cng cn phi c x l l s kin do ngi s dng gy
nn khng th xy ra. C mt lot cc l do (ngi s dng thiu tp trung,
bun nn, l ng...) khin cho s kin loi ny khng xy ra. C trng hp ny
cng phi c x l thu o. V d mt khch hng tht bi trong vic bo cho
nh bng bit nhng mnh lnh ca anh ta v k hn ca ti khon, mt tm
sc c vit ra nhng li khng c kh nng gii ta mc tin cn thit.

Vng bc cng doanh nghip s


Nhn theo phng din cc biu trng thi nh l mt thnh phn ca m
hnh ng, cn ch nhng im sau:
Biu trng thi ch cn c to dng nn cho cc lp i tng
c ng x ng quan trng.
Hy thm tra biu trng thi theo kha cnh tnh nht qun i
vi nhng s kin dng chung cho ton b m hnh ng c
ng n.
Dng cc trng hp s dng h tr cho qu trnh to dng biu
trng thi.
Khi nh ngha mt trng thi, hy ch n nhng thuc tnh
lin quan.

8- BIU HOT NG (ACTIVITY DIAGRAM)


Biu hot ng nm bt hnh ng v cc kt qu ca chng. Biu hot
ng tp trung vo cng vic c thc hin trong khi thc thi mt th tc
(hm), cc hot ng trong mt ln thc thi mt trng hp s dng hoc trong
mt i tng. Biu hot ng l mt bin th ca biu trng thi v c
mt mc tiu tng i khc, l nm bt hnh ng (cng vic v nhng hot
ng phi c thc hin) cng nh kt qu ca chng theo s bin i trng
thi. Cc trng thi trong biu hot ng (c gi l cc trng thi hnh
ng) s chuyn sang giai on k tip khi hnh ng trong trng thi ny
c thc hin xong (m khng xc nh bt k mt s kin no theo nh ni
dung ca biu trng thi). Mt s im phn bit khc gia biu hot ng
v biu trng thi l cc hnh ng ca n c nh v trong cc lung
(swimlane). Mt lung s gom nhm cc hot ng, ch ti khi nim ngi
chu trch nhim cho chng hoc chng nm u trong mt t chc. Mt biu
hot ng l mt phng php b sung cho vic miu t tng tc, i km vi
trch nhim th hin r cc hnh ng xy ra nh th no, chng lm g (thay
i trng thi i tng), chng xy ra khi no (chui hnh ng), v chng xy
ra u (lung hnh ng).
Biu hot ng c th c s dng cho nhiu mc ch khc nhau, v d nh:
nm bt cng vic (hnh ng) s phi c thc thi khi mt
th tc c thc hin. y l tc dng thng gp nht v quan
trng nht ca biu hot ng.
nm bt cng vic ni b trong mt i tng.

Vng bc cng doanh nghip s


ch ra mt nhm hnh ng lin quan c th c thc thi ra
sao, v chng s nh hng n nhng i tng nm xung quanh
chng nh th no.
ch ra mt trng hp s dng c th c thc th ha nh
th no, theo khi nim hnh ng v cc s bin i trng thi ca
i tng.
ch ra mt doanh nghip hot ng nh th no theo cc khi
nim cng nhn (tc nhn), qui trnh nghip v (workflow), hoc t
chc v i tng (cc kha cnh vt l cng nh tri thc c s
dng trong doanh nghip).
Biu hot ng c th c coi l mt loi Flow chart. im khc bit l Flow
Chart bnh thng ra ch c p dng i vi cc qui trnh tun t, biu hot
ng c th x l c cc cc qui trnh song song.
Hnh ng v s thay i trng thi
Mt hnh ng c thc hin sn sinh ra mt kt qu. Vic thc thi ca th
tc c th c miu t di dng mt tp hp ca cc hnh ng lin quan, sau
ny chng s c chuyn thnh cc dng code tht s. Theo nh nh ngha
phn trc, mt biu hot ng ch ra cc hnh ng cng mi quan h gia
chng v c th c mt im bt u v mt im kt thc. Biu hot ng
s dng cng cng nhng k hiu nh trong biu trng thi bnh thng.

Hnh

6.12-

Khi

mt

ngi

gi

tc

PrintAllCustomer

(trong

lp

CustomerWindow), cc hnh ng khi ng. hnh ng u tin l hin mt


hp thng bo ln mn hnh; hnh ng th hai l to mt tp tin postscript;
hnh ng th ba l gi file postscript n my in; v hnh ng th t l xa
hp thng bo trn mn hnh. Cc hnh ng c chuyn tip t ng; chng
xy ra ngay khi hnh ng trong giai on ngun c thc hin.

Vng bc cng doanh nghip s


Cc s thay i c th c bo v bi cc iu kin canh gi (Guard-condition),
cc iu kin ny phi c tha mn th s thay i mi n ra. Mt k hiu hnh
thoi c s dng th hin mt quyt nh. K hiu quyt nh c th c mt
hoc nhiu s thay i i vo v mt hoc nhiu s thay i i ra c dn nhn
i km cc iu kin bo v. Bnh thng ra, mt trong s cc s thay i i ra
bao gi cng c tha mn (l ng).
Mt s thay i c chia thnh hai hay nhiu s thay i khc s dn n cc
hnh ng xy ra song song. Cc hnh ng c thc hin ng thi, mc d
chng cng c th c thc hin ln lt tng ci mt. Yu t quan trng y
l tt c cc thay i ng thi phi c thc hin trc khi chng c thng
nht li vi nhau (nu c). Mt ng thng nm ngang k m (cn c gi l
thanh ng h ha Synchronisation Bar) ch rng mt s thay i c chia
thnh nhiu nhnh khc nhau v ch ra mt s chia s thnh cc hnh ng song
song. Cng ng thng c s dng ch ra s thng nht cc nhnh.
K hiu UML cho cc thnh phn cn bn ca biu hot ng:
Hot ng (Activity): l mt qui trnh c nh ngha r rng, c
th c thc thi qua mt hm hoc mt nhm i tng. Hot
ng c th hin bng hnh ch nht bo trn cnh.
Thanh ng b ha (Synchronisation bar): chng cho php ta m
ra hoc l ng li cc nhnh chy song song ni b trong tin trnh.

Hnh 6.13- Thanh ng b ha


iu kin canh gi (Guard Condition): cc biu thc logic c gi tr
hoc ng hoc sai. iu kin canh gi c th hin trong ngoc
vung, v d:
[Customer existing].

9- VNG I I TNG (OBJECT LIFECYCLE)


Vng i m mt i tng i qua ph thuc vo loi i tng. C hai loi vng
i khc nhau i vi mt i tng: vng i sinh ra ri cht i; v vng i
vng lp.
9.1- Vng i sinh ra v cht i:

Vng bc cng doanh nghip s


Trong mt vng i sinh ra ri cht i:
S c mt hay nhiu trng thi ni i tng bt u tn ti.
Nhng trng thi ny c gi l trng thi to ra i tng.
S c mt hay nhiu trng thi ng t cch l im kt thc cho
vng i ca mt i tng. Nhng trng thi ny c gi l trng
thi kt thc.
C hai loi trng thi kt thc. Mt dng trng thi kt thc l loi ni i tng
b hy v khng tip tc tn ti na. Loi th hai l dng trng thi kt thc m
sau i tng s c lu tr li hoc chuyn sang trng thi im lng. i
tng tip tc tn ti nhng khng tip tc th hin ng x ng.
Sau trng thi khi to v trc trng thi kt thc, i tng c th i qua mt
hoc l nhiu trng thi trung gian. Ti mi mt thi im, i tng phi mt
trng thi hin thi.
Khng c mt im no sau trng thi khi to v trc trng thi kt thc m
i tng li khng c trng thi.
V d cho i tng c vng i sinh ra v cht i: khch hng, ti khon.
9.2- Vng i lp
Khc vi trng hp sinh ra v cht i, trong vng i vng lp:
i tng c coi l lun lun tn ti y v s cn mi mi
tip tc tn ti.
Khng c trng thi khi to cng khng c trng thi kt thc.
Mc d tht ra i tng c to ra ti mt thi im no v cng s tht
s b hy dit ti mt thi im no , nhng n vn c coi l lun lun tn
ti v c mt. Thng th nhng i tng t ra c mt vng i vng lp s
c to ra ti thi im ci t h thng v s cht i khi h thng kt thc.
Mt i tng vi vng i vng lp s c mt hoc l nhiu trng thi "ng yn".
l nhng trng thi ni i tng nm ch mt s kin xy ra. Bn cnh ,
i tng cng lun lun trng thi hin thi.
V d cho i tng c vng i lp li: my rt tin t ng (ATM), nhn vin
thu ngn.

10- XEM XT LI M HNH NG


10.1- Thm vn biu trng thi

Vng bc cng doanh nghip s


Sau khi hon tt cc thnh phn cn bn ca m hnh ng nh cc biu
tun t, biu cng tc, biu trng thi v biu hot ng, nhm pht
trin c th phc tho biu thnh phn v biu trin khai. Biu trin
khai c th c coi l biu cui cng trong m hnh ng. Ti thi im ny,
c th coi l ta hon tt mt phin bn ca m hnh ng.
Phn quan trng nht trong m hnh ny l biu trng thi. Hy tm cu tr li
cho mt lot cc cu hi xc nh xem biu trng thi ng n v c
mt mc chi tit thch hp hay cha. Cng vic ny cn nhm ti hai mc
ch:
Kim tra tnh trn vn ca m hnh
m bo mi iu kin gy li c x l
Trong giai on ny, c th s c cc cnh kch (scenario) mi xut hin v gia
nhp phm vi quan st ca chng ta, nu trc c mt s trng thi cha
c x l. Nhng tnh hung loi ny l loi vn c th c gii quyt, song
c th n trnh qua vic xc nh tht y cc s kin v trng thi.
10.2- Phi hp s kin
Bc cui cng l mt vng kim tra b sung nhm m bo tnh ng n ca
m hnh ng:
Kim tra m bo mi thng ip u c i tng gi v i
tng nhn. Trong mt s trng hp, s liu chnh xc ca nhng
i tng nhn s kin c th khng c bit ti, nhng chng ta
phi m bo rng chng ta bit nhng lp no s x l nhng s
kin ny.
Hy nghin cu m hnh theo kha cnh trng thi, tm ra nhng
trng thi khng c trng thi dn trc v khng c trng thi tip
theo. Nhng trng thi thi ny rt c th l trng thi khi u
hoc trng thi kt thc. Mc d vy, nu trng thi khng thuc
v mt trong hai loi trng thi kia, rt c th y l mt triu
chng cho thy m hnh cn thiu iu g .
Nhn chung, tt c cc trng thi thng u c trng thi dn
trc v trng thi tip sau.
Hy ln theo hu ng ca cc s kin i vo (entry) m bo l
chng tng thch vi cc trng hp s dng ni chng xut pht.
lm iu ny, hy ln theo mt s kin t mt i tng ny
n i tng khc, kim tra xem mi s kin c ph hp vi

Vng bc cng doanh nghip s


trng hp s dng hay khng. Trong trng hp c mu thun,
hy sa li biu trng thi hoc trng hp s dng m bo
s nht qun.
Kim tra li nhng li ng b, c th chng l kt qu ca mt s
kin khng ch i.
10.3- Bao gi th s dng biu no
Khng cn phi v tt c cc loi biu ng cho tt c cc loi h thng. Mc
d vy, trong mt s trng hp khc nhau chng ta nht thit phi cn n mt
s loi biu ng nht nh. Sau y l mt vi li mch bo c th gip gii
thch mt vi iu cn cha thng t v vic s dng cc loi biu ng.
Biu tun t v biu cng tc c v khi chng ta mun xem xt ng x
ng ca nhiu i tng/ lp trong ni b mt cnh kch ca mt trng hp s
dng. Biu tun t v biu cng tc rt hu dng trong vic ch ra s cng
tc gia cc i tng, nhng chng li khng hu dng khi mun miu t ng
x chnh xc ca mt i tng.
Biu trng thi c s dng th hin ng x chnh xc ca mt i tng.
Biu hot ng c s dng th hin li ng x xuyn sut nhiu trng
hp s dng hoc cc tiu trnh xy ra song song ca mt ln thc thi.
Biu thnh phn v biu trin khai c s dng ch ra mi quan h vt
l gia phn mm v cc thnh phn phn cng trong h thng.
10.4- Lp con v biu trng thi
Tt c cc lp con u tha k c thuc tnh cng nh cc th tc ca lp cha. V
vy, mt lp con cng s tha k c m hnh ng ca lp cha.
Ngoi biu trng thi c tha k, lp con cng c biu trng thi ring
ca n. Biu trng thi ca mt lp cha s c m rng bao cha li ng
x chuyn bit ca lp con.
Biu trng thi ca lp con v biu trng thi ca lp cha phi c bo tr
ring bit v c lp. Biu trng thi ca lp con cn phi c nh ngha s
dng cc thuc tnh ca lp con ch khng phi ch bng cc thuc tnh ca lp
cha. Mt khc, vn c mt s mc ni ngoi mun ca lp cha n vi lp con
thng qua cc thuc tnh m chng s dng chung, v d ch nn xem xt biu
trng thi cho cc ti khon c k hn theo phng din s thay i ca chnh
cc thuc tnh ca chng, ch khng phi l thuc tnh ca lp cha. Ta phi thc
hin nh vy n trnh trng hp trn ln thuc tnh ca lp con v lp cha.

Vng bc cng doanh nghip s


Vic tun th quy tc k trn trong qu trnh v biu trng thi cho mt lp
con s m bo tnh mun cho ng tc m rng ca bn.

11- PHI HP M HNH I TNG V M HNH NG


Khi kt hp gia cc m hnh i tng v m hnh ng, mi s kin trong m
hnh ng cn phi tng thch vi mt th tc trong m hnh i tng. T
suy ra, mi s thay i v mt trng thi trong m hnh ng cn phi ph hp
vi mt th tc ca i tng. Hnh ng ph thuc vo trng thi ca i tng
v vo s kin.
Mi quan h gia m hnh i tng v m hnh ng c th c miu t nh
sau:
M hnh i tng l c cu (framework) cho m hnh ng.
M hnh ng xc nh cc chui thay i c php xy ra i vi
cc i tng trong m hnh i tng.
M hnh ng b hn ch ch trong nhng i tng c mt trong
m hnh i tng cng nh cu trc ca chng.
Khng th c mt m hnh ng cho mt i tng khng tn ti
trong m hnh i tng. C mt mi quan h 1-1 gia m hnh i
tng v m hnh ng.
M hnh ng chnh l m hnh i tng cng thm vi phn ng
x "sng".
M hnh i tng miu t s khc bit gia cc i tng nh l
s khc bit gia cc lp. Khi mt i tng ng x khc mt i
tng khc th mi i tng trong s s c mt lp ring.
Mc d vy, trong m hnh ng, s khc bit trong ng x ng
s c m hnh ha thnh cc trng thi khc nhau ca cng mt
lp.

12- TM TT V M HNH NG
Tt c cc h thng u c cu trc tnh v c ng x ng. Cu trc c th c
miu t qua cc phn t m hnh tnh, v d nh lp, quan h gia cc lp, nt
mng v thnh phn. Khi nim ng x miu t cc phn t m hnh trong ni
b cu trc s tng tc vi nhau dc theo tin trnh thi gian ra sao. thng
l nhng tng tc c xc nh trc v c th c m hnh ha. M hnh ha
ng x ng ca mt h thng gi l m hnh ng, c UML h tr. C tt c

Vng bc cng doanh nghip s


bn loi biu khc nhau, mi loi vi mt mc ch khc nhau: biu trng
thi, biu tun t, biu cng tc v biu hot ng.
Biu trng thi c s dng miu t li ng x cng nh cc trng thi
ni b trong mt lp (n cng c th c s dng cho cc h thng con hoc
cho ton b h thng). N tp trung vo kha cnh cc i tng theo tin trnh
thi gian s thay i cc trng thi ca chng ra sao ty theo nhng s kin xy
ra, li ng x cng nh cc hnh ng c thc hin trong cc trng thi, v
bao gi th s thay i trng thi xy ra. Mt s kin c th n ra khi mt iu
kin tr thnh c tha mn, khi nhn mt tn hiu hoc lnh gi th tc, hoc
l khi mt khong thi gian nh trc qua i.
Biu tun t c s dng miu t mt nhm cc i tng s tng tc
vi nhau trong mt cnh kch ring bit nh th no. N tp trung vo chui
thng ip, tc l cu hi cc thng ip c gi v nhn gia mt nhm cc
i tng nh th no. Biu tun t c hai trc; trc dc ch thi gian v trc
nm ngang ch ra cc i tng tham gia cnh kch. Kha cnh quan trng nht
ca mt biu tun t l thi gian.
Biu cng tc c s dng miu t cc i tng tng tc vi nhau
trong khng gian b nh (space), c ngha l bn cnh cc tng tc ng, n
cn miu t r rng cc i tng c ni kt vi nhau nh th no. Trong biu
cng tc khng c trc cho thi gian; thay vo , cc thng ip s c
nh s to chui.
Biu hot ng c s dng miu t s vic xy ra ra sao, cng vic c
thc hin nh th no. Biu hot ng cng c th c s dng cho cc th
tc, cc lp, cc trng hp s dng, v cng c th c s dng ch ra cc
quy trnh nghip v (workflow).

PHN CU HI
Hi: Th no l mt vng lp?
p: Mt chui s kin c th c nhc i, nhc li v s ln c gi l
vng lp (loop).
Hi: M hnh ng chnh l m hnh i tng cng thm phn ng x ng
ca h thng
p: ng
Hi: Cc s kin c lp cng c th l cc s kin song song
p: ng

Vng bc cng doanh nghip s


Hi: Mt i tng khng nht thit phi c trng thi.
p: Sai, mi i tng u c trng thi
Hi: Mt lp c th c trng thi ban u v trng thi kt thc.
p: Sai, mt i tng c th c trng thi ban u v trng thi kt thc.
Hi: Mt vng i (chu trnh) vng lp ca i tng khng c trng thi khi
to cng khng c trng thi kt thc
p: ng, i tng c coi l lun lun tn ti y v s cn mi mi
tip tc tn ti.

Vng bc cng doanh nghip s

An Introduction to the Unified Modeling Language


UML

tm

ICONIX is
Introduction

pleased
to

to offer

the

Unified

a one-day
Modeling

course titled
Language

"An

(UML)".

"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

presented

UML
in

material.
six

parts:

The Overview addresses the "mission statement" of the UML,


how the language evolved from the work of the "three amigos,"
and principles of modeling.

Vng bc cng doanh nghip s

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.

Structural (Static) Diagrams addresses the four UML diagrams

Vng bc cng doanh nghip s

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.

Odds and Ends addresses areas of the UML, such as templates,

Vng bc cng doanh nghip s

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

testing, use cases, and requirements.

associated

with

Vng bc cng doanh nghip s

"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

Vng bc cng doanh nghip s

Please note that this site is no longer being updated. Please


click here to return to www.omg.org.

What Is OMG-UML and Why Is It Important?


As the strategic value of software increases for many companies, the industry
looks for techniques to automate the production of software and to improve
quality

and

component

reduce

cost

technology,

and

visual

time-to-market.
programming,

These
patterns

techniques
and

include

frameworks.

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.

Vng bc cng doanh nghip s


Good models are essential for communication among project teams and to
assure architectural soundness. As the complexity of systems increases, so does
the importance of good modeling techniques. There are many additional factors
of a projects success, but having a rigorous modeling language standard is
essential.
A modeling language must include:

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.

Vng bc cng doanh nghip s


Second, the Unified Modeling Language pushes the envelope of what can be done
with existing methods. As an example, the UML authors targeted the modeling of
concurrent, distributed systems to assure that the UML adequately addresses
these domains.
Third, the Unified Modeling Language focuses on a standard modeling language,
not a standard process. Although the UML must be applied in the context of a
process, experience has shown that different organizations and problem domains
require different processes. (For example, the development process for shrinkwrapped software is an interesting one, but building shrink-wrapped software is
vastly different from building hard-real-time avionics systems upon which lives
depend.) Therefore, the efforts concentrated first on a common metamodel
(which unifies semantics) and second on a common notation (which provides a
human rendering of these semantics). The UML authors promote a development
process

that is

use-case

driven, architecture

centric, and iterative

and

the

UML

incremental.
Outside

The

Scope

of

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

Vng bc cng doanh nghip s


Many organizations will use the UML as a common language for their project
artifacts, but they will use the same UML diagram types in the context of
different processes. The UML is intentionally process independent, and defining a
standard process was not a goal of the UML or OMGs RFP.
Origin

of

UML

and

How

It

Became

An

OMG

Standard

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.

Vng bc cng doanh nghip s

Create a modeling language usable by both humans and machines.

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

Vng bc cng doanh nghip s


from Booch, OMT, OOSE, and other leading methods and has incorporated input
from the UML partners and feedback from the general public, widespread
adoption of the UML should be straightforward.
There are two aspects of "unified" that the UML achieves: First, it effectively ends
many of the differences, often inconsequential, between the modeling languages
of previous methods. Secondly, and perhaps more importantly, it unifies the
perspectives among many different kinds of systems (business versus software),
development phases (requirements analysis, design and implementation), and
internal concepts.
Although the UML defines a precise language, it is not a barrier to future
improvements in modeling concepts. We have addressed many leading-edge
techniques, but expect additional techniques to influence future versions of the
UML. Many advanced techniques can be defined using UML as a base. The UML
can be extended without redefining the UML core.
The UML, in its current form, is expected to be the basis for many tools, including
those for visual modeling, simulation and development environments. As
interesting tool integrations are developed, implementation standards based on
the UML will become increasingly available.
The

Meta

Object

Facility

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

Vng bc cng doanh nghip s


additional domains such as data warehouse management and business object
management. OMG is expected to issue new RFPs to cover these additional
domains.

Copyright

1997-2001

All
For

Object

Management

Group,

Rights
questions

about

the

Inc.

Reserved.
WEBSITE,

please

contact

webeditor@omg.org
For

TECHNICAL

webtech@omg.org

questions,

please

contact

Vng bc cng doanh nghip s

Object Oriented Analysis and Design Using UML


A Whitepaper by Mark Collins-Cope of Ratio Group.

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 1 - Subset of UML Object Modelling Notation - A Summary

Vng bc cng doanh nghip s


Object Modelling is the central technique in UML. It is a language independent
notation allowing the specification of classes, their data or attributes(private) and
methods (public), inheritance, and other more general relationships between
classes. The notation itself is fairly simple to grasp (see figure 1), however this
hides the somewhat more subtle thought processes underlying a good model.
The best way to understand the notation is to look at an example. The following
Object Model shows a simple Banking System, containing classes for Head-Office,
Branch, Accounts held at that Branch, and the Customers who the Accounts
belong to:

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.

Vng bc cng doanh nghip s

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

Vng bc cng doanh nghip s


Account the money is "credit(ed)-to". This enables the bank to record
exactly where each transaction has come from, and gone to, so to speak.
These last point brings out an interesting feature of what is being shown on an
Object Model: clearly it wouldn't make sense for each Transaction to be
"debit(ed)-from" and "credit(ed)-to" the same Account - no money would be
transferred! Obviously, although the lines (relationships) are shown to the same
Account class, they do not (necessarily) represent links to the same Account
object at run-time.
A relationship shown on an Object Model indicates that some kind of run-time
link will exist between two instances of the classes shown on the Object Model.
Thus the Branch to Accounts relationship should be read as follows:
An instance of the class Branch will be linked to (zero to) many instances of the
class Account, whilst an instance of the class Account will be linked to (one and
only) one instance of the class Branch.
This can be shown more clearly by the following instance diagram (instance
diagrams are used to assist in understanding and clarifying Object Models - they
also give quite a hint as to how relationships can be implemented in

C++!):

Vng bc cng doanh nghip s


Figure 3 - Instance Diagram Showing Branch and Account objects
By now, you may be beginning to see how Object Models can assist the
analysis/design process. They assist in the clarification of the relationships that
should be (somehow) represented in a software system. The important point to
note hear is that we are first working out what relationships we need to
represent in our system ("belongs-to", etc.), without worrying too much about
exactly how they should be stored. Put another way, Object Modelling allows us
to focus on exactly what problem we are trying to solve, before we look at the
best way of implementing our model in a particular programming language.
Implementing

Object

Models

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

Vng bc cng doanh nghip s


method. The Account, CurrentAccount and SavingsAccount classes are easily
mapped to the C++ (or Java) inheritance mechanisms:

class

Account

/*...

data...

*/

public:
virtual

void

CalcCharges();

void

PrintStatement();

};
class

SavingsAccount:

/*

public

any

Account

additional

data

{
*/

public:
virtual
/*

void
use

CalcCharges();

the

base

/*

class

re-definition

PrintStatement

method

*/
*/

};
class

SavingsAccount:

/*

public

any

Account

additional

data

{
*/

public:
virtual
/*

void
use

CalcCharges();
the

base

/*

another

class

re-definition

*/

method

*/

PrintStatement

};

Figure 5 - Mapping Object Model Inheritance To C++ Inheritance


The Transaction class may be implemented as follows:
class
long
date_t

Transaction
value;

/*

date;

/*

stored
date

in

pence

of

transaction

*/
*/

public:
/*

Access

and

Date(date_t);

functions

/*

date_t

set

Date();

Value(long);
long

Update

*/

/*

/*
Value();

get*/

set
/*

*/

*/
get

*/

};

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.

Vng bc cng doanh nghip s


class

TransactionList

TransactionList

Transaction

next;
data;

/*

ptr

/*

to

store

next

the

element

*/

here

*/

transaction

public:
void

Data

(Transaction

Transaction
void

*
NextItem(TransactionList

TransactionList

*);

/*

Data();

set

/*

*);

/*

NextItem();

set

/*

*/

get

*/

next

get

next

ptr

*/

ptr

*/

};

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

Account

TransactionList

TransactionList

debitedFrom;

/*

creditedTo;

debited

/*

credited

from
to

Tx
Tx

list*/
list

*/

public:
virtual

void

CalcCharges();

void PrintStatement();
/*

some

new

methods

DebitTx

(Transaction

*);

CreditTx

(Transaction

*);

Transaction*

NextDebitTx();

Transaction*

NextCreditTx();

to

manipulate

the

Add

Add

/*
/*
/*

Transaction
debit
credit

Iterator:get

/*

Iterator:get

list
Tx

*/
*/

Tx

*/

debit

Tx

*/

cred

Tx

*/

};
/*

sample

method

Account::DebitTx(Transaction
/*

add

new

list

TransactionList

implementation

contained

debitedFrom

at

theTx)
the

tmpTxLp
=

*/

beginning

of

the

list

*/

debitedFrom;

new

TransactionList;

debitedFrom->NextItem(tmpTxLp);
/*

new

put

the

transaction

data

into

the

list

*/

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

Vng bc cng doanh nghip s


that the Account class interface completely hides the underlying implementation
of this relationship means that we can improve on our first cut implementation at
a later date with little impact on our overall system code. In other words, use of
the

Account

class

interface

has

limited

the

impact

of

the

relationship

implementation method: something we strive to achieve when writing OO based


applications.
A couple of other points are worthy of note at this stage:

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.

Vng bc cng doanh nghip s

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

:
Figure 9 - Use Cases for Banking System

Vng bc cng doanh nghip s


This Use Case diagram shows us the following:

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

By:

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

Vng bc cng doanh nghip s


part of the report.
Outputs:
Details what information flows from the system to the external environment, in
this

case

the

printer!

overdraftReport (to branchPrinter) - structured as follows: customer name;


current

overdraft;

period

overdrawn

(days);

Printed for all accounts that have been overdrawn for a period greater than
theOverdraftPeriod, and which have not already been reported (on another
report) in the last 30 days.
Pre-Conditions:
What validity checks or constraints apply on the inputs (or the internal system as
a

whole,

in

some

cases).

theBranchSortCode - must be a branch sort code held within the system.


theOverdraftPeriod - must be a number between 0 and 100 days.
Post-Condition:
What changes does the Use Case make to the internal system state.
Updates

the

reportedOnDate

field

of

overdrawn

accounts.

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

Diagrams

Sequence diagrams, performed on a per Use Case basis, examine the flow of
method
system.

call

calls

within

Vng bc cng doanh nghip s

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)!

Each Account then:

Vng bc cng doanh nghip s

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.

The method calls unwind until the Use Case is complete.

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.

Vng bc cng doanh nghip s

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

Vng bc cng doanh nghip s

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

Vng bc cng doanh nghip s


defined earlier, and designing a Graphical User Interface appropriate to
the Technical Architecture chosen for the project (MS Windows, X/Motif,
etc.). Typically you would expect to find one controlling dialog box (which
may use other subsidiary dialogs) for each Use Case in the system. Some
prototyping may be appropriate at this point in the project. For small
projects, prototyping and UI design may be undertaken in parallel with
Use Case development.

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:

Vng bc cng doanh nghip s


Figure 13 - Seperation Of Problem and Technical Domain Components of
a System
For smaller projects (one or two persons for a couple of months) the two
domains

may

be

merged,

if

desired.

As mentioned previously, Use Cases may be used in phasing a project; the


process shown earlier does not prohibit this. A project with 50 Use Cases could
be structured in three phases as shown in figure 14:

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)

a flexible approach to project phasing

Vng bc cng doanh nghip s

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.

You might also like