8/26/2013
PH N I: GI I THI U CHUNG
V CÔNG NGH PH N M M
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 ?
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
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
1
1.
nh ngh a chung v ph n m m
• 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
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
•
nh l ng 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
3
nh ngh a 1
4
SW đ i ngh a v i HW
• 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
• 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
1
8/26/2013
nh ngh a 2
SW theo ngh a r ng
• 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
• 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
7
Ph n m m là gì ?
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
8
Ph n m m là gì ?
• 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
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, . . .
9
Ph n m m là gì ?
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
10
Ph n m m là gì ?
• 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
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
• 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
• ...
12
2
8/26/2013
Ph n m m
Nhìn t ph
2. Ki n trúc ph n m m
• Phân c p
H th ng con
Ch
ng trình
file t m th i
các file chính
(master files)
Ch
n v công vi c
H th ng con
nv b c
công vi c
ng trình
Module
Tham s
Module
Tham s
Ch ng
trình con
Ph n m m
Nhìn t ph
Ch
ng trình
Module
Các file
t m th i
Tham s
Ch
•
H th ng con
•
ng trình
Module
Tham s
Ch
ng trình
con
•
Module chung
(Common Module)
–
•
Program
Ch
c n ng E
ChModule
c n ng F
ChModule
c n ng G
Thi t k ch c
n ng
–
ChSubroutine
c n ng H
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
–
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
T ph ng pháp lu n ph n
m m sang k thu t ph n m m
•
Các file chính
Master files
Subsystem
Ch c n ng C
ng di n th t c
H th ng con
Subsystem
Ch
c n ng B
C u trúc chi u ngang
(Horizontal structure)
H th ng
C u trúc ph n
m m:
–
Program
Ch
c n ng D
n v thành viên
(Member unit)
Module chung
(Common module)
•
System
Ch
c n ng A
C u trúc chi u đ ng
(Vertical structure)
H th ng
ng di n c u trú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
• 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
15
T ph ng pháp lu n ph n m m sang
k thu t ph n m m
Môđun
ng hóa
Che gi u t.tin
Khứi ni m ph n m m
• 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
Phân tích c u trúc
Thi t k c u trúc
L p trình c u trúc
D
H
li u tr u t
ng đ i t
– Theo chi u sâu
– Theo chi u r ng
ng
• Quan h gi a các môđun ?
qua các đ i s (arguments)
ng
17
C u trúc r ng chi u ngang
SW
Phân chia chi u r ng
Tính đ c
l p kém
d n
Phân chia chi u sâu
Tr u t
3.1 Tính module
(Modularity)
C u trúc sâu chi u đ ng
Tinh ch nh t ng
b c
16
i u khi n
ph c t p
d n
18
3
8/26/2013
3.2 Tinh ch nh t ng b
(Step refinement)
• Cách ti p c n t
Th gi i bên ngoài
c
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
trên xu ng (top-down approach)
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
Chi
ti t
hóa
c t yêu c u
d n
t ng
b c
Ngôn ng
ch ng trình
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
• 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)
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
C th hóa b
C th hóa th t c qua cức ch c n ng
Bài toán đã cho
20
Tìm ki m giá tr
(pp nh phân)
Nh p giá tr K
c ti p theo
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
Nh n giá tr nhóm N s
L p l i tìm ki m K
trong ph m vi tìmki m
Tìm ki m giá tr (pp nh phân)
Tìm v trí gi a phân đôi m ng
So sánh K v i giá tr gi a
In ra v trí (n u có)
t l i ph m vi tìm ki m
21
M c mô t ch
Câu h i
ng trình (b ng PDL)
u
cK
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
K tThềc
22
B t
M1
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?
M2
…
Mn-1
âu là các đ c tính c n
có c a c u trúc này?
Mn
H th ng
23
4
8/26/2013
3.3. Che gi u thông tin
(Information hiding) [Parnas72]
3.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
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
quy t đ nh
thi t k
design
decision
1
M
quy t đ nh
thi t k
design
decision
M2
…
design
decisionn-1
M
quy t đ nh
thi t k
quy t đ nh
thi t k
design
decision
n
M
H th ng
25
3.3. Che gi u thông tin
(Information hiding) [Parnas72]
Ng i
dùng
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..
interface Bicycle {
void changeCadence (int newValue);
void changeGear(int newValue);
void speedUp(int increment);
void applyBrakes(int decrement);
}
Giao
di n
Bí m t
Module
3.4. Tr u t ng hóa
(Abstraction)
Cài đ t các tài
nguyên c n xu t ra
class Bike implements Bicycle {
}
class Motor-Bike implements Bicycle {
}
• 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
C a là . . .
li u:
28
4.
• 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
c tính chung c a ph n m m
• 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
5
8/26/2013
5.1. Cức ch tiêu c b n
5. Th nào là ph n m m t t ?
Y u
t
khái
ni m
ph n
m m
t t
Hi u su t x lý
Tính d hi u
• 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
c
tr ng
g n
đây
Cức ch tiêu c b n
Th i gian
(Ph n c ng phát tri n)
31
5.2. Hi u su t x
32
5.3. D hi u
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, . . .
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
Tính d hi u: ch tiêu ngày càng quan tr ng
33
34
Phân lo i ph n m m
Ví d c th ???
Ph n m m
• Ph n m m h th ng (System SW)
Ph n m m
h th ng
• Ph n m m th i gian th c (Real-time SW)
• Ph n m m nghi p v (Business SW)
H đi u hành
• Ph n m m tính toán KH&KT (Engineering
& Science SW)
Ph n m m
ng d ng
Ph n m m m c
đích chung
Ph n m m x
v n b n
Ph n m m
nhúng
• Ph n m m nhúng (Embedded SW)
Ch
• Ph n m m máy cá nhân (Personal
computer SW)
ng trình
ti n ích
Ph n m m m c
đích đ c bi t
Ph n m m tính
toán KHKT
Ch ng trình
th vi n
• Ph n m m trên Web (Web-based SW)
Ch
• Ph n m m trí tu nhân t o (Artificial
Intelligent SW)
lý
Ph n m m trên
web
Ph n m m
nghi p v
ng trình
d ch
Ph n m m đ t
hàng
35
36
6
8/26/2013
Bài t p v nhà:
Phân bi t cức khứi ni m sau
PH N I: GI I THI U CHUNG
V CÔNG NGH PH N M M
• 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
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)
37
38
2. Nh ng v n đ trong phát tri n ph n
m m
M ts y ut
• 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
•
i vai trò giứ thành SW vs. HW
• 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
• Ví d :
39
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
dùng (khách hàng)
2. Nh ng khó kh n trong s n xu t
ph n m m
i
Sau khi bàn giao s n ph m d phát sinh nh ng tr c tr c
•
•
•
40
(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
• 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
7
8/26/2013
Nh 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
qu 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
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
43
1. S ti n tri n c a cức ph
thi t k ph n m m
Í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
ng phứp
44
1. S ti n tri n c a cức ph
thi t k ph n m m
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
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
Nh t B n có “K ho ch phứt tri n k thu t s n xu t
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
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
1960
1970
1980
1990
1. S ti n tri n c a cức ph
thi t k ph n m m
Trình đ h c v n và ng
d ng CNHPM đ c nâ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 in 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” (19811985)
2000
45
ng phứp
1960
1970
1970
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
h c (Engineering techniques) thành c s
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
1980
1990
2000
1980
1990
2000
46
Hình thứi s n xu t Ph n m m
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
a ra các k thu t, ph
47
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)
H
1960
ng phứp
ng t i s n ớu t ph n m m t
đ ng
48
8
8/26/2013
2. Công ngh ph n m m (Software
Engineering)
2. 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
• 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
49
50
2. Công ngh ph n m m (Software
Engineering)
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
• 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]
51
52
Công ngh trong CNPM ?
Công ngh trong CNPM ? (ti p)
• 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
• 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
53
54
9
8/26/2013
Cức ph ng phứp lu n và k thu t cho
t ng pha
Vò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
Tên pha
N i dung nghi p ộ
Xác đ nh
yêu c u
Thi t k
h th ng
Thi t k
ch ng
trình
c t yêu c u ng i dùng
Xác đ nh yêu c u ph n m m
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
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
Mã hóa b i ngôn ng
l p trình
Ph ng pháp, k
thu t
Phân tích c u trúc
hóa
Thi t k c u trúc hóa
L p trình c u trúc
Ph ng phứp Jackson
Ph ng phứp Warnier
Mã hóa c u trúc hóa
m b o Ki m tra ch t l ng ph n m m đã phứt Ph ng phứp ki m
ch t l ng tri n
th ch ng trình
S d ng, v n hành ph n m m đã phát
V n hành
tri n.
Ch a c th
B o trì
Bi n đ i, đi u ch nh ph n m m
56
3.4 Quy trình phát tri n ph n m m
M t vòng l p
Khung quy trình chung (Common process framework)
Lu ng công vi c ti n trình
(Process Workflows)
Ho t đ ng khung (Framework activities)
Inception Elaboration
ng
Quy trình h tr
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)
Các dòng
công vi c
Qu n lý c u hình
Môi tr ng qu n lý
Preliminary
Iteration(s)
Iter.
#1
Iter.
#2
57
4.1. Capability Maturity Model (CMM
by SEI): Mô hình kh n ng thu n th c
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
•
•
•
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.
Thu n l i khi s
CMM
•
•
•
•
Transition
Cài đ t
Ki m th
Tri n khai
i m quan tr ng
(milestones),s n ph m chuy n
giao (deliverables)
•
Construction
Mô hình nghi p v
Yêu c u
Phân tích và thi t k
T p tác v (Task sets)
Tác v (Tasks)
i m Ki m Tra Ch t L
(SQA points)
Phases
Iter.
#n
Iter. Iter.
#n+1 #n+2
Các vòng l p
Iter.
#m
Iter.
#m+1
58
Các khái ni m
• Ti n trình (Process)
d ng
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.
59
– 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
10
8/26/2013
thu n th c c a ti n trình
ph n m m
Th c thi ti n trình ph n m m
(Software Process Performance)
(Software process maturity)
• Ch rõ m t ti
xác đ nh, qu
khi n, đ t hi
• Cho bi t kh
giá tr c a ti
v ng ch c c
• Th c thi ti n trình ph n m m cho bi t k t
qu th c t c a m t ti n trình ph n m m.
• H ng t i k t qu đ t đ c còn kh n ng
ti n trình ph n m m cho th y k t qu có
th mong đ i.
• Do ph thu c vào đ c tr ng c a d án và
t ng tr ng h p c th , nên k t qu th c
t th ng không ph n ánh đ y đ kh
n ng ti n trình c a m t công ty.
n trình ph n m m đ c
n lý, đứnh giá, đi u
u qu m t cách rõ ràng.
n ng phát tri n, ch ra
n trình ph n m m, tính
a d án.
61
c. Mô hình chi ti t các thành ph n
trong c u trúc CMM.
M cđ
thu n th c
nh n đ
ch ra
Kh n ng
ti n trình
đ tđ
d. Mô hình 5 m c c a CMM
Ti n trình ph n m m mang
tính ch t tu ti n, l n x n, có
ít ti n trình đ c xác đ nh
tr c, hi u qu c a công vi c
mang tính riêng l .
Khó có đ c m t môi tr ng
làm vi c n đ nh. K ho ch và
ngân sách, ch t l ng s n
ph m và v n hành không th
Ti
d đoứn tr c đ c.
ct
Các vùng ti n
trình chính
t ch c b i
Các tính n ng
ph bi n
c
nh n đ
Th c thi ho c
th ch hoá
ti n trình c i
ti n liên t c
n trình d
đoán đ c
ct
Các th c
hành chính
ứnh x
Cức m c tiêu
62
Ti n trình n đ nh,
chu n
Ti n trình có
k lu t
mô t
C s h t ng ho c
cức ho t đ ng
C i ti n
(5)
c qu n lý
(4)
c đ nh ngh a
(3)
Có tính l p l i
(2)
Quá trình v n hành ph thu c vào kh n ng c a
t ng cá nhân riêng l , và th ng xuyên thay đ i
do ph thu c vào k n ng, trình đ hi u bi t và
các ho t đ ng c a t ng thành viên trong d án.
Ban đ u
(1)
63
d. Mô hình 5 m c c a CMM
Có s c i ti n h n, chi n
l c qu n lý d án vµ th
t c đ th c thi chi n l c
y đ c thi t l p. Các k
ho ch và qu n lý d án
m i đ c d a trên nh ng
kinh nghi m c a d án c .
Ti n trình c i
ti n liên t c
Ti n trình d
đoán đ c
Ti n trình n đ nh,
chu n
Ti n trình có
k lu t
Ban đ u
(1)
Có tính l p l i
(2)
64
d. Mô hình 5 m c c a CMM
L p đ c tài li u ti n trình
tiêu chu n đ i v i vi c phát
tri n và b o trì ph n m m
có t ch c, bao g m c
công ngh ph n m m, các
ti n trình qu n lý, và các
ti n trình tích h p v i nhau
(ngh a r ng đ u ra c a m t
ti n trình s là đ u vào c a
ti n trình ti p theo ).
C i ti n
(5)
c qu n lý
(4)
Ti n trình c i
ti n liên t c
Ti n trình d
đoán đ c
Ti n trình n đ nh,
chu n
c đ nh ngh a
(3)
K t qu là đ a đ c nh ng hi u qu qu n lý ti n
trình c a m t d án nµy vào m t d án khác.
i u này cho phép l p l i (repeatable) nh ng
thành công đ i v i m t d án t ng t m c dù
có th các d án này c ng có nh ng đi m khác
bi t.
65
Ti n trình có
k lu t
Ban đ u
(1)
Có tính l p l i
(2)
C i ti n
(5)
c qu n lý
(4)
c đ nh ngh a
(3)
M t ti n trình đ c đ nh ngh a t t g m có các
tính ch t nh có tiêu chu n, đ u vào, tiêu chu n
và th t c rõ ràng đ ti n hành công vi c, ki m
tra các đ u ra.
66
11
8/26/2013
d. Mô hình 5 m c c a CMM
M c tiêu là đi u khi n ti n
trình. Các ti n trình ph n
m m đ c qu n lý đ v n
hành n đ nh, an toàn. Có
nh ng đứnh giá ph n m m
và ch t l ng, hi u qu các
ho t đ ng trong ti n trình.
Ti n trình c i
ti n liên t c
Ti n trình d
đoán đ c
Ti n trình n đ nh,
chu n
Ti n trình có
k lu t
Ti p t c c i ti n ti n trình,
có th xác đ nh đ c
nh ng đi m m nh và đi m
y u c a ti n trình, có kh
n ng phân tích các khi m
khuy t, xác đ nh các
nguyên nhân gây ra đ
tránh các khi m khuy t
này.
C i ti n
(5)
c qu n lý
(4)
Ti n trình c i
ti n liên t c
Ti n trình d
đoán đ c
Ti n trình n đ nh,
chu n
c đ nh ngh a
(3)
Có tính l p l i
(2)
Ban đ u
(1)
d. Mô hình 5 m c c a CMM
Do các ti n trình n đ nh và đ c đứnh giá đúng
nên khi có các tr ng h p ngo i l , s xác đ nh
và ch rõ nh ng nguyên nhân gây ra bi n đ i.
Ti n trình có
k lu t
C i ti n
(5)
c qu n lý
(4)
c đ nh ngh a
(3)
Có tính l p l i
(2)
Ban đ u
(1)
67
18 Vùng ti n trình chính
KPA (Key Process Area)
LEVEL 2: Có th l p
1. Qu n lý c u hình
ph n m m
2.
m b o ch t
l ng ph n m m
3. Qu n lý h p đ ng
con ph n m m
4. Theo dõi và giám
sát d án ph n m m
5. L p k ho ch d
án ph n m m
6. Qu n lý yêu c u
M C 3:
7. Xem xét ngang nhau
8. H p tác gi a các
nhóm
9. K thu t s n ph m
ph n m m
10. Qu n lý ph n m m
tích h p
11. Ch ng trình hu n
luy n
12. nh ngh a ti n trình
t ch c
13. Tr ng tâm ti n trình
t ch c
c đ nh ngh a
M C 4:
14.
Qu n lý ch t
l ng ph n m m
15.
Qu n lý quá trình
đ nh l ng
68
Kh n ng nhìn nh n t i m i m c thu n
th c
16.
Qu n lý thay
đ i ti n trình
17.
Qu n lý thay
đ i công ngh
18.
Phòng ng a
khiêm khuy t
c qu n lý
M C 5: C i ti n
69
Kh n ng ti n trình và d
các m c c a CMM
đoứn theo
70
e. Cứch th c s
• Khi m c đ thu n th c t ng, s sai khức gi a k t
qu đ t đ c và k t qu d tính gi m xu ng.
• Khi m c đ thu n th c t ng, đ bi n đ ng c a
k t qu th c t so v i k t qu đ ra gi m xu ng.
• Khi m c đ thu n th c t ng thì cức k t qu s
đ c c i thi n. ó là, chi phí gi m, th i gian phứt
tri n ng n h n, ch t l ng và n ng su t t ng.
71
d ng mô hình CMM
nh giứ ti n trình ph n m m (Software process
assessments ) xức đ nh tr ng thứi c a ti n trình
ph n m m hi n t i c a t ch c, xức đ nh m c đ
u tiên đ i v i cức v n đ có liên quan t i ti n
trình ph n m m khi x lý chúng và xây d ng h
th ng h tr phứt tri n ti n trình ph n m m.
•
ứnh giứ kh n ng ph n m m (Software
capability evaluations) xức đ nh cức nhà th u có
đ t cứch tri n khai m t d ứn ph n m m ho c
qu n lý hi n tr ng c a m t h th ng ph n m m
đã có s n.
•
72
12
8/26/2013
Nh ng đi m chung c a 2 ph
s d ng CMM
L a
ch n đ i
Câu h i
thu n th c
ng th c
4.2. Mô hình tuy n tính
• Công ngh h c H th ng / Thông tin và mô hình
hóa (System / Information engineering and
modeling): thi t l p các yêu c u, ánh x m t s
t p con các yêu c u sang ph n m m trong quá
trình t ng tác gi a ph n c ng, ng i và CSDL
Phân
tích tr
l i
Các m u CMM
(1)
(2)
(3)
H
Th m t i
ch
Ph ng v n
và xem xét
tài li u
(4)
s
KPA
Tìm ki m
Phân tích
D a trên CMM
Thi t k
L p trình
Ki m th
Công ngh h c
H th ng / Thông tin
(5)
(6)
73
74
4.2. Mô hình tuy n tính
4.2. Mô hình tuy n tính
T o mã / l p trình (Code generation /
programming): Chuy n thi t k thành
ch ng trình máy tính b i ngôn ng nào
đó. N u thi t k đã đ c chi ti t hóa thì
l p trình có th ch thu n túy c h c
• H tr / B o trì (Support / Maintenance): ứp
ng nh ng thay đ i, nâng c p ph n m m đã phát
tri n do s thay đ i c a môi tr ng, nhu c u
Phân tích
Thi t k
Ki m th (Testing): Ki m tra
các ch ng trình và môđun c
v lôgic bên trong và ch c n ng
bên ngoài, nh m phát hi n ra
l i và đ m b o v i đ u vào xác
đ nh thì cho k t qu mong
mu n
L p trình
Ki m th
Phân tích
Công ngh h c
H th ng / Thông tin
Thi t k
L p trình
Ki m th
Công ngh h c
H th ng / Thông tin
75
76
4.3. Mô hình ch th
model)
i m y u c a Mô hình tuy n tính
• Th c t cức d ứn ít khi tuân theo dòng tu n t
c a mô hình, mà th ng có l p l i (nh mô hình
c a Boehm)
• Khứch hàng ít khi tuyên b rõ ràng khi nào xong
h t cức yêu c u
• Khứch hàng ph i có lòng kiên nh n ch đ i th i
gian nh t đ nh m i có s n ph m. N u phứt hi n
ra l i n ng thì là m t th m h a!
(Prototyping
T o/s a
b nm u
Nghe Khách
trình bày
Khách ki m tra
b nm u
77
78
13
8/26/2013
4.4. Mô hình phát tri n ng d ng nhanh
(Rapid Application Development: RAD)
Mô hình ch th : Khi nào ?
• Khi m i rõ m c đích chung chung c a ph n m m,
ch a rõ chi ti t đ u vào hay x lý ra sao ho c
ch a rõ yêu c u đ u ra
• Dùng nh “H s khai” đ thu th p yêu c u ng i
dùng qua cức thi t k nhanh
• Cức gi i thu t, k thu t dùng làm b n m u có th
ch a nhanh, ch a t t, mi n là có m u đ th o
lu n g i yêu c u c a ng i dùng
• Là quy trình phát tri n ph n m m gia t ng, t ng d n
t ng b c (Incremental software development) v i
m i chu trình phát tri n r t ng n (60-90 ngày)
• Xây d ng d a trên h ng thành ph n (Componentbased construction) v i kh n ng tái s d ng (reuse)
• G m m t s nhóm (teams), m i nhóm làm 1 RAD
theo các pha: Mô hình nghi p v , Mô hình d li u, Mô
hình x lý, T o ng d ng, Ki m th và đứnh giá
(Business, Data, Process, Appl. Generation, Test)
79
Mô hình phứt tri n
Team #3
ng d ng nhanh
RAD: Business modeling
Mô hình
nghi p v
Mô hình
Team #2
d li u
Mô hình
Mô hình
nghi p v
ti n trình
T o
Mô
hình
Team #1
ng d ng
d li u
Ki m th
Mô hình
Mô hình
&Turnover
nghi p v
80
• Lu ng thông tin đ
câu h i:
–
–
–
–
–
ti n trình
T o
ng d ng
Ki m th
Mô hình
&Turnover
Mô hình
d li u
c mô hình hóa đ tr l i cức
Thông tin nào đi u khi n x
Thông tin gì đ c sinh ra?
Ai sinh ra nó ?
Thông tin đi đ n đâu ?
Ai x lý chúng ?
lý nghi p v ?
ti n trình
T o
ng d ng
Ki m th
&Turnover
82
60 - 90 days
RAD: Mô hình d
li u và ti n trình
• Mô hình d li u (Data modeling): các đ i t ng
d li u c n đ h tr nghi p v (business). nh
ngh a các thu c tính c a t ng đ i t ng và xác
l p quan h gi a các đ i t ng
• Mô hình ti n trình (Process modeling): Các đ i
t ng d li u đ c chuy n sang lu ng thông tin
th c hi n ch c n ng nghi p v . T o mô t x lý
đ c p nh t (thêm, s a, xóa, khôi ph c) t ng đ i
t ng d li u
83
RAD: T o
ng d ng và ki m th
• T o ng d ng (Application Generation): Dùng các
k thu t th h 4 đ t o ph n m m t các thành
ph n có s n ho c t o ra các thành ph n có th
tái d ng l i sau này. Dùng các công c t đ ng
đ xây d ng ph n m m
• Ki m th (Testing and Turnover): Ki m th các
thành ph n m i và ki m ch ng m i giao di n
(các thành ph n c đã đ c ki m th và dùng
l i)
84
14
8/26/2013
RAD: H n ch ?
M đ u
• C n ngu n nhân l c d i dào đ t o cức nhóm cho
cức ch c n ng chính
• Yêu c u hai bên giao kèo trong th i gian ng n
ph i có ph n m m hoàn ch nh, thi u trứch nhi m
c a m t bên d làm d ứn đ v
• RAD không ph i t t cho m i ng d ng, nh t là
v i ng d ng không th môđun hóa ho c đòi h i
tính n ng cao
• M o hi m k thu t cao thì không nên dùng RAD
• Ph n l n các h ph n m m ph c t p đ u
ti n hóa theo th i gian: môi tr ng thay
đ i, yêu c u phát sinh thêm, hoàn thi n
thêm ch c n ng, tính n ng
• Các mô hình ti n hóa (evolutionary
models) có tính l p l i. K s ph n m m
t o ra các phiên b n (versions) ngày càng
hoàn thi n h n, ph c t p h n
• Các mô hình tiêu bi u:
–
–
–
–
Gia t ng (Incremental)
Xo n c (Spiral)
Xo n c WINWIN (WINWIN spiral)
Phát tri n đ ng th i (Concurrent development)
85
Mô hình gia t ng
(The incremental model)
86
Mô hình gia t ng
• K t h p mô hình tu n t và ý t ng l p l i c a
ch b n m u
• S n ph m lõi v i nh ng yêu c u c b n nh t c a
h th ng đ c phứt tri n
• Cức ch c n ng v i nh ng yêu c u khức đ c phứt
tri n thêm sau (gia t ng)
• L p l i quy trình đ hoàn thi n d n
Gia t ng 1
Phân tích
Thi t k
L p trình
Xu t x
Ki m th
ng 1
Công ngh h
th ng/thông tin
Gia t ng 2
Phân tích
Gia t ng 3
Thi t k
Phân tích
Gia t ng 4
L p trình
Ki m th
Xu t x
ng 2
Thi t k
L p trình
Ki m th
Xu t x
Phân tích
Thi t k
L p trình
Ki m th
ng 3
XX 4
Th i gian/l ch
87
Mô hình xo n c (spiral)
L p k ho ch
Mô hình xo n c (ti p)
• Giao ti p khứch hàng: gi a ng i phứt tri n và
khứch hàng đ tìm hi u yêu c u, ý ki n
• L p k ho ch: Xức l p tài nguyên, th i h n và
nh ng thông tin khức
• Phân tích r i ro: Xem xét m o hi m k thu t và
m o hi m qu n lý
• K ngh : Xây d ng m t hay m t s bi u di n c a
ng d ng
Phân tích r i ro
Giao ti p
khách hàng
Khái ni m
88
K ngh
Làm m i
Nâng c p
B o trì
Khách hàng
đánh giá
Xây d ng &
Xu t x ng
89
90
15
8/26/2013
Mô hình xo n c (ti p)
Mô hình xo n c: M nh và y u?
• Xây d ng và xu t x ng: xây d ng, ki m th , cài
đ t và cung c p h tr ng i dùng (t li u, hu n
luy n, . . .)
•
ứnh giứ c a khứch hàng: Nh n cức ph n h i c a
ng i s d ng v bi u di n ph n m m trong giai
đo n k ngh và cài đ t
• T t cho cức h ph n m m quy mô l n
• D ki m soứt cức m o hi m t ng m c ti n hóa
• Khó thuy t ph c khứch hàng là ph ng phứp ti n
hóa xo n c có th ki m soứt đ c
• Ch a đ c dùng r ng rãi nh cức mô hình tuy n
tính ho c ch th
91
Mô hình xo n c WINWIN
92
Mô hình xo n c WINWIN
• Nh m th a hi p gi a ng i phứt tri n và khứch
hàng, c hai cùng “Th ng” (win-win)
2. Xác đ nh đi u ki n
th ng c a c đông
– Khứch thì có ph n m m th a mãn yêu c u chính
– Ng i phứt tri n thì có kinh phí th a đứng và th i gian
h p lý
3a. Hòa h p đi u ki n th ng
3b. Thi t l p m c tiêu m c ti p
và các ràng bu c, d ki n
1. Xác đ nh m c
ti p c a c đông
• Cức ho t đ ng chính trong xức đ nh h th ng:
4. ánh giá ti n trình và
d ki n s n ph m,
gi i quy t r i ro
– Xức đ nh c đông (stakeholders)
– Xức đ nh đi u ki n th ng c a c đông
– Th a hi p đi u ki n th ng c a cức bên liên quan
7. Xét duy t và đánh giá
6. Ki m đ nh s n ph m
và quy trình
5. Xác đ nh m c ti p c a
s n phâm và quy trình,
k c phân chia nh
93
94
Mô hình phát tri n đ ng th i
(concurrent development)
Mô hình h ng thành ph n
Component-based model
• Xác đ nh m ng l i nh ng ho t đ ng đ ng th i
(Network of concurrent activities)
• Các s ki n (events) xu t hi n theo đi u ki n v n
đ ng tr ng thái trong t ng ho t đ ng
• Dùng cho m i lo i ng d ng và cho hình nh khá
chính xác v tr ng thái hi n tr ng c a d án
• Th ng dùng trong phát tri n các ng d ng
khách/ch (client/server applications): h th ng
và các thành ph n c u thành h th ng đ c phát
tri n đ ng th i
• G n v i nh ng công ngh h ng đ i t ng
(Object-oriented technologies) qua vi c
t o các l p (classes) có ch a c d li u và
gi i thu t x lý d li u
95
• Có nhi u t
ng đ ng v i mô hình xo n c
• V i u đi m tái s d ng các thành ph n
qua Th vi n / kho các l p: ti t ki m 70%
th i gian, 80% giá thành, ch s s n xu t
26.2/16.9
• V i UML nh chu n công nghi p đang
tri n khai
96
16
8/26/2013
4.7. Mô hình RUP
(Rational Unified Process)
Mô hình d a thành ph n
L p k ho ch
• SV t
Phân tích r i ro
Giao ti p
khách hàng
Xây d ng
b c l p th n
c a h th ng
Khách hàng
đánh giá
K ngh
Xây d ng &
Xu t x ng
nghiên c u
Xác đ nh
thành ph n
ng viên
t
thành ph n
vào th vi n
Tìm
thành ph n
t th vi n
L y
thành ph n
n u có
Xây d ng
thành ph n
n u kh.có
97
98
4.8. Các k thu t th h 4
(Fourth generation techniques)
T ng k t các mô hình
• Thác n c: mô hình tuy n tính
• Ch th : mô hình l p đi l p l i
• Gia t ng: k t h p gi a mô hình tuy n
tính và l p đi l p l i
• Xo n c: k t h p gi a mô hình tuy n
tính và l p đi l p l i
• Phát tri n nhanh: mô hình l p đi l p l i
• T p h p cức công c cho phép xức
đ nh đ c tính ph n m m m c cao,
sau đó sinh t đ ng mã ngu n d a
theo đ c t đó
• Cức công c 4GT đi n hình: ngôn ng
phi th t c cho truy v n CSDL; t o
bứo cứo; x lý d li u; t ng tức màn
hình; t o mã ngu n; kh n ng đ h a
b c cao; kh n ng b ng tính; kh
n ng giao di n Web; vv
99
100
5. S n ph m và quy trình
(Product and process)
4GT: T i sao ?
• T thu th p yêu c u cho đ n s n ph m: đ i tho i
gi a khứch và ng i phứt tri n là quan tr ng
• Không nên b qua khâu thi t k . 4GT ch ứp d ng
đ tri n khai thi t k qua 4GL
• M nh: gi m th i gian phứt tri n và t ng n ng
su t
• Y u: 4GT khó dùng h n ngôn ng l p trình, mã
khó t i u và khó b o trì cho h th ng l n c n
k n ng c a k s ph n m m
• T ng lai: 4GT v i mô hình theo thành ph n
101
• Quy trình y u thì s n ph m khó mà t t, song
không nên coi tr ng quá m c vào quy trình ho c
quá m c vào s n ph m
• S n ph m và quy trình c n đ c coi tr ng nh
nhau
102
17
8/26/2013
Nh ng vi c c n làm
Công ội c
B u l p tr
ng
Ng i
tham
gia
Ng i
ph
trách
K t qu
c nđ t
T t c SV
T t c SV
Có l p tr
Tham gia vào h p th
nhóm
T t c SV
L p
tr ng
T t c các SV đ ng ký h c môn này
đ u ph i gia nh p h p th nhóm
L u ý: khi gia nh p, đ i tên hi n th
theo d ng:
H và tên MSSV l p khoá
4/9/2012
Ch t danh sách sinh viên
và phân nhóm BTL
(3-4 ng i)
T t c SV
L p
tr ng
Danh sách phân nhóm g m:
mã nhóm (FSE01 – FSExx),
h tên SV, s hi u SV, l p, email,
nhóm tr ng (t/f).
4/9/2012
Nhóm
tr ng
L p
tr ng
Danh sách đ ng ký bài t p l n =
danh sách phân nhóm +
mã BTL (BTL01 - BTLyy) +
mô t ng n g n BTL
Mã nhóm H và tên MSSV l p
khoá
25/9/2012
Làm bài t p /bài t p l n
T t c SV
T t c SV
/ Nhóm
tr ng
Báo cáo, mã ngu n / tài li u CT
Theo yêu c u
c a giáo viên
Ch a bài t p /bài t p l n
T t c SV
T t c SV
/ Nhóm
tr ng
Báo cáo, mã ngu n / tài li u CT
Theo yêu c u
c a giáo viên
B o v bài t p l n
T t c SV
T t c SV
Slide, thuy t trình, demo CT (max 3
Theo yêu c u
c a
ng ký bài t p l n
ng
H n chót
28/8/2012
103
Bài t p v nhà
• Bài t p v nhà: M t s ví d v các ph n m m có
th áp d ng các quy trình nói trên
104
18