1. Software Process
(Ti n trình ph n m m – SP)
Trình bày:
ThS. Lâm Quang Vũ
B Môn Công Ngh Ph n M m
Khoa Công Ngh Thông Tin
Trư ng i H c Khoa H c T Nhiên TPHCM
TpHCM, 6/2005
Tài li u tham kh o
SEI – www.sei.cmu.edu
OpenCourseWare - MIT
Bài gi ng Software Engineering c a CMU,
UIUC
Bài gi ng CNPMNC – TS Tr n an Thư
Lu n Văn Th c Sĩ – “Nghiên c u và v n hành
các ti n trình ph n m m h u d ng”, ThS Lâm
Quang Vũ
Các bài báo và các thông tin kh o sát t
IEEE, ACM
Software Process 9/18/2006 2
1
2. N i dung
Gi i thi u
Các khái ni m cơ b n trong Software
Process
Software Life Cycle Models
Gi i thi u m t s ti n trình ph n m m
T ng k t và th o lu n
Software Process 9/18/2006 3
1. Gi i thi u
M ts v n quan tâm trong vi c phát
tri n ph n m m
M t s nguyên nhân
B n ch t v n …
Software Process 9/18/2006 4
2
3. M ts v n
Kinh t th gi i ngày Các ng d ng m r ng v
càng ph thu c hơn kích thư c, ph c t p,
vào CNPM và phân b
Thương trư ng òi h i nâng Không nhân l c có trình
cao năng su t, ch t lư ng và
gi m th i gian
Software Process 9/18/2006 5
Chúng ta ã làm vi c ra sao?
• Nhi u thành công Performance
Engineer
Analyst
• Cũng nhi u th t b i
Ch t lư ng
Project
Manager
Developer
Th i gian
$$$
Chi phí
Tester Release
Engineer
Nhân l c
Software Process 9/18/2006 6
3
4. M t ví d v nguyên nhân th t b i ? [SEI]
D án l n càng l n, càng khó ki m soát
Th c t , có ít nhân viên có thói quen l p k
ho ch, t ch c công vi c khoa h c
Không có k ho ch không bi t ư c
tr ng thái công vi c
N u b n không bi t qu n lý làm sao
bi t?
Qu n lý không bi t h không th qu n lý
d án
Software Process 9/18/2006 7
M t s lý do khác …[Rational, RUP]
Hi u không úng nh ng gì ngư i dùng c n
Không th thích ng v i các thay i v yêu c u c a
h th ng
Các Module không kh p v i nhau
Ph n m m khó b o trì và nâng c p, m r ng
Phát hi n tr các l h ng c a d án
Thi u công c h tr và qu n lý
Hi u năng c a ph n m m th p
Các thành viên trong nhóm không bi t ư c ai ã
thay i cái gì, khi nào, âu, t i sao ph i thay i
Quá trình build-and-release không áng tin c y
Software Process 9/18/2006 8
4
5. B n ch t v n ?
Làm sao dung hòa các y u t
Con ngư i ?
ph c t p, kh i lư ng công vi c ?
Th i gian ?
Công c h tr ?
M c tiêu chính:
úng th i gian
m b o ngân sách
Th a mãn nhu c u ngư i s d ng
Software Process 9/18/2006 9
Cái mà chúng ta c n ???
Software Process 9/18/2006 10
5
6. 2. Ti n trình ph n m m – t ng quan
TI N TRÌNH nh nghĩa:
AI ph i LÀM GÌ,KHI NÀO,làm B NG CÁCH NÀO làm ra S N PH M gì ?
Software Process 9/18/2006 11
M t nh nghĩa khác
Ti n trình ph n m m là m t t p h p các
ho t ng ư c th c hi n b i con ngư i
theo m t k ho ch d ki n nh vào:
V n d ng các phương pháp, tri th c, kinh nghi m
S d ng các công c h tr (CASE Tools)
s n sinh ra các s n ph n ph n m m
(chương trình, c t yêu c u, h sơ thi t k ,
h sơ ki m ch ng ….)
Software Process 9/18/2006 12
6
7. Các thu t ng trong SP
Ti n trình ph n m m (software process)
Ti n trình con / b ph n (sub-process)
Ho t ng (Activities)
Vai trò (Roles)
S n ph m (Products)
Công c h tr (Tools)
Software Process 9/18/2006 13
Các thành ph n chính y u nh t
Vai troø
(Role)
Hoaït ñoäng
(Activity)
Hoaït ñoäng Luoàng ñieàu khieån Hoaït ñoäng
(thuû coâng) (töï ñoäng)
Lu
eäu
o
õ li
àng
dö
dö
g
õ
oàn
lie
Lu
äu
Saûn
phaåm
phaàn
meàm Saûn phaåm
(Product)
Software Process 9/18/2006 14
7
8. Ho t ng (Activities)
Mô t m t công vi c trong ti n trình
Các ràng bu c tuy n tính áp t th t
th c hi n nh ng ho t ng này g i là
các lu ng i u khi n (control flow) trong
ti n trình
Phân lo i
T ng
Bán t ng
Th công
Software Process 9/18/2006 15
Vai trò (Roles)
T p các i tư ng có trách nhi m th c
hi n m t ho t ng c a m t ti n trình
nào ó.
Phân lo i:
Con ngư i
Tác t i di n (Software Agents)
Software Process 9/18/2006 16
8
9. S n ph m (Products ho c Artifacts)
Là nh ng s n ph m thông tin c n ư c
t o thành trong ti n trình ph n m m
(chương trình, mã ngu n, báo cáo, mô
hình thi t k ….)
Phân lo i
u vào (có s n)
u ra (k t qu )
Trung gian
Software Process 9/18/2006 17
Công c h tr (CASE Tools)
H tr th c hi n các ho t ng trong
ti n trình phát tri n ph n m m
H tr m t vài công o n ho c toàn b
các ho t ng trong ti n trình phát tri n
ph n m m
Software Process 9/18/2006 18
9
10. Ví d - Ti n trình ki m l i tài li u
Ho t ng: chu n b , tìm l i ….
S n ph m: tài li u ki m l i, ds l i …
Vai trò: tác gi tài li u, ngư i ki m l i …
Công c h tr (tuỳ thu c vào th hi n c a SP):
c tài li u: Notepad, Word, Visual Studio 6.0 …
Ghi nh n l i: Excel, CaseTools t thi t k …
Software Process 9/18/2006 19
M t ti n trình ph n m m hi u qu …
Cung c p các ch d n phát tri n m t cách hi u qu
m t ph n m m có ch t lư ng
Gi m thi u r i ro tăng kh năng ti n nh (trư ng
thành trong vi c phát tri n ph n m m)
N m gi và th hi n các kinh nghi m t t
H c t các kinh nghi m khác
N m v ng các ki n th c n n t ng
M r ng các tài li u hu n luy n
Nâng cao năng l c và t m nhìn trong phát tri n ph n
m m
Cung c p hư ng d n v cách dùng các công c h
tr m t cách hi u qu .
Chuy n t i thông tin tr c tuy n, ch d n chi ti t
Software Process 9/18/2006 20
10
11. M t ví d v ti n trình phát tri n PM
Trong m t
bư c l p, b n
i qua t t c
các workflow
Các Workflow
nhóm các công
vi c m t cách
logic
Software Process 9/18/2006 21
Các pha (phases) trong ti n trình ph n m m
c t ph n m m Tùy theo mô hình
Phát tri n, xây d ng chu kỳ s ng ph n
m m, các ho t ng
ph n m m
n y s ư c t ch c,
Xác nh n ph n phân rã, s p x p
m m th c hi n theo các th
Ti n hoá ph n m m t khác nhau…
Vi c t ch c d a trên các phương pháp lu n, k
thu t, kinh nghi m …
Software Process 9/18/2006 22
11
12. Cách t ch c các ho t ng
Software Life-Cycle Models
Software Process 9/18/2006 23
Phân bi t !!!
Software Process Models
Activities
Software Life Cycle Models
Thư ng phân bi t ti n trình phát tri n
ph n m m d a trên mô hình chu kỳ
s ng c a ph n m m (Software Life
Cycle Models)
Software Process 9/18/2006 24
12
13. M t s y u t phân bi t các mô hình chu
kỳ s ng
Theo phiên b n (Version)
Single-Version Model
Multi-Version Model
Theo hình th c t ch c
Waterfall Models (mô hình thác nư c)
Incremental Models (mô hình tăng trư ng)
Iterative Models (mô hình l p)
Software Process 9/18/2006 25
Phân bi t Incremental và Interative
Nghe có v tương t và th t s ôi khi
có m t s i m gi ng nhau
Khác bi t:
Incremental: s n ph m ư c b sung thêm
d n d n sau m i pha
Iterative: s n ph m ư c th c hi n l i sau
m i pha
M t s mô hình áp d ng c hai cách t
ch c này
Software Process 9/18/2006 26
13
14. M t ví d c th - Xây m t căn nhà
Incremental: b t u v i m t căn nhà
nh sau ó s thêm t ng phòng, t ng
phòng nâng c p căn nhà
Iterative: sau m i bư c l p, căn nhà
ư c tái thi t k và xây l i m i
Khác bi t:
Incremental: chúng ta có th s ng trong
su t th i gian xây d ng căn nhà
Iterative: chúng ta ph i “di chuy n” sang
căn nhà ư c xây d ng m i
Software Process 9/18/2006 27
3. M t s mô hình chu kỳ s ng PM
Big-Bang Model
Build-and-fix model
Waterfall model
Waterfall Model with “back flow”
Rapid prototyping model
Synchronize-and-stabilize model
Incremental Model
Iterative Model
Spiral model
Extreme programming and agile processes
Software Process 9/18/2006 28
14
15. Big-Bang Model
T ch c ơn gi n
Developer
nh n yêu c u
làm vi c c l p trong m t kho ng th i gian
xác nh
ưa k t qu
hy v ng tho mãn nhu c u ngư i dùng
Software Process 9/18/2006 29
Build-and-Fix Model
Implement the
1st Version
Modify until
client is
satisfied
Postdelivery
Maintenance
Development
Maintenance
Software Process 9/18/2006 30
15
16. Built-and-Fix Model (tt)
c trưng
Không l p k ho ch, không phân tích
Chương trình là s n ph m duy nh t
Ưu i m
Thích h p cho các ng d ng nh vi t b i 1
ngư i
Khuy t i m
Tính d hi u và d b o trì c a chương trình
gi m i nhanh chóng khi kích thư c
chương trình tăng
Software Process 9/18/2006 31
Waterfall Model
Requirements
Design
Implementation
Hoàn thành t ng pha, t ng pha m t và chuy n t i Pha Test
k ti p, không quay l i. (Cách chia Pha tuỳ vào t ch c)
Software Process 9/18/2006 32
16
17. Waterfall Model with “Back flow”
Requirements
Design
Implementation
Test
D a trên các v n Pha hi n t i, các hi u ch nh s
ư c th c hi n ngay Pha trư c ó
Software Process 9/18/2006 33
Waterfall Model
c trưng
Tuy t tính và tu n t
Không th quay l i
Yêu c u ph i ư c xác nh trư c
Ưu i m
Các c t m c xác nh rõ ràng
Ch m t ho t ng (Pha) t i m t th i i m
D dàng ánh giá ti n
Ti p c n d hi u
Software Process 9/18/2006 34
17
18. Waterfall Model (tt)
Khuy t i m
Khó có th xác nh h t các yêu c u t i th i i m
b t u d án, khách hàng ch làm vi c trong Pha
u r i ro cao
Yêu c u có th thay i:
o Th trư ng thay i
o K thu t thay i
o Nhu c u c a ngư i dùng thay i
B ng thi t k có th thay i trong khi cài t
không áp ng
S n ph m ư c hình thành cu i giai o n c a
ti n trình
Software Process 9/18/2006 35
“V“ Model
Requirements Acceptance
Analysis Test
System Design Integration
Test
Program Design Unit Test
Implementation
Software Process 9/18/2006 36
18
19. “V” model (tt)
c trưng
M i pha u có k t h p v i vi c ki m
ch ng
Ưu i m
Gi ng Waterfall, nhưng có ki m ch ng
thư ng xuyên s m phát hi n
Khuy t i m
Không uy n chuy n
Thích h p v i d án v a và nh
Software Process 9/18/2006 37
Synchronize-and-stabilize model
c trưng
Các nhóm làm vi c trên các Module c l p nhau
Thư ng xuyên ng b mã ngu n v i các nhóm
khác và hi u ch nh mã ngu n trong su t ti n trình
phát tri n
Ưu i m
Uuy n chuy n, cho phép hi u ch nh v i b t kỳ
thay i nào
Không nghiêm ng t như Waterfall Model
Khuy t i m
Ch thích h p v i các d án nh
Software Process 9/18/2006 38
19
20. Rapid prototyping model
Software Process 9/18/2006 39
Rapid prototyping model (tt)
c trưng
Dùng m u prototyping ban u giúp xác nh
yêu c u c a khách hàng (có th l p) sau ó K t
h p v i Waterfall
Luôn có ki m tra, ki m ch ng các pha
Ưu i m
Phát tri n nhanh (rapid)
Gi ng Waterfall: tuy n tính nhưng có ít ho c không
có feedback
Khuy t i m
Ch thích h p v i d án v a và nh
Software Process 9/18/2006 40
20
21. Incremental Model
Là m t d ng mô hình l p
Các yêu c u ư c xác nh trư c và x p lo i ưu tiên
Các YC có ưu tiên cao s ư c ưa vào vòng l p u
M i phiên b n phát hành ư c b sung thêm ch c năng m i
Software Process 9/18/2006 41
Incremental Model
Ưu i m
Có th th y s n ph m trong th i gian ng n
B ng c t yêu c u ban u có th dùng
trong h p ng ký k t
Th y ư c s n ph m tăng trư ng
Khuy t i m
Khó có th n m b t hoàn toàn yêu c u n u
không có kinh nghi m trong lĩnh v c
chuyên môn
Software Process 9/18/2006 42
21
22. Lo i Iterative Model
Là d ng mô hình l p
M i bư c l p phát sinh ra m t phiên b n
m i
Software Process 9/18/2006 43
Lo i Iterative Model
Ưu i m
Cho phép qu n lý r i ro t t
Nh ng phiên b n u có th g i ra nh ng yêu c u
cho các bư c l p sau
Th y ư c s ti n hóa c a s n ph m
V n có th ti p t c phát tri n sau khi phát hành
s n ph m
Các ti n trình Agile Process s d ng mô hình này
Khuy t i m
Ph m vi d án l n, t n chi phí qu n lý ti n trình
Software Process 9/18/2006 44
22
23. Spiral Model
Determine objectives
Evaluate alternatives
alternatives and
identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analysis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integration
Plan next phase test
Acceptance
Service test Develop, verify
next-level product
Software Process 9/18/2006 45
Spiral Model (tt)
Xác nh các r i ro
t ưu tiên cho các r i ro
Thi t l p các Prototype cho các r i ro ã xác
nh và b t u v i cái có ưu tiên cao nh t
S d ng mô hình Waterfall cho m i bư c phát
tri n Prototype
N u m t r i ro ư c gi i quy t thành công,
ánh giá k t qu và l p k ho ch cho vòng
(Prototype) k ti p
N u m t r i ro nào ó không gi i quy t ư c
k t thúc d án ngay l p t c
Software Process 9/18/2006 46
23
24. M t vài ví d v r i ro
Khách hàng không bi t chính xác nh ng
gì h mu n thay i có th x y ra
trong quá trình ti n hành
i ngũ nhân viên không có kinh nghi m
trong lĩnh v c chuyên môn (c a ng
d ng phát tri n) ho c không thích h p
v i các k thu t m i ư c dùng trong
d án
Software Process 9/18/2006 47
WinWin Spiral Model
Ngoài vi c phân tích r i ro
Xác nh “ i u ki n tho mãn khách hàng”
àm phán v i khách hành v i u ki n
tho mãn
Các bư c l p hư ng theo các “ i u ki n
th a mãn khách hàng”
Software Process 9/18/2006 48
24
25. Extreme programming
c trưng
Qui trình phát tri n nhanh, uy n chuy n
D a trên khái ni m “Stories” (nh ng tính năng
mà ngư i dùng mu n)
o Ư c lư ng th i gian và chi phí cho m i Story
o Ch n Story cho l n phát tri n k ti p
o Chi nh công vi c trong m i l n phát tri n
Công vi c cho 2 ngư i (Pair programming)
o Luôn ưa ra các trư ng h p ki m ch ng cho t ng
công vi c trư c khi th c hi n
o Vi c tích h p di n ra liên t c
Software Process 9/18/2006 49
Extreme programming
Spike : v n “gai góc”
Software Process 9/18/2006 50
25
26. Extreme programming
M ts c trưng khác
Khách hàng luôn hi n di n
Không có nhóm nào th c hi n công vi c quá 2
tu n
Không có s chuyên môn hóa (không phân vai trò)
Ưu i m
G n, uy n chuy n, phát tri n nhanh
Thích h p cho nh ng t ch c v a và nh
Software Process 9/18/2006 51
Agile processes
M t t p các hư ng ti p c n m i trong
vi c phát tri n ph n m m
c trưng
Không quan tr ng vi c phân tích thi t k
Cài t s m
o Ph n m m th c thi luôn quan tr ng hơn sưu
li u
S n sàng áp ng thay i
C ng tác ch t ch v i khách hàng
Software Process 9/18/2006 52
26
27. ánh giá Agile Processes và XP
H u d ng khi yêu c u m p m ho c có
kh năng thay i cao.
Chưa th t s chu n hóa có nhi u
cách ti p c n khi s d ng khó ánh
giá
Ý tư ng mang tính t phá
L p trình nhóm 2 (Pair Programming)
Software Process 9/18/2006 53
Khái ni m …- Driven
Document-Driven
Feature-Driven
UseCase-Driven
Function-Driven
Software Process 9/18/2006 54
27
28. M t s so sánh
Life-Cycle Model i m m nh i my u
Iterative and G n v i cách s n xu t ph n m m T n th i gian và nhân l c, chi
th c t hi n nay. D a trên n n phí qu n lý
incremental model t ng k t h p nhi u mô hình bên
dư i tăng an toàn
UseCase-Driven
Build and fix model T t cho các chương trinh nh và Không tho mãn cho các d án
không c n ph i b o trì l n
Waterfall model Cách ti p c n mang tính nguyên S n ph m có th không áp
t c, chu n. ng ư c nhu c u c a ngư i
Th y rõ tình tr ng d án dùng cu i.
Document-Driven
Rapid Prototyping m b o s n ph m tho mãn nhu Không thích h p cho các d án
c u ngư i dùng. l n
model
Function-Driven
Extreme programming Thích h p trong các trư ng h p Không thích h p cho các d án
yêu c u ngư i dùng mơ h và hay l n
model and Agile thay i.
Process
Software Process Feature-Driven
9/18/2006 55
T ng k t ph n (3)
M i mô hình u có ưu và khuy t i m
riêng
L a ch n mô hình thích h p d a trên:
Ph m vi c a t ch c
Trình qu n lý
K năng c a i ngũ nhân viên
Lo i s n ph m th c hi n
Có th k t h p s d ng nhi u mô hình
cùng lúc
Software Process 9/18/2006 56
28
29. 4. S h tr c a các chu n
Các chu n ISO
Các phương th c ánh giá
(CMMI,Bootstrap,SPICE…)
PSP
…
Software Process 9/18/2006 57
Chu n CMM
•Continuous Improvement
•Các h th ng quality control và qualify Optimized
ã ư c s d ng hi u qu
(Level 5)
•Có kh năng d oán (Predictability) Managed
•Các quy trình qu n lý và tiêu chu n
Risk
ư c chi ti t hóa (Level 4)
Defined •Xác l p các tiêu chu n qu n lý
•Các v n documentation ã xác l p
(Level 3)
Competitiveness
Repeatable
(Level 2) •B t u có kh năng qu n lý
•Qu n lý d a vào kinh nghi m tương
t
Initial
•Largely Ad-hoc
(Level 1) •Ph thu c vào cá nhân
Software Process 9/18/2006 58
29
30. Gi i thi u qui trình RUP
Software Process 9/18/2006 59
K t lu n
Ti n trình ph n m m r t ph c t p, òi
h i nhi u s c ng tác
không như các ngành công ngh khác,
ti n trình ph n m m l i không xác nh
ch c ch n và có nhu c u ti n hóa cao.
ng d ng/v n hành ti n trình tr nên r t
khó ki m soát, khó t hi u qu , nh t là
khi quy mô c a ti n trình l n..
Software Process 9/18/2006 60
30
31. K t thúc
C m ơn quý v ã quan tâm
theo dõi !
Thông tin liên h : lqvu@fit.hcmuns.edu.vn
TpHCM, 6/2005
31