PH N I: GI I THI U CHUNG
V CÔNG NGH PH N M M
I B n ch t ph n m m
II Nh ng v n đ trong phát tri n ph n
m m
III Quy trình phát tri n ph n m m
1
PH N I: GI I THI U CHUNG
V CÔNG NGH PH N M M
I B n ch t ph n m m
1 nh ngh a chung ộ ph n m m
2 Ki n trúc ph n m m
3 Các khái ni m
4 c tính chung c a ph n m m
5 Th nào là ph n m m t t ?
6 Các ng d ng ph n m m
II Nh ng v n đ trong phát tri n ph n m m III Quy trình phát tri n ph n m m
2
• Ph n m m (Software - SW) nh m t khái ni m
đ i ngh a v i ph n c ng (Hardware - HW), tuy
nhiên, đây là 2 khái ni m t ng đ i
• T x a, SW nh th đ c cho không ho c bán
kèm theo máy (HW)
• D n d n, giá thành SW ngày càng cao và nay cao
h n HW
3
Cức đ c tính c a SW và HW
Hardware
• V t “c ng”
• Kim lo i
• V t ch t
• H u hình
• S n xu t công nghi p
b i máy móc là chính
• H ng hóc, hao mòn
Software
• V t “m m”
• K thu t s d ng
• Tr u t ng
• Vô hình
• S n xu t b i con
ng i là chính
• nh tính là chính
• Không hao mòn
4
nh ngh a 1
• IEEE: Computer programs, procedures, and possibly
associated documentation and data pertaining to the
operation of a computer system
• Ph n m m là
– Các l nh (ch ng trình máy tính) khi đ c th c hi n thì
cung c p nh ng ch c n ng và k t qu mong mu n
– Các c u trúc d li u làm cho ch ng trình thao tác thông
tin thích h p
– Các t li u mô t thao tác và cách s d ng ch ng trình
5
SW đ i ngh a v i HW
• Vai trò SW ngày càng th hi n tr i
• Mứy tính là chi c h p không có SW
• Ngày nay, SW quy t đ nh ch t l ng m t h
th ng mứy tính (HTMT), là ch đ c t lõi, trung tâm c a HTMT
• H th ng mứy tính g m HW và SW
6
Trang 2nh ngh a 2
• Trong m t h th ng máy tính, n u tr b đi các
thi t b và các lo i ph ki n thì ph n còn l i chính
là ph n m m (SW)
• Ngh a h p: SW là d ch v ch ng trình đ t ng
kh n ng x lý c a ph n c ng c a máy tính (nh
h đi u hành - OS)
• Ngh a r ng: SW là t t c các k thu t ng d ng
đ th c hi n nh ng d ch v ch c n ng cho m c
đích nào đó b ng ph n c ng
7
SW theo ngh a r ng
• Không ch SW c b n và SW ng d ng
• Ph i g m c kh n ng, kinh nghi m th c ti n và
k n ng c a k s (ng i ch ra ph n m m): K
n ng c a k s ph m m m (Know-how of Software Engineer)
• Là t t c các k thu t làm cho s d ng ph n
c ng máy tính đ t hi u qu cao
8
Ph n m m là gì ?
9
Nhóm các
K thu t,
Ph ng pháp
lu n
Nhóm các
ch ng trình Nhóm các t li u
Kinh nghi m k s ,
k n ng
• Các khái ni m và trình t
c th hóa m t h th ng
• Các ph ng pháp ti p c n
gi i quy t v n đ
• Các trình t thi t k và phát tri n đ c chu n hóa
• Các ph ng pháp đ c t yêu c u, thi t k h
th ng, thi t k ch ng trình, ki m th , toàn b quy trình qu n lý phát tri n ph n m m
Ph n m m là gì ?
10
Nhóm các
K thu t,
Ph ng pháp
lu n
Nhóm các
ch ng trình Nhóm các t li u
Kinh nghi m k s ,
k n ng
• Là ph n giao di n v i
ph n c ng, t o thành t các nhóm l nh ch th cho máy tính bi t trình t thao tác x lý d li u
• Ph n m m c b n: v i
ch c n ng cung c p môi
tr ng thao tác d dàng cho ng i s d ng nh m
t ng hi u n ng x lý c a
ph n c ng (ví d nh OS
là ch ng trình h th ng)
• Ph n m m ng d ng:
dùng đ x lý nghi p v thích h p nào đó (qu n lý,
k toán, ), ph n m m đóng gói, ph n m m c a
ng i dùng,
Ph n m m là gì ?
11
Nhóm các
K thu t,
Ph ng pháp
lu n
Nhóm các
ch ng trình Nhóm các t li u
Kinh nghi m k s ,
k n ng
• Nh ng t li u h u ích, có giá tr cao và r t c n thi t
đ phát tri n, v n hành và
b o trì ph n m m
• ch ra ph n m m v i
đ tin c y cao c n t o ra các t li u ch t l ng cao:
đ c t yêu c u, mô t thi t k t ng lo i, đi u
ki n ki m th , th t c v n hành, h ng d n thao tác
Ph n m m là gì ?
12
Nhóm các
K thu t,
Ph ng pháp
lu n
Nhóm các
ch ng trình Nhóm các t li u
Kinh nghi m k s ,
k n ng
• Ph n m m ph thu c nhi u vào ý t ng (idea)
và k n ng (know-how)
c a ng i/nhóm tức gi
• Kh n ng h th ng hóa tr u t ng
• Kh n ng l p trình
• K n ng công ngh
• Kinh nghi m làm vi c
• T m bao quứt
•
Trang 32 Ki n trúc ph n m m
H th ng con H th ng con
Ch ng trình Ch ng trình
trình con
các file chính
(master files)
file t m th i
Tham s Tham s
n v công vi c
n v b c công vi c
n v thành viên (Member unit) Module chung
(Common module)
Ph n m m Nhìn t ph ng di n c u trúc
• C u trúc ph n
m m:
– ki n trúc các
ch c n ng
mà ph n
m m đó có – đi u ki n phân c p các
ch c n ng
• Thi t k ch c
n ng
– Theo chi u
đ ng: càng sâu càng
ph c t p – Theo chi u ngang: càng
r ng càng nhi u ch c
n ng, qui mô càng l n
System
Program Program
Ch c n ng A
Ch c n ng D
Ch c n ng F
Ch c n ng E
C u trúc chi u ngang (Horizontal structure)
Ph n m m
Nhìn t ph ng di n th t c
• Quan h th t
gi a các thành
ph n c u thành
ph n m m
• Thu t toán v i
nh ng phép l p,
r nhánh, đi u khi n lu ng x lý (quay lui hay b qua)
• C u trúc lôgic
bi u th t ng ch c
n ng có trong
ph n m m và trình t th c hi n chúng
• Thi t k c u trúc
tr c r i sang
ch c n ng
15
H th ng
con
Các file chính
Master files
Các file
t m th i
Tham s Tham s
Module chung (Common Module)
T ph ng pháp lu n ph n
m m sang k thu t ph n m m
• Khi ch tác ph n m m c n nhi u
ph ng pháp:
– Ph ng pháp lu n (Methodology): nh ng chu n m c c b n đ ch t o ph n m m
v i các ch tiêu đ nh tính – Các ph ng pháp k thu t (Techniques):
nh ng trình t c th đ ch t o ph n m m
và là cách ti p c n khoa h c mang tính
đ nh l ng
16
T ph ng pháp lu n ph n m m sang
k thu t ph n m m
Môđun
Tinh ch nh t ng
b c
Tr u t ng hóa
Che gi u t.tin
Phân tích c u trúc Thi t k c u trúc
L p trình c u trúc
D li u tr u t ng
H ng đ i t ng
Khứi ni m ph n m m
17
3.1 Tính module (Modularity)
• Là kh n ng phân chia ph n
m m thành các module ng
v i các ch c n ng, đ ng th i cho phép qu n lý t ng th : khái ni m phân chia và tr n (partion and merge)
• Hai ph ng pháp phân chia module theo chi u – Theo chi u sâu – Theo chi u r ng
• Quan h gi a các môđun ? qua các đ i s (arguments)
Tính đ c
l p kém
d n
i u khi n
ph c t p
d n
SW Phân chia chi u r ng
C u trúc r ng chi u ngang
18
Trang 43.2 Tinh ch nh t ng b c
(Step refinement)
• Cách ti p c n t trên xu ng (top-down approach)
Ngôn ng
ch ng trình
Chi
ti t
hóa
d n
t ng
Th gi i bên ngoài
c t yêu c u
Tr u t ng hóa m c cao:
Th gi i bên ngoài,
tr ng thái ch a rõ ràng
Tr u t ng hóa m c trung gian:
Xức đ nh yêu c u và đ c t
nh ng đ nh ngh a yêu c u
Tr u t ng hóa m c th p:
T ng l nh c a ch ng trình đ c
vi t b i ngôn ng th t c nào đó
19
Ví d : Trình t gi i quy t v n đ t m c thi t k ch ng trình đ n m c l p trình
• Bài toán: t m t nhóm N s khác nhau t ng d n, hãy tìm s có giá tr b ng K (nh p t ngoài vào)
và in ra v trí c a nó
• Gi i t ng b c t khái ni m đ n chi ti t hóa t ng câu l nh b i ngôn ng l p trình nào đó
• Ch n gi i thu t tìm ki m nh phân (pp nh phân)
20
C th hóa th t c qua cức ch c n ng
21
Bài toán đã cho Nh p giá tr K
Nh n giá tr nhóm N s
Tìm ki m giá tr (pp nh phân)
In ra v trí (n u có)
C th hóa b c ti p theo
22
Tìm ki m giá tr (pp nh phân) Xác l p ph m vi m ng s
L p l i x lý tìm ki m giá tr K trong
ph m vi tìm ki m
Tìm v trí gi a phân đôi m ng
So sánh K v i giá tr gi a
t l i ph m vi tìm ki m
L p l i tìm ki m K trong ph m vi tìmki m
M c mô t ch ng trình (b ng PDL)
B t u
c K
Nh n giá tr cho m ng 1 chi u A(I), (I =1, 2, ,.N)
MIN = 1
MAX = N
DO WHILE (Có giá tr b ng K không, cho đ n khi MIN > MAX)
L y MID = (MIN + MAX) / 2
IF A(MID) > K THEN
MAX = MID - 1
ELSE
IF A(MID) < K THEN
MIN = MID + 1
ELSE
In giá tr MID
ENDIF
ENDIF
ENDDO
Câu h i
Làm th nào đ đ nh ngh a c u trúc c a m t
h th ng đ c thi t k
d a trên các module?
âu là các đ c tính c n
có c a c u trúc này?
…
H th ng
M2
M1
Mn
Mn-1
Trang 53.3 Che gi u thông tin
(Information hiding) [Parnas72]
• Các module nên đ c đ c tr ng b i nh ng quy t
đ nh thi t k (design decision) sao cho m i
môđun đ u là bí m t đ i v i các module khác
• R t h u ích cho ki m th và b o trì ph n m m
25
3.3 Che gi u thông tin (Information hiding) [Parnas72]
C đ nh t t c các quy t
đ nh thi t k (design decision) có kh n ng b thay đ i
Gán m i quy t đ nh thi t
k vào m t module m i;
lúc này quy t đ nh thi t k
s là ph n bí m t c a module (module secret) Thi t k giao di n c a
module (module interface), giao di n này
s không thay đ i khi
ph n bí m t c a module thay đ i
…
H th ng
design decision
quy t đ nh thi t k
quy t đ nh thi t k
design decision
design decision
quy t đ nh thi t k
quy t đ nh thi t k design decision M1
Mn Mn-1
M2
Giao
di n
Module
Các tài nguyên c n xu t ra:
ki u d li u, bi n, thu c tính, hàm, s ki n, ngo i l , v.v
Ng i
dùng
3.3 Che gi u thông tin
(Information hiding) [Parnas72]
Bí m t
Cài đ t các tài nguyên c n xu t ra
interface Bicycle { void changeCadence (int newValue);
void changeGear(int newValue);
void speedUp(int increment);
void applyBrakes(int decrement);
}
class Bike implements Bicycle { }
class Motor-Bike implements Bicycle { }
3.4 Tr u t ng hóa (Abstraction)
• Cho phép t p trung xem xét v n đ m c t ng quát, g t đi nh ng chi ti t m c th p ít liên quan
• 3 m c tr u t ng – Tr u t ng th t c: dãy các ch th v i ch c n ng đ c thù và gi i h n nào đó
– Tr u t ng d li u: t p h p d li u mô t đ i t ng d
li u nào đó – Tr u t ng đi u khi n: C ch đi u khi n ch ng trình không c n đ c t nh ng chi ti t bên trong
• Ví d : M c a Th t c: M g m ; D li u:
C a là
28
• Là hàng hóa vô hình, không nhìn th y
đ c
• Ch t l ng ph n m m: không mòn đi
mà có xu h ng t t lên sau m i l n có
l i (error/bug) đ c phứt hi n và s a
• Ph n m m v n ch a l i ti m tàng,
theo quy mô càng l n thì kh n ng
ch a l i càng cao
• L i ph n m m d đ c phứt hi n b i
ng i ngoài
29
• Ch c n ng c a ph n m m th ng bi n hóa, thay
đ i theo th i gian (theo n i s d ng)
• Hi u ng làn sóng trong thay đ i ph n m m
• Ph n m m v n ch a ý t ng và sứng t o c a tức
gi /nhóm làm ra nó
• C n kh n ng “t duy nh phân” trong xây d ng, phứt tri n ph n m m
• Có th sao chép r t đ n gi n
30
Trang 65 Th nào là ph n m m t t ?
31
Hi u su t x lý
Cức ch tiêu c b n Tính d hi u
Th i gian (Ph n c ng phát tri n)
Y u
t
khái
ni m
ph n
m m
t t
c
tr ng
g n đây
5.1 Cức ch tiêu c b n
• Ph n ứnh đúng yêu c u ng i dùng (tính hi u qu - effectiveness)
• Ch a ít l i ti m tàng
• Giứ thành không v t quứ giứ c
l ng ban đ u
• D v n hành, s d ng
• Tính an toàn và đ tin c y cao
32
5.2 Hi u su t x lý cao
• Hi u su t th i gian t t (efficiency):
– ph c t p tính toứn th p (Time complexity)
– Th i gian quay vòng ng n (Turn Around Time: TAT)
– Th i gian h i đứp nhanh (Response time)
• S d ng tài nguyên h u hi u: CPU, RAM, HDD,
Internet resources,
33
5.3 D hi u
• Ki n trúc và c u trúc thi t k d hi u
• D ki m tra, ki m th , ki m ch ng
• D b o trì
• Có tài li u (mô t yêu c u, đi u ki n ki m th ,
v n hành, b o trì, FAQ, ) v i ch t l ng cao
34
Ví d c th ???
• Ph n m m h th ng (System SW)
• Ph n m m th i gian th c (Real-time SW)
• Ph n m m nghi p v (Business SW)
• Ph n m m tính toán KH&KT (Engineering
& Science SW)
• Ph n m m nhúng (Embedded SW)
• Ph n m m máy cá nhân (Personal
computer SW)
• Ph n m m trên Web (Web-based SW)
• Ph n m m trí tu nhân t o (Artificial
Intelligent SW)
35
Phân lo i ph n m m
36
Ph n m m
Ph n m m
h th ng Ph n m m ng d ng
H đi u hành
Ph n m m nghi p v
Ph n m m tính toán KHKT
Ph n m m nhúng
Ph n m m trên web
Ch ng trình
ti n ích
Ch ng trình
th vi n
Ch ng trình
d ch
Ph n m m m c đích chung
Ph n m m m c đích đ c bi t
Ph n m m x lý
v n b n
Ph n m m đ t hàng
Trang 7Bài t p v nhà:
Phân bi t cức khứi ni m sau
• H th ng, ph n m m, ng d ng
• L p trình, phứt tri n ph n m m
• L p trình viên và k s ph n m m
37
PH N I: GI I THI U CHUNG
V CÔNG NGH PH N M M
I B n ch t ph n m m
II Nh ng ộ n đ trong phát tri n ph n
m m
1 Kh ng ho ng ph n m m là gì ?
2 Nh ng khó kh n trong s n ớu t ph n
m m
III Quy trình phát tri n ph n m m (CNPM)
38
M t s y u t
• Ph n m m càng l n s kéo theo ph c t p hóa và
t ng chi phí phứt tri n
• Công s c cho b o trì càng t ng thì chi phí cho
Backlog càng l n
• Nhân l c ch a đứp ng đ c nhu c u ph n m m
• Nh ng phi n hà c a ph n m m gây ra nh ng v n
đ xã h i
39
2 Nh ng v n đ trong phát tri n ph n
m m
• Ví d :
40
2 Nh ng khó kh n trong s n xu t
ph n m m
• Không có ph ng pháp mô t rõ ràng đ nh ngh a yêu c u c a ng i
dùng (khách hàng)
Sau khi bàn giao s n ph m d phát sinh nh ng tr c tr c
(troubles)
• V i nh ng ph n m m quy mô l n, t li u đ c t đã c đ nh th i gian
dài
Khó đáp ng nhu c u thay đ i c a ng i dùng m t cách k p
th i trong th i gian đó
• Ph ng pháp lu n thi t k không nh t quán
Thi t k theo cách riêng (c a công ty, nhóm), thì s d n đ n
suy gi m ch t l ng ph n m m (do ph thu c quá nhi u vào
con ng i)
• Không có chu n v vi c t o t li u quy trình s n xu t ph n m m
c t không rõ ràng s làm gi m ch t l ng ph n m m
41
2 Nh ng khó kh n trong s n xu t
ph n m m
• Không ki m th tính đúng đ n c a ph n m m t ng giai
đo n mà ch ki m giai đo n cu i và phát hi n ra l i
th ng bàn giao s n ph m không đúng h n
• Coi tr ng vi c l p trình h n khâu thi t k
gi m ch t l ng ph n m m
• Coi th ng vi c tái s d ng ph n m m (software reuse)
gi m n ng su t lao đ ng
• Ph n l n các thao tác trong quy trình phát tri n ph n m m
do con ng i th c hi n
gi m n ng su t lao đ ng
• Không ch ng minh đ c tính đúng đ n c a ph n m m
gi m đ tin c y c a ph n m m
42
Trang 8Nh ng v n đ trong s n xu t ph n
m m (ti p)
• Chu n v m t ph n m m t t không th đo đ c m t cách đ nh l ng
Không th đánh giá đ c m t h th ng đúng đ n hay không
• u t nhân l c l n vào b o trì
gi m hi u su t lao đ ng c a nhân viên
• Công vi c b o trì kéo dài
gi m ch t l ng c a t li u và nh h ng x u đ n nh ng
vi c khác
• Qu n lý d án l ng l o
q u n lý l ch trình s n xu t ph n m m không rõ ràng
• Không có tiêu chu n đ c l ng nhân l c và d toán
làm kéo dài th i h n và v t kinh phí c a d án
43
PH N I: GI I THI U CHUNG
V CÔNG NGH PH N M M
I B n ch t ph n m m
II Nh ng v n đ trong phát tri n ph n
m m
III.Quy trình phát tri n ph n m m
1 S ti n tri n c a các ph ng pháp thi t k ph n m m
2 nh ngh a Công ngh h c ph n m m
3 Vòng đ i c a ph n m m
4 M t s quy trình phát tri n ph n m m
44
1 S ti n tri n c a cức ph ng phứp
thi t k ph n m m
45
Ít quan tâm t i
ph n m m
T p trung nâng
cao tính n ng
và đ tin c y
c a ph n c ng
Phát tri n h đi u hành nh ph n m m l n (IBM OS/360, EC OS)
Xu t hi n nhu c u v quy trình phát tri n ph n m m l n và quy trình
g l i, ki m th trong ph m vi gi i h n
Chính sứch phân bi t giứ c gi a ph n c ng và ph n m m (IBM)
Nghiên c u c b n v ph ng phứp lu n l p trình
Xu t hi n khứi ni m “Software Engineering” (1968)
B t đ u bàn lu n v kh ng kho ng ph n m m và xu h ng hình
thành CNHPM nh m t chuyên môn riêng
1 S ti n tri n c a cức ph ng phứp thi t k ph n m m
46
Nghiên c u v l p trình, ki m th , đ m
b o tính tin c y trong quy trình s n
xu t ph n m m
K thu t: l p trình
c u trúc hóa, l p trình môđun, thi t
k c u trúc hóa, vv
H i ngh qu c t đ u tiên
v CNHPM đ c t ch c (1975): International Conference on SE (ICSE) Quan tâm đ n m i pha trong quy trình phứt tri n
ph n m m, nh ng t p trung chính nh ng pha đ u
ICSE t ch c l n 2, 3 và 4 vào 1976, 1978 và 1979
ph n m m” t n m 1981
Cu c “cứch tân s n xu t ph n m m” đã b t đ u trên
ph m vi cức n c công nghi p
1 S ti n tri n c a cức ph ng phứp
thi t k ph n m m
47
Trình đ h c v n và ng
cao, cức công ngh đ c
chuy n vào th c t Xu t
hi n cức s n ph m ph n
m m và cức công c khức
nhau làm t ng n ng su t
s n xu t ph n m m đứng
k
ICSE t ch c l n 5 và 6
n m 1981 và 1982 v i
trên 1000 ng i tham d
m i n m
Nh t B n sang “K ho ch
phứt tri n cức k thu t
b o trì ph n m m”
(1981-1985)
T h c v n sang nghi p v !
Ch t l ng ph n m m t p trung ch y u tính n ng su t,
đ tin c y và tính b o trì Nghiên c a h tr t đ ng hóa s n
xu t ph n m m
Nh t B n: SIGMA: Software Industrialized Generator &
Maintenance Aids, 1985-1990 Nhi u trung tâm, vi n nghiên c u CNHPM ra đ i Cức tr ng
đ a vào gi ng d y SE
Công nghi p hóa s n xu t ph n m m
b ng cách đ a nh ng k thu t công ngh khoa h c c a CNHPM
Th ch hóa lý lu n trong s n xu t ph n
m m và ng d ng nh ng ph ng pháp
lu n m t cách nh t quán
T ng c ng nghiên c u và t o công c
tr giúp s n xu t ph n m m
Hình thứi s n xu t Ph n m m
48
a ra các k thu t, ph ng pháp lu n
ng d ng th c t vào t ng quy trình
C i biên, bi n đ i vào t ng s n ph m và công c ph n m m (máy tính hóa t ng ph n)
T ng h p, h th ng hóa cho t ng lo i công c (Máy tính hóa toàn b quy trình s n xu t ph n m m)
Trang 92 Công ngh ph n m m (Software
Engineering)
• Bauer [1969]: CNPM là vi c thi t l p và s d ng
các nguyên t c công ngh h c đúng đ n dùng đ
thu đ c ph n m m m t 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
• Parnas [1987]: CNPM là vi c xây d ng ph n m m
nhi u phiên b n b i nhi u ng i
• Ghezzi [1991]: CNPM là m t l nh v c c a khoa
h c máy tính, liên quan đ n xây d ng các h
th ng ph n m m v a l n v a ph c t p b i m t
hay m t s nhóm k s
49
2 Công ngh ph n m m (Software Engineering)
• IEEE [1993]: CNPM là – (1) vi c áp d ng ph ng pháp ti p c n có h th ng, bài
b n và đ c l ng hóa trong phát tri n, v n hành và
b o trì ph n m m;
– (2) nghiên c u các ph ng pháp ti p c n đ c dùng trong (1)
• Pressman [1995]: CNPM là b môn tích h p c quy 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
50
2 Công ngh ph n m m (Software
Engineering)
• Sommerville [1995]: CNPM là l nh v c liên quan
đ n lý thuy t, ph ng pháp và công c dùng cho
phát tri n ph n m m
• K Kawamura [1995]: CNPM là l nh v c h c v n
v các k thu t, ph ng pháp lu n công ngh
h c (lý lu n và k thu t đ c hi n th c hóa trên
nh ng nguyên t c, nguyên lý nào đó) trong toàn
b quy trình phát tri n ph n m m nh m nâng
cao c ch t và l ng c a s n xu t ph n m m
51
2 Công ngh ph n m m (Software Engineering)
• Công ngh ph n m m là l nh v c khoa h c v các
ph ng pháp lu n, k thu t và công c tích h p trong quy trình s n xu t và v n hành ph n m m
nh m t o ra ph n m m v i nh ng ch t l ng mong mu n
[Software Engineering is a scientific field to deal with methodologies, techniques and tools integrated in software production-maintenance process to obtain software with desired qualities]
52
Công ngh trong CNPM ?
• Nh các ngành công ngh h c khác, CNPM c ng
l y các ph ng pháp khoa h c làm c s
• Các k thu t v thi t k , ch t o, ki m th và
b o trì ph n m m đã đ c h th ng hóa thành
ph ng pháp lu n và hình thành nên CNPM
• Toàn b quy trình qu n lý phát tri n ph n m m
g n v i khái ni m vòng đ i ph n m m, đ c mô
hình hóa v i nh ng k thu t và ph ng pháp
lu n tr thành các ch đ khác nhau trong CNPM
53
Công ngh trong CNPM ? (ti p)
• Trong vòng đ i ph n m m không ch có ch t o
mà bao g m c thi t k , v n hành và b o d ng (tính quan tr ng c a thi t k và b o d ng)
• Trong khái ni m ph n m m, không ch có ch ng trình mà c t li u v ph n m m
• Cách ti p c n công ngh (khái ni m công nghi p hóa) th hi n ch nh m nâng cao n ng su t (tính n ng su t) và đ tin c y c a ph n m m,
đ ng th i gi m chi phí giá thành
54
Trang 10Vòng đ i ph n m m
• Vòng đ i ph n m m là th i k tính t
khi ph n m m đ c sinh (t o) ra cho
đ n khi ch t đi (t lúc hình thành đứp
ng yêu c u, v n hành, b o d ng cho
đ n khi lo i b không đâu dùng)
• Quy trình ph n m m (vòng đ i ph n
m m) đ c phân chia thành các pha
chính: phân tích, thi t k , ch t o,
ki m th , b o trì Bi u di n các pha có
khác nhau theo t ng ng i
55
Cức ph ng phứp lu n và k thu t cho
t ng pha
thu t
Xác đ nh yêu c u Xác đ nh yêu c u ph n m m c t yêu c u ng i dùng Phân tích c u trúc hóa Thi t k
h th ng Thi t k c b n ph n m m Thi t k c u trúc ngoài c a ph n m m Thi t k c u trúc hóa Thi t k
ch ng trình
Là thi t k chi ti t: Thi t k c u trúc bên trong c a ph n m m (đ n v
ch ng trình ho c môđun)
L p trình c u trúc
Ph ng phứp Jackson
Ph ng phứp Warnier
m b o
ch t l ng Ki m tra ch t l ng ph n m m đã phứt tri n Ph ng phứp ki m th ch ng trình
V n hành
B o trì
S d ng, v n hành ph n m m đã phát tri n
3.4 Quy trình phát tri n ph n m m
Khung quy trình chung (Common process framework)
Các ho t đ ng giám sát, đánh giá k thu t, đ m b o ch t
l ng ph n m m, qu n lý c u hình, qu n lý r i ro,
(Umbrella activities)
Ho t đ ng khung (Framework activities)
T p tác v (Task sets)
Tác v (Tasks)
i m quan tr ng
(milestones),s n ph m chuy n
giao (deliverables)
i m Ki m Tra Ch t L ng
(SQA points)
57
Phases
Lu ng công vi c ti n trình (Process Workflows)
Các vòng l p
Quy trình h tr Môi tr ng qu n lý
Mô hình nghi p v
Cài đ t
Ki m th
Phân tích và thi t k
Preliminary Iteration(s) Iter
#1 Iter
#2 Iter
#n Iter
#n+1 Iter
#n+2 Iter
#m Iter
#m+1
Tri n khai
Qu n lý c u hình
Yêu c u
Elaboration Transition Inception Construction
Các dòng công vi c
M t vòng l p
58
4.1 Capability Maturity Model (CMM
by SEI): Mô hình kh n ng thu n th c
59
T i sao ph i s d ng mô hình CMM trong
công ngh làm ph n m m?
• Khó kh n khi không
s d ng CMM • Thu n l i khi s d ng CMM
• Các ti n trình ph n m m
th ng b thay đ i c p
nh t mà không có s
chu n b tr c
• c t m t ti n trình ph n
m m không ch t ch , d n
đ n s kh ng ho ng khi
th c hi n m t d án
• Thi u c s đ đứnh giá
ch t l ng ph n m m, đ
đ a ra ph ng th c ti n
hành và cách gi i quy t
các v n đ phát sinh
• D dàng qu n lý phát tri n
ph n m m Các ti n trình đ c
c p nh t qua s đi u khi n
c a các nhà ph n tích và ki m
th
• Vai trò, trách nhi m c a m i thành viên trong các ti n trình
đ c phân đ nh rõ ràng
• Qu n lý ch t l ng c a ph n
m m, tho mãn các yêu c u khách hàng Có c s chu n xác đứnh giá ch t l ng, th i gian, chi phí và phân tích d
án và các ti n trình
Các khái ni m
• Ti n trình (Process) – M t ti n trình ph n m m là m t t p h p các hành đ ng, ph ng th c, th c hành, thay đ i
mà ng i ta dùng đ duy trì và phát tri n
ph n m m c ng nh các thành ph n liên quan
t i chúng (ví d : k ho ch d án, thi t k , l p trình, ki m th , tài li u h ng d n )
• Kh n ng ti n trình ph n m m (Software Process Capability) – Cho bi t ph m vi k t qu có th mong đ i c a
m t ti n trình ph n m m
– D đoứn kh n ng làm d án ph n m m ti p theo c a công ty
60