Kỹ nghệ phần mềm
Software Engeneering
NguyÔn V¨n Vþ
Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN
Email:
[email protected]
Bài 3: Tiến trình phần mềm
NguyễnVănVỵ
Nội dung
TiÕn tr×nh vμ m« h×nh tiÕn tr×nh
C¸c giai ®o¹n cña tiÕn tr×nh
TiÕn tr×nh vμ vÊn ®Ò liªn quan
Bộ môn Công nghệ phần mềm – ĐHCN
2
TÀI LiỆU THAM KHẢO
NguyễnVănVỵ
1.
2.
3.
4.
5.
6.
Nguyễn Văn Vỵ, Nguyễn Việt Hà. Giáo trình kỹ nghệ phần
mềm. Nhà xuất bản Đại học Quốc gia Hà nội, 2008
Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified
Modeling language User Guid. Addison-Wesley, 1998.
M. Ould. Managing Software Quality and Business Risk, John
Wiley and Sons, 1999.
Roger S.Pressman, Software Engineering, a Practitioner’s
Approach. Fifth Edition, McGraw Hill, 2001.
Ian Sommerville, Software Engineering. Sixth Edition, AddisonWasley, 2001.
Nguyễn Văn Vỵ. Phân tích thiết kế hệ thống thông tin hiện đại.
Hướng cấu trúc và hướng đối tượng, NXB Thống kê, 2002, Hà
Nội.
Bộ môn Công nghệ phần mềm – ĐHCN
3
C¸c lo¹i m« h×nh tiÕn tr×nh
NguyễnVănVỵ
5 lo¹i m« h×nh tiÕn tr×nh phÇn mÒm tiªu biÓu:
M« h×nh th¸c n−íc
C¸c m« h×nh ph¸t triÓn tiÕn hãa
C¸c m« h×nh ph¸t triÓn h×nh thøc
Ph¸t triÓn dùa trªn sö dông l¹i
Kh¸c
Mçi lo¹i bao gåm mét sè c¸c m« h×nh tiÕn tr×nh.
Bộ môn Công nghệ phần mềm – ĐHCN
4
M« h×nh vßng ®êi truyÒn thèng
NguyễnVănVỵ
Ngiªn cøu
lËp KHDA
ph©n tÝch yªu
cÇu& ®Æc t¶
thiÕt kÕ HT &
phÈn mÒm
M· ho¸ &kiÓm
thö ®¬n vÞ
kiÓm thö tÝch
hîp & HT
VËn hμnh
& b¶o tr×
M« h×nh th¸c n−íc – waterfall model
Bộ môn Công nghệ phần mềm – ĐHCN
5
M« h×nh th¸c n−íc: ®Æc ®iÓm
■ T¸ch biÖt gi÷a c¸c pha, tiÕn hμnh tuÇn tù
NguyễnVănVỵ
Khã tu©n thñ tuÇn t−: dù ¸n lín th−êng ph¶i quay l¹i
Khã ®¸p øng yªu cÇu th−êng thay ®æi cña kh¸ch
■ ChËm cã phiªn b¶n thùc hiÖn ®−îc
®ßi hái kh¸ch hμng ph¶i kiªn nhÉn
sai sãt ph¸t hiÖn muén cã thÓ lμ th¶m häa
■ §Æc t¶ kü, ph©n c«ng chuyªn tr¸ch, h−íng tμi liÖu
Tμi liÖu qu¸ nhiÒu, tèn søc ng−êi, thêi gian dμi
Cã sím vμ ®−îc sö dông réng r·i (tèt > tù nhiªn)
ThÝch hîp khi yªu cÇu hiÓu tèt, hÖ lín & phøc t¹p
B¶o tr× thuËn lîi
Bộ môn Công nghệ phần mềm – ĐHCN
6
M« h×nh ph¸t triÓn tiÕn hãa
b1. L−îc ®å chung nhÊt
NguyễnVănVỵ
§Æc t¶
Bộ môn Công nghệ phần mềm – ĐHCN
Ph¸t triÓn
Phiªn b¶n
trung gian
ThÈm ®Þnh
tl
§Æc t¶ e
s qu¸t
kh¸i ri o
Phiªn b¶n
khëi ®Çu
Phiªn b¶n
cuèi cïng
7
L−îc ®å chung nhÊt
NguyễnVănVỵ
■ Ph¸t triÓn ban ®Çu
Lμm viÖc víi kh¸ch, ®Æc t¶ kh¸i qu¸t hÖ thèng (b¾t
®Çu víi hiÓu biÕt cã thÓ ch−a ®Çy ®ñ)
■ Thùc hiÖn ph¸t triÓn b»ng c¸ch lμm mÉu
Môc tiªu lμ ®Ó hiÓu hÖ thèng. B¶n mÉu ban ®Çu cã
thÓ cßn s¬ sμi.
■ ThÈm ®Þnh phiªn b¶n cã ®−îc, lÆp l¹i c¸c b−íc
cho ®Õn khi cã phiªn b¶n cuèi cïng
Bộ môn Công nghệ phần mềm – ĐHCN
8
L−îc ®å chung
NguyễnVănVỵ
H¹n chÕ
Kh«ng trùc quan
HÖ thèng th−êng cã cÊu tróc nghÌo nμn
§ßi hái cã kü n¨ng ®Æc t¶ (ng«n ng÷ lμm mÉu)
Kh¶ n¨ng øng dông
Cho c¸c hÖ t−¬ng t¸c võa, nhá
Cho nh÷ng phÇn cña hÖ lín
HÖ cã vßng ®êi ng¾n
Bộ môn Công nghệ phần mềm – ĐHCN
9
M« h×nh lμm b¶n mÉu
NguyễnVănVỵ
B¾t ®Çu
KÕt thóc
x¸c yªu cÇuthu thËp tt.
s¬ bé
s¶n phÈm
thiÕt kÕ
cuèi cïng
nhanh
lμm mÞn
b¶n mÉu
x©y dùng
b¶n mÉu
®¸nh gi¸
cña kh¸ch
M« h×nh lµm b¶n mÉu - Prototyping model
Bộ môn Công nghệ phần mềm – ĐHCN
10
M« h×nh lμm b¶n mÉu
NguyễnVănVỵ
Lo¹i mÉu:
mÉu trªn giÊy
mÉu m« t¶ mét phÇn chøc n¨ng
mÉu giao diÖn
mÉu h−íng tíi s¶n phÈm
Møc ®é mÉu:
mÉu dïng xong bá ®i (throw-away approach)
mÉu dïng tiÕp cho b−íc sau (CASE chuyªn dông)
mÉu lμ phÇn hÖ thèng vËn hμnh ®−îc (dùa trªn
thμnh phÇn dïng l¹i)
Bộ môn Công nghệ phần mềm – ĐHCN
11
M« h×nh lμm b¶n mÉu
NguyễnVănVỵ
Nh−îc ®iÓm:
tÝnh cÊu tróc kh«ng cao
kh¸ch hμng Ýt tin t−ëng
−u thÕ:
nhanh chãng x¸c ®Þnh ®−îc yªu cÇu, tèt
t¹o c¬ së ký kÕt hîp ®ång
gióp ®μo t¹o huÊn luyÖn ng−íi sö dông
ThÝch hợp:
c¸c yªu cÇu ch−a râ rμng
input/output ch−a râ rμng
khã ®¸nh gi¸ tÝnh hiÖu qu¶ thuËt to¸n
Bộ môn Công nghệ phần mềm – ĐHCN
12
M« h×nh xo¾n èc (spiral model)
NguyễnVănVỵ
C¶i tiÕn cña m« h×nh tuÇn tù vμ lμm mÉu
Thªm ph©n tÝch rñi ro
Lμ qu¸ tr×nh lÆp h−íng më réng, hoμn thiÖn dÇn
LËp kÕ ho¹ch: x¸c lËp vÊn ®Ò, tμi nguyªn, thêi h¹n.
Ph©n tÝch rñi ro: xem xÐt m¹o hiÓm, t×m gi¶i ph¸p
Kü nghÖ: ph¸t triÓn mét phiªn b¶n cña phÇn mÒm
(chän m« h×nh thÝch hîp: lμm mÉu, th¸c n−íc,..)
§¸nh gi¸ cña kh¸ch: kh¸ch ®¸nh gi¸ phiªn b¶n ph¸t
triÓn;
lμm mÞn, söa ®æi
Bộ môn Công nghệ phần mềm – ĐHCN
13
M« h×nh xo¾n èc
NguyễnVănVỵ
tËp hîp yªu
cÇu ban ®Çu,
lËp kÕ
ho¹ch dù ¸n
lËp kÕ ho¹ch
ph©n tÝch rñi ro
ph©n tÝch rñi ro,
l©y ý kiÕn
kh¸ch hμng
kÕ ho¹ch
dùa trªn yªu
cÇu cña
kh¸ch
®¸nh gi¸
cña kh¸ch,
söa ®æi,
hoμn thiÖn
ph©n tÝch rñi ro,
tim giai ph¸p
tiÕp tuc hay
kh«ng?
kü nghÖ
®¸nh gi¸
b¶n mÉu / ¸p
dông p.ph¸p ph¸t
triÓn thÝch hîp
spiral model
Bộ môn Công nghệ phần mềm – ĐHCN
14
M« h×nh xo¾n èc: ®Æc ®iÓm
NguyễnVănVỵ
Hîp víi hÖ lín cã thÓ ph©n chia phÇn cèt lâi
thø yÕu
Cã thÓ kiÓm so¸t rñi ro ë tõng møc tiÕn hãa
Khã thuyÕt phôc kh¸ch lμ kiÓm so¸t ®−îc sù tiÕn
hãa linh ho¹t (®ßi hái n¨ng lùc qu¶n lý, n¨ng lùc
ph©n tÝch rñi ro -> chi phi chuyªn gia lín)
Ch−a ®−îc dïng réng r·i nh− m« h×nh th¸c n−íc
hoÆc lμm mÉu
Bộ môn Công nghệ phần mềm – ĐHCN
15
M« h×nh ph¸t triÓn øng dông nhanh
Rapid Application Development- RAD
NguyễnVănVỵ
®éi 3
®éi 2
M« h×nh
nghiÖp
vô
M« h×nh
d÷ liÖu
®éi 1
M« h×nh
nghiÖp
vô
M« h×nh
nghiÖp
vô
M«
h×nh d÷
liÖu
M«
h×nh xö
lý
M« h×nh
xö lý
M« h×nh
d÷ liÖu
M« h×nh
xö lý
T¹o sinh
øng dông
T¹o sinh
øng dông
T¹o sinh
øng dông
KiÓm thö
chuyÓn
giao
KiÓm thö
chuyÓn
giao
KiÓm thö
chuyÓn giao
60-90 ngμy
Bộ môn Công nghệ phần mềm – ĐHCN
16
RAD - ®Æc ®iÓm
NguyễnVănVỵ
Hîp víi c¸c hÖ thèng cã kh¶ n¨ng m«®un hãa cao
h−íng thμnh phÇn, t¸i sö dông
sö dông c«ng cô tù ®éng
Thêi gian ph¸t triÓn s¶n phÈm ng¾n (60~90 ngμy)
Kh«ng phï hîp víi s¶n phÈm:
khã ph©n chia thμnh c¸c thμnh phÇn
®ßi hái hiÖu n¨ng cao
Bộ môn Công nghệ phần mềm – ĐHCN
17
M« h×nh t¨ng tr−ëng (incremental model)
NguyễnVănVỵ
B¶n t¨ng 1
System/information
engineering
Ph©n
tÝch
B¶n t¨ng 2
ThiÕt
kÕ
Ph©n
tÝch
M∙
ho¸
ThiÕt
kÕ
B¶n t¨ng 3
ChuyÒn
giao b¶n
t¨ng 1
KiÓm
thö
Ph©n
tÝch
M∙
ho¸
ThiÕt
kÕ
B¶n t¨ng 4
ChuyÒn
giao b¶n
t¨ng 2
KiÓm
thö
Ph©n
tÝch
M∙
ho¸
ThiÕt
kÕ
KiÓm
thö
M∙
ho¸
ChuyÒn
giao b¶n
t¨ng 3
KiÓm
thö
ChuyÒn
giao b¶n
t¨ng 4
Thêi gian
Bộ môn Công nghệ phần mềm – ĐHCN
18
M« h×nh t¨ng tr−ëng
NguyễnVănVỵ
ChuyÓn giao dÇn tõng phÇn cña hÖ thèng
S¶n phÈm chia thμnh tõng phÇn t¨ng theo yªu cÇu
chøc n¨ng
Yªu cÇu ng−êi dïng −u tiªn theo thø tù phÇn t¨ng
Cho s¶n phÈm dïng trong thêi gian ng¾n
®¸p øng nhanh yªu cÇu cña kh¸ch
chiÕm lÜnh thÞ tr−êng
kh¸c víi b¶n mÉu
C«ng ty ph¸t triÓn ph¶i cã tiÒm lùc cao (c«ng
nghÖ, tμi s¶n phÇn mÒm)
Bộ môn Công nghệ phần mềm – ĐHCN
19
LËp tr×nh cùc ®oan (Extreme Programming-XP)
NguyễnVănVỵ
C¸ch tiÕp cËn dùa trªn viÖc ph¸t triÓn, chuyÓn
giao dÇn tõng phÇn nhá chøc n¨ng
T¹o c¸c ca thö nghiÖm tr−íc khi lËp tr×nh
®ßi hái ph¶i n¾m v÷ng yªu cÇu; giao diÖn tr−íc khi
b¾t tay vμo m· hãa
LËp tr×nh ®éi
tr¸nh lçi, n©ng cao chÊt l−îng
®¶m b¶o sù tu©n theo c¸c chuÈn XP ®· ®Ò ra
ViÕt l¹i khi cã thÓ
chñ ®éng tÊn c«ng lçi
Bộ môn Công nghệ phần mềm – ĐHCN
20