Professional Documents
Culture Documents
n
g
s
c
b
r
a
Tng cng sc tng module
Cng sc tch hp
Tng cng sc pht trin
Vng ti u
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
145
Kin trc phn mm
E Kin trc phn mm m t cc thnh phn
(component) kin to nn h thng phn mm v s
giao tip gia cc thnh phn
E Thnh phn c th l
Cc module m ngun
Cc file thc thi (*.dll, *.exe, *.class...)
Cc thnh phn ca kin trc h thng: ActiveX control,
bean...
Cc trang HTML, *.asp, *.jsp...
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
146
Kin trc phn mm- S phn cp
E S
phn cp
c
dng
miu t
s phn
r cc
module.
M
b
a c
e
d
k l
m
f
h
g
i j
n o
p q
r
Fan-out
Fan-in
Depth
Width
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
147
Phn chia module hiu qu
E Phn chia module l bt buc trong giai on thit k
E Tuy nhin: phn chia kin trc phn mm thnh mt
b cc module nh th no l tt nht ?
t c vng ti u v tng chi ph qun l
v pht trin tng module
E Tiu ch quan trng nht: tnh c lp chc nng ca
cc module
E Tnh c lp chc nng c o bng 2 tiu chun:
kt dnh (cohesion)
S lin kt (coupling)
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
148
kt dnh
E kt dnh dng o s ph thuc ln nhau
gia nhng tc v (task) ca mt module
E Module c kt dnh cao nht khi n ch
m nhn ng mt tc v kt dnh chc
nng
E Thit k kin trc phn mm: c gng tng
kt dnh
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
149
Cc mc kt dnh
C nhiu mc kt dnh (t thp n cao)
E Ngu nhin: cc tc v khng lin h vi nhau
E Lun l: cc tc v lin quan logic vi nhau
E Nht thi: cc tc v phi c thc thi trong mt
khong thi gian
E Giao tip: cc tc v c s dng chung mt d liu
no
E Th tc: cc tc v phi c thc hin theo mt trt
t nht nh
E Chc nng: ch c mt tc v
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
150
S lin kt
E S lin kt dng o c qu trnh giao tip gia cc
module: giao tip ca module cha nhiu tc v v
nhiu thng s gi th s lin kt cng cao
E Thit k kin trc phn mm: c gng gim s lin
kt
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
151
Cc mc lin kt
C nhiu mc lin kt (t cao n thp)
E Lin kt ni dung: s dng d liu v iu khin ca
module khc
E Lin kt chung: c s dng chung d liu ton cc
E Lin kt ngoi vi: module ph thuc vo mt I/O no
E Lin kt iu khin: thng s truyn nh hng n
iu khin
E Lin kt stamp: truyn cu trc d liu phc tp
E Lin kt d liu: truyn cc thng s n gin
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
152
Nguyn l che du thng tin
E Che du thng tin l mt trong nhng nguyn l quan
trng ca vic phn chia module
E Cc module giao tip vi nhau bng nhng thng tin
tht s cn thit
E Nhng thng tin v th tc v d liu cc b ca mi
module phi c che du khi cc module khc
E Li ch: kim sot c thay i v sa li d dng
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
153
Cc Heuristic trong phn chia module
E Sa li thit k ban u tng kt dnh v gim
s lin kt
E Khi chiu su tng, hn ch fan-out trong khi s dng
fan-in
E Gi cho tm nh hng ca mt module nm bn
trong tm iu khin ca n
E Loi b d tha trong giao tip ca cc module
E u tin cc module tt nh, hn ch cc module
nhiu rng buc
E ng gi cc module t c tnh kh chuyn
(portability)
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
154
Thit k d liu
E Tm kim biu din lun l cho cc phn t d liu
c nhn din trong giai on phn tch yu cu
E Thit k cc cu trc d liu ca chng trnh v c s
d liu
E Thc hin tinh ch tng bc
E Cc tiu ch thit k h c s d liu
Khng d tha d liu
Ti u ha khng gian lu tr
E Chun ha c s d liu bng lc ERD v dng
chun 3
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
155
Cu trc d liu
Cu trc d liu l thit k c s d liu ng tron h
thng
E Cu trc d liu m t s t chc, phng thc truy
xut, mc lin kt v cc x l khc ca thng tin
E D liu n l dng cu trc d liu n gin nht ch
bao gm mt phn t thng tin m c th c truy
xut bng mt danh nh
E Mt s dng phc tp hn: vector, ma trn, mng
nhiu chiu, danh sch lin kt, hng, chng, cy nh
phn
E c biu din cc mc tru tng ho khc nhau
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
156
M s nguyn tc thit k d liu
E Mt s nguyn tc
E Nhn din c cu trc d liu v tc v truy xut
E Ch s dng t in d liu
E Tr hon thit k d liu mc thp cho n cui giai
on ny
E Che du biu din bn trong ca cu trc d liu
E Pht trin mt th vin cc cu trc d liu + tc v
thng gp
E Nn p dung kiu ADT trong thit k cng nh trong
lp trnh
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
157
Thit k kin trc
E Mc tiu l xy dng s phn cp module t DFD
E t nn mng thit k chi tit th tc v d liu
E Phn bit dng transform v dng transaction trong
DFD
E Thc hin nh x cho tng vng ca DFD tu theo n
l dng transform hay transaction
Xc nh cc module v cc mi lin h theo DFD qu trnh s l
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
158
Dng Transform
E Dng transform bao gm 3 phn: dng i vo, dng
x l v dng i ra
Dong i vao
Dong x ly
Dong i ra
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
159
Dng Transaction
E Dng
transaction bao
gm: dng i
vo, T-center v
cc ng x l
u ra
E T-center: Ch
c mt ng
ra c kch
hot ti mt
thi im
Dng i vo
T-center
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
160
Thit k th tc
E Thit lp thut gii cho cc module kin to sao
cho c th d dng m ho bng ngn ng lp trnh c
cu trc
E C th biu din thut gii bng
Lu thut gii: Flowchart
K hiu dng bng
Ngn ng PDL
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
161
Ngn ng PDL
E Ngn ng PDL vay mn t vng ca ngn ng t
nhin v c php ca ngn ng lp trnh c cu trc.
N c cc tnh cht sau:
E C php cht ch ca cc t kho h tr c t cu
trc, khai bo d liu, phn chia module
E C php t do ca ngn ng t nhin gip miu t x
l
E Phng tin m t d liu n cng nh d liu t
hp
E C ch nh ngha chng trnh con v phng cch
gi
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
162
Ngn ng PDL V d
procedure AnalyzeTriangle( a, b, c: in real; type: out string)
begin
sort a, b, c so that a >= b >= c;
if ( c > 0 and a < b + c )
if ( a = c )
type := Equilateral
else
if ( a = b or b = c )
type := Isosceles
else
if ( a*a = b*b + c*c )
type := Right
else
type := Scalene
else
type := Error
end
Thit k phn mm
UML
Lc cng tc
Lc tun t
Lc trng thi cc lp/i tng
Lc hnh ng
Hon chnh lc lp
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
164
Gii thiu
E Giai on thit k quan tm n HOW:
Th t cc thng ip trao i, thng s ca thng ip
Thut gii ca tc v p ng
Cu trc d liu cho cc thuc tnh
Framework (console, document/view, 3-tier...)
E Thit k cng chu nh hng t:
Ngn ng lp trnh v th vin lp trnh (H tr Vector,
List, Map... hay khng ? H tr template hay khng ?...)
Kin trc h thng (COM, CORBA hay EJB)
Thit lp m hnh ng (dynamic modeling) v chi tit
ho m hnh tnh
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
165
Khi nim m hnh ng
E Lc lp ch m t kha cnh tnh ca h thng
E Hnh vi ca h thng c m t bng m hnh ng
bao gm
Tng tc gia cc i tng: cng tc hay trnh t
Trng thi ca i tng/lp
Qu trnh hot ng ca lp/i tng
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
166
Tng tc gia cc i tng
E i tng tng tc vi nhau (interaction) bng cch
gi/nhn kch thch (stimulus)
E Actor cng c th gi kch thch n i tng
E Kch thch khin mt tc v thc thi, mt i tng
c to ra hay hu i, hoc gy ra mt tn hiu
E Thng ip (message) l c t ca kch thch
E Cc loi thng ip
n gin
ng b
Bt ng b
Tr v ca gi hm
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
167
S cng tc Lc cng tc
E Cng tc (collaboration) nh ngha tp hp
cc thnh phn tham gia v quan h gia
chng
E Cc thnh phn tham gia l vai tr m i
tng/lp ng vai khi tng tc vi nhau
E Cc vai tr ca i tng thng ch c ngha
i vi mt mc ch no
E Lc cng tc (collaboration diagram) c
thit lp c th ho mt use-case hoc mt
tc v
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
168
Lc cng tc
E Lc cng tc l mt th lin kt cc vai tr ca
cc i tng hnh thnh nn cc chc nng ca h
thng (cc usecase)
E Mi cnh lin kt 2 vai tr c biu din bng mt
on thng
E Tng tc c th hin bng gi/nhn thng ip
E Hai vai tr lin kt vi nhau khi c trao i thng ip
E Mi thng ip c th hin bng mi tn (nh
miu t) cng vi phn c t
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
169
Lc cng tc (tt)
E Cc thng ip c nh s theo kiu phn
cp
3.4.2 xy ra sau 3.4.1 v c hai c lng (nested) trong 3.4
3.4.3a v 3.4.3b xy ra ng thi v c lng trong 3.4
E C php tng qut ca thng ip
precedessor guard-condition sequence-expression return-
value := message-name argument-list
E V d: 2/ 1.3.1: p := find(specs)
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
170
Lc cng tc (tt)
E Lc cng tc c th c thit lp mt trong 2
dng:
Dng c th: mi vai tr c biu din bng mt k hiu
ca i tng c th, cc thng ip c trao i trn cc
ng lin kt
Dng c t: m t cc lp; cc ng lin kt c nh x
vo cc thng ip
E Thit lp lc cng tc gip c th ho (realize) cc
use-case v nhn din thm mt s tc v ca cc i
tng/lp phn tch
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
171
Lc cng tc V d
V d: lc cng tc mc c th cho use-case
Login ca h thng ng k mn hc tn ch qua WEB
: People
: LoginForm
: Database
1: login(uname,pswd)
1.2 [succ = true]: welcome
1.1: succ := Verify(uname,pswd)
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
172
Lc cng tc v d 2
V d: lc
cng tc mc
c th cho
use-case
Registers
course ca h
thng ng k
mn hc tn
ch qua WEB
regForm : RegisterForm
: Student
: Database
: Registration
3.1: reg := FetchReg(crsOffering)
3.3: SetReg(reg)
3.2: AddStudent(code)
: LoginForm
1: submit(uname, psswd)
1.1: succ := verify(uname, psswd)
1.2 [succ = true]:
welcome
3: submit(crsOffering)
3.4: beSuccessful 2.1: create
2: register
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
173
Miu t trnh t
E Lc cng tc miu t s tng tc theo kha
cnh khng gian
E nhn mnh trnh t ca tng tc dng lc
tun t (sequence diagram)
E Lc tun t miu t cc i tng tng tc
vi nhau theo thi gian sng ca n
E Cc thng ip c trao i theo trnh t thi
gian
E Cc mi lin kt khng c th hin trong lc
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
174
Lc tun t
E Lc tun t c 2 dng
Dng tng qut: th hin c vng lp v r nhnh
Dng c th: miu t mt kch bn c th
E Thi gian sng ca mi i tng c m t theo mt
ng thng ng
E Thng thng thi gian tri theo chiu t trn xung di
E t khi quan tm n khong thi gian, thng ch quan tm
n trnh t m thi
E Thanh hnh ch nht m t s thc thi ca mt tc v
p ng li thng ip gi n. di ca thanh ch nht
phn nh thi gian thc thi ca tc v v tnh cht lng
nhau (nested) gia chng
E Cc dng text ph tr (m t tc v, rng buc thi
gian...) c vit l tri
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
175
Lc tun t - V d
E V d: lc tun t dng tng qut
: People
ob1 : C1
new( )
ob2 : C2 ob3 : C3
[x<0] op2( )
[x>=0] op3( )
ob4 : C4
op5( ob3 )
op4( y )
display( )
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
176
Lc tun t - V d
E Lc tun t vi cc ghi ch rng buc thi gian
: Operator
:Computer
print(ps-file )
:PrinterServer :Printer
print(ps-file)
print(ps-file)
a
{b - a < 5 seconds}
b
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
177
Lc tun t - V d
E V d: lc tun t dng c th cho use-case Login
ca h thng ng k mn hc tn ch qua WEB
: Database
: People
: LoginForm
1: submit(uname, psswd)
1.1: verify(uname, psswd)
1.2: welcome
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
178
Lc tun t - V d
Lc tun
t dng
c th
cho use-
case
Register
courses
: Student
regForm :
RegisterForm
: Database : Registration : LoginForm
1: submit(uname, psswd)
1.1: verify(uname, psswd)
1.2: welcome
2: register
2.1: create
3. submit(crsOffering)
3.1: reg := fetchReg(srcOffering)
3.2: addStudent(code)
3.3: setReg(reg)
3.4: beSuccessful( )
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
179
Trng thi ca i tng
E Chun UML a ra lc trng thi biu
din hnh vi ca mt phn t bt k bng cch
ch ra p ng ca n i vi cc s kin bn
ngoi
E Thng thng lc trng thi c p dng
cho i tng/lp biu din hnh vi ca lp
E Trng thi ca mi i tng (nh ngha gc
?) t nhiu s b thay i trong sut chu k
sng ca i tng
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
180
Trng thi ca i tng
E Trong UML k hiu ca trng thi l mt hnh ch
nht trn gc v c chia lm nhiu phn phn cch
nhau bng cc on thng nm ngang:
Phn tn
Phn miu t cc hnh ng bn trong
Typing Password
entry / set echo visible
exit / set echo normal
character / handle character
help / display help
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
181
Trng thi ca i tng
E Tn trng thi l duy nht trong lc ; c th khng
c tn (trng thi v danh)
E Cc hnh ng bn trong: cc hnh ng hoc tc v
c thc hin khi i tng nm trng thi ang
xt; c c php nh sau
action-label / action-expression
E Mt s nhn hnh ng (action-label) c quy c
trc:
entry: thc hin hnh ng ti thi im bt u trng thi
exit: thc hin hnh ng ti thi im kt thc trng thi
do: thc hin hnh ng sut trng thi hoc cho n khi kt thc n
include: triu gi mt my trng thi con khc
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
182
Trng thi ca i tng
E Cc nhn hnh ng khc ch ra s kin kch hot
hnh ng tng ng trong biu thc hnh ng
(action-expression)
E C php ca biu thc hnh ng
event-name ( parameter-list ) [guard-condition] /
action-expression
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
183
Lc trng thi
E Trng thi bt u: khi i tng c to ra hoc
trng thi tng hp c xc nh; k hiu
E Trng thi kt thc: khi i tng b hu b hoc trng
thi tng hp tr nn khng xc nh; k hiu
E Trng thi tng hp (composite) c phn r thnh
nhiu trng thi con ng thi hoc cc trng thi con
loi tr nhau
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
184
Lc trng thi trng thi tng hp
E Phn r trng thi tng hp Running
Running
Forward Backward
Slow Fast
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
185
Lc trng thi
E S kin (event) kch hot dch chuyn trng thi, c
th l
Mt iu kin tr nn ng (ch khc vi guard-condition)
Mt i tng nhn tn hiu t i tng khc
Mt php gi tc v
Mt khong thi gian tri qua k t mt s kin no
E C php ca s kin: event-name ( parameter-list )
E S kin c tm vc thuc v package cha lp ang
m t lc trng thi, ch khng ch thuc v ring
lp
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
186
Lc trng thi Dch chuyn
E Dch chuyn trng thi l quan h gia hai trng thi
theo i tng ang trng thi th nht s
chuyn sang trng thi th hai ng thi s thc hin
mt s hnh ng khi s kin tng ng xy ra v
tho mn mt s iu kin nht nh
E c k hiu nh mt mi tn hng t trng thi
ngun n trng thi ch v c gn nhn
E Nhn c c php: event-signature [ guard-condition
] / action-expression
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
187
Lc trng thi V d
E lc trng thi ca lp Message
Composed
entry/ assign ID
exit/ fill date
on char/ handle character
compose command
Stored
entry/ save into folder
Read
entry/ convert to rich text
unhightlight
focus
hightlight
read command / recover( id )
logout
save command
re-fwd cmd / quote / append subject
Sending
do/ send( repc )
send command[ recipents != null ] / parse
sending done
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
188
Lc trng thi v d 2
import / map := create(file)
Dirty
entry/ render
No map
do/ load map
do/ load image
run
import failed
Modeling
do/ model(map, param)
Saved
entry/ render
do/ store
modeling done
exit command / save
model command
save command
import command[ file valid ]
map loaded[ image invalid ]
exit command
image loaded
viewing command
exit command
import / map := create( file )
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
189
Lc hot ng
E Lc hot ng (activity diagram) l mt bin th ca lc
trng thi trong trng thi l s thc thi mt hnh ng v s
dch chuyn c kch hot khi hnh ng hon tt
E c dng m t mt th tc hay thut gii tp trung vo
cc hnh ng
E Mi hnh ng c k hiu bng hnh v nh sau
E Quyt nh r nhnh: hnh thoi c mt ng vo v nhiu nhnh
ra, mi nhnh c gn mt guard-condition
E Cc nhnh ra c nhp li bng mt hnh thoi khc
E Mi ng bi (swimlane) i din mt lp hoc mt actor
work
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
190
Lc hot ng v d
lc
hot
ng
cho tc
v
submit
ca
LoginF
orm
Show input for username
and password
Reject
[ psswd invalid ]
Welcome
[ psswd valid ]
Verify
Database LoginForm
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
191
Lc hot ng v d 2
Lc hot
ng cho tc
v submit
ca
RegisterForm
Read course
offerings
submit
Show
success
Look for
registration
Fetch
registration
Create
registration
Update
registration
Add
student
[ reg found ]
[ reg not found ]
Registration Database RegForm
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
192
Nhn din mt s lp thit k
E M hnh thit k phn no chu nh hng t ngn
ng lp trnh, th vin h tr, framework, h iu
hnh v loi my tnh
E Mt s lp s xut hin khi p dng nhng yu t trn
Ngn ng lp trnh: template, CObject...
Th vin h tr: lp Date, Time, List, Map, vector,
iostream
Framework: Applet, Panel, CDocument, CView,
HttpServlet
H iu hnh: cc lp thao tc file, m cu ni network,
cc phn t giao din.
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
193
Nhn din mt s lp thit k
E Mt s lp khc xut hin lm chc nng duyt
(iterate) mt lp khc hay thc hin cc tnh ton
phc tp...
E S dng trc tip cc lp do th vin hay ngn ng
cung cp, hoc
E To ra lp mi bng cch tha k hay tch hp cc lp
c sn,
v d CArray<Isoquant, Isoquant&>
E B sung cc lp mi vo lc lp ng thi cp
nht cc mi quan h mi (bao gp, ph thuc)
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
194
c t chi tit cc thuc tnh
E Trong m hnh phn tch
cn phi ch r kiu
(hoc cu trc d liu)
v mc truy xut ca
cc thuc tnh
E C th chn mt lp
cung cp bi th vin
lp trnh c th ho
kiu hay cu trc d liu
b sung lp ca th
vin v quan h bao
gp vo lc lp
+ GetSubject( ): String
+ toString( ): String
# subject: String
# content: String
Message
<<entity>>
CDate
sent
1
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
195
Nhn din chnh xc cc tc v
E Cc lc m t hnh vi (cng tc, tun t, trng
thi, hnh ng) gip nhn din chnh xc cc tc v
ca cc lp
E Da vo cc thng ip hay hnh ng xc nh
signature ca cc tc v
E V d: nhn din mt tc v ca lp Database
fetchStudent( code: Long ): StudentInfo;
setReg( reg: Registration );
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
196
Nhn din chnh xc cc tc v (tt)
E V d: nhn din mt tc v ca lp ChildView
render( );
store( );
load( );
model( map: FieldMap, param );
E V d: nhn din mt tc v ca lp LoginForm
submit( uname: String; psswd: String );
makeWelcome( );
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
197
Hon chnh lc lp
E Cp nht cc lp mi, thuc tnh, tc v v cc mi
quan h mi
E UML nh ngha quan h ph thuc (dependency)
gia 2 lp hoc package: thay i mt lp, package
ko theo thay i lp, package kia
E K hiu ca quan h ph thuc l mi tn t nt:
lp, package pha ui mi tn ph thuc vo lp,
package pha u mi tn
E Mt s stereotype quy c trc: <<call>>,
<<instantiate>>, <<import>>, <<refine>>,
<<realize>>, <<derive>>, <<trace>>
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
198
Hon chnh lc lp V d
E thm lc lp cho h thng ng k mn hc
+ submit(offering:
CourseOffering)
+ beSuccessful( )
LoginForm
<<boundary>>
+ submit(uname: String, psswd:
String)
+ makeWelcome( )
RegisterForm
<<boundary>>
Database
+ fetchStudent(code: Long):
StudentInfo
+ setReg(reg: Registration)
<<call>
>
<<call>
>
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
199
Hon chnh lc lp v d 2
MapIterator
# setBound(b: int)
+ current( ): Item
+ operator++()
+ operator--()
+ Last( )
+ First( )
MapIterator<Isoquant*
>
Item
IsoquantIterator
+ current( ):
Isoquant*
MapIterator<Fracture*>
FractureIterator
+ current( ):
Fracture*
FieldMap
<<entity>>
<<friend>>
# map
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
200
Hon chnh lc lp - package
E Ch s dng package t chc cc phn t lin
quan vi nhau: cc lp v bn a hnh, v thng
tin sinh vin/ging vin, v ca s giao din, v cc
servlet
E Cc package th hin kin trc phn mm, thng
thng chu nh hng t framework
(Document/View, 3-tiers...)
E Mi package cha mt hoc mt vi lc lp,
trong c th tham chiu n mt s lp thuc cc
package khc
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
201
E M hnh thit k bao trm c kha
cnh tnh v ng ca h thng phn
mm cn xy dng
E UML h tr mt s lc gip m
t kha cnh ng: cng tc, tun t,
trng thi, hnh ng
E Miu t chnh xc thuc tnh v tc
v, b sung mt s lp thit k
hon thin kha cnh tnh
E Thit lp cc package to thnh kin
trc phn mm
Cc thnh phn
Cc thit b
HIN THC V TRIN KHAI
Cc thnh phn
Cc thit b
203
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Gii thiu
Cn phi xy dng chng
trnh chy c t kt qa ca
giai on thit k
Cc lp s c c th ho
vo cc thnh phn phn mm
nh th no v bng ngn
ng lp trnh g ?
Chng trnh s c ci t
ra sao trn ti nguyn tnh
ton ?
204
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Thnh phn (Component)
Thnh phn (component) biu din mt phn
hin thc no ca h thng
Mt s stereotype quy c trc:
<<file>>: m ngun hay d liu
<<executable>>: chng trnh chy c
<<library>>: th vin lin kt tnh hay ng
<<document>>: ti liu c thit lp trong qu trnh
pht trin
<<table>>: bng c s d liu
205
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Thnh phn (Component)
Thnh phn phn mm (software component)
bao gm
M ngun: *.cpp, *.c, *.pas, *.java, *.bas
M i tng: *.obj
M nh phn: *.class
Chng trnh thc thi: *.dll, *.exe
Thnh phn phn mm c th tn ti trong thi
gian bin dch, thi gian lin kt chng trnh
hoc thi gian thc thi
206
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Lc thnh phn
Lc thnh phn l mt th gm cc thnh phn
kt ni vi nhau bi quan h ph thuc
K hiu ca thnh phn c th bao gm mt s hnh trn
biu din cc giao tip v cha cc lp m n c th ho
Component-name
Interface-name
Class-name
207
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Lc thnh phn V d
V d: lc thnh phn th hin mt s module m
ngun ca chng trnh hin th b mt a hnh
GeoMap
<<file>>
MapCurve
<<file>>
FieldMap
<<file>>
Isoquant
Fracture
MapCurve
FieldMap
208
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Lc thnh phn V d
V d: lc thnh phn th hin thi gian thc thi ca
chng trnh hin th b mt a hnh
IFL0.dll
<<library>>
FieldVis.exe
<<executable>>
Cosmo3D12.dll
<<library>>
cbsLoader12_dp.dll
<<library>>
op12_dp.dll
<<library>>
MFC42.dll
<<library>>
209
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Lc thnh phn V d
V d: lc thnh phn ca h thng ng k mn hc
Index.shtml
<<page>>
Login
<<file>>
Register
<<file>>
People
<<file>>
LoginForm
Database
RegisterForm
PeopleInfo
StudentInfo
LectureInfo
210
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Gn cc lp vo cc thnh phn
Khi thit lp cc thnh phn m ngun, ch gn
(bind) cc lp thit k v chn ngn ng lp trnh
Gn lp FieldMap vo thnh phn FieldMap (C++)
Gn lp MapCurve, Isoquant v Fracture vo thnh
phn MapCurve
Gn lp PeopleInfo, StudentInfo, LectureInfo v
Database vo thnh phn People (Java)
Gn lp v LoginForm vo thnh phn Login (Java)
K hiu ca thnh phn cha k hiu ca lp
c gn
Ch : component package
211
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Sinh m ngun Sourse code generation
Da vo c t lp vit m cho tng
thnh phn m ngun theo ngn ng
lp trnh chn
Vit m sn l cng vic hi nhm
chn c th c t ng ho bi
cc cng c CASE
212
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Node trin khai
Node l mt thit b vt l c kh nng tnh ton, bao
gm: my tnh, my in, thit b qut card, router
Node c m t c 2 dng: dng lp v dng instance
Node c k hiu nh hnh hp ba chiu
Cc minh d ca thnh phn c th sng trong mt minh
d node
Dell
Pentium III 600
Server of 600:
Dell Pentium III
600
213
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Kt ni gia cc node
C th ch ra quan h lin kt gia cc node m t cu
hnh kt ni (connection)
:Pentium II
450
:Silicon
Graphics
:Sun Ultra1
:Pentium III
600
<<TCP/IP>>
<<TCP/IP>>
214
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Lc trin khai
Lc trin khai cho php miu t cch ci t cc
thnh phn thc thi trn cc node
V d: h thng ng k mn hc qua WEB
Client: Pentium MMX 200
Java WEB Server:
Pentium III 600
<<TCP/IP>>
Index.shtml
<<page>>
CheckApplet
<<applet>>
215
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Lc trin khai
V d: chng trnh hin th b mt a hnh
IFL0.dll
<<library>>
FieldVis.exe
<<executable>>
Cosmo3D12.dll
<<library>>
cbsLoader12_dp.dll
<<library>>
op12_dp.dll
<<library>>
MFC42.dll
<<library>>
WindowsNT workstation:
Pentium II 450
216
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
Tng kt
Hin thc v trin khai tp trung vo
xy dng cc thnh phn chy c
hoc cc th vin, module m
ngun, trang HTML, dng nh phn...
Cc thnh phn m ngun c th
ho mt s lp thit k v c th
c vit bng cc ngn ng lp
trnh khc nhau
Cui cng trin khai cc thnh phn
chy c trn cc thit b tnh ton
Kim nghim phn mm
K thut kim tra phn mm
Kim tra cc ng thc thi c lp
Chin thut kim tra phn mm
Alpha, Beta testing
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
218
Ti sao phi kim tra phn mm
E Mc d c t ng ho mt
phn bi cc cng c CASE, rt
nhiu cng on trong qu trnh
sn xut phn mm vn c thc
hin bi con ngi
vn c kh nng xy ra li.
E Li c th xy ra trong tt c cc
giai on: phn tch yu cu, thit
k, m ho
Do phi kim nghim chng
trnh trc khi chnh thc s dng
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
219
Mt s quan im khi nim
E Kim nghim phn mm l hot ng thc thi
chng trnh vi mc ch tm ra li ph phn,
khng phi mang tnh xy dng
E Phn loi:
Kim nghim black-box: kim tra cc chc nng c th
ca phn mm, khng quan tm cu trc bn trong,
thng p dng cho nhng module ln.
Kim nghim white-box: kim tra cu trc iu khin
bn trong chng trnh, thng dng cho nhng nhng
module nh.
E Mi loi kim nghim c kh nng tm ra nhng nhm
li khc nhau nn kt hp c hai
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
220
Mc tiu ca kim nghim phn mm
E Mc tiu ca kim nghim phn mm l tm ra li (nu
c) vi chi ph thp nht.
E Kim nghim phn mm gip
Pht hin c li trong chng trnh (nu c).
Chng minh c phn mm hot ng ng nh
thit k.
Chng minh phn mm c vit ng
Chng minh c phn mm p ng yu cu ca user
Gp phn chng minh cht lng ca phn mm.
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
221
Mc tiu ca kim nghim phn mm
E Qu trnh kim nghim phn mm l tt khi
C kh nng tm ra li cao.
Khng d tha.
Bit chn lc: ch kim nghim nhng phn no c kh
nng tm ra li c trng.
Khng qu phc tp cng khng qu n gin.
E Ch : Kim nghim phn mm khng khng nh
c phn mm khng cn khim khuyt, ch khng
nh c phn mm c li v gip gim thiu li
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
222
Cc nguyn l kim nghim phn mm
E Vic kim nghim nn hng v yu cu ca khch
hng
E Nn c hoch nh trc mt thi gian di.
E p dng nguyn l Pareto (nguyn tc 80-20):
80% li c nguyn nhn t 20% cc module c lp v
kim tra nhng module kh nghi nht.
E Nn tin hnh t nh n ln: bt u t nhng
module ring bit ri sau tch hp cc module li.
E Khng th kim nghim trit mt phn mm.
E Nn c thc hin bi nhng i tng KHNG tham
gia vo qu trnh pht trin phn mm.
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
223
Phng php kim nghim Test case
E Thit lp cc test case vn hnh th - so snh kt
qu
E Khi nim test-case
D liu input
Thao tc kim nghim
D liu output hay p ng mong i ca chng trnh
E Test-case cho kim nghim black-box: ch yu da
vo cc yu cu c th ca chc nng phn mm.
E Test-case cho kim nghim white-box: ch yu da
vo cu trc iu khin ca phn mm vn t
ra: s lng test-case cn thit l qu ln
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
224
Kim nghim cc ng c lp c bn
E Kim nghim white-box da vo cu trc iu khin
ca thit k th tc sinh cc test-case vi tiu ch
Kim nghim cc ng c lp c bn l mt trong
nhng phng cch kim nghim white-box
Bo m s php th l t nht pht hin cc li
Tt c cc ng thc thi c lp c th qua t nht
mt ln
Th cc iu kin r nhnh c 2 nhnh true v false
Th qua vng lp ti bin cng nh bn trong
Th qua cu trc d liu m bo tnh ton vn ca n
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
225
th dng chy
E Mi node hnh trn biu din mt hoc mt vi tc v
(hi khc so vi lu thut gii)
E Cnh c hng miu t ng thc thi
E th dng chy c xy dng t lu thut gii
sequence if while
case
until
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
226
Xy dng th dng chy V d
1
2
3
4
5
6
8 7
11
10
9
1
2,3
4,5
6
7 8
9
10
11
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
227
Xy dng th dng chy V d
procedure: DoSomething
1: do while x=0
2: if y=0 then
3: z=0;
4: elseif k=0 then
5: z=1;
6: else x=1;
7: endif;
endif;
8: enddo
9: end
1
2
3
4
6 5
7
8
9
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
228
Xy dng th dng chy
E Phi phn r tt c cc iu kin phc tr thnh cc
iu kin n
E Mi node m t mt iu kin n c gi l
predicate
b
y
x
a
if a and b then y else x
b
x
a
while a or b do x
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
229
Xy dng th dng chy v d
E procedure AnalyzeTriangle
1
2
3
4
6
5
7
8
9
c > 0
a<b+c
a = c
a = b
b = c
a
2
=b
2
+c
2
11
10
12
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
230
Cc ng c lp c bn
E ng thc thi?
E ng thc thi c bn
E Cc ng thc thi c lp c bn
T node bt u n node kt thc, cc ng thc
thi c bn c lit k theo mt th t no m
bo rng: ng ang lit k t nht i qua mt cnh
cha c duyt qua bi cc ng lit k trc
E Tng s ng thc thi c bn c lp nhau c tnh
bng
V = P + 1; trong P l s node phn nhnh
(predicate)
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
231
Cc ng c lp c bn v d
E i vi chng trnh con
DoSomething
E Tng s ng :
V = 3 + 1 = 4
E ng 1: 1-9
E ng 2: 1-2-3-8-1
E ng 3: 1-2-4-5-7-8-1
E ng 4: 1-2-4-6-7-8-1
Ch : du 3 chm () mang ngha
khng quan tm, t c th i
theo bt k cnh no bi v cc
cnh sau c duyt qua ri
1
2
3
4
6 5
7
8
9
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
232
Cc ng c lp c bn v d
E i vi chng trnh con
AnalyzeTriangle
E Tng s ng :
V = 6 + 1 = 7
E ng 1: 1-3-12
E ng 2: 1-2-3-12
E ng 3: 1-2-4-5-12
E ng 4: 1-2-4-6-7-12
E ng 5: 1-2-4-6-8-7-12
E ng 6: 1-2-4-6-8-9-10-12
E ng 7: 1-2-4-6-8-9-11-12
1
2
3
4
6
5
7
8
9
c > 0
a<b+c
a = c
a = b
b = c
a
2
=b
2
+c
2
11
10
12
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
233
Thit lp cc test case
E Thit lp mt test-case cho mi ng thc thi c bn
E Da vo thut gii tm ra mt d liu input, sau tnh
ra d liu output hay p ng mong i ca thut gii
E Ch : c th khng to ra c test-case cho mt ng
thc thi no
E V d Sinh test-case cho chng trnh con AnalyzeTriangle
E Test-case cho ng 1:
Input: a = 3, b = 2, c = 0
Output mong i: type = Error
E Test-case cho ng 2:
Input: a = 17, b = 5, c = 4
Output mong i: type = Error
E Test-case cho ng 3:
Input: a = 6, b = 6, c = 6
Output mong i: type = Equilateral
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
234
Tng kt
E Mc tiu ca kim nghim phn mm l tm ra li
E Hai loi kim nghim: white-box v black-box.
E Kim nghim cc ng c lp c bn dng trong
kim nghim white-box, bao gm cc bc
Thit lp th dng chy
Lit k cc ng thc thi c lp c bn
Sinh cc test-case cho cc ng thc thi
Thc hin cc test case v kim tra kt qu
E Kim nghim Black-box thng dng trong bc kim
nghim tnh nng ca phn mm
Chin thut kim nghim
phn mm
+Verification & Validation
+Unit test & Integration test
+Kim nghim hng i tng
+Ngh thut g ri
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
236
Khi nim
E Chin thut kim tra phn mm tch hp cc phng php
to ra test-case tr thnh mt chui cc bc c th t c th
kim nghim phn mm thnh cng vi chi ph thp.
E Bao gm cc cng vic
Lp k hoch kim nghim
Sinh test-case
Thc hin kim nghim, thu thp kt qa v nh gi
E Verification: cc hnh ng m bo cho phn mm c hin
thc ng theo mt chc nng c th no Are we building
the product right ?
E Validation: cc hnh ng m bo cho phn mm c xy
dng theo ng yu cu ca khch hng Are we building the
right product ?
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
237
Mt chin thut kim nghim ph bin
Phn tch ton b h thng
Kim nghim ton b h thng
Phn tch yu cu
Thit k
M ha Kim nghim n v (module)
Kim nghim tch hp
Kim nghim tnh nng
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
238
Mt chin thut kim nghim ph bin
E Bt u ti tng module ri tch hp ln dn n ton
b h thng.
E Cc k thut khc nhau c s dng thch hp ti cc
giai on khc nhau.
E Kim nghim c th c tin hnh bi ngi pht
trin phn mm, nhng i vi cc d n ln th vic
kim nghim phi c tin hnh bi mt nhm c
lp.
E Kim nghim v sa li l cc hot ng c lp
nhng vic sa li phi ph hp vi cc chin thut
kim nghim.
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
239
Kim nghim tng module
E Tin hnh kim nghim trn tng n v nh nht ca
phn mm, l module m ngun, sau khi thit
k, m ho v bin dch thnh cng
E Thng dng k thut kim nghim white-box
E C th tin hnh kim nghim cng lc nhiu module.
E Mt s vn trong vic xy dng cc test case
Test case no?
D liu u vo v u ra c t u?
Tnh c lp/ph thuc hot ng ca cc module
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
240
Kim nghim module
Module
.
~~~~~~
~~~~~~
~~~~~~
interface
local data structures
boundary conditions
independent paths
error handling paths
test- cases
driver
stub
stub
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
241
Kim nghim module
E Mi module m ngun khng phi l mt chng trnh
hon chnh v i khi phi gi cc module cha c
kim nghim khc c th phi thit lp driver
v/hoc stub: ph tn kh ln (70%)
E Driver l mt chng trnh chnh c nhim v nhn
d liu kim nghim, chuyn d liu xung cho
module kim tra v in ra cc kt qu kim tra
tng ng.
E Stub thay th cc module c gi bi module ang
kim tra.
Lm th no gim cc chi ph to driver hay stub
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
242
Kim nghim tch hp
E Tng module m ngun hot ng ng. Liu khi
kt hp chng li thnh mt nhm ln chng c hot
ng ng khng ?
E Phi tin hnh kim nghim tch hp pht hin li
lin quan n giao tip gia cc module.
E Trnh tch hp kiu big-bang: tt c cc module c
kt hp li, v ton b chng trnh s c kim
nghim mt lc
E Nn tch hp tng dn: t trn xung hoc t di ln
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
243
Tch hp t trn xung
E Module chnh c dng nh l driver, v stub c
thay th bi cc module con trc tip ca ca module
chnh ny.
E Tu thuc vo cch tch hp theo chiu su (depth-
first) hoc chiu ngang(breath-first), mi stub con
c thay th mt ln bi module tng ng kim
nghim.
E Tin hnh kim nghim khi c s thay th mi
E Tin hnh kim nghim hi quy pht hin cc li
khc trong tng module
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
244
Tch hp t trn xung
E Tch hp kiu t trn xung theo hnh
thc depth-first
E Tit kim c chi ph to cc driver
M1
M3 M4
M7
M2
M5 M6
M8
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
245
Tch hp t di ln
E Cc module mc thp nht c kt hp thnh cc
nhm th hin mt chc nng con c bit ca phn
mm.
E Mt driver c to ra thao tc cc test-case
E Cc module c kim nghim theo tng nhm
(Cluster): l nhm cc module m module pha trn
cn n khi kim nghim
E Driver c b i v cc nhm module c kt hp
dn ln pha trn trong s phn cp ca chng
trnh.
E Tit kim c chi ph to cc stub
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
246
Tch hp t di ln
Mo
Ma Mb
D2 D1 D3
c
l
u
s
t
e
r
1
cluster 2
c
l
u
s
t
e
r
3
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
247
Kim nghim hi quy
E Vic kt hp cc module li vi nhau c th nh hng
n vng lp iu khin, cu trc d liu hay I/O chia
s trong mt s module
E iu lm l ra mt s li khng th pht hin c
khi tin hnh kim nghim theo n v
Phi kim nghim hi quy khi tch hp
E Kim nghim hi quy c th c tin hnh th cng
bng cch thc hin li cc test-case to ra. Hoc
c th dng mt cng c capture-playback thc
hin t ng
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
248
Kim nghim tnh nng
E Kim nghim tnh nng hiu theo cch n gin
nht l: kim tra cc chc nng ca phn mm p
ng c nhu cu ca khch hng c xc nh
trong vn bn c t yu cu ca phn mm
E p dng k thut black-box
E Kim nghim tnh nng bao gm
Xem xt li cu hnh phn mm theo lc trin khai
Kim nghim alpha
Kim nghim beta
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
249
Kim nghim tnh nng
E Kim nghim alpha
c tin hnh ngay ti ni sn xut phn mm.
Nh pht trin phn mm s quan st ngi s dng
dng sn phm v ghi nhn li nhng li pht sinh sa
cha.
E Kim nghim beta
Phn mm c kim tra bn ngoi phm vi ca n v
sn xut.
Khch hnh trc tip s dng v ghi nhn li bo li
cho nh pht trin sa cha.
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
250
Kim nghim hng i tng
E V c bn chin thut kim nghim hng i tng
cng theo th t ging nh kim nghim c in:
Kim nghim n v
Kim nghim tch hp
Kim nghim chc nng
Kim nghim ton b h thng
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
251
Kim nghim hng i tng
E Khng th tch ri tng tc v ca i tng/lp
kim nghim
Tc v c ng bao trong lp
Cc lp con c th override mt tc v no
E Kim nghim n v hng i tng tp trung vo
cc lp kim nghim hnh vi ca lp
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
252
Kim nghim tch hp hng i tng
E Khi nim s phn cp khng cn nhiu ngha
trong chng trnh hng i tng kim nghim
tch hp theo cch khc
E Hai hnh thc kim nghim tch hp hng i tng
Kim nghim trn c s thread: tch hp cc lp to
thnh mt thread phc v cho mt input no ca
chng trnh
Kim nghim trn c s s dng: cc lp client s c
tch hp s dng dch v no cung cp bi cc lp
server
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
253
Kim nghim theo kch bn
E Da vo cc use-case son ra cc kch bn
E V d: mt kch bn cho h thng ng k mn hc
qua WEB
1. Login vi username = e59306547, password = 6547
2. Chn chc nng ng k mn hc
3. Chn 5 nhm mn hc ca 5 mn: CNPM, AI, XLTHS,
PTTK, XLSS trong c 2 nhm trng thi kho biu
4. Nhn nt Submit
Chng trnh phi bo li v lit k 2 nhm b trng thi
kho biu
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
254
Ngh thut g ri - DEBUG
E G ri l mt qu trnh nhm loi b cc li c pht
hin trong qu trnh kim tra.
E G ri c thc hin nh l mt kt qu ca vic
kim tra: li pht hin c tm kim nguyn nhn
sa li
E C 3 hnh thc g ri: brute force, loi tr nguyn
nhn v theo vt. Nn dng kt hp c 3 hnh thc
ny.
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
255
Ngh thut g ri
E G ri l cng vic kh
khn v d gy tm l
chn nn bi nguyn
nhn gy ra li nhiu khi
li m h: do timeout, do
chnh xc, do ch
quan lp trnh...
E Kh nng g ri gn nh
l bm sinh ca mi
ngi
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
256
Brute Force
E L phng php ph bin nht nhng li t hiu qu
nht cho vic pht hin nguyn nhn gy li phn
mm.
E Trit l ca phng php ny l: Hy my tnh tm
ra li.
E C 3 cch thc hin:
Ly d liu trong b nh xem xt.
Dng run-time trace tm li.
Dng lnh WRITE xut d liu cn kim tra ra mn
hnh.
E p dng phng php ny khi tt c cc phng php
khc u tht bi.
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
257
Loi tr nguyn nhn
E Phng php ny da trn nguyn tc phn chia nh
phn.
E Cch thc hin:
Khi mt li c pht hin, c gng a ra mt danh
sch cc nguyn nhn c th gy ra li.
Danh sch ny c nghim li loi b dn cc
nguyn nhn khng ng cho n khi tm thy mt
nguyn nhn kh nghi nht.
Khi d liu kim nghim s c tinh ch li tip
tc tm li.
Trng i Hc Bch Khoa - Khoa Cng Ngh Thng Tin
Copyright 2004 Th.S Nguyn Cao Tr caotri@hcmut.edu.vn
258
Theo vt
E L mt phng php g li kh ph bin c th dng
thnh cng trong cc chng trnh nh nhng kh p
dng cho i vi cc chng trnh rt ln.
E Cch thc hin: bt u ti dng m ngun c triu
chng li thc hin ln ngc tr li tng dng m
ngun cho n khi tm thy dng gy ra li.
Kt thc mn hc
Chc mng bn hon tt mn hc
Cng Ngh Phn Mm !
Thi cui k ?
Gii thiu-Phn tch
Thit k - Hin thc/trin khai
Kim nghim - UML
= Tt c ni dung