You are on page 1of 263

1

Cng ngh phn mm


(0)
Nguyn Thanh Bnh
Khoa Cng ngh Thng tin
Trng i hc Bch khoa
i hc Nng
2
Mc ch
Hiu v nm c
Khi nim cng ngh phn mm
Cc m hnh pht trin phn mm
Cc hot ng pht trin phn mm
Cc k thut v phng php c bn trong
pht trin phn mm
p dng cng ngh phn mm trong pht
trin phn mm
2
3
Ni dung
Chng 1: Gii thiu Cng ngh phn mm
Chng 2: Cc m hnh pht trin phn mm
Chng 3: Phn tch v c t yu cu
Chng 4: Cc k thut c t
Chng 5: Thit k
Chng 6: Lp trnh v ngn ng lp trnh
Chng 7: Kim th
Chng 8: Qun tr d n phn mm
4
Ti liu tham kho
Ian Sommerville, Software Engineering, 7th edition, Pearson
Education, 2004.
M. Gaudel, B. Marre, F. Schlienger, G. Bernot, Prcis de
gnie logiciel, Masson, 2001.
Stephen R. Schach, Classical and Object-Oriented Software
Engineering, NXB IRWIN, 1996.
Ronald Leach, Introduction to Software Engineering, CRC
Press, 1999.
G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling
Language User Guide, Addision-Wesley, 1999.
Craig Larman, Applying UML and Patterns: An Introduction
to Object-Oriented Analysis and Design and Iterative
Development, Third Edition, Addision-Wesley, 2004.
Glenford J. Myers, The art of software testing, Wiley, 2004.
Boris Beizer, Software Testing Techniques, Second Edition.
1
Gii thiu
cng ngh phn mm
(1)
Nguyn Thanh Bnh
Khoa Cng ngh Thng tin
Trng i hc Bch khoa
i hc Nng
2
Ni dung
Lch s pht trin phn mm v
khng hong phn mm ?
Cng ngh phn mm
Khi nim
Mc ch
Nguyn tc
Cht lng phn mm
Phn loi phn mm
2
3
Lch s pht trin phn mm
1946, my tnh in t ra i
1950, my tnh c thng mi ha
Phn mm bt u c pht trin
Nhng nm 1960
nhng tht bi v pht trin phn mm
sn phm phn mm phc tp
nhiu li
t chc sn xut: gi thnh, tin , ...
Ngi ta ni n Khng hong phn mm
4
Lch s pht trin phn mm
T th cng n cng ngh
Chng trnh nh
khng chuyn nghip
1 ngi lm
ngi s dng = ngi pht trin
1 sn phm = m ngun
tin trnh pht trin n gin
D n ln
chuyn nghip
nhiu ngi lm
khch hng & nh cung cp
nhiu sn phm
tin trnh pht trin phc tp
1968, hi tho khoa hc u tin v Cng ngh phn mm
3
5
Khng hong phn mm
V mt sn phm
cht lng sn phm phn mm
khng p ng yu cu thc t
kh s dng
khng tin cy
kh bo tr
khch hng khng hi lng
6
Khng hong phn mm
V mt qun l
K hoch
khng nh gi ng gi thnh
khng ng tin
chi ph pht trin / chi ph bo tr
V mt php l
hp ng khng r rng, khng cht ch
Nhn lc
o to
giao tip
Thiu tiu chun nh gi sn phm
Thiu quy trnh qun l
4
7
Khng hong phn mm
iu tra ca General Acounting Office
(1982) trn nhiu s n vi tng vn u t
$68.000.000
Khng giao sn phm: 29%
Khng c s dng: 47%
B cuc: 19%
c s dng sau khi chnh sa: 3%
Tt: 2%
8
Khng hong phn mm
5
9
Cng ngh phn mm
Khi nim
Cng ngh phn mm
nghin cu v pht trin cc phng php,
k thut v cng c nhm xy dng cc
phn mm mt cch kinh t, c tin cy
cao v hot ng hiu qu
thit k, xy dng, v bo tr cc phn mm
phc tp, bn vng v cht lng
10
Cng ngh phn mm
Mc ch
Mc ch
p dng thc t
cc kin thc khoa hc,
cc nguyn tc kinh t,
cc nguyn tc qun l,
cc k thut v cng c thch hp
sn xut v bo tr cc phn mm nhm bo m
4 yu cu (FQCD):
phn mm to ra phi p ng c yu cu ngi s
dng
phn mm phi t c cc tiu chun v cht lng
gi thnh phi nm trong gii hn t ra
tin xy dng phn mm phi m bo
6
11
Cng ngh phn mm
Nguyn tc
Cc nguyn tc c bn
Cht ch (rigor and formality)
Chia nh (separation of concerns)
M-un ha (modularity)
Tru tng (abstraction)
Phng nga s thay i (anticipation of
change)
Tng qut ha (generality)
Gii quyt tng bc (incrementality)
12
Cng ngh phn mm
Nguyn tc
Cht ch (rigor and formality)
s dng m hnh l thuyt v ton hc
p dng cho tt c cc bc, tt c cc sn
phm
V d
chn z l gi tr ln nht ca x v y
z = max(x, y)
7
13
Cng ngh phn mm
Nguyn tc
Chia nh (separation of concerns)
Lm ch phc tp
ch tp trung mt lnh vc cng mt lc
Chia vn thnh cc phn nh hn
Gii quyt mt phn nh s n gin hn
chia tr (divide and conquer)
C th chia nh theo
thi gian: lp k hoch
khi nim: giao din / thut ton
x l: chia cc x l con
14
Cng ngh phn mm
Nguyn tc
M-un ha (modularity)
Chia nh phc tp
d hiu
d qun l cc h thng phc tp
Quan h mt thit vi nguyn tc chia nh
Cc phng php m-un ha
chin lc t trn xung (top-down)
chin lc t di ln (bottom-up)
Cht lng ca m-un ha
lin kt lng lo (low coupling)
kt c cao (high cohesion)
8
15
Cng ngh phn mm
Nguyn tc
Tru tng (abstraction)
Loi b nhng g khng quan trng
Ch xem xt cc yu t quan trng
S dng cc m hnh
m hnh cho ngi s dng
m hnh cho ngi pht trin
V d
ngn ng lp trnh / cu trc phn cng
xy dng ti liu
c t bi iu kin trc v sau
16
Cng ngh phn mm
Nguyn tc
Phng nga s thay i (anticipation of
change)
phn mm l sn phm thng xuyn phi
thay i
d bo cc yu t c th thay i
nh hng c th
cc thay i thng gp
trong c t yu cu
trong ng cnh s dng
kh nng v cng ngh
9
17
Cng ngh phn mm
Nguyn tc
Tng qut ha (generality)
xem xt vn trong ng cnh tng qut
gii quyt vn ln hn
mc ch
ti s dng d dng
c th s dng cc cng c c sn
s dng design patterns
chi ph c th tng cao
18
Cng ngh phn mm
Nguyn tc
Gii quyt tng bc (incrementality)
Nguyn tc
xc nh mt phn (tp con)
pht trin
nh gi
bt u li
p dng cho
pht trin mt sn phm
m c t / mt kin trc / ...
m hnh pht trin
m hnh lp
10
19
Cht lng phn mm
Tnh ng n (correctness)
thc hin ng cc c t v chc nng
(functional specification)
Tnh tin cy (reliability)
p ng c nhng yu cu t ra
Tnh bn vng (robustness)
hot ng tt trong nhng iu kin s dng
khc nhau
20
Cht lng phn mm
Tnh hiu qu (efficiency)
s dng hiu qu cc ngun ti nguyn (b
nh, CPU, ...)
Tnh thn thin (user friendlyness)
d s dng
Tnh d kim tra (verifiability)
d kim tra cht lng
11
21
Cht lng phn mm
Tnh d bo tr (maintainability)
d xc nh v sa li
d to ra nhng phin bn mi khi c s m
rng
Tnh ti s dng (reusability)
d ti s dng trong nhng phn mm mi
Tnh kh chuyn (portability)
d s dng trong cc mi trng mi
22
Cht lng phn mm
Tnh d hiu (understandability)
d hiu i vi ngi s dng cng nh i
vi ngi pht trin
Tnh hp tc (interoperability)
d hp tc vi cc phn mm khc
Sn xut hiu qu (productivity)
tin trnh sn xut phn mm phi hiu qu
12
23
Cht lng phn mm
Kh nng giao sn phm ng hn
(timeliness)
giao sn phm theo tng gi
Tnh trong sut (visibility)
i vi ngi pht trin/ngi qun l
hiu r tin pht trin
hiu r nh hng ca cc quyt nh
i vi khch hng
hiu r tin pht trin
hiu r nh hng ca cc quyt nh
24
Cht lng phn mm
S tha hip gia cc tiu chun cht
lng
tnh thn thin / tnh bn vng
tnh kh chuyn / tnh hiu qu
13
25
Phn loi phn mm
Cc h thng thng tin (Information Systems)
qun l thng tin
c s d liu + giao tc
Cc h thng thi gian thc (Real-Time
System)
cc h thng khi hot ng cn phi tr li
cc s kin vi mt thi gian c quy nh
nghim ngt
26
Phn loi phn mm
Cc h thng phn tn (Distributed Systems)
mng my tnh
phn tn d liu
phn tn x l
Cc h thng nhng (Emmbedded Systems)
giao tip vi cc h thng/mch in t
1
M hnh pht trin
(2)
Nguyn Thanh Bnh
Khoa Cng ngh Thng tin
Trng i hc Bch khoa
i hc Nng
2
Ni dung
Cc hot ng pht trin phn mm
Cc m hnh pht trin phn mm
2
3
Cc hot ng pht trin
phn mm
Phn tch tnh kh thi
Phn tch v c t yu cu
Thit k
M ha
Kim th
Bo tr
4
Cc hot ng pht trin
phn mm
Phn tch tnh kh thi
xc nh vn cn gii quyt,
xem xt cc gii php v k thut khc nhau
thun li
bt li
nh gi v thi gian, gi thnh, ngun ti
nguyn cn thit
Sn phm: ti liu phn tch
3
5
Cc hot ng pht trin
phn mm
Phn tch v c t yu cu (1)
xc nh nhu cu ca khch hng/ngi s
dng
xc nh bi ton, ch khng phi l gii php
kh khn
khch hng khng bit r ci h cn
khch hng khng trnh by r ci h mun
cc thay i
Sn phm: ti liu c t yu cu
6
Cc hot ng pht trin
phn mm
Phn tch v c t yu cu (2)
cc bc
kho st, tng hp yu cu
phn tch yu cu
c t yu cu
hp thc ha yu cu
4
7
Cc hot ng pht trin
phn mm
Phn tch v c t yu cu (3)
Tng hp v
phn tch yu cu
c t yu cu
Hp thc ha
yu cu
M hnh h thng
Yu cu h thng
ca ngi s dng
Ti liu c t
yu cu
8
Cc hot ng pht trin
phn mm
Thit k (1)
chuyn t ti liu c t yu cu thnh cu trc l-gc c
th ci t c
gii php cho vn c c t
thit k kin trc
cc moun v giao din ca cc m-un
thit k giao din
thit k cc m-un
cu trc d liu
thut ton
Sn phm: ti liu thit k
5
9
Cc hot ng pht trin
phn mm
Thit k (2)
Thit k
kin trc
c t
kin trc
Thit k
m-un
Thit k
cu trc d liu
Thit k
thut ton
c t
m-un
c t
cu trc d liu
c t
thut ton
Thit k
giao din
c t
giao din
10
Cc hot ng pht trin
phn mm
Thit k (3)
cc phng php thit k
hng chc nng
hng i tng
6
11
Cc hot ng pht trin
phn mm
M ha v g ri
m ha
ci t cc thit k bng ngn ng lp trnh
khng n thun ch l lp trnh
vit ti liu
insertions/invariants
chun lp trnh (coding standards)
lp trnh theo cp (pair programming)
cng c
qun l phin bn
g ri
pht hin cc li trong qu trnh lp trnh
Sn phm: chng trnh
12
Cc hot ng pht trin
phn mm
Kim th (1)
pht hin li trong chng trnh
lp k hoch thc hin kim th
to cc trng hp kim th
tiu chun kim th
ngun ti nguyn kim th
m ngun c kim th theo ti liu thit k
Sn phm: bo co kim th
7
13
Cc hot ng pht trin
phn mm
Kim th (2)
cc hot ng kim th
kim th n v
kim th tch hp
kim th h thng
kim th chp nhn
14
Cc hot ng pht trin
phn mm
Kim th (3)
cc phng php kim th
kim th tnh
kim th ng
kim th hp en
kim th hp trng
8
15
Cc hot ng pht trin
phn mm
Bo tr
bo m chng trnh vn hnh tt
ci t cc thay i
ci t cc yu cu mi
x l cc li khi vn hnh
Sn phm: chng trnh
16
Cc m hnh pht trin phn
mm
S t chc cc hot ng pht trin phn mm
M hnh pht trin phn mm hay tin trnh pht trin
phn mm
C nhiu m hnh pht trin phn mm
m hnh thc nc
m hnh nguyn mu
m hnh V
m hnh tin ha
m hnh xon c
m hnh hp nht
9
17
M hnh thc nc
(waterfall model)
Phn tch tnh
kh thi
Phn tch v
c t yu cu
Thit k
M ha v
kim th
Ci t v bo
tr
18
M hnh thc nc
u im
d n nh
yu cu xc nh
Nhc im
d n ln
thi gian
sa li
yu cu thay i
10
19
M hnh nguyn mu
(prototyping model)
Phn tch yu cu
Thit k nhanh
Xy dng nguyn mu
nh gi
Thit k
20
M hnh nguyn mu
u im
pht hin yu cu
hp thc ha yu cu
thit k giao din
giao din trn giy
giao din tht
h thng c ri ro cao
yu cu khng chc chn
giao din cha r rng
chin lc ci t cha r rng
11
21
M hnh nguyn mu
Hn ch
khch hng c th cho rng nguyn mu l
h thng thc
mong i khng thc t v tin trin ca d n
ngi pht trin c s chn la khng tt
ph hp cho nguyn mu, nhng khng ph hp
cho h thng thc
xy dng h thng thc nh xy dng nguyn
mu
nguyn mu khng ging hon ton h
thng cui cng
khch hng s c cc phn ng khc nhau
22
M hnh V
(V model)
Nhn mnh vai tr kim th
c t yu cu
Thit k kin trc
Thit k chi tit
M ha
Kim th h thng
Kim th tch hp
Kim th n v
12
23
M hnh tin ha
(evolutionary model)
c t
Pht trin
Hp thc
ha
Phin bn
u tin
Phin bn
trung gian
Phin bn
cui cng
24
M hnh tin ha
u im
d n va v nh
cc phn ca d n phc tp
cc h thng c thi gian sng ngn
Hn ch
cu trc h thng ti
tin trnh khng r rng
13
25
M hnh xon c
(spiral model)
Risk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Proto-
type 1
Prototype 2
Prototype 3
Opera-
tional
protoype
Concept of
Operation
Simulations, models, benchmarks
S/W
requirements
Requirement
validation
Design
V&V
Product
design
Detailed
design
Code
Unit test
Integration
test
Acceptance
test
Service
Develop, verify
next-level product
Evaluate alternatives
identify, resolve risks
Determine objectives
alternatives and
constraints
Plan next phase
Integration
and test plan
Development
plan
Requirements plan
Life-cycle plan
REVIEW
26
M hnh xon c
nhn mnh vic nh gi cc ri ro
phn mm c xy dng theo nhiu chu k
mi chu k tng ng vi mt sn phm ca mt giai
on pht trin phn mm
xc nh cc mc tiu, gii php, rng buc
nh gi cc gii php, xc nh cc nguy c v tm
cch gii quyt chng
pht trin v kim th sn phm ca chu k ny
lp k hoch cho chu k tip theo
14
27
M hnh xon c
Ri ro v gii php cho ri ro
tht bi v nhn s
tuyn dng nhn s cao cp, o to ln nhau, c y cc nhn s
vi chc nng khc nhau...
thi gian biu v ngn sch khng thc t
nh gi tht chi tit, pht trin dn dn, ti s dng, loi b bt cc
yu cu khng cn thit ...
pht trin cc chc nng khng ph hp
trao i thng xuyn vi ngi s dng, c ti liu hng dn s
dng sm...
pht trin giao din ngi dng khng thch hp
cn phn tch cc cng vic, xy dng cc hnh mu trc, ...
thiu yu cu t ra
pht trin cc phn n nh trc
vn v hiu qu
cn phi m phng, o lng, th nghim...
i hi vt qu s p ng ca cng ngh hin hnh
phn tch k tnh kh thi v mt k thut
28
M hnh xon c
u im
hn ch ri ro sm
nhn c feedbacks t khch hng sm
d n ln, phc tp
h thng cn pht trin nhiu phin bn
yu cu cha xc nh r rng
15
29
M hnh hp nht
(unified process)
Tin trnh hp nht c th c nhn
di hai gc nhn khc nhau
Gc nhn qun l: quan tm n lnh
vc kinh t, chin thut, con ngi
Tin trnh gm bn giai on
Gc nhn k thut: quan tm n
cng ngh, kim tra cht lng,
phng php
Tin trnh gm nhiu bc lp
30
M hnh hp nht
Gc nhn qun l
Khi u
Inception
Son tho
Elaboration
Xy dng
Construction
Chuyn giao
Transition
Vn Gii php
t vn Gii quyt vn Thc hin
Thi gian
16
31
M hnh hp nht
Gc nhn k thut: cc bc lp
Mi bc lp gm cc hot ng:
c t
Phn tch
Thit k
M ha
Kim th
Ci t
Mi bc lp l mt tin trnh thc
32
M hnh hp nht
Gc nhn k thut
Thi gian
Bc lp chun b
Bc lp kin trc
Bc lp kin trc
Bc lp pht trin
Bc lp pht trin
Bc lp chuyn giao
Bc lp chuyn giao
Bc lp pht trin
Mu th (maquette)
Nguyn mu kin trc
Nguyn mu kin trc
Nguyn mu pht trin
Nguyn mu pht trin
Bc lp Kt qu
Phin bn chnh thc
Phin bn
Phin bn
17
33
M hnh hp nht
Kt hp hai gc nhn
Thi gian
Bc lp chun b
Bc lp kin trc
Bc lp kin trc
Bc lp pht trin
Bc lp pht trin
Bc lp chuyn giao
Bc lp chuyn giao
Bc lp pht trin
Mu th (maquette)
Nguyn mu kin trc
Nguyn mu kin trc
Nguyn mu pht trin
Nguyn mu pht trin
Phin bn chnh thc
Phin bn
Bc lp Kt qu
Phin bn
Giai on
Khi u
Son tho
Xy dng
Chuyn giao
34
M hnh hp nht
M hnh hp nht v UML
18
35
Kt lun
C nhiu m hnh pht trin phn mm
m hnh tuyn tnh
m hnh thc nc
m hnh nguyn mu
m hnh V
m hnh lp
m hnh tin ha
m hnh xon c
m hnh hp nht
36
Kt lun
Kt hp nhiu m hnh cho mt d n
h thng phc tp, chia d n thnh cc h
thng con
m hnh xon c hay m hnh hp nht cho
ton b d n
mi h thng con c th p dng mt m
hnh khc nhau
m hnh nguyn mu cho cc h thng con phc
tp
m hnh thc nc cho cc h thng con khc
1
Phn tch v c t
yu cu (3)
Nguyn Thanh Bnh
Khoa Cng ngh Thng tin
Trng i hc Bch khoa
i hc Nng
2
Ni dung
Khi nim yu cu
Yu cu chc nng v phi chc nng
Ti liu c t yu cu
Cc bc phn tch v c t yu cu
Phn tch bi ton
Thu thp yu cu
Phn tch yu cu
c t yu cu
Hp thc ha yu cu
2
3
Phn tch v c t yu cu
Phn tch v c t yu cu l tin
trnh xc nh:
cc dch v/chc nng m khch
hng yu cu t h thng
cc rng buc m h thng c pht
trin v vn hnh
4
Yu cu l g
Mt yu cu c th l t mt pht biu
mc tru tng rt cao v dch v hay h
thng cho n mt c t ton hc rt chi
tit
Yu cu l
nng lc ca phn mm m ngi s dng
cn gii quyt vn t ra nhm t
c mc ch xc nh
nng lc ca phn mm cn c nhm tha
mn mt hp ng, mt chun, mt c t
3
5
Cc loi yu cu
Yu cu ngi s dng
cc pht biu bng ngn ng t nhin (v cc s ) v
dch v v rng buc m h thng cung cp
dnh cho khch hng
Yu cu h thng
ti liu c cu trc m t chi tit cc dch v ca h thng
l hp ng gia khch hng v ngi pht trin
c t phn mm
m t chi tit v phn mm, nhm phc v cho thit k, m
ha
dnh cho ngi pht trin
6
Ngi c yu cu
Client managers
System end-users
Client engi neers
Cont ractor managers
System archi tect s
System end-users
Client engi neers
System archi tect s
Software developers
Client engi neers (perhaps)
System archi tect s
Software developers
User requi rement s
Syst em requirements
Software design
specificat ion
4
7
Yu cu chc nng v phi
chc nng
Yu cu chc nng
pht biu v cc dch v/chc nng m h
thng cn cung cp
h thng cn tr li cc s kin hay d liu vo
nh th no
Yu cu phi chc nng
cc rng buc trn cc dch v/chc nng
ca h thng
thi gian
tin trnh pht trin
chun...
8
Yu cu chc nng
M t chc nng ca h thng
V d
Ngi s dng c th tm kim cc ti liu
da trn t kha cha trong ti liu hoc tn
ti liu
H thng cn cung cp cho ngi s dng
phng tin hin th d dng cc ti liu t
CSDL
H thng phi c c cc nh dng khc
nhau ca ti liu: vn bn (text), pdf, .doc,
bng tnh Excel
5
9
Yu cu chc nng
S khng chnh xc ca yu cu
yu cu khng c pht biu chnh xc
yu cu nhp nhng c th c hiu cc
cch khc nhau bi ngi s dng v ngi
pht trin
V d hin th d dng
ngi s dng: c th hin cc loi ti liu khc
nhau
ngi pht trin: cung cp giao din hin th ti
liu ch vn bn
10
Yu cu chc nng
Trn nguyn tc, yu cu phi tha mn:
y
yu cu phi m t y cc chc nng cn thit
gn b
cc yu cu chc nng phi khng mu thun ln nhau
Trong thc t
khng n gin c c yu cu y v gn
b
c th trong qu trnh pht trin, cc vn c
pht hin v chnh sa yu cu
6
11
Yu cu phi chc nng
nh ngha cc tnh cht v rng buc ca h thng
yu cu tin trnh
phng php thit k
ngn ng lp trnh
cng c c dng
thi gian tr li
tin cy
yu cu v lu tr d liu
Yu cu phi chc nng c th quan trng hn yu cu
chc nng
nu yu cu phi chc nng khng c p ng, h
thng tr nn v dng
12
Yu cu phi chc nng
Yu cu v sn phm
yu cu c t sn phm lm ra phi p ng: tc
thc thi, tin cy...
Yu cu v t chc
yu cu l cc chnh sch v t chc nh: tin trnh
pht trin p dng, yu cu ci t,
Yu cu bn ngoi
yu cu n t cc yu t bn ngoi h thng v tin
trnh pht trin: yu cu v kh nng tng tc, v
o c, ..
7
13
Yu cu phi chc nng
Performance
requirements
Space
requir ement s
Usabilit y
requirements
Ef ficiency
requir ement s
Reliability
requir ements
Portability
requirement s
Interoperability
requirements
Ethical
requirement s
Legislative
requirements
Implementation
requir ements
Standards
requirements
Delivery
requirements
Safety
requirements
Privacy
requirements
Product
requir ements
Or ganizational
requir ements
External
requirement s
Non-functional
requir ements
14
Yu cu phi chc nng
V d
Yu cu v sn phm
phn mm ch nn yu cu ti a 256 MB b nh
Yu cu v t chc
tin trnh pht trin phi p ng chun DO178
Yu cu bn ngoi
h thng khng c l thng tin c nhn ca
khch hng
8
15
Yu cu phi chc nng
o lng yu cu
Property Measure
Speed Processed transactions/second
User/Event response time
Screen refresh time
Size K Bytes
Number of RAM chips
Ease of use Training time
Number of help frames
Reliability Mean time to failure
Probability of unavailability
Rate of failure occurrence
Availability
Robustness Time to restart after failure
Percentage of events causing failure
Probability of data corruption on failure
Portability Percentage of target dependent statements
Number of target systems
16
Yu cu ngi s dng
(user requirements)
nn m t
yu cu chc nng
yu cu phi chc nng
d hiu i vi ngi s dng
khng c kin thc chi tit v k thut/tin hc
yu cu ngi s dng nn c m t
bi:
ngn ng t nhin
biu , bng biu
9
17
Ngn ng t nhin
u im
d hiu
d s dng
Hn ch
khng r rng, thiu chnh xc
nhp nhng
ln ln gia yu cu chc nng v yu cu
phi chc nng
qu mm do
trnh by nhiu cch
18
Cc gii php thay th cho
ngn ng t nhin
Ngn ng c cu trc
s dng ngn ng gn vi ngn ng lp
trnh
Cc m hnh
cc k hiu ha
K hiu ton hc
ngn ng hnh thc
10
19
Yu cu h thng
(system requirements)
l c t chi tit hn yu cu ngi s
dng
phc v c bn cho bc thit k
c th s dng lm mt phn ca hp ng
c th s dng cc m hnh m t
20
Ti liu c t yu cu
Ti liu c t yu cu l cc pht biu
chnh thc v h thng cn xy dng
Khng phi l ti liu thit k
Xc nh h thng cn lm ci g (WHAT)
Khng tr li cu hi lm nh th no
(HOW)
11
21
Ti liu c t yu cu
Ngi s dng
U s e t he r e q u i r e m e nt s to
d ev e lo p v a l id a ti o n te s ts f o r
t h e s y s te m
U s e t h e r e q u i r e m e n t s
d oc u m e n t to p l a n a b i d f o r
t h e s y s te m a n d to p l a n th e
sy st e m d e v e lo p m e n t p r o c e s s
U s e t h e r e q u i r e m e n t s to
u n d e r s ta n d w h a t s y s te m i s to
b e d e v e lo pe d
S y st e m te s t
e n g in e e r s
M a n a g e r s
S y st e m e n g in e e r s
S p e c i f y t h e r e q u ir e m e n ts a n d
r e a d th e m to c h e c k t ha t t h e y
m e e t th e ir n e e d s . T h e y
s p e c if y c h a n g e s t o th e
r e q u ir e m e n ts
S y st e m c u s to m e r s
U s e t h e r e q u i r e m e n t s to h e l p
u n d er s ta n d th e sy st e m a n d
t h e r e l a ti o n sh ip s b e tw e e n it s
p ar t s
S y st e m
m a in te n a n c e
e n g in e e r s
22
Ti liu c t yu cu
Cc yu cu ca mt ti liu c t yu cu
c t cc hnh vi bn ngoi ca h thng
c t cc rng buc ci t (m ha)
d dng thay i
s dng nh l cng c tham kho khi bo
tr
d bo thi gian sng ca h thng (d bo
thay i)
c t tr li cc s kin khng mong i
12
23
Cu trc ca ti liu c t
yu cu
Gii thiu
Thut ng
nh ngha yu cu ngi s dng
Kin trc h thng
c t yu cu h thng
M hnh h thng
Pht trin/thay i ca h thng
Ph lc
Ch mc
24
Cu trc ca ti liu c t
yu cu theo chun IEEE
1. Introduction
1.1 Purpose
1.2 Document Conventions
1.3 Intended Audience and Reading Suggestions
1.4 Product Scope
1.5 References
2. Overall Description
2.1 Product Perspective
2.2 Product Functions
2.3 User Classes and Characteristics
2.4 Operating Environment
2.5 Design and Implementation Constraints
2.6 User Documentation
2.7 Assumptions and Dependencies
3. External Interface Requirements
3.1 User Interfaces
3.2 Hardware Interfaces
3.3 Software Interfaces
3.4 Communications Interfaces
Chi tit
4. System Features
4.1 System Feature 1
4.2 System Feature 2 (and so on)
5. Other Nonfunctional Requirements
5.1 Performance Requirements
5.2 Safety Requirements
5.3 Security Requirements
5.4 Software Quality Attributes
5.5 Business Rules
6. Other Requirements
Appendix A: Glossary
Appendix B: Analysis Models
Appendix C: To Be Determined List
13
25
Cc bc phn tch v c
t yu cu
Phn tch bi ton
Thu thp yu cu
Phn tch yu cu
c t yu cu
Hp thc ha yu cu
26
Phn tch bi ton
M t nghip v
m t cc lung nghip v, cc x l v vai
tr ca con ngi trong h thng hin ti
hiu c nghip v
ch yu tp trung vo cc vng cn t ng
ha
h tr cho vic xc nh cc thay i v ci
tin yu cu trong h thng mi
14
27
Phn tch bi ton
M t h thng
m t h thng xut
m t lung thng tin gia h thng xut v
mi trng ca n
p ng c m t nghip v
ci tin nghip v hin ti
da trn m t nghip v hin ti
28
Thu thp yu cu
Khng nh tnh kh thi ca h thng
xut
kh thi v kinh t
kh thi v k thut
kh thi v vn hnh
Xc nh nhng ngi lin quan n h
thng v nhng ngi s dng cui
Xc nh cc rng buc khi s dng h
thng xut
15
29
Thu thp yu cu
Xc nh cc cc phng php thu thp
yu
v d: phng vn
Xc nh cc yu cu nhp nhng
c th s dng k thut nguyn mu
Xc nh cc yu cu khc, m khch hng
khng yu cu r
v d: giao din d s dng
30
Thu thp yu cu
Kt qu ca bc thu thp yu cu
Pht biu v s cn thit v tnh kh thi
Gii hn lnh vc/chc nng ca phn mm
Danh sch ngi lin quan, ngi s dng
cui
M t mi trng m phn mm s vn
hnh
Danh sch cc yu cu ca phn mm
xut
Cc rng buc ca phn mm xut
16
31
Thu thp yu cu
Cc k thut thu thp yu cu
Phng vn khch hng
Thc hin cc hi tho/tho lun
Chun b cc bng cu hi iu tra
Quan st hot ng nghip v hin ti
Tham kho cc chuyn gia trong lnh
vc
32
Thu thp yu cu
Phng vn khch hng (1)
hiu r nghip v hin ti
hiu r chi tit ca yu cu
hiu r mong mun thc s ca khch hng
nn t cc cu hi ngn gn
cu hi tp trung vo vic hiu yu cu
V d
Nhng ai s dng h thng ?
Kt qu ca chc nng ny l g ?
17
33
Thu thp yu cu
Phng vn khch hng (2)
cc hot ng cn thit cho phng
vn
xc nh r nhng ngi cn phng vn
chun b sn cc cu hi
tm hiu v lnh vc hot ng ca h
thng, ca khch hng
ghi nhn cc cu hi trong qu trnh
phng vn
34
Thu thp yu cu
Thc hin cc hi tho/tho lun
tp hp khch hng, nhng ngi
lin quan n h thng
t chc cc bui tho lun
trnh by cc yu cu ca h thng
cn pht trin
khch hng c hiu yu cu ?
khuyn khch kin ca khch hng
18
35
Thu thp yu cu
Chun b cc bng cu hi iu tra
Chun b sn bng cc cu hi
chc nng mong i
thi gian yu cu hon thnh d n
kt qu ca mt tin trnh nghip v
hi c nhiu ngi
Quan st hot ng nghip v hin ti
n ni lm vic ca khch hng v quan st
quay phim cc nghip v
Tham kho cc chuyn gia trong lnh vc
hiu r cc nghip v chuyn mn phc tp
36
Phn tch yu cu
Phn loi cc yu cu
chc nng
phi chc nng
Yu cu chc nng xut pht t cc yu
cu ca khch hng v nghip v trong h
thng hin ti
Yu cu phi chc nng thng khng l r
thng do ngi pht trin xut
19
37
c t yu cu
M t chi tit cc yu cu phn tch
C th s dng cc cu trc ti liu c t yu cu
khc nhau
chng hn cu trc IEEE
Tuy nhin, phi cha t nht cc thng tin
nh ngha h thng phn mm
mc ch ti liu c t yu cu
gii hn ca h thng phn mm
yu cu chc nng
yu cu phi chc nng
cc iu kin m trong h thng xut s vn
hnh
38
Hp thc ha yu cu
Ch ra rng cc yu cu thc s l ci
khch hng cn
Li bc c t yu cu chi ph rt ln
chi ph sa mt li yu cu sau khi giao
sn phm c th ln gp 100 ln li ci t
K thut nguyn mu rt hiu qu hp
thc ha yu cu
20
39
Hp thc ha yu cu
Kim tra cc tnh cht
Hp l
h thng phn mm c cung cp cc chc nng
h tr tt nht cho khch hng ?
Chc chn
c cc yu cu no mu thun nhau ?
y
tt c cc yu cu ca khch hng c c
t ?
Thc t
tt c cc yu cu c th thc hin vi cng ngh
v ngn sch hin ti ?
40
Hp thc ha yu cu
Thm nh cc yu cu (reviews)
Thng xuyn thm nh yu cu
C khch hng v ngi pht trin u phi thm
nh yu cu
Thm nh c th t chc hnh thc hoc khng hnh
thc
Trao i gia ngi pht trin, khch hng v ngi
s dng cui c th gii quyt sm cc kh khn
1
Cc k thut c t
(4)
Nguyn Thanh Bnh
Khoa Cng ngh Thng tin
Trng i hc Bch khoa
i hc Nng
2
Ni dung
Khi nim c t
Ti sao phi c t ?
Phn loi cc k thut c t
Cc k thut c t
2
3
Khi nim c t
c t (specification)
nh ngha mt h thng, m-un hay
mt sn phm cn phi lm ci g
khng m t n phi lm nh th no
m t nhng tnh cht ca vn
t ra
khng m t nhng tnh cht ca gii
php cho vn
4
Khi nim c t
c t l hot ng c tin hnh trong
cc giai on khc nhau ca tin trnh phn
mm:
c t yu cu (requirement specification)
s thng nht gia nhng ngi s dng tng
lai v nhng ngi thit k
c t kin trc h thng (system architect
specification)
s thng nht gia nhng ngi thit k v
nhng ngi ci t
c t mun (module specification)
s thng nht gia nhng ngi lp trnh ci t
m-un v nhng ngi lp trnh s dng m-un
3
5
Ti sao phi c t ?
Hp ng
s thng nht gia ngi s dng v ngi
pht trin sn phm
Hp thc ha
sn phm lm ra phi thc hin chnh xc
nhng g mong mun
Trao i
gia ngi s dng v ngi pht trin
gia nhng ngi pht trin
Ti s dng
6
Phn loi cc k thut c t
c t phi hnh thc (informal)
ngn ng t nhin t do
ngn ng t nhin c cu trc
cc k hiu ha
c t na hnh thc (semi-informal)
trn ln c ngn ng t nhin, cc k hiu ton hc v
cc k hiu ha
c t hnh thc (formal)
k hiu ton hc
ngn ng c t
ngn ng lp trnh
4
7
c t hnh thc hay khng
hnh thc ?
c t hnh thc
chnh xc (ton hc)
hp thc ha hnh thc (cng c ha)
cng c trao i: kh c, kh hiu
kh s dng
c t khng hnh thc
d hiu, d s dng
mm do
thiu s chnh xc
nhp nhng
8
ng dng c t hnh thc
ng dng trong cc giai on sm ca tin
trnh pht trin
hn ch li trong pht trin phn mm
ng dng ch yu trong pht trin cc h
thng quan trng (critical systems)
h thng iu khin
h thng nhng
h thng thi gian thc
5
9
Chi ph pht trin khi s
dng c t hnh thc
10
Cc k thut c t
Trnh by mt s k thut
My trng thi hu hn
Mng Petri
iu kin trc v sau
Kiu tru tng
c t Z
6
11
My trng thi hu hn
(state machine)
m t cc lung iu khin
biu din dng th
bao gm
tp hp cc trng thi S (cc nt ca th)
tp hp cc d liu vo I (cc nhn ca cc
cung)
tp hp cc chuyn tip T : S x I S (cc
cung c hng ca th)
khi c mt d liu vo, mt trng thi chuyn sang
mt trng thi khc
12
My trng thi hu hn
V d 1
t my xung t my xung
i
Quay s
Kt ni
chung
m thoi
m mi quay
s
Nhc my
Thi gian i kt
thc
My bn
Thu bao c gi nhc my
Thng bo
quay s sai
S ng
S sai
Bm s
Kt ni c
7
13
My trng thi hu hn
V d 2
H thng cn m t bao gm mt nh sn xut, mt
nh tiu th v mt kho hng ch cha c nhiu
nht 2 sn phm
Nh sn xut c 2 trng thi
P1: khng sn xut
P2: ang sn xut
Nh tiu th c 2 trng thi
C1: c sn phm tiu th
C2: khng c sn phm tiu th
Nh kho c 3 trng thi
cha 0 sn phm
cha 1 sn phm
cha 2 sn phm
14
My trng thi hu hn
Gii php 1: m t tch ri cc thnh phn
P1
P2
Sn xut
Gi vo kho
C1
C2
Tiu th
Ly t kho
0 1
Ly t kho
2
Ly t kho
Gi vo kho Gi vo kho
8
15
My trng thi hu hn
Gii php 1
khng m t c s hot ng h
thng
cn m t s hot ng kt hp cc
thnh phn ca h thng
16
My trng thi hu hn
Gii php 2: m t kt hp cc thnh phn
Gi vo kho
Ly t kho
Gi vo kho
Tiu th
Tiu th
Sn xut
Sn xut
<0, P2, C2>
<0, P2, C1>
<0, P1, C2>
<0, P1, C1>
Tiu th
Tiu th
Sn xut
Sn xut
<1, P2, C2>
<1, P2, C1>
<1, P1, C2>
<1, P1, C1>
Tiu th
Tiu th
Sn xut
Sn xut
<2, P2, C2>
<2, P2, C1>
<2, P1, C2>
<2, P1, C1>
Ly t kho
Gi vo kho
Ly t kho
Gi vo kho
Ly t kho
9
17
My trng thi hu hn
Gii php 2
m t c hot ng ca h thng
s trng thi ln
biu din h thng phc tp
hn ch khi c t nhng h thng khng
ng b
o cc thnh phn ca h thng hot ng song
song hoc cnh tranh
18
Mng Petri
(Petri nets)
thch hp m t cc h thng khng
ng b vi nhng hot ng ng thi
m t lung iu khin ca h thng
xut t nm 1962 bi Carl Adam
C hai loi
mng Petri (c in)
mng Petri m rng
10
19
Mng Petri
Gm cc phn t
mt tp hp hu hn cc nt ()
mt tp hp hu hn cc chuyn tip ()
mt tp hp hu hn cc cung ()
cc cung ni cc nt vi cc chuyn tip hoc
ngc li
mi nt c th cha mt hoc nhiu th ()
20
Mng Petri
V d
t2
p1
p2
p3
p4
t3
t1
11
21
Mng Petri
Mng Petri c nh ngha bi s nh du cc nt
ca n
Vic nh du cc nt c tin hnh theo nguyn tc
sau:
mi chuyn tip c cc nt vo v cc nt ra
nu tt c cc nt vo ca mt chuyn tip c t nht
mt th, th chuyn tip ny l c th vt qua c,
nu chuyn tip ny c thc hin th tt c cc nt
vo ca chuyn tip s b ly i mt th, v mt th
s c thm vo tt c cc nt ra ca chuyn tip
nu nhiu chuyn tip l c th vt qua th chn
chuyn tip no cng c
22
Mng Petri
V d
t1
t2
t1 khng th vt qua c t2 c th vt qua c
t3
t4
hoc t3 c vt qua
hoc t4 c vt qua
12
23
Mng Petri
V d
khi t2 c vt qua
t2 t2
24
Mng Petri
V d
13
25
Mng Petri
V d 1: m t hot ng ca n giao thng
rg
red
yellow
green
yr
gy
26
Mng Petri
V d 1: m t hot ng ca 2 n giao thng
rg1
red1
yellow1
green1
yr1
gy1
rg2
red2
yellow2
green2
yr2
gy2
14
27
Mng Petri
V d 1: m t hot ng an ton ca 2 n giao thng
rg1
red1
yellow1
green1
yr1
gy1
rg2
red2
yellow2
green2
yr2
gy2
safe
28
Mng Petri
V d 1: m t hot ng an ton v hp l ca 2 n
giao thng
rg1
red1
yellow1
green1
yr1
gy1
rg2
red2
yellow2
green2
yr2
gy2
safe2
safe1
15
29
Mng Petri
V d 2: m t chu k sng ca mt ngi
thanh nin
tr con
c v c chng
dy th
ci
ly hn
cht cht
30
Mng Petri
V d 3: vit th v c th
rest
mail_box
receive_mail
type_mail
ready
rest
begin
send_mail
read_mail
M t trng hp 1 ngi vit v 2 ngi c ?
M t trng hp hp th nhn ch cha nhiu nht 3 th ?
16
31
Mng Petri
V d 4: tnh hung nghn (dead-lock)
2 2
P6
P4
P3
P1
P8
t1
t3
t5
t7
P7
P5
P2
P9
t2
t4
t6
t8
32
2 2
Mng Petri
V d 4: gii php chng nghn
2 2
P6
P4
P3
P1
P8
t1
t3
t5
t7
P7
P5
P2
P9
t2
t4
t6
t8
17
33
Mng Petri
V d 5
H thng cn m t bao gm mt nh sn xut, mt
nh tiu th v mt kho hng ch cha c nhiu
nht 2 sn phm
Nh sn xut c 2 trng thi
P1: khng sn xut
P2: ang sn xut
Nh tiu th c 2 trng thi
C1: c sn phm tiu th
C2: khng c sn phm tiu th
Nh kho c 3 trng thi
cha 0 sn phm
cha 1 sn phm
cha 2 sn phm
34
Mng Petri
V d 5: m t tch ri mi thnh phn
P1
Sn xut
Gi vo kho
P2
Ly t kho
C1
Tiu th
C2
0
Gi vo kho
1 2
Gi vo kho
Ly t kho Ly t kho
18
35
Ly t kho
Mng Petri
V d 5: m t kt hp cc thnh phn
Ly t kho
Gi vo kho
Gi vo kho
P1
Sn xut
P2
0 1
2
C2
C1
Tiu th
36
iu kin trc v sau
(pre/post condition)
c dng c t cc hm hoc m-un
c t cc tnh cht ca d liu trc v sau khi thc
hin hm
pre-condiition: c t cc rng buc trn cc tham
s trc khi hm c thc thi
post-condition: c t cc rng buc trn cc tham
s sau khi hm c thc thi
c th s dng ngn ng phi hnh thc, hnh thc
hoc ngn ng lp trnh c t cc iu kin
19
37
iu kin trc v sau
V d: c t hm tm kim
function search ( a : danh sch phn t kiu K,
size : s phn t ca dnh sch,
e : phn t kiu K,
result : Boolean )
pre i, 1 i n, a[i] a[i+1]
post result = (i, 1 i n, a[i] = e)
38
iu kin trc v sau
Bi tp: c t cc hm
1. Sp xp mt danh sch cc s nguyn
2. o ngc cc phn t ca mt danh
sch
3. m s phn t c gi tr e trong mt danh
sch cc s nguyn
20
39
Kiu tru tng
(abstract types)
M t d liu v cc thao tc trn d liu mt
mc tru tng c lp vi cch ci t d liu bi
ngn ng lp trnh
c t mt kiu tru tng gm:
tn ca kiu tru tng
dng t kha sort
khai bo cc kiu tru tng tn ti c s dng
dng t kha imports
cc thao tc trn trn kiu tru tng
dng t kha operations
40
Kiu tru tng
V d 1: c t kiu tru tng Boolean
sort Boolean
operations
true : Boolean
false : Boolean
_ : Boolean Boolean
_ _ : Boolean x Boolean Boolean
_ _ : Boolean x Boolean Boolean
mt thao tc khng c tham s l mt hng s
mt gi tr ca kiu tru tng nh ngha c biu din bi k t _
21
41
Kiu tru tng
V d 2: c t kiu tru tng Vector
sort Boolean
operations
true : Boolean
false : Boolean
_ : Boolean Boolean
_ _ : Boolean x Boolean Boolean
_ _ : Boolean x Boolean Boolean
mt thao tc khng c tham s l mt hng s
mt gi tr ca kiu tru tng nh ngha c biu din bi k t _
42
Kiu tru tng
V d 2: c t kiu tru tng Vector
sort Vector
imports Integer, Element, Boolean
operations
vect : Integer x Integer Vector
init : Vector x Integer Boolean
ith : Vector x Integer Element
change-ith : Vector x Integer x Element Vector
supborder : Vector Integer
infborder : Vector Integer
22
43
Kiu tru tng
V d 2: c t kiu tru tng Vector
cc thao tc trn kiu ch c nh ngha
m khng ch ra ng ngha ca n
tc l ngha ca thao tc
s dng cc tin nh ngha ng
ngha ca cc thao tc
dng t kha axioms
nh ngha cc rng buc m mt thao tc
c nh ngha
dng t kha precondition
44
Kiu tru tng
V d 2: c t kiu tru tng Vector
precondition
ith(v, i) is-defined-ifonlyif
infborder(v) i supborder(v) & && & init(v,i) = true
axioms
infborder(v) i supborder(v) ith(change-ith(v, i, e), i) = e
infborder(v) i supborder(v) & && & infborder(v) j supborder(v) & && & i j
ith(change-ith(v, i, e), j) = ith(v, j)
init(vect(i, j), k) = false
infborder(v) i supborder(v) init(change-ith(v, i, e), i) = true
infborder(v) i supborder(v) & && & i j init(change-ith(v, i, e), j) = init(v, j)
infborder(vect(i, j)) = i
infborder(change-ith(v, i, e)) = infborder(v)
supborder(vect(i, j)) = j
supborder(change-ith(v, i, e)) = supborder(v)
with
v: Vector; i, j, k: Integer; e: Element
23
45
Kiu tru tng
Bi tp
c t kiu tru tng cy nh phn
c t kiu tru tng tp hp
1
c t Z (5)
Nguyn Thanh Bnh
Khoa Cng ngh Thng tin
Trng i hc Bch khoa
i hc Nng
2
Gii thiu
c xut bi Jean Ren Abrial i hc
Oxford
ngn ng c t hnh thc c s dng rng ri
nht
da trn l thuyt tp hp
k hiu ton hc
s dng cc s (schema)
d hiu
2
3
Gii thiu
Gm bn thnh phn c bn
cc kiu d liu (types)
da trn khi nim tp hp
cc s trng thi (state schemas)
m t cc bin v rng buc trn cc bin
cc s thao tc (operation schemas)
m t cc thao tc (thay i trng thi)
cc ton t s (schema operations)
nh ngha cc s mi t cc s c
4
Kiu d liu
mi kiu d liu l mt tp hp cc phn t
V d
{true, false} : kiu l-gc
N: kiu s t nhin
Z: kiu s nguyn
R: kiu s thc
{red, blue, green}
3
5
Kiu d liu
Cc php ton trn tp hp
Hi: A B
Giao: A B
Hiu: A B
Tp con: A B
Tp cc tp con: P A
v d: P {a, b} = {{}, {a}, {b}, {a, b}}
6
Kiu d liu
mt s kiu d liu c bn c nh
ngha trc
kiu s nguyn Z
kiu s t nhin N
kiu s thc R
...
c th nh ngha cc kiu d liu mi
ANSWER == yes | no
[PERSON]
s dng cp k hiu [ v ] nh ngha kiu c
bn mi
4
7
Kiu d liu
Khai bo kiu
x : T
x l phn t ca tp T
V d
x : R
n : N
3 : N
red : {red, blue, green}
8
V t
Mt v t (predicate) c s dng nh
ngha cc tnh cht ca bin/gi tr
V d
x > 0
R
5
9
V t
C th s dng cc ton t l-gc nh ngha cc v
t phc tp
V: A B
Hoc: A B
Ph nh: A
Ko theo: A B
V d
(x > y) (y > 0)
(x > 10) (x = 1)
(x > 0) ) x/x = 1
( (x S)) (x T)
10
V t
Cc ton t khc
(x : T A)
A ng vi mi x thuc T
V d: (x : N x - x =0)
(x : T A)
A ng vi mt s gi tr x thuc T
V d: (x : R x + x = 4)
{x : T | A}
biu din cc phn t x ca T tha mn A
V d: N = {x : Z | x 0}
6
11
S trng thi
Cu trc s trng thi gm
tn s
khai bo bin
nh ngha v t
12
S trng thi
c t Z cha
cc bin trng thi
khi gn bin
cc thao tc trn cc bin
bin trng thi c th c cc bt bin
iu kin m lun ng, biu din bi cc v t
7
13
S thao tc
Khi gn bin
Khai bo thao tc trn bin
k hiu biu din bin trng thi b thay i bi thao
tc
k hiu (du nhy n) biu din gi tr mi ca bin
14
S thao tc
Thao tc c th c cc tham s vo v ra
tn tham s vo kt thc bi k t ?
tn tham s ra kt thc bi k t !
8
15
S thao tc
K hiu m t thao tc khng th thay i
bin trng thi
16
V d 1
c t h thng ghi nhn cc nhn vin vo/ra ta
nh lm vic
Kiu d liu [Staff] l kiu c bn mi ca h thng
Trng thi ca h thng bao gm
tp hp cc ngi s dng h thng user
tp hp cc nhn vin ang vo in
tp hp cc nhn vin ang ra out
bt bin ca h thng
9
17
V d 1
c t thao tc ghi nhn mt nhn vin vo
18
V d 1
c t thao tc ghi nhn mt nhn vin ra
10
19
V d 1
c t thao tc kim tra mt nhn vin vo hay ra
Thao tc ny cho kt qu l phn t ca kiu
QueryReply == is_in | is_out
c t thao tc
20
V d 1
Khi to h thng
11
21
V d 1
Tm li
S trng thi: cc thnh phn/i tng
ca h thng
Bt bin: rng buc gia cc i tng
Cc s thao tc
iu kin trn cc tham s vo
Quan h gia trng thi trc v sau
Tham s kt qu
Khi gn
22
V d 1
Hy c t cc thao tc
Register: thm vo mt nhn vin mi
QueryIn: cho bit nhng nhn vin ang
vo/lm vic
12
23
Ton t s
Cc s c th c kt hp to ra
cc s mi
Cc ton t s
V:
Hoc:
24
Ton t s
Cc s c
To cc s mi
Schema3 == Schema1 Schema2
Schema4 == Schema1 Schema2
13
25
V d 1 (tip)
Ci tin thao tc StaffQuery
Thao tc StaffQuery cha c t trng hp
li
name? users
26
V d 1 (tip)
Ci tin thao tc StaffQuery
c t li kiu QueryReply
QueryReply == is_in | is_out | not_registered
Khi
RobustStaffQuery == StaffQuery BadStaffQuery
14
27
V d 1 (tip)
Ci tin thao tc CheckIn
M rng thao tc cho trng hp ghi nhn thnh cng
28
V d 1 (tip)
Ci tin thao tc CheckIn
M rng thao tc cho trng hp ghi nhn thnh
cng
Khi
GoodCheckIn == CheckIn Success
15
29
V d 1 (tip)
Ci tin thao tc CheckIn
X l thm hai trng hp li
1. name? c ghi nhn
2. name? cha c ng k
30
V d 1 (tip)
Ci tin thao tc CheckIn
X l thm hai trng hp li
16
31
V d 1 (tip)
Ci tin thao tc CheckIn
Khi
CheckInReply == ok | already_in | not_registered
RobustCheckIn == GoodCheckIn
BadCheckIn1
BadCheckIn2
32
Quan h
Cp phn t c th t c biu
din
(x, y)
Tch -cc ca hai kiu T1 v T2
T1 x T2
(x, y) : T1 x T2
17
33
Quan h
Quan h (relation) l tp cc cp
phn t c th t
V d:
34
Quan h
C th k hiu quan h
T S == P (T x S)
directory : Person Number
nh x
cp phn t c th t (x, y) c th vit
V d
Lu
k hiu dnh cho kiu
k hiu dnh cho gi tr
18
35
Quan h
Domain v Range
tp hp cc thnh phn th nht trong mt quan h
c gi l domain (min)
k hiu: dom
v d:
dom(directory) = {mary, john, jim, jane}
tp hp cc thnh phn th hai trong mt quan h
c gi l range
k hiu: ran
v d:
ran(directory) = {287373, 398620, 829483, 493028}
36
Quan h
Php tr min (domain subtraction)
k hiu:
biu din quan h R vi cc phn t
trong min S b loi b
Ngha l:
19
37
Quan h
Php tr min (domain subtraction)
V d:
Khi :
38
V d 2
c t danh b in thoi gm tn ngi v
s in thoi
S dng kiu c bn
[Person, Phone]
c t trng thi h thng
20
39
V d 2
Khi to h thng
Thm mt s in thoi
40
V d 2
Tm s in thoi ca mt ngi
Tm tn theo s in thoi
c th ci tin ?
21
41
V d 2
Xa s in thoi ca mt ngi
42
V d 2
Xa cc mc trong danh b ng vi mt tn
Xa cc mc trong danh b ng vi mt tp cc
tn
22
43
Partial Function
l quan h m mi phn t trong domain cho mt
gi tr duy nht trong range
k hiu
ngha l
44
Partial Function
V d
C th p dng cc ton t hm
23
45
Partial Function
Ton t qu ti hm (Function Overriding)
thay th mt mc vo bi mt mc mi
k hiu
v d
lu
46
V d 3
c t h thng qun l ngy sinh
s dng kiu c bn mi
[Person, Date]
mi ngi ch c mt ngy sinh duy nht
khi to h thng
24
47
V d 3
Thm mt ngi vo h thng
48
V d 3
Chnh sa ngy sinh
Xa mt ngi
iu g xy ra nu name? dom(bb)
25
49
V d 3
Tm ngy sinh ca mt ngi
50
V d 3
Tm ngy sinh ca mt ngi
trng hp tm khng thy
26
51
V d 3
Tm ngy sinh ca mt ngi
thng bo khi tm thy
khi
52
V d 3
Tm nhng ngi cng ngy sinh
27
53
Total Function
nh ngha nh x t tt c gi tr ca domain n
range
k hiu
ngha l
54
Total Function
V d
28
55
Total Function
S dng nh ngha hng s
V d
56
Cc k hiu
Ton t l-gc
Tp hp Quan h v Hm
1
Thit k (6)
Nguyn Thanh Bnh
Khoa Cng ngh Thng tin
Trng i hc Bch khoa
i hc Nng
2
Thit k ?
phn tch bi ton/vn
xut pht t yu cu
m t mt hoc nhiu gii php
nh gi cc gii php, chn gii php tt nht
mt mc tru tng nht nh
s dng cc m hnh
3 tnh cht
tr li cu hi nh th no
m t ch yu l cu trc
b qua cc chi tit ci t
gii php tru tng gii php c th
2
3
Cc giai on thit k
Hot ng thit k xut hin trong cc m
hnh pht trin khc nhau
Hai giai on thit k chnh
Thit k kin trc
phn tch gii php thnh cc thnh phn
nh ngha giao din gia cc thnh phn
nh ngha phn vn c gii quyt bi mi
thnh phn
c th c thc hin bi nhiu mc tru tng
Thit k chi tit
thit k thut ton, cu trc d liu...
4
Cc giai on thit k
Architectural
design
Abstract
specificatio
n
Interface
design
Component
design
Data
structure
design
Algorithm
design
System
architecture
Software
specification
Interface
specification
Component
specification
Data
structure
specification
Algorithm
specification
Requirements
specification
Design activities
Design products
3
5
Cc giai on thit k
Architectural design
xc nh cc h thng con
Abstract specification
c t cc h thng con
Interface design
m t giao din cc h thng con
Component design
phn tch h thng con thnh cc thnh phn
Data structure design
cc cu trc d liu lu tr d liu ca bi ton
Algorithm design
thit k thut ton cho cc hm/m-un
6
Ti sao phi thit k ?
c mt kin trc tt
lm ch c cu trc h thng
chia tr
t c cc tiu chun cht lng
ti s dng / d keem th / d bo tr...
thit k hng n s thay i (design for
change)
4
7
Thit k v s thay i
Thay i = tch cht c trng ca phn
mm
D bo thay i l cn thit
gim chi ph bo tr
D bo thay i l kh khn
s thay i thng khng c xc nh
trc
nhiu yu t thay i cng lc
thi im thay i l kh c th bit trc
8
Thit k v s thay i
Cc yu t c th thay i
thut ton
cu trc d liu
biu din d liu bn ngoi
thit b ngoi vi
mi trng x hi
yu cu khch hng
5
9
Thit k hng m-un
Phn mm l tp hp gm cc m-un
tng tc vi nhau
M-un ha ng vai tr quan trng c
c phn mm cht lng vi chi ph thp
Mc ch thit k h thng
xc nh cc m-un c th
xc nh tng tc gia cc m-un
10
Cc tiu chun ca mt
phng php thit k
Cc tiu chun nh gi mt phng
php thit k hng m-un
tnh phn r (modular decomposability)
tnh tng hp (modular composability)
tnh d hiu (modular understandability)
tnh lin tc (modular continuity)
tnh bo v (modular protection)
6
11
Cc tiu chun ca mt
phng php thit k
tnh phn r (modular decomposability)
phn r vn thnh cc vn con nh
hn
c th gii quyt cc vn con mt cch
c lp
cc phng php thit k t trn xung (to-
down design) tha mn tiu chun ny
12
Cc tiu chun ca mt
phng php thit k
tnh tng hp (modular composability)
cc m-un d dng c kt hp vi nhau
to nn cc h thng mi
c mi quan h cht ch vi tnh ti s dng
tnh tng hp c th xung t vi tnh phn
r
phn r thnh cc m-un chuyn bit thay v cc
m-un tng qut
7
13
Cc tiu chun ca mt
phng php thit k
tnh d hiu (modular understandability)
thit k cc m-un mt cch d hiu
tnh cht mi m-un
mi m-un c d hiu ?
cc tn s dng c ngha ?
cso s dng thut ton phc tp ?
V d
s dng goto
chng trnh vi nghn dng lnh, nhng khng s
dng hm/th tc
14
Cc tiu chun ca mt
phng php thit k
tnh lin tc (modular continuity)
mt s thay i trong c t yu cu ch dn
n s thay i trong mt (hoc mt s t)
m-un
V d
khng s dng s hoc chui k t trong chng
trnh, ch c s dng cc hng nh ngha
s dng mng
8
15
Cc tiu chun ca mt
phng php thit k
tnh bo v (modular protection)
kin trc c thit k sao cho nu mt iu
kin bt thng xy ra, ch mt (hoc mt s
t) m-un b nh hng
16
Thit k kin trc
Kin trc = tp hp cc thnh
phn/m-un v quan h gia chng
cc thnh phn/m-un
hm / nhm cc hm / lp ...
quan h
s dng / gi / tha k ...
9
17
Cht lng ca kin trc
mi m-un c tnh kt c cao (high
cohesion)
mt m-un l mt n v l-gc
ton b m-un cng ng gp thc hin
mt mc tiu
lin kt lng lo (low coupling) gia cc m-
un
t rng buc, ph thuc ln nhau
d hiu
nh ngha r rng
cc m-un v quan h gia chng
18
Cc loi kin trc
Ba loi m hnh kin trc thng c s
dng
chia s d liu: m hnh Repository
chia s dch v, servers: m hnh Client-
Server
m hnh lp (layered model)
10
19
M hnh Repository
Nguyn tc
d liu chia s c tp trung trong mt
CSDL
cc h thng con u truy cp vo CSDL
chung
Khi mt lng d liu ln cn chia s gia
cc h thng con
m hnh Repository thng c s dng
20
M hnh Repository
V d kin trc mt cng c CASE
11
21
M hnh Repository
u dim
n gin
hiu qu khi chia s lng d liu ln
s c lp ca cc h thng con
Hn ch
cc h thng con phi thng nht trn m
hnh d liu repository
kh khn khi phn tn d liu
22
M hnh Client-Server
Nguyn tc
m hnh phn tn: d liu v x l c
phn tn trn nhiu thnh phn khc nhau
H thng bao gm
cc servers cung cp cc dch v
c th c nhiu servers
cc clients yu cu cc dch v
phng thc trao i
mng hay trn mt my tnh
12
23
M hnh Client-Server
V d
24
M hnh Client-Server
u im
s dng hiu qu mng
d dng thm server mi hoc nng cp server hin
ti
phn tn d liu d dng
Hn ch
mi h thng con quan l d liu ring ca n
c th dn n d tha
khng c kin trc tp trung ghi nhn cc dich v
kh khn xc nh d liu hay dch v s dng
13
25
M hnh lp
Nguyn tc
t chc h thng thnh tp hp cc lp
mi lp cung cp tp hp cc dch v
c s dng m t quan h gia cc
h thng con
khi giao din ca mt lp thay i, ch lp
k cn b nh hng
h tr m hnh pht trin tng trng
26
M hnh lp
V d: h thng qun l phin bn
1
Thit k hng i
tng - S dng
UML (7)
Nguyn Thanh Bnh
Khoa Cng ngh Thng tin
Trng i hc Bch khoa
i hc Nng
2
Ni dung
Khi nim c bn hng i tng
Biu ca s dng
Thit k cu trc tnh
Thit k cu trc ng
Sinh m
2
3
Hng chc nng
Da vo cc chc nng ca h thng
H thng l tp hp cc chc nng
Chia nh cc chc nng v lm mn dn
H thng gm cc h thng con
Lm ch phc tp
Cc chc nng trao i vi nhau bng
truyn tham s hoc d liu (chng hn
bin ton cc) dng chung
4
Hng chc nng
Phn cp chc nng
H thng
Chc nng 1
Chc nng 2
Chc nng 1.1 Chc nng 1.2 Chc nng 2.1 Chc nng 2.2
3
5
Hng chc nng
u im
Phn tch c cc chc nng ca h thng
a li kt qu mong i
Nhc im
Chc nng cu trc
Thay i v chc nng kh khn thay i cu trc
Tnh m ca h thng thp
Kh ti s dng
Chi ph sa cha li ln
6
Hng i tng
Ly i tng lm trung tm
H thng = tp hp cc i tng + quan
h gia cc i tng
Cc i tng trao i bng thng ip
(message)
Khng s dng bin ton cc
ng gi
Tha k
4
7
Hng i tng
Phn bit
Lp trnh cu trc
Thut ton + cu trc d liu = chng
trnh
Lp trnh HT
i tng = chng trnh
i tng = thut ton + cu trc d liu
8
Hng i tng
u im chnh
Gn gi vi th gii thc
Ti s dng d dng
ng gi, che du thng tin lm cho
h thng tin cy hn
Tha k lm gim chi ph, h thng c
tnh m cao hn
Xy dng h thng ln v phc tp
5
9
i tng
i tng (object) l khi nim cho
php m t cc s vt/thc th trong
th gii thc
Cc i tng duy tr cc quan h
gia chng
Nguyn Vn A l mt i tng
10
i tng
Cc tnh cht ca i tng
i tng = trng thi + hnh vi +
nh danh
Trng thi l cc c tnh ca i tng
ti mt thi im
Hnh vi th hin cc chc nng ca i
tng
nh danh th hin s tn ti duy nht
ca i tng
6
11
i tng : trng thi
Trng thi = tp hp cc thuc tnh
Mi thuc tnh m t mt c tnh
Ti mt thi im c th, cc thuc
tnh mang cc gi tr trong min xc
nh
V d
Mt chic xe my: mu xanh, 110 cm3,
dream, 12000km, ng yn,
12
i tng : hnh vi
Hnh vi = tp hp cc phng thc
Phng thc: l mt thao tc hoc
c thc hin bi chnh n, hoc
thc hin khi c yu cu t mi
trng (thng ip t i tng khc)
Hnh vi ph thuc vo trng thi
V d:
mt xe my c cc hnh vi: khi ng,
chy,
7
13
Giao tip gia cc i tng
Cc i tng giao tip vi nhau
Gi thng ip (message) cho nhau
Cc loi thng ip
hm dng (constructor)
hm hy (destructor)
hm chn la (get)
hm sa i (set)
cc hm chc nng khc
i tng A i tng B
Thng ip
14
i tng
Gia cc i tng c mi lin kt
(link) vi nhau
V d
Nguyn Vn A i hc Nng
Hc
8
15
Lp
Lp l khi nim dng m t mt
tp hp cc i tng c cng mt
cu trc, cng hnh vi v c cng
nhng mi quan h vi cc i tng
khc
Lp = cc thuc tnh + cc phng
thc
16
Lp
Lp l mt bc tru tng ha
Tm kim cc im ging nhau, b qua cc
im khc nhau ca i tng
Tru tng ha lm gim phc tp
Person
Name
Age
changeAge
9
17
Lp
Quan h gia cc lp: kt hp
Mt kt hp l mt tp hp cc mi
lin kt gia cc i tng
Sinh vin i hc
hc
18
Lp & i tng
i tng l th hin (instance) ca lp
Gi tr l th hin ca thuc tnh
Lin kt l th hin ca kt hp
Lp i tng
Thuc tnh Gi tr
Kt hp Lin kt
10
19
Cc tnh cht ca HT
Tnh ng gi (encapsulation)
d liu + x l d liu = i tng
thuc tnh + phng thc = lp
u im
Hn ch nh hng khi c s thay i cp
nht
Ngn cn s truy cp thng tin t bn ngoi
Che du thng tin
20
Cc tnh cht ca HT
Tnh tha k (inheritance)
Mt lp c xy dng t mt hoc nhiu
lp khc bng vic chia s cc thuc tnh v
phng thc
Lp con tha k cc thuc tnh v phng
thc t lp cha
Tng qut ha/chuyn bit ha
Tng qut ha (generalization): t cc tnh cht
chung ca cc lp khc nhau vo mt lp cha
Chuyn bit ha (specialization): to ra mt lp
con c cc tnh cht ring t lp cha
11
21
Cc tnh cht ca HT
n tha k: mt lp con ch tha k t mt lp cha duy
nht
Lp tru tng hay lp chung: Xet
Lp c th hay lp chuyn bit: XeKhch
Lp chuyn bit c th thay th lp chung trong tt c
cc ng dng. V d: t ti l mt t.
Xet
XeKhch XeTi
T

n
g

q
u

t

h

a
C
h
u
y

n

b
i

t

h

a
22
Cc tnh cht ca HT
a tha k: mt lp con tha k t
nhiu lp cha khc nhau
Person
Personnel
Teacher
Student
Phd candidate
Reseacher
12
23
Cc tnh cht ca HT
a tha k
ng tn cc thuc tnh
a tha k khng c chp nhn bi mt
s ngn ng: Java
X
a
Y
a
Z
a ca X
a ca Y
24
Cc tnh cht ca HT
u im ca tha k
Phn loi cc lp: cc lp c phn
loi, sp xp theo mt th bc d
qun l
Xy dng cc lp: cc lp con c
xy dng t cc lp cha
Tit kim thi gian xy dng, trnh
lp li thng tin
13
25
Cc tnh cht ca HT
Tnh a hnh (polymorphism): ca phng thc, tc
l kh nng cc phng thc khc nhau c thc
hin tr li cng mt yu cu
Mi lp con tha k c t cc phng thc t lp
cha, v cc phng thc ny c th c sa i
trong lp con thc hin cc chc nng ring
trong lp
Mt phng thc (cng mt tn phng thc) c
nhiu dng (nh ngha) khc nhau trong cc lp
khc nhau
26
Cc tnh cht ca HT
V d tnh a hnh
aGic
dienTich()
HnhVung
dienTich()
HnhTamGic
dienTich()
14
27
Ni dung
Khi nim c bn hng i tng
Biu ca s dng
Thit k cu trc tnh
Thit k cu trc ng
Sinh m
28
Ca s dng (Use case)
Bc u tin ca phn tch yu cu
l xc nh cc ca s dng ca h
thng
Mt ca s dng l mt tng tc
gia h thng v mi trng
Tp hp cc ca s dng l m t ton
b h thng cn xy dng
15
29
Ca s dng
V d: pht trin mt phn mm tho
vn bn
Cc ca s dng c th:
Nhp vn bn mi
Sa vn bn tn ti
To mc lc
Chp on vn bn

30
Ca s dng
Mt ca s dng tng ng vi mt chc
nng ca h thng di gc nhn ca
ngi s dng
Mt ca s dng c th ln hoc nh
Mt ca s dng ch ra lm th no mt mc
tiu ca ngi s dng c tha mn
bi h thng
16
31
Ca s dng
Cn phn bit cc mc tiu ca ngi s dng v
cc tng tc ca h vi h thng
Mc tiu: ci m ngi s dng mong i
Tng tc: k thut cho php p ng mc tiu
V d
Mc tiu: c c mt vn bn trnh by p
Tng tc: chn nh dng trang, chn font ch, nh
ngha cc kiu tiu (heading),
Thc t, chng ta xc nh cc mc tiu trc, sau
chn tp hp cc tng tc p ng cc mc
tiu
32
Ca s dng
V d: cn xy dng mt h thng ATM cho php rt
tin
C th c vi tng tc chung trong mt kch bn sau:
a th vo
Nhp m PIN
Chn s tin rt
Khng nh s tin rt
Ly th ra
Ly tin
Ly phiu rt tin
Cc tng tc trn c l cc ca s dng khng ?
17
33
Ca s dng
Cu tr li: khng.
Ti sao ?
V chng hn Nhp m PIN khng p ng mt mc
tiu no ca ngi s dng.
Mc tiu ca ngi s dng l Rt tin, vy nn
l mt ca s dng.
34
Tc nhn (Actor)
Tc nhn ng vai tr mt ngi s dng hoc mt
thc th bn ngoi tng tc vi h thng
V d: Cn pht trin h thng tnh tin siu th
Cc tc nhn c th l: Khch hng, Ngi bn hng,
Ngi qun l, Kho hng
Cn phn bit: tc nhn (actor) v ngi s dng
(user)
Nhiu ngi s dng c th tng ng mt tc nhn:
nhiu ngi bn hng khc nhau ng cng vai tr
i vi h thng
Mt ngi s dng c th tng ng vi nhiu tc
nhn khc nhau: cng mt ngi c th ng thi
ng hai vai tr l ngi bn hng v ngi qun l
18
35
Tc nhn
Tc nhn khng nht thit lun lun l
con ngi
Tc nhn c th l mi trng, h
thng khc, thc th bn ngoi tng
tc vi h thng
V d
Kho hng l c th mt c s d liu
36
c t ca s dng
c t in hnh ca mt ca s dng:
Ca s dng: tn ca s dng thng bt u bi mt
ng t
Cc tc nhn: danh sch cc tc nhn lin quan
M t: tm tt cc x l cn thc hin
V d
Ca s dng: Mua hng
Cc tc nhn: Khch hng, Ngi bn hng
M t: Mt khch hng sau khi chn cc mt hng,
mang gi hng n quy thu tin. Ngi bn hng ghi nhn
cc mt hng, thng bo tng s tin, thu tin v tr tin
cn li cho khch hng. Khch hng mang hng i.
19
37
c t ca s dng
c t ca s dng c th thm:
Tham chiu (reference) n mc lin quan trong c t yu cu
iu kin trc v iu kin sau khi thc hin ca s dng
V d
Ca s dng: Mua hng
Cc tc nhn: Khch hng, Ngi bn hng
Tham chiu: R1.2, R2.3
iu kin trc: Ngi bn hng ng nhp thnh cng.
iu kin sau: Cc mt hng bn c ghi nhn v ghi
nhn thanh ton tin.
M t: Mt khch hng sau khi chn cc mt hng, mang gi
hng n quy thu tin. Ngi bn hng ghi nhn cc mt hng,
thng bo tng s tin, thu tin v tr tin cn li cho khch hng.
Khch hng mang hng i.
38
c t ca s dng
Ngoi ra, i vi mi ca s dng ta c th xy dng
mt kch bn (scenario) hnh ng m t cc s
kin xy ra
Kch bn: gm cc s kin chnh v cc s kin
ngoi l
Cc s kin chia lm hai lung
Lung tng ng vi cc tc nhn
Lung tng ng vi h thng
20
39
c t ca s dng
Cc s kin chnh
Hnh ng ca tc nhn Hnh ng ca h thng
1. Mt khch hng a
hng chn mua n quy
tnh tin.
2. Ngi bn hng ghi nhn
tng mt hng.
Nu mt mt hng c s
lng nhiu hn mt th
ngi bn hng c th nhp
vo mt s.
3. Xc nh mt hng, hin th
cc thng tin v gi mt hng.
S ny c hin th.
40
c t ca s dng
Cc s kin chnh (tip)
4. Sau khi ghi nhn tt
c cc mt hng, ngi bn
hng bo hiu kt thc vic
ghi nhn hng.
6. Ngi bn hng thng
bo tng s tin phi tr cho
khch hng.
7. Khch hng tr tin cho
ngi bn hng.
5. Tnh v hin th tng s
tin.
Hnh ng ca tc nhn Hnh ng ca h thng
21
41
c t ca s dng
Cc s kin chnh (tip)
8. Ngi bn hng nhp s
tin khch hng tr.
10. Ngi bn hng xc
nhn s tr tin, ly tin d
tr cho khch hng v a
cho khch hng phiu bn
hng.
12. Khch hng ri quy
thu tin vi ti hng
9. Hin th tin d v in phiu
bn hng
11. Ghi nhn phin bn hng.
Hnh ng ca tc nhn Hnh ng ca h thng
42
c t ca s dng
Cc s kin ph
7. Khch hng khng c
tin. Ngi bn hng hy
b vic bn.
3. S xc nhn mt hng
khng ng. Hin th li.
Hnh ng ca tc nhn Hnh ng ca h thng
Lu : nh dng c t cc ca s dng khng cn
thit phi cht ch.
22
43
Ca s dng giai on
Elaboration
Xc nh cng nhiu ca s dng mt cch c th
Khng i vo qu chi tit, nhm gim phc tp
Mt m t ngn gn v mi ca s dng l , c
th b qua phn kch bn, tham chiu n c t
yu cu, iu kin trc v iu kin sau.
Bo m rng cc ca s dng bao qut ht cc yu
cu ca h thng
44
Biu ca s dng
Biu ca s dng m t quan h gia cc
tc nhn v cc ca s dng ca mt h
thng.
K hiu
Tc nhn
Use case
Kt hp ch s
tham gia ca tc
nhn vo ca s dng
Gii hn ca
h thng
23
45
Biu ca s dng
V d
Ghi nhn
Mua hng
Tr hng
Khi ng
Ngi bn hng
Ngi qun l
Khch hng
46
Biu ca s dng
Cc tc nhn c th c quan h tha
k
V d
Khch hng
C nhn Cng ty
24
47
Quan h m rng
C th xy ra trng hp: mt ca s dng
tng t vi mt ca s dng khc, tuy
nhin n gm thm mt s hnh ng
V d
Ca s dng: Mua hng bng th tn dng
Cc tc nhn: Khch hng, Ngi bn hng
M t: Mt khch hng sau khi chn cc mt
hng, mang gi hng n quy thu tin. Ngi bn
hng ghi nhn cc mt hng, thng bo tng s tin.
Khch hng a th vo my v nhp m PIN. Khch
hng nhn phiu bn hng v mang hng i.
48
Quan h m rng
Ca s dng ny l mt bin th ca ca s
dng mua hng, tuy nhin thm vo cc
hnh ng lin quan n tr tin bng th
Ca s dng mua hng bng th tn dng
l mt s m rng ca ca s dng mua
hng
25
49
Quan h m rng
K hiu
Nu mt ca s dng kt hp vi mt tc
nhn, th tt c cc ca s dng m rng
u kt hp vi tc nhn
Mua hng Mua hng bng th
<< extends >>
Quan h m
rng
50
Quan h s dng
Trng hp nhiu ca s dng chia s cng mt dy
cc hnh ng. Nu phn chung l quan trng v
hng ti mt mc tiu r rng, nh th ta c th xy
dng mt ca s dng ring
V d: chng ta mun chp nhn mua hng tr tin
mt ln v mua hng tr gp
Hai ca s dng mua hng tr tin mt ln v mua
hng tr gp thc hin mt dy cc hnh ng m c
th c m t bi ca s dng ghi nhn cc mt
hng
26
51
Quan h s dng
c t ca ca s dng ghi nhn cc mt
hng
Ca s dng: ghi nhn cc mt hng
Cc tc nhn: ngi bn hng, khch hng
M t: Khch hng mang cc mt hng n
quy tnh tin. Ngi bn hng ghi nhn cc
mt hng v thng bo tng s tin phi tr.
52
Quan h s dng
K hiu
Mua hng tr
mt ln
Mua hng tr gp
<< use >>
Quan h s
dng
Ghi nhn
cc mt hng
<< use >>
Ngc vi quan h m rng, cc ca s dng trong quan h s dng khng
nht thit kt hp vi cng tc nhn.
27
53
Cch xc nh cc ca s
dng
Phng php phng vn
Kh khn, v hai ngi khc nhau c
phng vn c th a ra kin khc nhau
Phng php hi tho (workshop)
Tp hp tt c nhng ai lin quan n h
thng tho lun: cc nh tin hc v khch
hng (ngi s dng)
Mi ngi u a ra kin
54
Cch xc nh cc ca s
dng
Cch tin hnh hi tho
Lit k tt c cc tc nhn c th
Lit k tt c cc ca s dng c th
Phn tch, bin chng mi ca s dng
bng cch vit ra mt m t n gin
M hnh ha cc ca s dng v tc
nhn
28
55
Cch xc nh cc ca s
dng
Khuyn khch
Khng nn c gng tm mi ca s
dng,
Trong qu trnh pht trin cc ca s dng
s l din dn
Nu khng th bin chng cho mt ca
s dng
C th khng phi l ca s dng
56
Sp xp cc ca s dng
Khi tt c cc ca s dng c xc nh
Tin trnh pht trin gm nhiu bc lp
Mi bc lp thc hin thit k, m ha v
kim th ch mt vi ca s dng
Lm sao chia cc ca s dng vo cc bc
lp?
29
57
Sp xp cc ca s dng
Lp 1 Lp 2 Lp 3
A
B
C
D
Cc ca s dng
58
Sp xp cc ca s dng
Cc ca s dng nn c thc hin trc
Cc ca s dng cha cc ri ro/nguy c
Cc ca s dng kin trc chnh
Cc ca s dng i hi nghin cu mi,
cng ngh mi
Cc ca s dng m khch hng quan tm
hn
30
59
Bi tp 1
My rt tin ATM c cc chc nng chnh nh sau:
Cp pht tin cho nhng ai c th ngn hng (cho
php rt mt s lng tin bi h thng thng tin ca
ngn hng) v nhng ai c th VISA (cho php t xa
bi h thng VISA)
Cho xem kim tra s tin ti khon v b tin vo ti
khon bng tin mt hoc ngn phiu i vi nhng
ai c th ngn hng
Tt c cc giao tc u c kim tra an ton
Kim tra m PIN
M PIN nhp sai 3 ln th th s b nut
Cn phi thng xuyn np tin vo my, ly ngn phiu v
cc th b nut ra
Xc nh cc tc nhn, cc ca s dng v v biu ca s
dng
60
Bi tp 1
Cc tc nhn
Ngi c th ngn hng (bankcard)
Ngi c th VISA (VISAcard)
Ngi vn hnh my (operator)
H thng VISA (VISA)
H thng thng tin ngn hng (bank)
31
61
Bi tp 1
Cc ca s dng
Rt tin vi th ngn hng (withdraw by bankcard)
Rt tin vi th VISA (withdraw by VISAcard)
Kim tra m PIN (identify)
Xem s tin cn trong ti khon (balance)
B tin vo ti khon bng ngn phiu hoc tin mt
(deposit)
Np tin vo my (put money)
Ly th b nut trong my (get cards)
Ly ngn phiu trong my (get cheques)
62
Bi tp 1
VISAcard
withdraw with VISA card
VISA
bankcard
withdraw with bank card
balance
deposit
deposit by cheque deposit by cash
bank
identify
<<extend>>
<<include>>
32
63
Bi tp 1
operator
put cash
get cards
get cheques
64
Bi tp 2
Qun l o to nhn vin: Mt cng ty mun m t bng UML
vic o to nhn vin tin hc ha mt s cng vic. Vic o
to c bt u khi ngi qun l o to nhn c yu cu
o to ca mt nhn vin. Nhn vin ny c th xem danh mc
cc chuyn o to ca cc n v o to k kt vi cng ty.
Yu cu ca nhn vin c xem xt bi ngi qun l o to v
ngi qun l s tr li l chp nhn hay t chi ngh . Trong
trng hp chp nhn, ngi qun l s xc nh chuyn ph
hp trong danh mc cc chuyn , sau gi cho nhn vin ni
dung ca chuyn v danh sch cc kha o to. Nhn vin s
chn kha o to v ngi qun l s ng k kha hc vi n
v o to cho nhn vin. Trong trng hp mun hy b ng k
kha o to, nhn vin phi thng bo sm cho ngi qun l
bit ngi qun l thc hin hy b. Cui kha o to, nhn
vin chuyn phiu nh gi kt qu hc v cho cng ty. Ngi
qun l s kim tra ha n thanh ton tin ca n v o to.
Xy dng biu ca s dng.
33
65
Ni dung
Khi nim c bn hng i tng
Biu ca s dng
Thit k cu trc tnh
Thit k cu trc ng
Sinh m
66
Cu trc tnh
M hnh khi nim
Biu lp
Biu i tng
34
67
M hnh khi nim
Xc nh cc khi nim quan trng trong h thng
M hnh khi nim (conceptual model) m t cc khi
nim trong cc quan h ca chng
UML khng cung cp m hnh khi nim, tuy nhin
cung cp k hiu v c php biu din m hnh
chnh l biu lp
giai on ny, m hnh khi nim cn c gi biu
lp phn tch (analysis class diagram) lu , khc
vi biu lp thit k (design class diagram)
Ngoi ra, m hnh khi nim cng cn c gi l m
hnh lnh vc (domain model)
68
M hnh khi nim
M hnh khi nim gm:
Cc khi nim ca lnh vc nghin cu
Cc thuc tnh v cc thao tc ca cc
khi nim ny
Cc quan h ca cc khi nim ny
Mt khi nim l biu din mc cao (tru
tng) v mt s vt
Mt khi nim l mt phn t ca lnh vc
nghin cu, ch khng phi mt phn t
ca phn mm hay h thng
35
69
M hnh khi nim
Trong m hnh khi nim, chng ta s nm bt cc khi
nim nhn bit bi khch hng
V d cc khi nim ng: khi nim gn lin vi vn
Thang my trong h thng iu khin thang my
V my bay trong h thng t v my may
t hng trong h thng mua bn hng qua mng
V d ti v khi nim: khi nim gn lin vi gii php
DanhSachKhachHang bng cc khch hng
EventTrigger tin trnh thc hin duyt h thng 10 pht
mt ln
70
M hnh khi nim
Lm sao bit c mt khi nim l ng
hay khng?
Nguyn tc: Nu khch hng khng hiu
khi nim, rt c th khng phi l
khi nim
M hnh khi nim s c chuyn dn
sang biu lp thit k trong giai on
xy dng
36
71
Xc nh cc khi nim
xc nh cc khi nim, da vo
c t yu cu, m c th hn l da
vo cc ca s dng
V d: ca s dng mua hng
Cc khi nim c th: KhchHng,
NgiBnHng, TnhTin, MuaHng,
MtHng,
72
Xc nh cc khi nim
Mt s ng c vin ca khi nim t c t
hoc ca s dng:
Cc i tng vt l (xe t)
Cc v tr, a im (nh ga)
Cc giao tc (thanh ton)
Cc vai tr ca con ngi (ngi bn)
Cc h thng khc bn ngoi (c s d liu t xa)
Danh t tru tng (s kht, n ung)
Cc t chc (i hc)
Cc s kin (cp cu)
Nguyn tc/chnh sch
37
73
Xc nh cc khi nim
Cch khc xc nh cc khi nim
Cc danh t v cm danh t trong c t yu cu
hoc c t ca s dng c th l cc khi nim
Da vo hiu bit v kinh nghim loi b cc danh t
v cm danh t khng l cc khi nim
V d: da vo kch bn ca s dng mua hng
Gch chn cc danh t v cm danh t
74
Xc nh cc khi nim
V d
Hnh ng ca tc nhn Hnh ng ca h thng
1. Mt khch hng a
hng chn mua n quy
tnh tin.
2. Ngi bn hng ghi nhn
tng mt hng.
Nu mt mt hng c s
lng nhiu hn mt th
ngi bn hng c th nhp
vo mt s.
3. Xc nh mt hng, hin th
cc thng tin v gi mt hng.
S ny c hin th.
38
75
Xc nh cc khi nim
V d
4. Sau khi ghi nhn tt
c cc mt hng, ngi bn
hng bo hiu kt thc vic
ghi nhn hng.
6. Ngi bn hng thng
bo tng s tin phi tr cho
khch hng.
7. Khch hng tr tin cho
ngi bn hng.
5. Tnh v hin th tng s
tin.
Hnh ng ca tc nhn Hnh ng ca h thng
76
Xc nh cc khi nim
V d
8. Ngi bn hng nhp s
tin khch hng tr.
10. Ngi bn hng xc
nhn s tr tin, ly tin d
tr cho khch hng v a
cho khch hng phiu bn
hng.
12. Khch hng ri quy
thu tin vi ti hng
9. Hin th tin d v in phiu
bn hng
11. Ghi nhn phin bn hng.
Hnh ng ca tc nhn Hnh ng ca h thng
39
77
Xc nh cc khi nim
Phn bit gia khi nim (concept) v thuc tnh (attribut)
Nu mt phn t ca lnh vc nghin cu khng l mt con
s hoc mt chui k t th c th l mt khi nim
V d: Cn xy dng phn mm qun l cc chuyn bay.
ch ca mt chuyn bay l thuc tnh ca mt chuyn bay
hay l mt khi nim khc ?
Tr li: ch mt chuyn bay l mt sn bay, khng phi l
mt con s hay vn bn, l mt khi nim
78
Xc nh cc khi nim
Lp MT
Lp MT l lp cha thng tin m t cc
i tng khc
V d: Lp MtHng cha cc thng tin v Mt
Hng
MtHng
mMH
tnMH: text
gi
sXri
muSc
Phng n 1 (cha tt)
40
79
Xc nh cc khi nim
Lp MT
MtHng
sXri
muSc
Phng n 2 (tt hn)
MTMtHng
mMH
tnMH: text
gi
*
1
c m t
80
Xc nh cc khi nim
Lp MT
Khi no s dng lp MT
Khi cn gim bt s d tha, trng lp thng tin
Khi cn m t v i tng c lp vi cc i
tng c th
Khi cn cn duy tr thng tin v i tng cho d
cc i tng c th b xa
41
81
Xc nh cc khi nim
Lp MT
V d: trong lnh vc hng khng, cn m t
quan h gia cc chuyn bay v cc sn
bay
ChuynBay
ngy
gi
sHiu
SnBay
tn
*
1
Bay n
Phng n 1
82
Xc nh cc khi nim
Lp MT
MTChuynBay
sHiu
SnBay
tn
*
1
Bay n
Phng n 2
ChuynBay
ngy
gi
*
1
42
83
Biu din khi nim
S dng k hiu ca biu lp
MtMtHng
Khi nim
Cc thuc tnh
Cc thao tc
(cha xt n
giai on ny)
84
Thuc tnh
Cc thuc tnh (attribut) ca mt khi nim biu din
d liu cn thit cho cc th hin (instance) ca khi
nim
V d
MtMtHng
Khi nim
Cc thuc tnh
m
tn: text
Kiu (khng bt buc)
43
85
Thuc tnh
Mt thuc tnh ch i din cho cc d liu lin quan
n khi nim s hu thuc tnh
V d
NgiBnHng
tn
sQuy
NgiBnHng
tn
Quy
s
Sai
ng
86
Thuc tnh
Cch xc nh cc thuc tnh
Cc con s v chui k t l cc thuc tnh
Nu mt tnh cht ca mt khi nim khng
th lm c iu g th rt c th l
thuc tnh
Nu nghi ng mt thuc tnh l khi nim, th
n gin hy coi l khi nim
V d: lng l thuc tnh hay khi nim so vi
khi nim cng nhn ?
Nu nghi ng l khi nim th coi nh lng v
cng nhn l hai khi nim tch ri
44
87
Thao tc
Khi nim c th c cc thao tc (operation)
Thao tc ca khi nim chnh l kh nng
thc hin ca mt th hin ca khi nim
V d
MtHngBn
Khi nim
Cc thuc tnh
ngy
giBtu: Time
tngTin(): Integer
Thao tc
88
Thao tc
giai on elaboration, m hnh khi nim
c th khng nht thit phi m t cc
thao tc ca khi nim
Giai on construction s thc hin cng
vic ny mt cch chi tit v y
45
89
Kt hp
Kt hp (association) biu din quan h gia cc th
hin ca cc khi nim
V d: kt hp cha gia khi nim ca hng v khi
nim mt hng
K hiu
CaHng MtHng
Cha >
Kt hp
90
Kt hp
C th tn ti kt hp ca nhiu hn hai khi nim
V d
Person Company
function
Profession
work employ
46
91
Kt hp
Bi s (multiplicity) ca vai tr ch ra s th hin c
th ca quan h tham gia vo quan h
Cc bi s c th
1: ch ng mt
1..*: t mt n nhiu
*: t 0 n nhiu
m..n: t m n n
V d
MtHng CaHng
1 *
Cha >
92
Hn ch kt hp
(qualificator)
Gim s th hin tham gia vo mt kt hp
K hiu
Mi th hin A vi gi tr key xc nh mt tp con cc
th hin B tham gia vo kt hp
B A
key
qualificator
47
93
Hn ch kt hp
(qualificator)
V d
Phn bit cc sinh vin hc ti mt i hc da vo
m s sinh vin
Phn bit cc mt hng thuc vo mt danh mc mt
hng da vo m s mt hng
SinhVin iHc
N
o
sinh vin
MtHng DanhMcMtHng
ID
94
Chuyn bit ha
Mt khi nim c th v c bn ging vi mt khi
nim khc, ch c mt vi s khc nhau trn mt s
tnh cht (thuc tnh, thao tc, cc kt hp)
Khi nim th nht c gi l chuyn bit ha
(specialization) ca khi nim th hai
Khi nim th nht c gi l khi nim chuyn bit
ha (specialized concept), khi nim th hai c gi
l khi nim chung (general concept)
48
95
Chuyn bit ha
K hiu
general concept
specialized concept
specialized concept
96
Tha k
Khi nim chuyn bit ha tha k (inheritance) tt c
cc tnh cht ca ca khi nim chung. Cc tnh cht
ny bao gm:
Cc thuc tnh
Cc thao tc
Cc kt hp vi khi nim khc
49
97
Tha k
V d
Cc khi nim ThanhTonBngTinMt v
ThanhTonBngTh u c thuc tnh tng v kt
hp thanh ton vi khi nim PhinBnHng
ThanhTon
tng: Integer
ThanhTonBngTinMt ThanhTonBngTh
PhinBnHng
1 1 thanh ton >
98
Khi nim tru tng
Tng t nh lp, khi nim tru tng khng c cc
th hin
Lu , trong ti liu vit tay c th vit {abstract} di
tn khi nim tru tng
ThanhTon
tng: Integer
ThanhTonBngTinMt ThanhTonBngTh
PhinBnHng
1 1 thanh ton >
Khi nim tru tng
c vit in nghing
50
99
Quan h hp thnh v quan
h kt tp
Quan h hp thnh (composition) v quan h kt
tp (agregation) l hai kt hp c bit ch s s
hu
Quan h hp thnh: mt khi nim thnh phn ch
thuc vo mt khi nim ton phn
Quan h kt tp: mt khi nim thnh phn c th
thuc vo nhiu khi nim ton phn
TonPhn
MtPhn
TonPhn MtPhn
100
Quan h hp thnh v quan
h kt tp
V d
Mt th hin ca Point khng th ng thi thuc
vo mt th hin ca Triangle v mt th hin ca
Circle
Point
Triangle
Style
color
isFilled
Circle
radius
1 3
1 1
51
101
Quan h hp thnh v quan
h kt tp
Quan h hp thnh nhn mnh s s hu: nu khi
nim ton phn b hy b th khi nim thnh phn
cng b hy b theo
Trong trng hp, th t ca cc khi nim thnh
phn l quan trng, th thm vo kt hp iu kin
{ordered}
V d
Polygon
Point
3..*
{ordered}
102
Khi nim kt hp
C th m t cc tnh cht ca mt kt hp
gia hai khi nim bi mt khi nim kt
hp (association concept)
V d
employ
Person
work
Company
1..* *
Employment
begin, end: Date
Khi nim kt hp
52
103
Bi tp 1
Xy dng m hnh khi nim ca h
thng/phn mm bn hng ti siu th
Phn mm bn hng s dng ti siu th
nhm gip ghi nhn hot ng bn hng, x
l cc thanh ton vi khch hng. Phn
mm c s dng bi ngi bn hng v
c qun l bi ngi qun l siu th.
Phn mm nhm t ng ha cng vic ca
ngi bn hng ti quy thu tin.
104
Bi tp 1
ThanhToan
PhienBanHang
KhchHng
NgiBn
DongHang
DanhMucMatHang
CuaHang
NguoiQuanLy
1
1
1
1
1
1
1
1..*
*
1..* 1
1
1
1
NhnVin
MatHang
* 1
QuayTinhTien
1
*
HeThongBanHang
1
1..* 1
1..*
1
*
MoTaMatHang
*
1
1
*
53
105
Bi tp 2
Qun l o to trung tm tin hc: Mt cng ty mun m t
bng UML vic o to nhn vin tin hc ha mt s cng vic.
Vic o to c bt u khi ngi qun l o to nhn c
yu cu o to ca mt nhn vin. Nhn vin ny c th xem
danh mc cc chuyn o to ca cc n v o to k kt vi
cng ty. Yu cu ca nhn vin c xem xt bi ngi qun l
o to v ngi qun l s tr li l chp nhn hay t chi
ngh . Trong trng hp chp nhn, ngi qun l s xc nh
chuyn ph hp trong danh mc cc chuyn , sau gi cho
nhn vin ni dung ca chuyn v danh sch cc kha o to.
Nhn vin s chn kha o to v ngi qun l s ng k kha
hc vi n v o to cho nhn vin. Trong trng hp mun hy
b ng k kha o to, nhn vin phi thng bo sm cho ngi
qun l bit ngi qun l thc hin hy b. Cui kha o to,
nhn vin chuyn phiu nh gi kt qu hc v cho cng ty.
Ngi qun l s kim tra ha n thanh ton tin ca n v o
to.
Xy dng biu m hnh khi nim.
106
Biu lp
Biu lp nh ngha:
Cc lp (class)
Cc thuc tnh (attribut) ca lp: cc
bin v kiu ca chng
Cc thao tc (operation) ca lp: cc
phng thc (method), cc tham i v
c th gi tr tr v
Cc quan h gia cc lp
54
107
Biu lp
Biu lp c cng quy tc c php vi m hnh khi
nim
Thc ra, m hnh khi nim s dng cc c php ca
biu lp trong UML
Tt c cc k hiu v quy tc ( trnh by) i vi
m hnh khi nim u c s dng xy
dng biu lp
Biu lp c xy dng da trn m hnh khi
nim
Cc lp c th ch yu l cc khi nim hoc cc
thnh phn khc
Biu lp s l nn tng cho bc m ha
108
Biu lp
i vi biu lp, mi thuc tnh hay mi phng
thc c th c thm mc kh kin kh nng nhn
thy (visibility)
K hiu
mc ring (priviate), thuc tnh hay phng thc
ch c nhn thy bi i tng ca lp
# mc bo v (protected), thuc tnh hay phng
thc ch c nhn thy bi i tng ca lp v
i tng ca cc lp tha k lp
+ mc chung (public), thuc tnh hay phng thc
ch c nhn thy bi i tng ca tt c cc lp
55
109
Biu lp
V d
Shape
origin : Point
+ setOrigin(p : Point)
+ getOrigin() : Point)
+ move(p : Point)
+ resize(s : Scale)
+ display()
# pointInShape(p : Point) : Boolean
Tn lp
Thuc tnh
Phng thc
110
Biu lp
Thuc tnh dn xut (derived attribut) l cc thuc tnh
ca biu lp m c th suy ra t cc thuc tnh
khc.
K hiu: thuc tnh dn xut bt u bi /, mt rng
buc c th i km gii thch s dn xut
V d
Person
name
birthDate
/ age
Thuc tnh dn xut
{age = CurrentDate birthDate}
Rng buc
56
111
Biu lp
Cc quan h gia cc lp
Quan h kt hp (association)
Quan h chuyn bit ha/tng qut ha
(specialization/generalization)
Quan h hp thnh (composition)
Quan h kt tp (agregation)
Quan h ph thuc (dependence)
112
Biu lp
Quan h kt hp (association)
Quan h chuyn bit ha/tng qut ha
(specialization/generalization)
MtHng QuyHng
1 *
Cha >
Quan h kt hp
NgiQunL NgiBnHng
Quan h tng qut ha
NhnVin
57
113
Biu lp
Quan h kt tp (agregation)
Quan h hp thnh (composition)
DanhMcMtHng MtHng
*
1
Quan h
Company Person
*
0..*
Quan h
114
Biu lp
Quan h ph thuc (dependence): m t
mt lp ph thuc vo lp khc
V d
Point Circle
Quan h ph thc
center : Point
58
115
Biu lp
V d: chuyn i m hnh khi nim
thnh biu lp
Gi s m hnh khi nim
ThanhTon
ThanhTonBngTinMt ThanhTonBngTh
PhinBnHng
1 1 thanh ton >
116
Biu lp
Chi tit cc thuc tnh
ThanhTon
tng : Integer
ThanhTonBngTinMt ThanhTonBngTh
PhinBnHng
1 1 thanh ton >
59
117
Biu lp
Chi tit cc phng thc
ThanhTon
tng : Integer
ThanhTonBngTinMt
nhnTin()
ThanhTonBngTh
trVoTh()
PhinBnHng
tnhTng() : Integer
1 1 thanh ton >
118
Biu lp
Xc nh cc mc kh kin
ThanhTon
# tng : Integer
ThanhTonBngTinMt
+ nhnTin()
ThanhTonBngTh
+ trVoTh()
PhinBnHng
+ tnhTng() : Integer
1 1 thanh ton >
60
119
Ni dung
Khi nim c bn hng i tng
Biu ca s dng
Thit k cu trc tnh
Thit k cu trc ng
Sinh m
120
Cu trc ng
Biu tng tc
Biu tun t
Biu cng tc
61
121
Biu tng tc
Biu tng tc m t hnh vi ca h thng
Mi biu tng tc tng ng mt tc v c
thc hin bi mt s cc i tng
Biu tng tc xy dng da trn nn tng ca
biu hot ng v biu trng thi
Biu tng tc m t cc hnh ng ca cc i
tng thc hin mt tc v. Cc hnh ng ca
i tng bao gm:
gi cc thng ip (message) gia cc i tng
to (create) v hy (destroy) cc i tng
122
Biu tun t
Biu tun t (sequence diagram) biu
din s tng tc gia cc i tng bng
vic nhn mnh th t trao i thng ip
gia cc i tng
Biu tun t gm:
cc i tng
cc thng ip trao i gia cc i tng
62
123
Biu tun t
Mi i tng c mt ng sinh tn (lifeline) biu din
thi gian tn ti ca n.
K hiu
object object:Class :Class
i tng
ng sinh tn
124
Biu tun t
Thi gian hot ng (activation) l
thi gian m i tng ang thc
hin mt thao tc
K hiu
object
Thi gian hot ng
63
125
Biu tun t
Mt thng ip c t trao i gia
cc i tng
Cc loi thng ip
Gi (call)
Tr v (return)
Gi (send)
To (create)
Hy (destroy)
126
Biu tun t
Thng ip gi gi mt phng thc/thao tc trn i tng
i tng gi phi i thng ip c thc hin kt thc
mi c th thc hin cng vic khc (thng ip ng b)
Mt i tng c th gi thng ip cho chnh n
K hiu
object A object B
message()
object
Gi thng ip gi Gi cho chnh n
64
127
Biu tun t
Thng ip tr v tr v mt gi tr
cho i tng gi
K hiu
Object A Object B
message()
Thng ip tr v
value
128
Biu tun t
Thng ip gi gi mt tn hiu n mt i tng
Khc vi thng ip gi, khi i tng gi thng ip
gi n khng ch i, m tip tc thc hin cng vic
khc (thng ip khng ng b)
K hiu
object A object B
message()
Thng ip gi
65
129
Biu tun t
Thng ip to gi phng thc to mt i tng
Thng ip hy gi phng thc hy mt i tng
K hiu
object A
object B
<<create>>
Thng ip to
<<destroy>>
Thng ip hy
130
Biu tun t
V d
:A
:B
<<create>> msg1
msg2
msg3
public class A
{
private B objB;
public void msg1()
{
objB = new B();
objB.msg2();
objB.msg3();
}
}
public class B
{

public void msg2() { }


public void msg3() { }
}
66
131
Biu tun t
Mt thng ip c th c gi lp
nhiu ln
K hiu
object A
*[1..10]message()
Gi lp thng ip 10 ln
object B
for(i = 1; i<= 10; i++)
{
objectB.message()
}
132
Biu tun t
Mt thng ip c th c gi lp
nhiu ln ph thuc vo mt iu kin
K hiu
object A
*[C]message()
Gi lp thng ip trong khi C ng
object B
while(C)
{
objectB.message()
}
67
133
Biu tun t
Mt thng ip c th c gi ph
thuc vo iu kin r nhnh
K hiu
object A
[C]message()
object B
if(C)
objectB.message();
else
objectC.message();
object C
[not C]message()
134
Biu tun t
Mt thng ip c th c gi
quy
K hiu
print()
Thng ip quy
:BinaryTree
print()
68
135
Biu tun t
V d
:TiLiu :MyFax
gi()
:DyinThoi
nhcMy()
bmS(s)
gi(trang)
chuyn(trang)
KtNi
mMi
KtNi
136
Biu tun t
V d
:NgiBn :MyTnhTin
thanhTon(sTin)
:PhinBnHng
thanhTon(sTin)
thanhTon(sTin)
:ThanhTon
tinD
tinD
trTinD()
<<create>>
<<destroy>>
69
137
Biu tun t
Gia biu tng tc v biu lp v c mi quan
h cht ch vi nhau
V d
MyTnhTin
mThanhTon()
PhinBnHng
thanhTon()
:MyTnhTin :PhinBnHng
thanhTon(sTin) mThanhTon(sTin)
138
Biu cng tc
Biu cng tc (collaboration diagram) m t s
tng tc gia cc i tng bng vic nhn mnh
cu trc kt hp gia cc i tng v nhng thng
ip trao i gia chng
Biu cng tc l s m rng ca biu i tng
Biu cng tc ch ra
th t gi cc thng ip: mi thng ip c gn
mt s tun t
iu kin gi cc thng ip
70
139
Biu cng tc
Cu trc thng ip c m t dng tng qut nh sau:
precondition / condition sequence * *|| iteration : result := message(parameters)
precondition /: danh sch s tun t ca cc thng ip trc
thng ip cn gi. Thng ip ch c gi i khi tt c cc thng
ip trc n c gi i.
condition: thng ip ch c gi i khi iu kin c tha
mn.
sequence: s tun t ca thng ip cn gi. V d, vic gi
thng ip 1.3.5 theo sau vic gi thng ip 1.3.4, c hai thng
ip ny nm trong lung 1.3.
*: ch ra thng ip c gi i nhiu ln mt cch tun t.
*||: ch ra thng ip c gi i nhiu ln mt cch ng thi.
iteration: ch ra s ln gi thng ip mt cch tun t hoc ng
thi
result: ch ra gi tr tr v ca thng ip.
message: tn thng ip
parameters: danh sch cc tham s ca thng ip.
140
Biu cng tc
V d
4 : hello() : thng ip c s tun t l 4.
[time = 12h] 1 : lunch() : thng ip ny ch
c gi i nu l lc 12h.
1.3.5 * call() : thng ip ny c gi i
nhiu ln.
3 / *|| [i:= 1..5] 1.2 : close() : thng ip ny
c gi i nm ln mt cch ng thi v
sau thng ip s 3.
1.2, 2.3 / [t < 10] 3.1 name = getName() :
thng ip ny c gi i sau cc thng
ip 1.2, 2.3 v vi iu kin t<10.
71
141
Biu cng tc
V d biu cng tc
:NgiBn
:HThng :PhinBnHng
:ThanhTon
1 : thanhTon(sTin)
2 : trTinD()
1.2 tinD()
1.1 : thanhTon(sTin)
1.1.1 : <<create>>
1.1.2 : thanhTon(sTin)
1.1.4 : <<desstroy>>
1.1.3 : tinD()
142
Biu tng tc
Bi tp 1: My rt tin ATM
Xy dng biu tun t cho ca s dng
rt tin trong trng hp thnh cng
Xy dng biu tun t cho ca s dng
xem s tin d trong ti khon
72
143
Ni dung
Khi nim c bn hng i tng
Biu ca s dng
Thit k cu trc tnh
Thit k cu trc ng
Sinh m
144
Sinh m
Chuyn cc m hnh thit k sang m chng trnh
(C++, Java, )
M chng trnh hng i tng
nh ngha cc lp v giao din
nh ngha cc phng thc
Cc biu lp s c chuyn sang m
chng trnh nh ngha cc lp tng ng
Cc biu tng tc s c chuyn thnh m
chng trnh nh ngha cc phng thc
Cc biu khc s h tr cho qu trnh m ha
73
145
Sinh m
V d: biu lp
ListOfOrders
datePlaced
clientID
+ total() : double
OneOrder
quantity: Integer
+ subtotal() : double
AirPlane
price : float
+ getPrice() : float
1
1..*
*
1
contains > orderListe
146
Sinh m
M lp OneOrder
OneOrder
quantity: Integer
+ subtotal() : double
public class OneOrder
{
public double subtotal()
{
}
private int quantity;
}
74
147
Sinh m
M lp OneOrder
public class OneOrder
{
public double subtotal()
{
}
private int quantity;
private AirPlane airPlane;
}
OneOrder
quantity: Integer
+ subtotal() : double
AirPlane
price : float
+ getPrice() : float
*
1
contains >
148
Sinh m
M lp ListOfOrders
public class ListOfOrder
{
public double total()
{
}
private Date datePlaced;
private int clientID;
private Vector orderList;
}
ListOfOrders
datePlaced
clientID
+ total() : double
OneOrder
quantity: Integer
+ subtotal() : double
1
1..*
orderListe
75
149
Sinh m
Biu cng tc thc hin phng thc
total()
:ListOfOrders :OneOrder
:AirPlane
1 : total() 2 : *[for each] subtotal()
3 : getPrice()
150
Sinh m
M phng thc total()
:ListOfOrders :OneOrder
:AirPlane
1 : total() 2 : *[for each] subtotal()
3 : getPrice()
public double total()
{
}
76
151
Sinh m
M phng thc total()
:ListOfOrders :OneOrder
:AirPlane
1 : total() 2 : *[for each] subtotal()
3 : getPrice() public double total()
{
double sum = 0;
for (int i=0; i<orderList.size(); i++)
sum += orderList.elementAt(i).subtotal();
return sum;
}
152
Sinh m
M phng thc subTotal()
:ListOfOrders :OneOrder
:AirPlane
1 : total() 2 : *[for each] subtotal()
3 : getPrice()
public double subtotal()
{
return (quantity * airplane.getPrice());
}
77
153
Sinh m
M phng thc getPrice()
:ListOfOrders :OneOrder
:AirPlane
1 : total() 2 : *[for each] subtotal()
3 : getPrice()
public float getPrice()
{
return price;
}
154
Cng c
Phn mm Rational Rose, Poisedon
for UML, Umbrello
Thit k cc biu UML
Sinh m chng trnh
C++
Java
VB
Ada
1
Lp trnh v ngn
ng lp trnh (8)
Nguyn Thanh Bnh
Khoa Cng ngh Thng tin
Trng i hc Bch khoa
i hc Nng
2
Lp trnh
k nng c nhn
nng lc c nhn
hiu bit cc cng c lp trnh
lp trnh vin cn
nguyn tc lp trnh
kinh nghim
lp trnh vin tt
vit chng trnh
ng n
d hiu
d bo tr, pht trin
2
3
Ngn ng lp trnh
C nhiu phng php lp trnh khc nhau
nhiu ngn ng lp trnh khc nhau
im chung ca cc ngn ng lp trnh
(NNLT)
d din t
d hiu
d thc thi trn my tnh
Mt s tnh cht ca NNLT
kiu v kim tra kiu
m-un ha
4
Kiu
Hu ht cc NNLT u c khi nim
kiu
kiu s, kiu l-gc...
mt bin c kiu d liu xc nh

Kim tra kiu


m bo mt ton t/hm ch p dng
cho nhng ton t/tham s c kiu
cho php
3
5
Kiu
Ngn ng nh kiu (types languages)
c h thng kiu
cho php kim tra s dng kiu ph hp m
khng cn thc thi chng trnh
kim tra tnh
Ngn ng nh kiu cho php
pht hin sm mt s li lin quan n kiu
Ngn ng nh kiu
C, Java, C++...
6
a hnh
u im ca h thng kiu v kim tra kiu
cht ch
d kim tra
Tuy nhin
h thng kiu phi mm do trong s dng
a hnh
4
7
a hnh
Mt s tnh hung a hnh
Vit hm p dng cho cc mng c s phn
t khc nhau
kiu mng c kim tra khi bin dch
s phn t ca mng c kim tra khi thc thi
p dng hm cho cc kiu d liu khc
nhau
xy dng nhiu phin bn ca hm tng ng vi
cc kiu khc nhau
hoc ch xy dng mt phin bn ca hm, x l
khc nhau c thc hin khi thc thi
template (C++), generic (Java)
8
a hnh
Mt s tnh hung a hnh
Vit hm p dng cho cc mng c s phn t khc
nhau
kiu mng c kim tra khi bin dch
s phn t ca mng c kim tra khi thc thi
p dng hm cho cc kiu d liu khc nhau
xy dng nhiu phin bn ca hm tng ng vi cc
kiu khc nhau
hoc ch xy dng mt phin bn ca hm, x l khc
nhau c thc hin khi thc thi
template (C++), generic (Java)
hoc s dng kiu con/lp con
a hnh trong ngn ng lp trnh hng i tng
5
9
M-un ha
Xut hin vo nhng nm 70
ng vai tr quan trng to ra phn
mm cht lng
Thit k hng m-un
phn mm = tp hp cc m-un v quan
h gia chng
Hu ht cc NNLT u h tr m-un ha
10
M-un ha
Mt m-un gm hai phn
Phn giao din
giao tip vi bn ngoi m-un ay m-
un khc
Phn thn
ni dung ca m-un
cc b i vi mi m-un, che du i
vi m-un khc
6
11
M-un ha
Cc m-un ch trao i d liu qua phn
giao din
khng s dng bin ton cc
Nu thay i phn thn th t nh hng
(hoc khng nh hng) n cc m-un
khc
Trong ngn ng lp trnh cu trc
m-un = hm
Trong ngn ng lp trnh hng i tng
m-un = lp / phng thc
12
Cc phng php lp trnh
c bn
Lp trnh th tc/cu trc (procedural
programming)
Lp trnh hng i tng (object-oriented
programming)
Lp trnh hm (functional programming)
Lp trnh l-gc (logic programming)
7
13
Lp trnh th tc
c s dng ph bin
lp trnh c cu trc
ph hp vi thit k hng chc
nng
NNLT th tc
Fortran, Ada, Pascal, C...
14
Lp trnh hng i tng
khi nim c bn
i tng, lp
ng gi
tha k
a hnh
xu hng pht trin ca cc NNLT hin i
NNLT hng i tng
Smalltalk, C++, Java, Delphi...
8
15
Lp trnh hm
tnh ton cc biu thc
hm tnh ton da trn cc gi tr ca tham
s
thao tc trn danh sch
p dng
lnh vc tnh ton
tr tu nhn to
NNLT hm
LISP, Scheme...
16
Lp trnh l-gc
thc hin cc biu thc l-gc
khi nim hp gii (resolution)
tm kim gi tr ca cc bin sao cho biu thc l-
gc c gi tr ng
ng dng
xy dng h chuyn gia
x l ngn ng t nhin
NNLT l-gc
Prolog
9
17
Chn NNLT
quyt nh quan trng trong pht trin
phn mm
gim chi ph
m ngun cht lng
d bo tr, pht trin
18
Chn NNLT
da vo nhiu yu t (1)
yu cu ca khch hng
khch hng t bo tr sn phm
chng trnh dch
cn c chng trnh dch c cht lng tt
cng c h tr
d dng qu trnh lp trnh, bo tr
kinh nghim ca lp trnh vin
chn NNLT m lp trnh lm ch
10
19
Chn NNLT
da vo nhiu yu t (2)
yu cu tnh kh chuyn (portability)
thc hin trn nhiu my tnh/plaform khc nhau
lnh vc ng dng
h thng nhng: C, Assembly...
h thng qun l: .NET, VB, C++...
h chuyn gia: Prolog
mng: Java, .NET...
website: PHP, ASP...
khng tn ti ngn ng a nng cho mi ng
dng
20
Phong cch lp trnh
Cn c chng trnh d hiu
ph thuc vo c im NNLT
phong cch ca ngi lp trnh
Phong cch lp trnh khng do lp trnh vin t t ra
m do t chc/doanh nghip/d n t ra
cc lut lp trnh
cc quy c lp trnh
Mc ch
m ngun d hiu, d kim th, d bo tr
t li
11
21
Phong cch lp trnh
Mt s nguyn tc lp trnh
t tn
c ngha, gi nh
trnh by
r rng, d hiu
ch thch
y , d c
hn ch s dng cu trc kh hiu
break, continue, goto...
v d
quy c lp trnh C++
1
Kim th (9)
Nguyn Thanh Bnh
Khoa Cng ngh Thng tin
Trng i hc Bch khoa
i hc Nng
2
Ni dung
Gii thiu v kim th
Kim th trong tin trnh pht trin
Kim th hp en
Kim th hp trng
2
3
Kim th l g ?
IEEE: Kim th l tin trnh vn hnh
h thng hoc thnh phn di
nhng iu kin xc nh, quan st
hoc ghi nhn kt qu v a ra nh
gi v h thng hoc thnh phn
Myers: Kim th l tin trnh thc thi
chng trnh vi mc ch tm thy li
(The art of software testing)
4
Kim th l g ?
Kim th G ri (debug)
Kim th
nhm pht hin li
G ri
xc nh bn cht li v nh v li trong
chng trnh
tin hnh sa li
3
5
Cc khi nim
Mt sai st (error) l mt s nhm ln hay mt s
hiu sai trong qu trnh pht trin phn mm ca
ngi pht trin
Mt li (fault, defect) xut hin trong phn mm
nh l kt qu ca mt sai st
Mt hng hc (failure) l kt qu ca mt li xut
hin lm cho chng trnh khng hot ng c
hay hot ng nhng cho kt qu khng nh mong
i
sai st li hng hc
6
Cc khi nim
D liu th (test data)
d liu vo cn cung cp cho phn mm
trong khi thc thi
Kch bn kim th (test scenario)
cc bc thc hin khi khi kim th
Phn xt kim th (test oracle)
nh gi kt qu ca kim th
t ng: chng trnh
th cng: con ngi
4
7
Cc khi nim
Kim th vin (tester)
ngi thc hin kim th
Ca kim th (test case)
tp d liu th
iu kin thc thi
kt qu mong i
8
Cc khi nim
5
9
Tin trnh kim th
Kim th thng bao gm cc bc
thit k cc ca kim th
bc to d liu th
kim th vi tt c cc d liu vo l cn thit
khng th kim th vt cn
chn tp cc d liu th i din t min d liu vo
da trn cc tiu chun chn d liu th
bc thc thi chng trnh trn d liu th
cung cp d liu th
thc thi
ghi nhn kt qu
bc quan st kt qu kim th
thc hin trong khi hoc sau khi thc thi
so snh kt qu nhn c v kt qu mong i
10
Tin trnh kim th
6
11
Kh khn ca kim th
Lin quan n tin trnh pht trin
gm nhiu giai on pht trin
ci ra ca mt giai on l ci vo ca giai on khc
mt mt thng tin
V mt con ngi
thiu o to
t ch trng vai tr kim th
V mt k thut
khng tn ti thut ton tng qut c th chng minh
s ng n hon ton ca bt k mt chng trnh
no
12
Ti sao kim th
Hp thc ha (validation)
ch ra rng sn phm p ng c yu cu ngi
s dng
Xc minh (verification)
ch ra rng sn phm tha mn c t yu cu
Phn bit hp thc ha v xc minh
Verification: Are we building the product right ?
Validation: Are we building the right product ?
7
13
Kim th trong tin trnh
pht trin
Cc k thut kim th
k thut kim th tnh (static testing)
k thut kim th ng (dynamic testing)
kim th hp en (black-box testing)
k thut kim th chc nng (functional testing)
kim th hp trng (white-box testing)
k thut kim th cu trc (structural testing)
Cc hot ng kim th/chin lc kim th
kim th n v (unit testing)
kim th tch hp (integration testing)
kim th hp thc ha (validation testing)
kim th hi quy (regression testing)
14
Kim th trong tin trnh
pht trin
Kim th n v (unit testing)
kim th mi n v phn mm (m-un)
s dng k thut kim th hp en
d liu th c to ra da trn ti liu thit
k
c th s dng c kim th hp trng v
kim th tnh
phn mm yu cu cht lng cao
thng c thc hin trn phn cng pht
trin phn mm
8
15
Kim th trong tin trnh
pht trin
Kim th tch hp (integration testing)
sau khi thc hin kim th n v
ghp ni cc n v/thnh phn phn mm
kim th s ghp ni, trao i d liu gia
cc n v/thnh phn
s dng k thut kim th hp en
mt s trng hp, s dng k thut kim
th hp trng
chi ph cao, kh khn
d liu th c to ra da trn thit k
tng th
16
Kim th trong tin trnh
pht trin
Kim th tch hp (2)
cn xy dng thm
nt trm (stub): cc thnh phn khc m
phng cc thnh phn phn mm cha
c tch hp
trnh iu khin (driver): cc thnh phn
to ra cc d liu vo cho mt vi cc
thnh phn phn mm trong tp hp
ang c kim th
9
17
Kim th trong tin trnh
pht trin
Kim th tch hp (3)
18
Kim th trong tin trnh
pht trin
Kim th tch hp (4)
chin lc t trn xung (top-down)
kim th tch hp cc thnh phn chnh trc, sau thm
vo cc thnh phn c gi trc tip bi cc thnh phn va
kim th
cho php xc nh sm cc li v kin trc
cc b d liu th c th c ti s dng cho cc bc tip
theo
tuy nhin chin lc ny i hi phi xy dng nhiu nt trm
chin lc t di ln (bottom-up)
kim th cc thnh phn khng gi cc thnh phn khc, sau
thm vo cc thnh phn gi cc thnh phn va kim th
t s dng cc nt trm
nhng li xc nh li tr hn
10
19
Kim th trong tin trnh
pht trin
Kim th hp thc ha (validation testing)
cn gi l kim th h thng (system
testing)
thc hin sau khi kim th tch hp kt thc
chng minh phn mm thc hin ng
mong i ca ngi s dng
da vo yu cu ngi s dng
ch s dng k thut kim th hp en
nn thc hin trong mi trng m phn
mm s c s dng
20
Kim th trong tin trnh
pht trin
Kim th hi quy (regression testing)
phn mm sau khi a vo s dng, c th
c cc chnh sa
c th pht sinh li mi
cn kim th li: kim th hi quy
thng ti s dng cc b d liu th s
dng trong cc giai on trc
11
21
Kim th trong m hnh V
c t yu cu
Thit k kin trc
Thit k chi tit
M ha
Kim th hp thc ha
Kim th tch hp
Kim th n v
22
Cc k thut kim th
k thut kim th tnh (static testing)
khng thc thi chng trnh
k thut kim th ng (dynamic
testing)
kim th hp en (black-box testing)
k thut kim th chc nng (functional
testing)
kim th hp trng (white-box testing)
k thut kim th cu trc (structural testing)
12
23
Kim th tnh
Thanh tra m ngun (code inspection)
Chng minh hnh thc
Thc thi hnh thc (symbolic execution)
nh gi phc tp
McCabe
Nejmeh
24
Kim th hp en
I
e
Input test data
O
e
Output test results
System
Inputs causing
anomalous
behaviour
Outputs which reveal
the presence of
defects
13
25
Kim th hp en
Ch cn da vo c t chng trnh
Xy dng d liu th trc khi m ha/lp
trnh
Thng pht hin cc li c t yu cu,
thit k
D dng thc hin
Chi ph thp
26
Kim th hp en
Kim th gi tr bin (boundary value
analysis)
Kim th lp tng ng (equivalence
class testing)
Kim th ngu nhin (random testing)
th nhn-qu (cause-efect graph)
Kim th c php
14
27
Kim th gi tr bin
C s
li thng xut hin gn cc gi tr bin ca min d
liu
Tp trung phn tch cc gi tr bin ca min d liu
xy dng d liu kim th
Nguyn tc: kim th cc d liu vo gm
gi tr nh nht
gi tr gn k ln hn gi tr nh nht
gi tr bnh thng
gi tr gn k nh hn gi tr ln nht
gi tr ln nht
28
Kim th gi tr bin
15
29
Kim th gi tr bin
Nguyn tc chn d liu th
Nu d liu vo thuc mt khong, chn
2 gi tr bin
4 gi tr = gi tr bin sai s nh nht
Nu gi tr vo thuc danh sch cc gi tr, chn
phn t th nht, phn t th hai, phn t k cui v phn t
cui
Nu d liu vo l iu kin rng buc s gi tr, chn
s gi tr ti thiu, s gi tr ti a v mt s cc s gi tr
khng hp l
T vn dng kh nng v thc t chn cc gi tr bin
cn kim th
30
Kim th gi tr bin
V d (1)
Chng trnh nhn vo ba s thc, kim tra ba s
thc c l di ba cnh mt tam gic. Nu l di
ba cnh ca mt tam gic, th kim tra xem l tam
gic thng, cn, u cng nh kim tra l tam
gic nhn, vung hay t.
16
31
Kim th gi tr bin
V d (2)
D liu th
1, 1, 2 Khng l tam gic
0, 0, 0 Ch mt im
4, 0, 3 Mt cnh bng khng
1, 2, 3.00001 Gn l mt tam gic
0.001, 0.001, 0.001 Tam gic rt nh
99999, 99999, 99999 Tam gic rt ln
3.00001, 3, 3 Tam gic gn u
2.99999, 3, 4 Tam gic gn cn
3, 4, 5.00001 Tam gic gic gn vung
3, 4, 5, 6 Bn gi tr
3 Ch mt gi tr
D liu vo rng
-3, -3, 5 Gi tr m
32
Kim th lp tng ng
tng
phn hoch min
d liu vo thnh
cc lp cc d
liu c quan h
vi nhau
mi lp dng
kim th mt
chc nng, gi l
lp tng ng
17
33
Kim th lp tng ng
Ba bc
i vi mi d liu vo, xc nh cc lp
tng ng t min d liu vo
chn d liu i din cho mi lp tng
ng
kt hp cc d liu th bi tch -cc
ti ra b d liu kim th
34
Kim th lp tng ng
Nguyn tc phn hoch cc lp tng ng
Nu d liu vo thuc mt khong, xy dng
1 lp cc gi tr ln hn
1 lp cc gi tr nh hn
n lp cc gi tr hp l
Nu d liu l tp hp cc gi tr, xy dng
1 lp vi tp rng
1 lp qu nhiu cc gi tr
n lp hp l
Nu d liu vo l iu kin rng buc, xy dng
1 lp vi rng buc c tha mn
1 lp vi rng buc khng c tha mn
18
35
Kim th lp tng ng
V d
Bi ton tam gic
Nhn Vung T
Thng 6,5,3 5,6,10 3,4,5
Cn 6,1,6 7,4,4 2,2,2
u 4,4,4 khng th khng th
Khng l tam gic -1,2,8
36
Bi tp
Kim th gi tr bin
Vit mt chng trnh thng k phn tch mt tp
cha tn v im ca sinh vin trong mt nm hc.
Tp ny cha nhiu nht 100 trng. Mi trng
cha tn ca mi sinh vin (20 k t), gii tnh (1 k
t) v im ca 5 mn hc (t 0 n 10). Mc ch
chng trnh:
tnh dim trung bnh mi sinh vin
tnh im trung bnh chung (theo gii tnh et theo mn
hc)
tnh s sinh vin ln lp (im trung bnh trn 5)
Xy dng d liu th cho chng trnh trn bi kim
th gi tr bin
19
37
Bi tp
Kim th lp tng ng
Vit chng trnh dch, trong c cu lnh FOR,
c t cu lnh FOR nh sau: Lnh FOR ch chp
nhn mt tham s duy nht l bin m. Tn bin
khng c s dng qu hai k t khc rng. Sau k
hiu = l cn di v cn trn ca bin m. Cc cn
trn v cn di l cc s nguyn dng v c
t gia t kha TO.
Xy dng d liu th kim th cu lnh FOR theo
k thut kim th lp tng ng
38
Kim th hp trng
Da vo m ngun/cu trc chng trnh
Xy dng d liu th sau khi m ha/lp
trnh
Thng pht hin cc li lp trnh
Kh thc hin
Chi ph cao
20
39
Cc k thut kim th hp
trng
Kim th da trn th lung iu khin
Kim th da trn th lung d liu
Kim th t bin (mutation testing)
40
th lung iu khin
th lung iu khin (Control Flow Graph -
TLK) l th c hng, biu din mt chng
trnh
nh: biu din lnh tun t hay khi lnh
cung: biu din cc r nhnh
mt nh vo v mt nh ra c thm vo biu
din im vo v ra ca chng trnh
L trnh (path) trong TLK
xut pht t nh vo i qua cc nh v cung trong
th v kt thc ti nh ra
21
41
th lung iu khin
V d 1
if x <= 0 then
x := -x
else
x := 1 -x;
if x = -1 then
x=1
else
x := x+1;
writeln(x);
42
th lung iu khin
V d 1 (2)
C 4 l trnh
[a, b, d, f, g]
[a, b, d, e, g]
[a, c, d, f, g]
[a, c, d, e, g]
22
43
th lung iu khin
V d 1 (3)
th G1 c th biu din dng biu thc
chnh quy:
G1 = abdfg + abdeg + acdfg + acdeg
Hay n gin:
G1 = a(bdf + bde + bdf + bde)g
G1 = a(b + c)d(e + f)g
44
th lung iu khin
Biu din cc cu trc
Cu trc tun t: ab
Cu trc r nhnh: b(a + d)c
Cu trc lp: ab(cb)*d
23
45
th lung iu khin
V d 2
i := 1;
found:= false;
while (not found) do
begin
if (a[i] = E) then
begin
found:= true;
s := i;
end;
i := i + 1;
end;
G2 = ab(c( + d)eb)*f
46
th lung iu khin
Bi tp 1
V th lung iu khin
Xy dng biu thc chnh quy biu din th
if n <= 0 then
n := 1-n
end;
if (n mod 2) = 0 then
n := n / 2
else
n := 3*n + 1
end ;
write(n);
24
47
th lung iu khin
Bi tp 2
V th lung iu khin
Xy dng biu thc chnh quy biu din th
read(i);
s := 0;
while(i <= 3) do
begin
if a[i] > 0 thens := s + a[i];
i := i + 1;
end
48
Kim th da trn TLK
Cc tiu chun bao ph
Ph tt c cc nh/lnh
Ph tt c cc cung
Ph tt c cc quyt nh
Ph tt c cc ng i
25
49
Kim th da trn TLK
Ph tt c cc nh/lnh
Cho php ph tt c cc nh/lnh
mi lnh c thc thi t nht mt ln
tiu chun ti thiu
functionsum(x,y : integer) : integer;
begin
if (x = 0) then
sum := x
else
sum := x + y
end;
Khi thc thi l trnh acd s pht hin li
50
Kim th da trn TLK
Ph tt c cc nh/lnh
Hn ch ca tiu chun
read(x);

if (x <> 0) then x := 1;

y := 1/x;
Ph tt c cc nh khng pht hin c pht hin li
26
51
Kim th da trn TLK
Ph tt c cc cung
Ph tt c cc cung t nht mt ln
ph tt cc gi tr ng sai ca mt biu thc l-gc
ph tt c cc cung ko theo ph tt c cc nh
if ((a < 2) and (b = a))
then
x := 2 -a
else
x := a -2
D liu th DT1 = {a=b=1} v DT2 = {a=b=3} tha mn ph
tt c cc cung, nhng khng ph tt c cc quyt nh,
chng hn DT3 = {a=3, b=2}
52
Kim th da trn TLK
Ph tt c cc quyt nh
Ph tt c cc quyt nh c tha mn khi:
tiu chun ph tt c cc cung c tha mn v
mi biu thc con ca biu thc iu kin c th
vi tt c cc gi tr c th
Nu (a AND b)
a = b = true
a = b = false
a = true, b = false
a = false, b = true
27
53
Kim th da trn TLK
Ph tt c cc quyt nh
D liu th
DT1 = {a = b = 1}
DT2 = {a = 1, b = 0}
DT3 = {a = 3, b = 2}
DT4 = {a = b = 3}
54
Kim th da trn TLK
Ph tt c cc quyt nh
Hn ch
Khng pht hin li trng hp khng thc thi
vng lp
read(inf, sup);
i := inf;
sum:= 0;
while(i <= sup) do
begin
sum:= sum+ a[i];
i := i + 1;
end;
writeln(1/sum);
D liu th DT1 = {a[1]=50, a[2]=60, a[3]=80, inf=1, sup=3} ph
tt c cc cung/quyt nh, nhng khng pht hin li
28
55
Kim th da trn TLK
Ph tt c cc l trnh
Mi l trnh phi c thc thi t nht mt
ln
Gp kh khn khi s ln lp v hn
Ch thc hin mt s ln lp nht nh
Hoc ch thc hin hai loi l trnh
cc l trnh vt qua vng lp nhng khng lp
cc l trnh ch lp n ln (chng hn n = 1)
56
Kim th da trn TLK
Ph tt c cc l trnh
D liu th
DT1 = {a[1]=50, a[2]=60, a[3]=80, inf=1, sup=3}
DT2 = {a[1]=50, a[2]=60, a[3]=80, inf=3, sup=2}
29
57
Kim th da trn TLK
Bi tp
Xy dng d liu th tha mn cc tiu chun
ph tt c cc nh
ph tt c cc cung
ph tt c cc l trnh
if n 0 then
n := 1-n
end;
if (n mod 2) = 0
then
n := n / 2
else
n := 3*n + 1
end ;
write(n);
58
Kim th da trn TLK
Bi tp
Xy dng d liu th tha mn cc tiu chun ph
tt c cc l trnh
function goodstring(var count : integer) : boolean;
var ch : char;
begin
goodstring := false;
count := 0;
read(ch);
if ch = a then
begin
read(ch)
while(ch = b) or (ch = c) do begin
count := count + 1;
read(ch);
end;
if ch = x then goodstring = true;
end;
end;
1
Qun tr d n phn
mm (10)
Nguyn Thanh Bnh
Khoa Cng ngh Thng tin
Trng i hc Bch khoa
i hc Nng
2
Ti sao qun tr d n ?
Qun tr d n l cn thit thc hin phn mm
ng tin
gim chi ph
t c mc tiu
Qun tr d n l rt quan trng v
d n phn mm phc tp
s thay i thng xuyn xut hin trong qu trnh
pht trin
cn m bo cc rng buc
thi gian
chi ph
ngn ti nguyn
2
3
Cc hot ng qun tr d
n
Lp k hoch
xc nh cc hot ng cn thc hin
Lp lch
lp lch cho cc hot ng, m bo ng tin
T chc
chn la, nh gi, phn cng cng vic cho cc
thnh vin
nh gi
c lng chi ph,
nhn lc,
ngun ti nguyn cn thit
4
Cc hot ng qun tr d
n
Lnh o
a ra cc quyt nh
m bo s hp tc ga cc thnh vin trong nhm
Gim st
kim tra tin
gim st chi ph/nhn lc
Hiu chnh
c cc bin php hiu chnh cn thit nu d n b
chm tr
Lp bo co
vit cc bo co, trnh by
3
5
Lp k hoch
Qun l hiu qu d n ph thuc vo k
hoch
c thc hin trong sut qu trnh thc
hin d n
Lp k hach bao gm xc nh:
cc mc tiu
cc rng buc
cc cng vic cn thc hin t mc tiu
cc mc quan trng (milestones)
cc sn phm to ra
6
Lp k hoch
Bt u
Xc nh cc mc tiu v rng buc
Thc hin nh gi ban u
Xc nh cc cng vic, mc quan
trng, cc sn phm
Lp lch cho cc cng vic
Thc hin theo lch
D n kt thc ?
Kt thc
Kim tra li cc
nh gi
Cp nht li lch

s
4
7
Lp k hoch
Xc nh cc mc tiu v rng buc
Xc nh mc tiu
mc tiu chung ca d n
cc chc nng c bn m phn mm phi p ng
yu cu v cht lng
Cc rng buc
ngy giao sn phm
nhn s
ngn sch cho php
thit b, phn cng
phng thc giao tip vi khch hng
...
8
Lp k hoch
nh gi ban u
nh gi ban u cc tham s ca d n
cu trc
kch thc
chi ph
phn tch cc chc nng ca phn mm
nhn cng
nhn lc yu cu
5
9
Lp k hoch
Xc nh cc cng vic, mc quan trng, cc
sn phm
Cc mc quan trng (milestones)
cc bc hon thnh quan trng ca d n
V d: thm nh c t yu cu, thm nh thit k
cc mc quan trng cho php gim st c tin
Xc nh cc sn phm (delivrables) trong cc bc
bn giao cho khch hng
c t yu cu
nguyn mu
thit k giao din ngi dng
...
10
Lp k hoch
Xc nh cc cng vic, mc quan trng, cc
sn phm
D n cn phi chia thnh cc cng vic
(task/activity)
Cc cng vic khng nn qu nh
mi cng vic nn ko di khong 2 tun
Mi cng vic tip tc c chia thnh cc
cng vic con d dng x l
Mt cng vic con d dng x l
c kt qu d dng nh gi
d thc hin
d nh gi thi gian thc hin
d nh gi nhn cng, ti nguyn cn thit
6
11
Lp k hoch
Xc nh cc cng vic, mc quan trng, cc
sn phm
Chia cng vic
Mt cch n gin xc nh v chia cng vic l to
WBS (Work Breakdown Structure)
tng t nh mt mc lc
V d
1. Khi ng d n
1.1 Lp k hoach d n
2. Phn tch yu cu
2.1 Thu thp yu cu
2.2 M hnh ha yu cu s dng UML
3. Thit k
3.1 Xy dng cc biu lp
3.2 Xy dng cc biu tun t
3.3 Xy dng cc biu gi
4. M ha
5. Kim th
12
Lp k hoch
Bo co k hoch d n
Cn cha cc mc (1)
Gii thiu
m t mc tiu
rng buc
T chc
cc thnh vin ca nhm
vai tr ca cc thnh vin
Phn tch ri ro
d bo cc ri ro c th
xut cc gii php hn ch ri ro
Ngun ti nguyn cn thit
phn cng
phn mm
7
13
Lp k hoch
Bo co k hoch d n
Cn cha cc mc (2)
Chia cng vic
chia d n thnh cc cng vic
xc nh cc mc quan trng
xc nh ni dung cc sn phm giao hng
Lch
m t rng buc cc cng vic v thi gian t c
cc mc quan trng
gn cng vic cho cc thnh vin
Gim st
m t cc bo co c to ra khi no v nh th no
m t c ch s dng thc hin thm nh cc cng
vic hon thnh
14
Lp lch
Lp lch bao gm cc cng vic
xc nh ngy quan trng
ngy bt u, ngy kt thc
xc nh cc giai on quan trng
lit k cc cng vic trong th t thc hin
ch ra quan h gia cc cng vic
nh gi ngun ti nguyn cn thit hon
thnh mi cng vic
nhn lc, thi gian, ngn sch
8
15
Lp lch
Lit k cc cng vic trong th t thc hin
ch ra s ph thuc gia cc cng vic
cc cng vic no c th tin hnh n thi
cc cng vic no ch thc hin khi cng vic
khc kt thc
gim ti thiu cc ph thuc
hn ch s chm tr
thi gian thc hin d n ph thuc con
ng di nht trong th cng vic
s PERT
16
Lp lch
S dng bng biu din lch ca
d n
Bng cc giai on quan trng
Bng cc cng vic
Bng phn cng
9
17
Lp lch
Bng cc giai on quan trng
cc giai on quan trng v ngy c th t c
Ngy Giai on quan trng
August 26 Project Kickoff (with client)
October 16 Analysis Review
October 26 System Design Review
November 7 Internal Object Design Review
November 20 Project Review (with client)
Nov 26 Internal project review
Dec 11 Acceptance test (with client)
18
Lp lch
Bng cc cng vic
cc cng vic v ngy bt u/ngy kt thc
Ngy Cng vic
Jul 17-Aug 23 Preplanning Phase
Aug 26 - Sep 24 Project Planning
Sep 11-Oct 8 Requirements Analysis
Oct 9 - Oct 26 System Design
Oct 28-Nov 7 Object Design
Nov 8 - Nov 20 Implementation & Unit Testing
Nov 22 - Dec 4 System Integration Testing
Dec 4 - Dec 10 System Testing
Dec 11- Dec 18 Post-Mortem Phase
10
19
Lp lch
Bng phn cng
ai lm g v thi gian bao lu
Cng vic Phn cng Thi gian Ph thuc
(ngi/ngy)
T1 Jane 8
T2 Anne (75%) 15
T3 Jane (80%) 15 T1 (M1)
T4 Fred 10
T5 Mary 10 T2, T4 (M2)
T6 Anne 5 T1, T2 (M3)
T7 Jim 20 T1 (M1)
T8 Fred 25 T4 (M5)
T9 Jane 15 T3, T6 (M4)
T10 Anne 15 T5, T7 (M7)
T11 Fred 7 T9 (M6)
T12 Fred (50%) 10 T11 (M8)
20
Lp lch
C th s dng cc s xy dng,
phn tch cc lch phc tp
S Gantt
biu din quan h thi gian gia con ngi v
cng vic
S PERT
biu din ph thuc gia cc cng vic
11
21
Lp ti liu
Ti liu l cn thit cho chng trnh
s dng chng trnh
cn m t y v chng trnh
mc ch, mi trng, thut ton, vo/ra, thi gian thc
thi...
tin tng chng trnh
bo co kt qu kim th
kim th cc chc nng thc hin tt
kim th cc tnh hung khng mong i
chnh sa chng trnh
m t y chng trnh
cu trc bn trong
m t vt chnh sa
22
Lp ti liu
12
23
Lp ti liu
Nhng ngi s dng khc nhau yu cu
cc loi ti liu khc nhau
ngi s dng
ti liu hng dn s dng
ngi pht trin
ti liu pht trin
ch thch
ngi thit k
m hnh thit k
ngi qun l
kt qu kim th
24
Lp ti liu
Cn duy tr s gn kt gia m ngun v ti
liu
13
25
Lp ti liu
Vn
cn duy tr s gn kt gia m ngun v ti liu trong
cc tp khc nhau
Gii php
xy dng ti liu t ng (auto-documentation)
Javadoc, CcDoc, CcpDoc, AutoDoc, DocClass...
sinh m t ng t m hnh thit k
sinh m hnh thit k t m ngun
Rational Rose, Jude, Poseidon, ArgoUML...
26
Qun l cu hnh
nh ngha
Cu hnh phn mm bao gm
cc thnh phn phn mm xc nh
tnh cht c bn ca phn mm
mt thnh phn c th
m ngun, tp d liu, c t yu cu, ti
liu thit k, cu hnh phn cng...
14
27
Qun l cu hnh
nh ngha
Qun l cu hnh l lnh vc ca qun tr d n nhm
nh ngha
xc nh
qun l
kim tra
cu hnh trong sut qu trnh pht trin phn mm
nh ngha IEEE (Standard 1042)
Software configuration management (SCM) is the
discipline of managing and controlling change in the
evolution of software systems
28
Qun l cu hnh
Ti sao ?
SCM h tr ngi qun l
gim st cc thay i trong qu trnh pht trin
gm cc hot ng
xy dng cc th cn thc hin khi c s thay i
ghi nhn cc thnh phn v yu cu thay di
o lng chi ph v cng sc thc hin thay i
...
SCM h tr ngi pht trin
cung cp chc nng v cng c h tr ngi pht trin
thc hin cc thay i
gm cc hot ng
qun l cc chc nng khc nhau ca phn mm
xy dng li cu hnh trc
ghi nhn vt thay i ca ca phn mm
...
15
29
Qun l cu hnh
Lp k hoch cu hnh
Gm cc hot ng (1)
nh ngha cc thnh phn ca cu hnh
cc loi ti liu cn qun l
c t yu cu, ti liu thit k, m ngun, bo co
kim th...
nh ngha chnh sch qun l thay i v
qun l phin bn
mc nh ca chnh sch thay i nhm m bo
mi phin bn p ng tiu chun t ra
v d
khng phn phi sn phm cho khch hng nu
cha thc hin bc kim th beta vi t nht
1000 ngi s dng bn ngoi
30
Qun l cu hnh
Lp k hoch cu hnh
Gm cc hot ng (2)
nh ngha vai tr v trch nhim ca cc
thnh vin trong cc hot ng SCM
ngi qun l, ngi pht trin...
nh ngha CSDL s dng ghi thng tin
v cu hnh
nh ngha cc cng c s dng h tr SCM
Chn la chun s dng
V d
IEEE 828-1990: Software Configuration
Management Plans
IEEE 1042: Guide to Software Configuration
Management
16
31
Qun l cu hnh
Qun l thay i
Phn mm thng xuyn thay i do yu
cu ca
ngi s dng
ngi pht trin
th trng
Qun l thay i l ghi nhn tt c cc s
thay i v bo bo rng chng c thc
hin vi chi ph thp nht
32
Qun l cu hnh
Qun l phin bn
Thut ng
promotion
mt phin bn c chuyn giao cho cc ngi pht
trin
release
mt phin bn c chuyn giao cho ngi s dng
(ngoi nhm pht trin)
t tn cc phin bn
r rng, khng nhp nhng
phng php n gin thng c s dng
nh s
17
33
Qun l cu hnh
Xy dng h thng
Bin dch v kt hp tt c cc thnh phn
ca mt cu hnh thnh mt h thng thc
thi c
Cc cch kt hp khc nhau cc thnh
phn c th to nn cc h thng khc
nhau
Nn s dng cc cng c h tr
V d: Makefile
34
Qun l cu hnh
Xy dng h thng
Cc vn cn lu khi xy dng h
thng:
Tt c cc thnh phn cn thit u c
s dng (lin kt) ?
Phin bn thch hp ca mi thnh phn
dc s dng ?
Tt c cc tp d liu sn sng ?
H thng c xy dng cho nn (platform)
ng n ?
h iu hnh, cu hnh phn cng
Phin bn ca trnh bin dch v cc cng c
s dng l ng n ?
18
35
Qun l cu hnh
Cng c
SCM c h tr bi cc cng c
C cc loi cng c
cc cng c c lp
cc cng c tch hp vo trong cc mi
trng pht trin
36
Qun l cu hnh
Cng c
Cng c qun l phin bn
Hot ng h tr
t tn cc phin bn
t t tn cc phin bn mi
Ghi li lch s (vt) thay i
Pht trin cng tc
nhiu ngi c th thay i ng thi mt phin
bn
Ghi nhn cc phin bn: 2 kh nng
Ghi nhn ton b phin bn
Ch ghi nhn s khc nhau gia cc phin bn
19
37
Qun l cu hnh
Cng c
Cng c qun l phin bn
RCS (Revision Control System)
m ngun m, c
CVS (Concurrent Version System)
min ph, h tr cc my tnh s dng h iu
hnh khc nhau, s dng t xa
Perforce
cng c thng mi
Subversion
m ngun m, y cc tnh nng ca CVS, tt
hn CVS
38
T chc d n
T chc d n l rt quan trng
yu t chnh quyt nh cho s thnh cng
Bao gm cc hot ng
Chn nhn s thch hp
Chn cu trc ca nhm
Chn kch thc ca nhm
Xc nh vai tr ca cc thnh vin trong
nhm
Qun l giao tip gia cc thnh vin trong
nhm
20
39
T chc d n
Chn nhn s thch hp
Cc yu t cn xem xt khi chn nhn s
Kinh nghim
hiu bit lnh vc ng dng
kinh nghim vi mi trng pht trin
hiu bit v ngn ng lp trnh
o to
Kh nng
kh nng giao tip
kh nng thch ng, kh nn hc
Thi
Tnh cch
40
T chc d n
Chn cu trc ca nhm
Nhm khng hnh thc (egoless team)
Nhm chief-programmer
Nhm phn cp
21
41
T chc d n
Chn cu trc ca nhm
Nhm phi hnh thc (egoless team)
cc thnh vin ca nhm c vai tr nh
nhau
nhm nh
cc thnh vin u c kinh nghim v nng
lc
d n kh
42
T chc d n
Chn cu trc ca nhm
Nhm chief-programmer
Gm c
Trng nhm (chief-programmer): thc hin phn
tch, thit k, m ha, kim th
Tr l: h tr trng nhm pht trin, kim th
Th k: qun l thng tin
Cc chuyn gia h tr
qun l, lp ti liu, lp trnh, kim th...
Ph thuc ch yu vo trng nhm
Trng nhm phi c nng lc
22
43
T chc d n
Chn cu trc ca nhm
Nhm phn cp
D n ln c chia thnh nhiu d n nh
Mi s n nh c hin bi mt nhm
Mi nhm c mt trng nhm
Mi thnh vin cp di phi bo co cng
vic vi ngi qun l trc tip
Mi thnh vin phi c o to k nng
thc hin vai tr ca mnh
44
T chc d n
Chn kch thc ca nhm
Kch thc nhm nn tng i nh: di 8 ngi
gim thi gian giao tip
d dng lm vic cng nhau
Khng nn qu nh
nhm bo m tip tc lm vic, nu c thnh vin ra
i
i vi mt d n, s ngi trong nhm c th thay
i
Khi mt d n chm tr, thm ngi vo d n khng
bao gi gii quyt c vn
Adding more programmers to a late project makes it
later (Brooks Law - The Mythical Man-Month)
23
45
T chc d n
Xc nh vai tr ca cc thnh vin
Trng d n
chu trch nhim mt d n
bo m nhm c y thng tin v ngun
ti nguyn cn thit
phn cng cng vic cho cc thnh vin
kim tra thi hn cc cng vic
giao tip vi khch hng
46
T chc d n
Qun l giao tip gia cc thnh vin
Giao tip tt cho php nhm hot ng tt
Thng tin cn trao i v
tin cng vic
cc thay i
cc kh khn
...
Giao tip gia cc thnh vin ph thuc vo cu
trc nhm
nhm phi hnh thc: giao tip trc tip gia cc thnh
vin
nhm phn cp: giao tip thng qua ngi qun l
24
47
T chc d n
Qun l giao tip gia cc thnh vin
Cc c im trong giao tip nhm (1)
cc thnh vin c v tr cao thng p t
cc cuc trao i
nhm va c nam v n thng giao tip tt
hn
giao tip phi qua mt ngi iu phi trung
tm thng khng hiu qu
tt c cc thnh vin nn c tham gia vo
cc quyt nh nh hng ton b nhm
48
T chc d n
Qun l giao tip gia cc thnh vin
Cc c im trong giao tip nhm (2)
tnh cch ca cc thnh vin
qu nhiu thnh vin c cng tnh cch cng c
th khng tt
hng cng vic: mi ngi u mun thc hin
cng vic ring
hng c nhn: mi ngi u mun lm ng ch
hng tng tc: nhiu hp hnh m t thc hin
c th
mt nhm nn cn bng gia cc tnh cch
25
49
Qun l ri ro
Ri ro (risk) l kh nng mt tnh hung xu xy ra
Qun l ri ro (risk management) lin quan n
xc nh cc ri ro nh hng n d n
lp k hoch hn ch s nh hng ca ri ro
Cc loi ri ro
ri ro ca d n (project risks) nh hng n tin
v gun ti nguyn
ri ro ca sn phm (product risks) nh hng n
cht lng phn mm
ri ro ca doanh nghip (enterprise risks) nh hng
n doanh nghip s s dng phn mm
50
Qun l ri ro
V d
A competitive product is marketed before
the system is completed
Enterprise Product competition
The underlying technology on which the system is
built is superseded by new technology
Enterprise Technology change
The size of the system has been underestimated Project &
Product
Size underestimate
Specifications of essential interfaces are not
available on schedule
Project &
Product
Specification delays
There will be a larger number of changes
to the requirements than anticipated
Project &
Product
Requirements change
Hardware which is essential for the
project will not be delivered on schedule.
Project Hardware unavailability
There will be a change of organisational
management with different priorities
Project Management change
Experienced staff will leave the project before it is
finished
Project Staff turnover
M t Loi ri ro Ri ro
26
51
Qun l ri ro
Cc hot ng qun l ri ro
Xc nh cc ri ro
Phn tch cc ri ro
Lp k hoch cc ri ro
Gim st cc ri ro
X l cc ri ro
52
Qun l ri ro
Xc nh cc ri ro
Phn loi
ri ro v thng mi
i th cnh tranh c chim lnh th trng trc ?
C cn cho ra i phin bn nh chim th trng ?
ri ro v ti chnh
C nng lc v ti chnh thc hin d n ng
tin ?
ri ro v k thut
Cng ngh hin ti c cho php ?
ri ro v con ngi
Nhm lm vic c kinh nghim v nng lc ?
27
53
Qun l ri ro
Phn tch cc ri ro
nh gi d n, cng ngh, ngun ti
nguyn hin c xc nh v hiu bn
cht v ngun gc ca ri ro
Xc nh xc sut ca mi ri ro
rt thp, thp, trung bnh, cao, rt cao
Xc nh tm quan trng ca mi ri ro
rt nghim trng, nghim trng, c th b
qua, khng quan trng
54
Qun l ri ro
Lp k hoch cc ri ro
K hoch gim ri ro cho mi ri ro gm
tm quan trng i vi khch hng
tm quan trng i vi ngi pht trin
chin lc qun l ri ro v nh hng v
kinh t
phng tin kim tra ri ro b xa hoc
gim
cc kch bn b nh hng bi ri ro
28
55
Qun l ri ro
Lp k hoch cc ri ro
Cc chin lc
Chin lc trnh ri ro
gim xc sut ri ro xy ra
Chin lc gim ri ro
gim nh hng ca ri ro i vi d n hoc sn
phm khi n xy ra
K hoch khn cp
x l ngay ri ro khi xy ra
56
Qun l ri ro
Lp k hoch cc ri ro
Derive traceability information to assess requirements change
impact, maximise information hiding in the design
Requirements change
Investigate buying in components, investigate use of a program
generator
Development time
underestimated
Replace potentially defective components with bought-in
components of known reliability.
Failed components
Reorganise team so that there is more overlap of work and
people therefore understand each others jobs.
Short for persionnel
Alert customer of potential difficulties and the possibility of
delays, investigate buying-in components.
Recruitment probelms
Prepare a briefing document for senior management showing
how the project is making a very important contribution to the
goals of the business.
Financial problems
Chin lc Ri ro
29
57
Qun l ri ro
Gim st cc ri ro
nh gi thng xuyn mi ri ro
xc nh xc sut xy ra ca n
nh gi cc hu qu ca n c thay i
Mi ri ro chnh cn phi c tho lun khi
c cc cuc hp v tin d n
X l cc ri ro
Phng n x l khi ri ro xy ra

You might also like