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 2: Kỹ nghệ phần mềm
NguyễnVănVỵ
Nội dung
§Þnh nghÜa vμ kh¸i niÖm
LÞch sö ph¸t triÓn
C¸c m« h×nh tiÕn tr×nh
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 ®Þnh nghÜa kü nghÖ phÇn mÒm
NguyễnVănVỵ
Kü nghÖ phÇn mÒm – Software Engineering:SE
SE lμ thiÕt lËp vµ sö dông c¸c nguyªn lý c«ng
nghÖ ®óng ®¾n ®Ó ®−îc phÇn mÒm 1 c¸ch kinh
tÕ, võa tin cËy võa lμm viÖc hiÖu qu¶ trªn c¸c m¸y
thùc (Bauer [1969])
SE lμ nguyªn lý kü nghÖ liªn quan ®Õn tÊt c¶ c¸c
mÆt lý thuyÕt, ph−¬ng ph¸p vµ c«ng cô cña
phÇn mÒm (Sommerville [1995])
Bộ môn Công nghệ phần mềm – ĐHCN
4
§Þnh nghÜa SE
NguyễnVănVỵ
SE lμ bé m«n tÝch hîp c¶ qui tr×nh, c¸c ph−¬ng
ph¸p, c¸c c«ng cô ®Ó ph¸t triÓn phÇn mÒm m¸y
tÝnh (Pressman [1995])
Ba mặt c¬ b¶n của kü nghÖ phÇn mÒm lμ:
1. Quy tr×nh/thñ tôc
2. Ph−¬ng ph¸p
3. C«ng cô
1
?
2
3
2
Bộ môn Công nghệ phần mềm – ĐHCN
1
4
3
5
LÞch sö cña kü nghÖ phÇn mÒm
NguyễnVănVỵ
§Ò x−íng, h×nh thμnh (70s)
C¸c ph−¬ng ph¸p lËp tr×nh vμ cÊu tróc d÷ liÖu
Kh¸i niÖm vÒ tÝnh m«®un
Kh¸i niÖm s¬ ®å khèi, lËp tr×nh top-down
LËp tr×nh cã cÊu tróc (Dijkstra)
ph−¬ng ph¸p chia m«dun mét ch−¬ng tr×nh
Trõu t−îng hãa d÷ liÖu (Liskov)
Bộ môn Công nghệ phần mềm – ĐHCN
6
LÞch sö cña kü nghÖ phÇn mÒm
NguyễnVănVỵ
T¨ng tr−ëng (nöa ®Çu 80s)
XuÊt hiÖn c¸c ph−¬ng ph¸p ph¸t triÓn hÖ thèng
c«ng nghÖ CSDL (m« h×nh quan hÖ)
ph©n tÝch, thiÕt kÕ h−íng cÊu tróc (biÓu ®å luång,..)
C¸c bé c«ng cô ph¸t triÓn
c«ng cô trî gióp ph©n tÝch, thiÕt kÕ
bé khëi t¹o ch−¬ng tr×nh, kiÓm thö
c¸c ng«n ng÷ bËc cao
B¾t ®Çu quan t©m ®Õn qu¶n lý
C¸c ®é do phÇn mÒm
Qu¶n lý theo thèng kª
Bộ môn Công nghệ phần mềm – ĐHCN
7
LÞch sö cña kü nghÖ phÇn mÒm
NguyễnVănVỵ
Ph¸t triÓn (tõ gi÷a 80s)
Hoμn thiÖn c«ng nghÖ cÊu tróc, ra ®êi c«ng nghÖ
®èi t−ợng
NhiÒu m« h×nh h−íng cÊu tróc triÓn khai, chuÈn hãa
CASE hoμn thiÖn, ®¹t møc tù ®éng hãa cao
Ng«n ng÷ thÕ hÖ 4 ra ®êi (LIPS, PROLOG,..)
C«ng nghÖ h−íng ®èi t−îng b¾t ®Çu ph¸t triÓn:
Quy tr×nh RUP, UML, C¸c c«ng cô ®Çy ®ñ (ROSE,
JIBULDER,..)
Sö dông l¹i chiÕm vÞ trÝ quan träng trong ph¸t triÓn
Bộ môn Công nghệ phần mềm – ĐHCN
8
LÞch sö cña kü nghÖ phÇn mÒm
NguyễnVănVỵ
Ph¸t triÓn (tõ gi÷a 80s)
Ph¸t triÓn c«ng nghÖ ®èi t−îng
Kho d÷ liÖu, CSDL ®èi t−îng, ®a ph−¬ng tiÖn
§Þnh h−íng sö dông l¹i: thμnh phÇn, mÉu, Framework
C«ng nghÖ Web: web services
Ph¸t triÓn c¸c m« h×nh qu¶n lý
ChuÈn qu¶n lý ®−îc c«ng nhËn (CMM, IS9000-03)
NhiÒu m« h×nh tæ chøc lμm phÇn mÒm ®−îc ®Ò xuÊt
NhiÒu c«ng cô trî gióp qu¶n lý dù ¸n hoμn thiÖn
Bộ môn Công nghệ phần mềm – ĐHCN
9
C¸c yÕu tè c¬ b¶n cña - SE
NguyễnVănVỵ
Tæng hîp: Kü nghÖ phÇn mÒm
Lμ mét qu¸ tr×nh kü nghÖ tÝch hîp:
Thñ tôc (procedures)
Ph−¬ng ph¸p (methods)
C«ng cô (tools)
Nh»m t¹o ra phÇn mÒm hiÖu qu¶, víi c¸c giíi h¹n
cho tr−íc
Bộ môn Công nghệ phần mềm – ĐHCN
10
C¸c thñ tôc - Procedures
NguyễnVănVỵ
Qui tr×nh ph¸t triÓn vμ qu¶n lý:
X¸c ®Þnh tr×nh tù thùc hiÖn c¸c c«ng viÖc
X¸c ®Þnh c¸c tμi liÖu, s¶n phÈm cÇn bμn giao,
vμ c¸ch thøc thùc hiÖn
§Þnh c¸c mèc thêi gian (millestones) vμ s¶n
phÈn ®−a ra (theo c¸c chuÈn)
Cã thÓ ë møc chung cho nhiÒu dù ¸n
Hay cô thÓ ho¸ cho 1 dù ¸n cô thÓ
Bộ môn Công nghệ phần mềm – ĐHCN
11
C¸c ph−¬ng ph¸p - methods
NguyễnVănVỵ
C¸ch lμm cô thÓ ®Ó x©y dùng phÇn mÒm
Mçi c«ng ®o¹n cã ph−¬ng ph¸p riªng:
• Ph©n tÝch (x¸c ®Þnh, ®Æc t¶ yªu cÇu)
• ThiÕt kÕ (®Æc t¶ kiÕn tróc, giao diÖn, d÷ liªu, thñ tôc)
• LËp tr×nh (cÊu tróc, h−íng ®èi t−îng)
• KiÓm thö (hép ®en, hép tr¾ng, ¸p lùc, håi quy, luån sîi)
• Qu¶n lý dù ¸n (PERT, GANTT, COCOMO)
Bộ môn Công nghệ phần mềm – ĐHCN
12
C¸c ph−¬ng ph¸p - methods
NguyễnVănVỵ
Néi dung ph−¬ng ph¸p th−êng bao gåm:
C¸c ph©n tö m« h×nh: m« t¶ kh¸i niÖm
C¸c ký ph¸p:
®Æc t¶ phần tö
C¸c quy t¾c:
liªn kÕt c¸c ph©n tö m« h×nh
Quy tr×nh x©y dùng:
tr×nh tù t¹o 1 m« h×nh
Lêi khuyªn, c¸ch dïng: cho m« h×nh tèt vμ dïng nã
Bộ môn Công nghệ phần mềm – ĐHCN
13
C¸c ph−¬ng ph¸p
methods
NguyễnVănVỵ
M« h×nh (p.ph¸p) luång d÷ liÖu
Kh¸i niÖm
t¸c nh©n
Ký ph¸p
Quy t¾c
tên tác nhân
- Tiến tr×nh l lµ duy nhất
- C¸c luồng vµo 1 tiến
tr×nh phải # c¸c
luồng ra
- C¸c luồng vµo 1 tiến
tr×nh đủ để tạo ra c¸c
luồng ra
- Kh«ng cã c¸c luồng
dữ liệu sau:
i
tiÕn tr×nh
kho d÷ liÖu
luång d÷ liÖu
tên tiến
trình
tên kho
tên luồng
Bộ môn Công nghệ phần mềm – ĐHCN
Kho
Kho
Quy tr×nh
VÏ luång d÷ liÖu
møc 0 tõ m« h×nh
nghiÖp vô
VÏ biÓu ®å møc i:
tõ mçi tiÕn tr×nh
møc i-1 ch−a lµ
c¬ së
kho
t¸c nh©n
•…
14
VÝ dô: BiÓu ®å luång d÷ liÖu møc 0 bμi to¸n
tr«ng göi xe
NguyễnVănVỵ
0
HÖ
thèng
Kh¸ch
t.t. xe
kh¸ch
0
1
1.0
nhËn xe
"hÕt chç"
vÐ xe
a b¶ng gi¸
2
DS thùc thÓ
a. xxxx
b. xxxx
c. xxxx
d. xxxx
e. xxxx
f. xxxx
d sæ xe ra
e phiÕu t.to¸n
b
c
d
1
R
C
U
R
R
U
R
e
3.0
gi¶i
quyÕt sù
cè
R
2
g phiÕu chi
biªn b¶n f
a
R
vÐ
xe
3
c sæ xevµo
3
2.0
tr¶ xe
b vÐ xe
f
"vÐ
z¶"
phiÕu
t.to¸n
kh¸ch
tt sù cè
"kh«ng g.q."
phiÕu chi
biªn b¶n
C
C
nÐt ®á lμ phÇn thay thÕ hay thªm vμo
M« h×nh nghiÖp vô
Bộ môn Công nghệ phần mềm – ĐHCN
15
C¸c c«ng cô - tools
NguyễnVănVỵ
Trî gióp tù ®éng/b¸n tù ®éng ph−¬ng ph¸p
Computer Aided Software Engineering CASE
c¸c c«ng cô trî gióp c¸c c«ng ®o¹n kh¸c nhau
tiÕn tr×nh ph¸t triÓn phÇn mÒm
C¸c ng«n ng÷ lËp tr×nh
VÝ dô:
c«ng cô sinh giao diÖn (C Builder, ...)
hç trî ph©n tÝch, thiÕt kÕ (Rwin, Modeler
(Oracle Designer, Rational Rose,...)
trî gióp lËp tr×nh: compiler, debugger
trî gióp qu¶n lý: project management
Bộ môn Công nghệ phần mềm – ĐHCN
16
C¸c c«ng cô - tools
NguyễnVănVỵ
Biểu đồ m« h×nh
Bộ môn Công nghệ phần mềm – ĐHCN
17
Vßng ®êi ph¸t triÓn hÖ thèng phÇn mÒm
(systems development life cycle - SDCL)
NguyễnVănVỵ
Lμ c¸c ho¹t ®éng tõ khi ®−îc ®Æt hµng,
ph¸t triÓn, sö dông ®Õn khi bÞ lo¹i bá nã
Vßng ®êi chia thμnh c¸c giai ®o¹n chÝnh :
x¸c ®Þnh yªu cÇu,
triÓn khai,
kiÓm thö,
VËn hµnh, b¶o tr× vµ lÆp l¹i
Ph¹m vi, thø tù, néi dung kh¸c nhau tïy theo
tõng s¶n phÈm vμ dù ¸n
Bộ môn Công nghệ phần mềm – ĐHCN
18
Vßng ®êi ph¸t triÓn phÇn mÒm
NguyễnVănVỵ
Tïy m« h×nh ¸p dông, ph©n chia c¸c pha, c¸c
b−íc cã thÓ kh¸c nhau : tõ 3 ®Õn 20 b−íc
X¸c ®Þnh yªu cÇu
TriÒn khai
KiÓm thö
VËn hµnh - B¶o tr×
C¸c pha chÝnh cña vßng ®êi
Bộ môn Công nghệ phần mềm – ĐHCN
19
C¸c b−íc chung nhÊt ph¸t triÓn
NguyễnVănVỵ
X¸c ®Þnh yªu cÇu
ph©n tÝch hÖ thèng
lËp kÕ ho¹ch
ph©n tÝch yªu cÇu
®Æc t¶ yªu cÇu
TiÕn hãa
Bộ môn Công nghệ phần mềm – ĐHCN
Ph¸t triÓn
ThiÕt kÕ
M· ho¸
KiÓm thö
Lμm tμI liÖu
söa lçi
thÝch nghi
n©ng cao
bæ sung
20