You are on page 1of 259

cL c

1 C u trúc d li u ...............................................................................................................1
1.1 C u trúc d li u là gì? ...............................................................................................2
1.2 C u trúc d li u c s ...............................................................................................3
1.2.1 Ki u d li u c s ..............................................................................................3
1.2.2 Ki u có c u trúc .................................................................................................4
1.2.3 Ki u d li u tr u t ng ......................................................................................7
1.3 C u trúc d li u h ng v n ...................................................................................8
1.3.1 C u trúc danh sách .............................................................................................8
1.3.2 Ng n x p..........................................................................................................10
1.3.3 Hàng i ..........................................................................................................11
1.3.4 C u trúc cây .....................................................................................................12
1.3.5 B m .................................................................................................................17
2 Thu t toán......................................................................................................................23
2.1 C s v thu t toán..................................................................................................24
2.1.1 Thu t toán là gì?...............................................................................................24
2.1.2 Thu t toán và c u trúc d li u...........................................................................26
2.2 Các thu t toán .........................................................................................................30
2.2.1 Thu t toán duy t...............................................................................................30
2.2.2 Thu t toán s p x p............................................................................................34
2.2.3 Thu t toán qui..............................................................................................49
2.2.4 X lí xâu kí t ..................................................................................................51
2.2.5 X lí t p ...........................................................................................................55
2.2.6 V hình ............................................................................................................63
2.2.7 th ...............................................................................................................67
2.2.8 Tính toán s .....................................................................................................71
2.2.9 Thu t toán i sánh ..........................................................................................78
2.2.10 Thu t toán x p x và xác su t ........................................................................82
2.3 ánh giá thu t toán .................................................................................................87
2.3.1 ánh giá theo ph c t p tính toán..................................................................87
2.3.2 ánh giá theo tính h p l ..................................................................................88
2.3.3 ánh giá theo bi u di n ....................................................................................88
2.4 Cách thi t k thu t toán...........................................................................................89
3 Thi t k trong ................................................................................................................95
3.1 Thi t k trong là gì? ................................................................................................96
3.1.1 M c ích c a thi t k trong và nh ng m c n l u ý .......................................96
3.1.2 Th t c thi t k trong .......................................................................................97
3.2 Phân ho ch và c u trúc ch c n ng .........................................................................101
3.2.1 Các n v c a vi c phân ho ch và c u trúc ch c n ng ...................................101
3.2.2 Các th t c phân ho ch và c u trúc ch c n ng................................................103
3.2.3 Ph ng pháp thi t k có c u trúc ....................................................................109
3.3 Thi t k d li u v t lí ............................................................................................112
3.3.1 Th t c thi t k d li u v t lí ..........................................................................112
3.3.2 T ch c d li u v t lí......................................................................................117
3.4 Thi t k vào ra chi ti t...........................................................................................120
3.4.1 Thi t k d li u vào chi ti t ............................................................................120
3.4.2 Thi t k màn hình...........................................................................................123
2 Ch ng 1 C u trúc d li u

3.4.3 Thi t k d li u a ra chi ti t ........................................................................132


3.5 T o ra và dùng l i các b ph n ..............................................................................136
3.5.1 Khái ni m v t o ra và dùng l i các b ph n ...................................................136
3.5.2 Dùng gói ph n m m .......................................................................................136
3.6 T o ra tài li u thi t k trong...................................................................................137
3.6.1 T ch c tài li u thi t k trong .........................................................................137
3.6.2 Các m c n l u ý khi t o ra tài li u thi t k trong ........................................139
3.6.3 Ki m m thi t k .........................................................................................140
4 Thi t k ch ng trình...................................................................................................140
4.1 M c ích và nhi m v c a thi t k ch ng trình ...................................................144
4.1.1 M c ích c a thi t k ch ng trình.................................................................144
4.1.2 Nhi m v thi t k ch ng trình ......................................................................145
4.2 Thi t k có c u trúc cho ch ng trình....................................................................148
4.2.1 Th t c thi t k có c u trúc.............................................................................148
4.2.2 Các k thu t phân ho ch mô un n hình......................................................151
4.2.3 Tiêu chí cho vi c phân ho ch mô un .............................................................160
4.2.4 Phân ho ch ch ng trình ................................................................................171
4.3 T o ra c t mô un và c t ki m th ................................................................173
4.3.1 T o ra c t mô un ......................................................................................173
4.3.2 T o ra c t ki m th ....................................................................................175
4.4 T o ra tài li u thi t k ch ng trình.......................................................................177
4.4.1 T o ra tài li u thi t k ch ng trình và n i dung.............................................177
4.4.2 Nh ng m c n l u ý khi t o ra tài li u thi t k ch ng trình ........................179
4.4.3 H p ki m m thi t k ..................................................................................179
5 Th c hi n ch ng trình................................................................................................183
5.1 L p trình ...............................................................................................................184
5.1.1 Mô th c l p trình............................................................................................184
5.1.2 Phong cách l p trình .......................................................................................185
5.1.3 Dùng b x lí ngôn ng ..................................................................................186
5.1.4 Môi tr ng l p trình .......................................................................................187
5.2 Ki m th ...............................................................................................................189
5.2.1 T ng quan v ki m th ...................................................................................189
5.2.2 Ki m th n v .............................................................................................190
5.2.3 Ki m th tích h p...........................................................................................190
5.2.4 Ki m th h th ng..........................................................................................195
5.2.5 Các ki m th khác..........................................................................................197
5.2.6 K ho ch và nhi m v ki m th .....................................................................197
6 C p nh t v n hành và phát tri n h th ng.....................................................................204
6.1 Thi t k ch ng trình ............................................................................................205
6.1.1 Thi t k ch ng trình h ng i t ng ..........................................................205
1 u trúc d li u

c ích c a ch ng
Vi c ch n c u trúc d li u thích h p nh t và th t c mô
d li u là m u ch t t o ra ch ng trình hi u qu ,
hi u.
Ch ng này mô t các c u trúc d li u a d ng b n c n
m c xem nh b c u tiên h c l p trình.

• Hi u cách phân lo i các c u trúc d li u a d ng


‚ Hi u các ki u d li u c s thông d ng nh t và
ng d li u
ƒ Hi u các c tr ng và c ch c a c u trúc d li u
ng v n c dùng gi i quy t các bài toán
c bi t, c ng nh cách dùng c u trúc d li u c s
cho vi c cài t ch ng trình
2 Ch ng 1 C u trúc d li u

1.1 u trúc d li u là gì?


p các d li u cùng m t lo i c máy tính x lí c g i là "ki u d li u." Trong giai n
thi t k ch ng trình, cách th c d li u nên c bi u di n và l p trình trong máy tính ph i
c xem xét c n th n, có th ch n c ki u d li u thích h p nh t. M t ki u d li u
c bi u di n và l p trình c g i là "c u trúc d li u."
Hình 1-1-1 ch ra phân l p v các c u trúc d li u.

Hình 1-1-1 Phân l p v các c u trúc d li u

Ki u nguyên
Ki u th c
Ki u n
Ki u kí t
Ki u d li u
Ki u logic
s
Ki u con tr Ki u li t kê
Ki u b ph n
Ki u m ng
u trúc d Ki u có
li u c s u trúc
Ki u b n ghi

Ki u d li u
tr u t ng
u trúc
li u
u trúc danh sách

Ng n x p
u trúc d
li u h ng
Hàng i
n

u trúc cây
(T o ra t
u trúc d
m
li u c s )

u trúc d li u c s có th c bi u di n trong h u h t t t c các ngôn ng l p trình. C u


trúc d li u h ng v n là c u trúc d li u có th c dùng m t cách có hi u qu gi i
quy t nh ng v n chuyên d ng. Có m t s c u trúc d li u h ng v n mà không th
c bi u di n trong ngôn ng l p trình. Trong tr ng h p ó, c u trúc d li u c s c
dùng.
1.2 C u trúc d li u c s 3

1.2 u trúc d li u c s

1.2.1 Ki u d li u c s
Ki u d li u c s là t p các d li u riêng l và th ng c dùng t o ra ch ng trình. Nó
c phân lo i thành các ki u n và con tr .

(1) Ki u n
Ki u n là ki u d li u c s nh t. Khi dùng ki u n cho l p trình, ki u d li u th ng
c khai báo theo qui t c cú pháp c a ngôn ng .
• Ki u nguyên
Ki u nguyên bi u di n cho s nguyên, và c bi u di n bên trong máy tính nh s nh
phân theo s d u ph y t nh, không có ch s có ngh a sau d u ch m th p phân. Giá tr t i a
hay t i thi u c a ki u nguyên là n v c a d li u mà máy tính có th x lí vào m t lúc, và
nó c xác nh b i chi u dài t .
‚ Ki u s th c
Ki u s th c bi u di n cho s th c. Nó c dùng bi u di n cho s d u ph y t nh và d u
ph y ng.
ƒ Ki u kí t
Ki u kí t bi u di n cho ch cái, s và các kí hi u nh các kí t . M t mã kí t c bi u
di n nh s nh phân trong máy tính.
„ Ki u logic
Ki u logic c dùng th c hi n các phép toán logic nh các phép toán AND, OR và
NOT.
… Ki u li t kê
Ki u li t kê c nh ngh a nh ki u d li u kê ra t t c các giá tr có th c a bi n. Trong
tr ng h p ki u li t kê, có th k tên ki u s nguyên.
† Ki u b ph n
Ki u b ph n c dùng xác nh m t t p con các giá tr nguyên thu b ng cách h n ch
các ki u d li u hi n có. Ki u d li u có các gi i h n trên và d i nh các ràng bu c c
i là ki u mi n b ph n.

(2) Ki u con tr
Ki u con tr có a ch c c p trong n v b nh chính. Nó c dùng tham chi u t i
các bi n, các b n ghi t p hay các hàm. Nó c dùng cho Pascal và C nh ng không dùng cho
FORTRAN và COBOL.
4 Ch ng 1 C u trúc d li u

Hình 1-2-1 Hình nh v ki u con tr

Bi n ki u con tr Bi n "b"
a ch c a bi n "b" li u

1.2.2 Ki u có c u trúc
u trúc d li u có ch a m t c u trúc d li u c s hay b t kì ki u d li u c xác nh nào
nh ph n t c a nó (d li u), c g i là ki u có c u trúc. Ki u có c u trúc c phân lo i
thành ki u m ng và ki u b n ghi.

(1) Ki u m ng
ng c g i là b ng. Ki u m ng là d li u có c u trúc có ch a d li u thu c cùng ki u và
kích c . T ng d li u cá nhân c g i là m t ph n t m ng, ph n t b ng hay ph n t . Cách
ng c mô t ho c cách d li u c b trí có thay i tu theo ngôn ng l p trình c
dùng.
• M ng m t chi u
ng m t chi u có c u trúc d li u mà d li u c s p thành m ng theo m t hàng. xác
nh m t ph n t trong m ng này, tr c h t a vào d u ngo c tròn m ( hay d u ngo c
vuông [ sau tên c a m ng, r i a vào ch s và d u ngo c tròn óng ) hay d u ngo c vuông
óng ]. Ch s ch ra s th t tính t nh c a m ng, n i ph n t xác nh ó c nh v .
ng "A" có s ph n t c kí hi u là "i" c bi u di n là A (i).

Hình 1-2-2 M ng m t chi u

Th 1 th 2 th 3 … th I …
… …
Ph n t Ph n t Ph n t Ph n t
A(1) A(2) A(3) … A(I) …

‚ M ng hai chi u
t c u trúc d li u trong ó d li u c s p hàng theo c hai chi u ngang và ng c
i là m ng hai chi u. D li u theo chi u ng c g i là c t và d li u theo chi u ngang
c g i là hàng. xác nh ph n t nào ó trong m ng này, hai ch s tr nên c n thi t:
t ch s th t theo chi u ng (trên hàng nào) n i ph n t xác nh ó c nh v và
ch s kia ch ra s th t nào theo chi u ngang (trong c t nào) mà nó c nh v . Ch ng
n, m ng "A" c nh v hàng "i" và c t "j" có th c di n t là A (i, j).
1.2 C u trúc d li u c s 5

Hình 1-2-3 M ng hai chi u (v i ba hàng và hai c t)


t1
Hàng 1 A(1, 1) A(1, 2)
A(2, 1) A(2, 2)
A(3, 1) A(3, 2)

Khi m ng hai chi u c l u gi trong n v b nh chính, nó l y d ng c a m ng m t chi u.


ng hai chi u c v trong Hình 1-2-3 l y d ng c a m ng m t chi u có sáu ph n t . Nh
c v trong Hình 1-2-4, d li u c l u gi theo ki u tu n t ho c theo chi u c a hàng
ho c theo chi u c a c t. Chi u theo ó d li u c l u gi thay i tùy theo trình biên d ch
a ngôn ng l p trình c dùng. Nói chung, d li u c l u gi theo chi u ng khi
Fortran c dùng và theo chi u ngang khi COBOL c dùng.

Hình 1-2-4 Cách d li u c a m ng hai chi u c l u gi trong n v b nh chính


ng 2 chi u nh chính
A(1,1) A(1,2) A(1,1) A(1,1)

A(2,1) A(2,2) A(1,2) A(2,1)

A(3,1) A(3,2) A(2,1) A(3,1)

A(2,2) A(1,2)

A(3,1) A(2,2)

A(3,2) A(3,2)

li u c D li u c
u tr l u tr
theo hàng theo c t

ƒ M ng ba chi u
ng ba chi u có c u trúc d li u nhi u h n m ng hai chi u. Nó có c u trúc ba chi u ch a các
t ph ng, các hàng và c t c ng nh các ph n t . B ng vi c xây d ng m ng ba chi u trong
ng hai chi u, có th x lí m ng ba chi u theo cùng cách nh m ng hai chi u.
6 Ch ng 1 C u trúc d li u

Hình 1-2-5 Xây d ng m ng ba chi u thành m ng hai chi u

t ph ng
th hai
A(2,1,1) A(2,1,2)

t ph ng A(2,1,1) A(2,1,2)

Hàng A(1,1,1) A(1,1,2)


A(2,2,1) A(2,2,2)

A(1,2,1) A(1,2,2)
A(2,3,1) A(2,3,2)

A(1,3,1) A(1,3,2)
A(1,1,1) A(1,1,2)

t ph ng A(1,2,1) A(2,2,2)
t
th nh t
A(1,3,1) A(1,3,2)

ng nhi u chi u nh các m ng b n, n m hay nhi u chi u c ng có th c nh ngh a.


Tuy nhiên, có th có nh ng gi i h n nào ó v s chi u, tùy theo ki u c a ngôn ng l p trình
hay trình biên d ch.
ng có th c phân lo i thành m ng t nh và m ng ng theo ph ng pháp c dùng
si t ch t m t mi n.
- M ng t nh: M ng mà vùng c yêu c u do ch ng trình xác nh
- M ng ng: M ng mà vùng c yêu c u s c xác nh ra sau khi ch s c
dùng cho vi c t o m ng c cung c p qua m t bi u th c và bi u
th c ó c tính trong khi th c hi n ch ng trình

(2) Ki u b n ghi
c d u d li u ki u có c u trúc là cao c p h n trong vi c d tham chi u và th c hi n thao tác
trên các ph n t , nó c ng có nh c m ch nó ch có th gi i quy t d li u thu c cùng m t
ki u. Do ó, d li u có ch a các d li u v i ki u khác nhau ph i l y d ng c a d li u ki u b n
ghi. Ki u b n ghi này c ng còn c g i là ki u c u trúc.

Hình 1-2-6 Ki u b n ghi


n ghi (d li u v sinh viên)

Tên m S Tên m
sinh viên sinh viên
(ki u xâu chu i)

Ki u s p x p
Ki u nguyên

Ki u kí t

Hình 1-2-6 ch ra c u trúc d li u c a ki u b n ghi. M t b n ghi ch a s hi u sinh viên (ki u


nguyên), tên (ki u kí t ) và m (ki u nguyên). M t d li u ki u b n ghi ch a m t t p các
n ghi có cùng nh d ng này. M c d u d li u ki u b n ghi m t chi u có th c gi i quy t
1.2 C u trúc d li u c s 7

theo cùng cách nh m ng m t chi u, t ng d li u v n ph i c t tên nh n di n vì t ng


ph n t ch a nhi u d li u.

1.2.3 Ki u d li u tr u t ng
li u ch a c u trúc d li u nào ó và ki u c a các phép toán c g i là ki u d li u tr u
ng. truy nh p vào ki u d li u này, b n không c n bi t v c u trúc bên trong c a nó. T t
các d li u u c che d u ngo i tr d li u b n truy nh p tham chi u, thêm vào hay
xoá i. u này c g i là che gi u thông tin. Che gi u thông tin ho c che gi u d li u
c ki u d li u c g i là bao b c d li u.

Hình 1-2-7 Ki u d li u tr u t ng

li u <C u trúc d li u tr u t ng>


(Các phép toán +
Ch ng trình
u trúc d li u)
t qu
8 Ch ng 1 C u trúc d li u

1.3 u trúc d li u h ng v n

Các c u trúc d li u h ng v n khác nhau có th c trù tính b ng vi c dùng các ki u


ng, ki u con tr và các c u trúc d li u c s khác.

1.3.1 u trúc danh sách


Không gi ng ki u d li u c s gi i quy t cho t ng d li u riêng l , c u trúc danh sách cho
phép d li u c móc n i l n nhau và gi i quy t c m t c c. D li u c b trí theo c u trúc
danh sách này c g i là m t danh sách.

(1) C u trúc danh sách và các ô


ng vi c dùng ch s cho t ng ph n t trong m ng, có th truy nh p nhanh chóng vào b t kì
ph n t nào. T ng t nh v y, vi c thay i d li u có th c th c hi n d dàng. N u b n
chèn m t d li u vào âu ó trong m ng, b n ph i d ch chuy n toàn b t ng d li u sau ó lùi
i m t v trí. N u b n xoá m t d li u trong m ng, t ng t , b n ph i d ch chuy n toàn b
ng d li u sau d li u b xoá ó nhích lên m t v trí.

Hình 1-3-1 Chèn thêm m t ph n t m ng


trí m ng c chèn

Tr c khi chèn Arai Ueki Endou Okada

i d li u c d ch v phía sau

Sau khi chèn Arai Inoue Ueki Endou Okada

ut Inoue
c chèn
Không gi ng nh c u trúc ki u m ng, c u trúc danh sách cho phép ph n t d li u c a cùng
ki u c s p hàng tu n t . Ki m m ng òi h i r ng vi c b trí logic cho các ph n t là gi ng
t nh vi c b trí v t lí c a chúng trong b nh chính. Trong tr ng h p c a c u trúc danh
sách, vi c b trí logic không sánh h t nh vi c b trí v t lí.
Danh sách ch a các ô và m i ô bao g m nh ng ph n t sau:
- Ph n d li u ch a ph n t d li u
- Ph n con tr ch a a ch
Do ó, ph n d li u c a ô có cùng c u trúc d li u nh c u trúc d li u c a d li u cl u
gi và ph n con tr c a ô có c u trúc d li u ki u con tr . u này ngh a là các ô bi u di n
cho d li u (c u trúc) ki u b n ghi ch a các ph n t có c u trúc d li u khác nhau. Danh sách
ch a a ch ô trong ph n con tr và ô này c móc n i sang ô kia qua con tr .
1.3 C u trúc d li u h ng v n 9

Hình 1-3-2 C u trúc danh sách


Ph n d li u Ph n con tr Ph n d li u Ph n con tr Ph n d li u Ph n con tr

Arai Inoue Ueki

(2) Chèn d li u vào danh sách


chèn d li u vào danh sách, m i u b n c n làm là thay th các con tr t i d li u i
tr c và i sau d li u c chèn vào ó. B i vì b n không ph i d ch chuy n các ph n t nh
tr ng h p d li u ki u m ng, nên b n có th chèn thêm d li u m t cách d dàng và nhanh
chóng. (Xem Hình 1-3-3.)

Hình 1-3-3 Chèn d li u vào danh sách


i d li u c chèn

Ph n d li u Ph n con tr
Tr c khi chèn Arai Ueki Endou

Inoue Ô c chèn

Sau khi chèn Arai Ueki Endou

(3) Xoá d li u kh i danh sách


xoá d li u kh i danh sách, m i u b n c n ph i làm là thay th các con tr nh khi b n
chèn d li u vào danh sách. Ô ch a d li u (Inoue) v n còn trong vùng b nh nh rác sau khi
li u ã b xoá, nh c v trong Hình 1-3-4.

Hình 1-3-4 Xoá d li u kh i danh sách


Ô b xóa
Tr c Arai Inoue Ueki Endou
khi xóa

Sau khi Ueki Endou


Arai Inoue
xóa

c d u c u trúc danh sách cho phép d li u c chèn thêm hay c xoá i ch b ng cách
thay th các con tr , nó có nh c m là b n ph i l n theo t ng con tr m t t un ub n
mu n truy nh p vào d li u c bi t.

(4) Ki u c u trúc danh sách


Các c u trúc danh sách tiêu bi u bao g m:
- Danh sách m t chi u
- Danh sách hai chi u
- Danh sách vòng.
i vì nh ng danh sách này c bi u di n d i d ng tuy n th ng, nên nói chung chúng c
i là danh sách tuy n tính.
• Danh sách m t chi u
Danh sách m t chi u c ng còn c g i là danh sách m t h ng. Ph n con tr c a ô ch a
10 Ch ng 1 C u trúc d li u

a ch c a ô mà trong ó d li u ti p c l u gi . B ng vi c l n theo nh ng a ch này


ng ô m t, b n có th th c hi n vi c duy t d li u.

Hình 1-3-5 Danh sách m t chi u

u Ô
Arai Inoue Wada NULL

Con tr th nh t c g i là g c hay u. B i vì ph n con tr c a ô cu i không có b t kì a


ch nào trong ó d li u có th c l u gi , nên NULL (giá tr s là không) hay 0 c
chèn thêm vào ph n này.
‚ Danh sách hai chi u
Danh sách hai chi u có hai ph n con tr ( và ) ch a a ch các ô nh c v trong
Hình 1-3-6.

Hình 1-3-6 Danh sách hai chi u


u uôi

Arai Inoue Wada

NULL NULL

Ph n con tr và u c v trong Hình 1-3-6 ch a a ch c a ô k ti p và a ch c a ô


ng tr c t ng ng. a ch c a ô cu i cùng c ch a trong con tr uôi. Trong tr ng
p danh sách hai chi u, d li u có th c l n theo t ô u ho c uôi.
ƒ Danh sách vòng
Danh sách hai chi u ch a NULL ô u tiên c g i là danh sách vòng. Ph n con tr c a
ô th nh t này và ph n con tr ch a NULL c a ô cu i cùng ch a a ch ô khác, do v y d
li u có d ng cái vòng. D li u có th c duy t theo cùng cách nh trong danh sách hai
chi u.

Hình 1-3-7 Danh sách vòng


u

Arai Inoue Wada

trí u
trí uôi

1.3.2 Ng n x p
Ng n x p là c u trúc d li u c thi t k d a trên m ng m t chi u. Ph n t cu i cùng c
u gi s c c ra tr c h t. Nó c so sánh v i trò ch i ném vòng.
1.3 C u trúc d li u h ng v n 11

Hình 1-3-8 Trò ch i ném vòng

Trò ch i ném vòng c ch i b ng cách ném các vòng m u theo th t , l c, vàng và lam
a vào d li u). Chúng c l y ra t ng cái m t ( a ra d li u) theo th t o l i vi c ném
vào, t c là lam, vàng, l c và . T c là vòng lam c ném vào cu i cùng s c l y ra u
tiên.
Ki u c u trúc d li u này mà có th c so sánh v i trò ch i ném vòng c g i là ng n x p.
th ng này còn có thu t ng là h th ng vào-sau-ra-tr c (LIFO). Vi c l u tr d li u trong
ng n x p c g i là " n vào (PUSH)" và vi c l y d li u ra t ng n x p c g i là "b t ra
(POP)." Bi n u khi n vi c n vào và b t ra c g i là con tr ng n x p.
n d li u vào ng n x p, t con tr ng n x p "sp" là +1 và l u gi d li u trong ph n t
ng c vi t là "sp." làm b t ra d li u t ng n x p, hãy l y d li u ã c l u gi
trong m ng c ch b i "sp" và t con tr ng n x p là sp-1.

Hình 1-3-9 C u trúc ng n x p


POP PUSH
li u l y ra li u nh p vào

sp - 1 sp + 1

Con tr ng n x p sp
Ng n x p (4) li u D ra
4
Ng n x p (3) li u C
Ng n x p (2) li u B
Ng n x p (1) li u A

1.3.3 Hàng i
Hàng i là c u trúc d li u d a trên m ng m t chi u. D li u c l u gi u tiên c c
ra u tiên. Nó c so sánh v i hàng ng i ang i tr c máy tr ti n c a ngân hàng.

Hình 1-3-10 Hàng i

u trúc d li u cho phép khách hàng c ph c v trên c s n tr c ph c v tr c c


i là hàng i. H th ng này c g i là h th ng (FIFO). Hai con tr ch ra u và uôi c a
hàng i là c n cho vi c ki m soát hàng i. Con tr ch ra u và uôi c a hàng i c
12 Ch ng 1 C u trúc d li u

bi u di n nh bi n u và bi n uôi t ng ng. (Xem Hình 1-3-11.)

Hình 1-3-11 C u trúc hàng i


px p (1) (2) (3) (4) (5) (6)
Hàng i
li u A D li u B D li u C D li u D

Con tr u Con tr cu i

<Th t c v n hành hàng i>


1. l u gi d li u vào hàng i (enqueue), t bi n tr uôi t ng thêm 1 và c t gi d
li u.
2. l y ra d li u t hàng i (dequeue), l y d li u ra và t bi n tr u t ng lên 1.

1.3.4 u trúc cây


u trúc cây là m t trong nh ng c u trúc d li u r t h u d ng vì nó có th ki m soát d li u
ph c t p t t h n các c u trúc d li u ki u m ng hay danh sách.
i vì nó có c u trúc phân c p nh t ch c c a công ti hay cây gia ình, nên nó thích h p cho
ki u làm vi c bao g m phân lo i t ng b c.

Hình 1-3-12 S t ch c
ng th ng

Qu n lý Qu n lý Qu n lý
hành chính bán hàng nhà máy

Qu n lý b ph n Qu n lý b ph n Qu n lý b ph n Qu n lý b ph n Qu n lý b ph n k Qu n lý b ph n Qu n lý b ph n Qu n lý b ph n
hành chính toán bán hàng th 1 bán hàng th 2 ho ch và bán hàng qu n lý ch t l ng Mua bán n ph m

c d u t ng ô c s p theo th t tuy n tính trong c u trúc danh sách, d li u cs p


trong khi nó phân nhánh trong c u trúc cây.
u trúc cây bao g m các ph n t c v d i ây:
- Nút: T ng ng v i d li u
- Nhánh: N i nút này v i nút khác
- G c: Nút c p cao nh t, không có cha m
- Con: Nút r nhánh ra d i m t nút khác
- Cha m : D li u g c tr c khi nó chia nhánh
- Lá: Nút c p th p nh t không có con

Hình 1-3-13 v ra c u trúc cây

Hình 1-3-13 C u trúc cây


A c
Nhánh . A là cha nút C
. Nút D và E là con nút C.
B C Nút

D E

F G H Lá
1.3 C u trúc d li u h ng v n 13

(1) Cây nh phân


u s nhánh ch ra t m t nút là "n" hay ít h n, t c là n u s con là 0 cho t i "n", m t c u
trúc cây nh v y c g i là cây N ngôi. Cây N-ngôi có 2 nhánh (n=2), t c là cây N ngôi
không có con, có m t hay hai con, c g i là cây nh phân, th ng là c u trúc d li u th ng
dùng nh t. M t khác, c u trúc cây có ba hay nhi u nhánh (n>2) c g i là cây nhi u nhánh.
Cây nh phân bao g m m t ph n d li u và hai ph n con tr . Con tr trái ch ra v trí c a nút
kéo dài sang bên trái và các nhánh ch ra trong khi ph n con tr ph i ch ra v trí c a nút kéo
dài sang bên ph i và các nhánh ch ra.

Hình 1-3-14 C u trúc cây nh phân


Ph n con tr trái Ph n d li u Ph n con tr ph i

Cây nh phân có c u trúc phân c p cha m - con, nh c v trong Hình 1-3-15.

Hình 1-3-15 C u trúc cây nh phân c s


Cha

Con
Con

<Cách th c hi n vi c duy t d li u cây nh phân>


duy t d li u c bi t trong d li u cây nh phân, ph i l n theo t ng nút m t. Có ba
ph ng pháp th c hi n duy t d li u cây nh phân. Vì khó gi i thích b ng l i nên hãy ki m l i
Hình 1-3-16 và xem cách d li u c duy t b ng vi c dùng t ng ph ng pháp.

Hình 1-3-16 Cách th c hi n duy t d li u cây nh phân

- Th t g c tr c (Pre-order): V i g c là m b t u, nút bên trái c a m i nút c


duy t qua theo cách tu n t .
- Th t g c gi a (Mid-order): V i lá t i áy bên trái làm m b t u, r i duy t qua nút
cha nó và ti p ó duy t qua ph n còn l i c a nút ó theo cách tu n t .
- Th t g c sau (Post order): V i lá t i áy bên trái làm m b t u, ph n bên ph i m i
nút c duy t qua theo cách tu n t r i m i n nút cha c a nó.

(2) Cây nh phân hoàn ch nh


u cây nh phân c xây d ng theo cách s các nhánh t g c t i t ng lá d c theo m t
nhánh là b ng ho c sai khác m t so v i s các nhánh t g c t i t ng lá d c theo nhánh khác
(ho c n u chi u cao t g c t i t ng lá là b ng hay sai khác m t v i chi u cao t g c t i t ng
lá thu c vào nhánh khác), thì cây ó c g i là cây nh phân hoàn ch nh. Hình 1-3-17 v ra
cây nh phân hoàn ch nh có m i nút.
14 Ch ng 1 C u trúc d li u

Hình 1-3-17 Cây nh phân hoàn ch nh


1 1

2 7 2 7

3 6 8 10 3 6 8 10

4 5 9 4 5 9

<Cây nh phân hoàn ch nh> <C u trúc d li u>

(3) Cây tìm ki m nh phân


Cây tìm ki m nh phân c dùng nh m t bi n th c a cây nh phân. Trong tr ng h p c a
cây tìm ki m nh phân, con cháu bên trái là nh h n cha m và con cháu bên ph i là l n h n
cha m .
Thu t toán cây tìm ki m nh phân là nh sau:
1. G c là m vi c tìm ki m b t u.
2. D li u cây nh phân c so sánh v i d li u c n tìm.
3. N u d li u cây nh phân = d li u c n tìm, vi c tìm là thành công ( c hoàn t t).
4. N u d li u cây nh phân > d li u c n tìm, thì các nút bên trái c a cây nh phân c tìm
và so sánh.
5. N u d li u cây nh phân < d li u c n tìm, thì các nút bên ph i c a cây nh phân c
tìm và so sánh.
6. N u không tìm th y con nào, vi c tìm ki m là không thành công (không tìm th y d li u).

Hình 1-3-18 Th c hi n vi c tìm ki m v d li u trong cây tìm ki m nh phân

1) 15>10 15
2) 8<10
8 21

2 10 28
3) 10=10
13

(4) Cây cân b ng


u d li u c thêm vào hay b xoá i trong c u trúc cây, thì các lá ng u nhiên phát tri n và
tính hi u qu c a phép toán s gi m i. C u trúc cây có kh n ng t t ch c l i chính nó c
i là cây cân b ng. Cây cân b ng i di n là B-cây và ng (heap).
• B-cây
B-cây là phiên b n c phát tri n thêm n a c a cây nh phân:
- Lá cu i b b i và m i nút u có s các nút c xác nh là "m."
- M i nút u có s t i a d li u c xác nh là "m-1."
- T t c các lá u trên cùng m t m c.
- D li u c ch a trong t ng nút c b trí trong hàng i.
i vì nh ng c tr ng trên có th làm t ng b nh và tính hi u qu tính toán, nên tên
"B-cây" ngh a là cây cân b ng t t.
1.3 C u trúc d li u h ng v n 15

a. c tr ng c a B-cây
- t ng vi c s d ng vùng b nh , s con tr mà m i nút có c t là m/2 ho c
nhi u h n và là m ho c ít h n. S con tr theo m t ng tuy v y c t là 2 ho c
nhi u h n.
- M i lúc d li u b xoá hay c b sung thêm, vi c ch ra và ghép l i c th c hi n
ng cho s các ph n t c a m t nút có th tr thành m/2 hay nhi u h n ho c m
hay ít h n. u này cho phép lá bao gi c ng c duy trì trên cùng m c.
- Vi c tìm ki m b t u t g c.
- Vi c thêm vào hay xoá i d li u b t u t lá.
Hình 1-3-19 ch ra B-cây b n m v i các ph n t 7, 6, 10, 2, 5, 12, 4, 9, 8, 11, 1, 3 .

Hình 1-3-19 B-cây b n m

3 6 9

4 5 7 8

1 2 10 11 12

b. Xoá d li u
Hình 1-3-20 v ra tr ng h p d li u "4" b xoá kh i B-cây c v trong Hình 1-3-19.
u m t mình "4" b xoá i, thì s các ph n t b xoá c a m t nút tr thành m t và các
yêu c u c a B-cây không th c áp ng.

Hình 1-3-20 B-cây sai


3 6 9

5 7 8

1 2 10 11 12

Nút t ó "4" b xoá i c g p vào m t nút k ho c bên ph i ho c bên trái. B i vì


các con tr c a cha m c ng ph i c t ch c l i, nên "6" c chuy n sang nút c p th p
n và t ng nút có th c t ch c l i, nh c v trong Hình 1-3-21.

Hình 1-3-21 B-cây úng 3 9

1 2 5 6 7 8 10 11 12
‚ ng
Cây nh phân hoàn ch nh có m i quan h kích c nào ó gi a nút cha m và nút con c
i là ng (heap). ng khác v i cây nh phân ch ng không có m i quan h kích
th c nào ó gi a các anh em.
16 Ch ng 1 C u trúc d li u

Hình 1-3-22 Ví d v ng
ng ây không ph i là ng
9 9

7 8 7 8

6 3 5 3 6 5

1 4 1 4 i quan h v kích c
trong hình ch nh t ch m
là khác nhau

i vì ng có c u trúc c a cây nh phân hoàn ch nh, nên nó là m t lo i cây cân b ng, t


ch c c. Trong tr ng h p c a ng, giá tr t i a (hay giá tr t i thi u) c a t t c các d
li u c ghi l i trong g c. B ng vi c dùng c tr ng này, d li u có th c s p x p b ng
vi c l y ra d li u t i g c theo cách tu n t .

Hình 1-3-23 S p x p d li u dùng ng


1 2

6 6 5 5

4 5 4 2

1 3 2 1 3

3 4
4 4 3 3

3 2 1 2

1
1.3 C u trúc d li u h ng v n 17

1.3.5 m
m là cách dùng m t c u trúc d li u ki u m ng. V i vi c dùng b m, b n có th truy nh p
tr c ti p vào d li u c bi t b ng vi c dùng m t khoá mà không ph i truy nh p l n l t vào
li u c ghi.

(1) Chuy n i sang a ch b m


chuy n m t khoá sang a ch b m (ch s ), ng i ta dùng m t hàm b m. Hàm b m tiêu
bi u là:
- Ph ng pháp chia
- Ph ng pháp ng kí
- Ph ng pháp i c s .
• Ph ng pháp chia
Khoá c chia theo m t giá tr nào ó (m t s nguyên t g n nh t v i s ph n t m ng
th ng c dùng) và s d c dùng làm a ch (ch s ) c a khoá.
Ví d Khoá: 1234 và s ph n t m ng : 100
1234÷97 (s nguyên t g n 100 nh t) = 12 70 : a ch (ch s )
‚ Ph ng pháp ng kí
Khoá c phân tách theo m t qui t c nào ó và t ng c dùng làm a ch (ch s ) c a
khoá.
Ví d Khoá: 1234
1234 c phân tách thành 12 và 34 và c hai s này c l y t ng.
12 + 34 = 46 : a ch (ch s )
ƒ Ph ng pháp chuy n c s
Khoá th ng c bi u di n theo s h th p phân, Khoá này c chuy n thành c s khác
i th p phân (ch ng h n c s ba), và k t qu c dùng làm a ch (ch s ) c a khoá.
Ví d Khoá b n ghi: 1234
1 × 3 3 + 2 × 3 2 + 3 × 3 1 + 4 × 3 0 = 27 + 18 + 9 + 4
= 58 : a ch (ch s )
∗ Giá tr c a t ng ch s theo h c s 3 là 3 hay nh h n. Tuy nhiên trong tr ng h p
này s ki n này không c n c tính t i.

(2) ng ngh a
Khi m t khoá c chuy n thành a ch b ng vi c dùng hàm b m, các khoá khác nhau có th
c chuy n vào cùng m t a ch . u này c g i là ng ngh a (hay ng ) (xem Hình
1-3-24). M t b n ghi có th dùng a ch ã chuy n i c g i là b n ghi nhà còn b n ghi
không th dùng c nó s c g i là b n ghi ng ngh a.
18 Ch ng 1 C u trúc d li u

Hình 1-3-24 Xu t hi n ng ngh a


u khóa c chuy n thành 97 s d ng phép chia
39
Khóa b n ghi: 234
234 ÷ 97 = 2 40
40 n ghi có th cs
ng v i khóa 234
Khóa b n ghi: 525 X (B n ghi nhà)
525 ÷ 97 = 5 40 ng ngh a 41

gi i quy t s ng ngh a, m t ph ng pháp c bi t hay ph ng pháp dây chuy n c


dùng:
• Ph ng pháp tu n t
ng vi c dùng ph ng pháp tu n t , b n ghi ng ngh a c l u gi trong không gian t
do c nh v g n a ch mong mu n. Có kh n ng là s ng ngh a l i có th xu t hi n
theo ph n ng dây chuy n.
‚ Ph ng pháp dây chuy n
i vi c dùng ph ng pháp dây chuy n, m t vùng b nh tách bi t c thi t l p và các
n ghi ng ngh a c l u gi trong vùng này. Trong tr ng h p này, c n cung c p m t
con tr ch ra a ch n i các b n ghi ng ngh a c c t gi .
Bài t p 19

Bài t p

Q1 Khi l u gi m ng hai chi u "a" có m i hàng và m i c t trong không gian b


nh liên t c theo hàng, a ch n i l u gi [5, 6] là gì? Trong câu h i này, a ch
c bi u di n theo s th p phân.
a ch
100
a [1, 1]
101
102
a [1, 1]
103

a. 145 b. 185 c. 190 d. 208 e. 212

Q2 Hình d i ây là danh sách m t chi u. Tokyo ng u trong danh sách này và


con tr ch a a ch c a d li u c nêu d i ây. Nagoya ng cu i c a danh
sách và con tr ch a 0. Hãy ch n m t cách úng a thêm Shizuoka vào a ch
150 gi a Atami và Hamamatsu.
Con tr u a ch li u Con tr
10 10 Tokyo 50
30 Nagoya 0
50 Shin Yokohama 90
70 Hamamatsu 30
90 Atami 70
150 Shizuoka

a. Con tr cho Shizuoka c t là 50 và con tr cho Hamamatsu c t là 150


b. Con tr cho Shizuoka c t là 70 và con tr cho Atami c t là 150
c. Con tr cho Shizuoka c t là 90 và con tr cho Hamamatsu c t là 150
d. Con tr cho Shizuoka c t là 150 và con tr cho Atami c t là 90

Q3 C u trúc d li u thích h p cho thao tác FIFO (vào tr c ra tr c) là gì?


a. Cây nh phân b. Hàng i c. Ng n x p d. ng

Q4 Hai thao tác ng n x p c nh ngh a nh sau:


PUSH n: D li u (nguyên "n") c y vào ng n x p.
POP: D li u c b t ra kh i ng n x p.
u thao tác ng n x p c th c hi n trên ng n x p r ng theo th t c c nêu d i ây, thì
có th thu c k t qu gì?
PUSH 1 → PUSH 5 → POP → PUSH 7 → PUSH 6 → PUSH 4 →POP → POP → PUSH 3

a b C d e

1 3 3 3 6
7 4 4 7 4
3 5 6 1 3
20 Ch ng 1 C u trúc d li u

Q5 Hình 2 là bi u di n m ng cho cây nh phân c v trong Hình 1. Giá tr nào nên


c t vào ch "a"?
Ch s Giá tr Con tr 1 Con tr 2
200
1 200 3 2
180 220 2 220 0 0
3 180 5 a
4 190 0 0
150 190
5 150 6 0
6 130 0 0
130 Hình 1 Cây nh phân
Hình 2
Bi u di n m ng cho cây nh phân

a. 2 b. 3 c. 4 d. 5

Q6 Khi ph n t 12 b xoá kh i cây tìm ki m nh phân c v d i ây, ph n t nào


nên c chuy n t i m ph n t ã b xoá t ch c l i cây tìm ki m nh phân?
6

4 8

2 5 7 12

1 3 10 14

13 15
9 11

a. 9 b. 10 c. 13 d. 14

Q7 N u hai hay ít h n hai nhánh ch ra t t ng nút c a m t cây, thì cây nh v y c


i là cây nh phân. Cây nh phân bao g m m t nút, m t cây trái và m t cây ph i.
Có ba ph ng pháp th c hi n tìm ki m trên cây này:
(1) Th t g c tr c: Vi c tìm ki m c th c hi n theo th t c a nút, cây trái r i n cây
ph i.
(2) Th t g c gi a: Vi c tìm ki m c th c hi n theo th t c a cây trái, nút và cây ph i.
(3) Th t g c sau: Vi c tìm ki m c th c hi n theo th t cây trái, cây ph i và nút.

u vi c tìm ki m c th c hi n b ng vi c dùng ph ng pháp th t g c sau, thì k t qu


nào trong các k t qu sau có th là cái ra xem nh giá tr c a nút?
a

b e

c d f g

h i j k

a. abchidefjgk b. abechidfjgk c. hcibdajfegk d. hicdbjfkgea


Bài t p 21

Q8 Cây nh phân c v d i ây có th c bi u di n b ng vi c dùng bi u th c s


c. Bi u th c nào là úng?
-

+ ÷
A X F
+
B C D E

a. A + B × C + (D + E) ÷ F b. A + B × C - (D + E) ÷ F
c. A + B × C - D + E ÷ F d. A × B + C + (D - E) ÷ F
e. A × B + C - D + E ÷ F

Q9 Xét t i vi c l u gi d li u b ng cách dùng B-cây, hãy ch n câu chú thích úng t


nh ng câu sau:
a. Chia ra và g p l i các nút cho phép chi u sâu phân c p tr thành nh nhau.
b. Nh n di n v trí n i d li u c l u gi b ng vi c dùng m t hàm nào ó và giá tr khoá.
c. Ch có th truy nh p tu n t t i d li u u và d li u ti p ó.
d. Có danh m c và m t thành viên. Thành viên là t p c t ch c tu n t .

Q10 Có m t ng v i giá tr c a nút cha m nh h n giá tr c a nút con. chèn thêm


li u vào trong ng này, b n có th thêm m t ph n t vào ph n sau nh t và l p
i vi c trao i cha m v i con cái khi ph n t này nh h n cha m . Khi ph n t 7
c thêm vào v trí * c a ng ti p, ph n t nào s vào v trí A?
9

11 14
A
24 25 19 28

29 34 *

a. 7 b. 9 c. 11 d. 24 e. 25

Q11 M t s có n m ch s (a1 a2 a3 a4 a5) ph i c l u gi trong m t m ng b ng vi c


dùng ph ng pháp b m. N u hàm b m c xác nh nh mod (a1+a2+a3+a4+a5,
13) và n u s có n m ch s c l u gi trong m t ph n t m ng v trí sánh v i
giá tr b m ã c tính, thì t i v trí ó 54321 s c t vào âu trong m ng
c v d i ây? ây, giá tr mod (x, 13) là ph n d khi l y x chia cho 13.
trí M ng
0
1
2
⋅⋅⋅

11
12
22 Ch ng 1 C u trúc d li u

a. 1 b. 2 c. 7 d. 11

Q12 N m d li u v i các giá tr khoá c phân b u và ng u nhiên trong ph m vi t


1 t i 1,000,000 ph i c ng kí vào b ng b m kích c 10. Xác su t x p x cho
ng x y ra là gì? ây, ph n d thu c khi m t giá tr khoá c chia theo
kích c c a b ng b m c dùng nh giá tr b m.
a. 0.2 b. 0.5 c. 0.7 d. 0.9
2 Thu t toán

c ích c a ch ng
Các c s c a vi c l p trình là thi t k thu t toán.
Trong thi t k c u trúc logic c a ch ng trình, u
quan tr ng là dùng thu t toán thích h p nh t. T ng t
nh v y, trong vi c ch n ch ng trình t th vi n,
thu t toán nào c dùng là m t trong nh ng tiêu
chu n quan tr ng nh t ch n ch ng trình thích h p
nh t.
Ch ng này mô t cho các c s c a thi t k thu t toán
và các thu t toán tiêu bi u.

• Hi u các c s c a thu t toán, nh nh ngh a thu t


toán, thi t k , m i quan h v i c u trúc d li u,
ph ng pháp bi u di n v.v..
‚ Hi u c tr ng và ý ngh a c a các thu t toán tìm
ki m, s p x p, x lí kí t và x lí t p tiêu bi u.
24 Ch ng 2 Thu t toán

Gi i thi u
Vi c dùng thu t toán hi u qu , d hi u làm cho ng i ta có kh n ng t ng t c th c hi n và
gi m s l i còn b gi u kín. Thu t toán là m t trong nh ng nhân t m u ch t xác nh ra hi u
ng h th ng. C ng v y, ch t l ng c a thu t toán c dùng làm tiêu chu n cho vi c ch n
các b ph n t th vi n.
Ch ng này mô t các c s c a thu t toán c dùng cho thi t k logic mô un và nh ng
thu t toán c dùng gi i các bài toán n hình. Vi c ch n m t thu t toán n i ti ng hay
th ng c dùng mà không phân tích y các v n c nêu ra là u c n tránh. Nên
ch n l y m t thu t toán thích h p nh t cho các c tr ng c a bài toán.
Vi c ánh giá b n thân thu t toán c ng là m t nhi m v quan tr ng. D li u thu c b ng
vi c so sánh nhi u thu t toán trên c s con s khách quan s giúp ích r t nhi u cho b n trong
vi c ch n thu t toán thích h p nh t.
Trong ch ng này, các b n s h c nh ng c s v thu t toán cho các b n có th thi t k mô
un d hi u.

2.1 s v thu t toán


c này gi i thích v :
- nh ngh a v thu t toán
- M i quan h gi a thu t toán và c u trúc d li u

2.1.1 Thu t toán là gì?


(1) nh ngh a v thu t toán
Thu t toán c nh ngh a trong Chu n công nghi p Nh t (JIS) là nh sau:
t t p gi i h n các qui t c ã c xác nh rõ, c áp d ng m t s l n gi i quy t các
n .
u này có ngh a là thu t toán là t p các qui t c (th t c) c thi t l p gi i quy t các bài
toán. Gi i m t bài toán, chúng ta có th l y nhi u con ng. Xem nh m t ví d n gi n,
khi chúng ta tính m t giá tr Y l n l n h n X, chúng ta có th l y hai cách ti p c n:
- Nhân X v i Y
- C ng Y l n v i X
Trong vi c xác nh thu t toán, u quan tr ng không ch ngh v th t c gi i bài toán mà còn
thi t k và thích ng thu t toán sao cho có th gi i bài toán m t cách có hi u qu và hi u l c.
t m quan tr ng khác là ch thu t toán ph i có m d ng (nó ph i không ch y vào chu
trình vô h n). V n này s c xét t i m c 2.3.2 ánh giá theo tính úng n.

(2) Thu t toán và l p trình


Thu t toán và l p trình là hai m t c a cùng ng ti n. L p trình là vi c mô t d li u và thu t
toán trong các ngôn ng l p trình sao cho máy tính có th th c hi n các nhi m v c giao
2.1 C s v thu t toán 25

a nó.
Nói chung, ch ng trình bao g m các thu t toán và d li u còn thu t toán bao g m logic và
u khi n.
p trình có th c phân lo i thành b n ki u khác nhau t ng ng v i cách thu t toán c
xem xét:
- L p trình th t c
- L p trình hàm
- L p trình logic
- L p trình h ng i t ng
Ki u l p trình thích h p nh t ph i c ch n có xem xét t i các c tr ng c a bài toán.
• L p trình th t c
p trình th t c là ki u l p trình th ng c dùng nh t. Lo i l p trình này bao g m các
ngôn ng l p trình sau, FORTRAN, COBOL, PL/I, Pascal, C, v.v..
c tr ng
- Ch ng trình c chia thành các mô un làm cho ch ng trình ph c t p, l n thành
hi u. Vi c vi t mã c th c hi n cho t ng mô un.
- Các nh lí có c u trúc c a vào l p trình (s c gi i thích v sau).
- Tính n ng có c u trúc c dùng d ch ch ng trình
i vì l p trình th t c là h ng ( u khi n) th t c, nên có nh ng h n ch sau:
- Bên c nh th t c ( u khi n), các bi n (tên bi n, ki u, kích c v.v..) ph i c khai
báo.
- Các l nh c th c hi n t ng l nh m t theo cách tu n t (x lí song song không th
c th c hi n).
- Vi c so sánh và tính toán ph i c th c hi n gi i bài toán.
‚ L p trình hàm
p trình hàm là vi c l p trình theo h ng dùng các hàm. Nó c dùng trong l nh v c trí
tu nhân t o (AI), các lí thuy t tính toán c s và các nhi m v nghiên c u khác. LISP, trong
các ngôn ng khác, là ngôn ng l p trình hàm.
c tr ng
- Không gi ng l p trình ki u th c hi n tu n t , các bi u th c c xây d ng b ng vi c
ng nhau và chúng c thay th b ng nh ng k t qu tính toán th c hi n ch ng
trình.
- Nh ng l i g i qui có th c mô t d dàng.
- M c gi ng v i x lí song song là cao.
- Ti n trình tính toán hay th t c không c n c xét t i.
ƒ L p trình logic
Tân t (thu c tính)d a trên s ki n và suy di n là c s c a l p trình logic. Prolog là m t ví
v ngôn ng l p trình logic.
c tr ng
- B i vì các s ki n c mô t d a trên logic tân t , nên ti n trình l p trình này c
th c hi n d dàng.
- Suy di n và tính toán logic có th c th c hi n d dàng.
„ L p trình h ng it ng
Trong l p trình h ng i t ng, h th ng c xét nh m t nhóm các it ng. Các ngôn
ng bao g m Smalltalk, C++, Java và các ngôn ng khác.
26 Ch ng 2 Thu t toán

2.1.2 Thu t toán và c u trúc d li u


Thu t toán và c u trúc d li u có quan h ch t ch v i nhau. ch ng m c nào ó, c u trúc d
li u xác nh ra khuôn kh cho thu t toán.

(1) C u trúc d li u
u trúc d li u c nh ngh a nh sau:
t th t c mà ch ng trình tuân theo c t gi d li u và th c hi n nh ng nhi m v ã
c giao.
• C u trúc d li u c s
Vi c l u gi d li u ngh a là l u gi d li u vào b nh chính. Trong l u gi d li u vào b
nh chính, ki u d li u (ki u d li u, kích c , v.v..) ph i c khai báo. n v c u trúc d
li u c s nh t th ng c dùng khai báo ki u d li u c g i là c u trúc d li u c s .
Trong vi c th c hi n b c khai báo ki u d li u này, d li u c thao tác b ng vi c dùng
tên c a d li u có ki u d li u ã c khai báo tr c. (Xem Hình 2-1-1.)
‚ C u trúc d li u h ng v n
u trúc d li u h ng v n c xây d ng b ng vi c t h p các c u trúc d li u c s
i m t hay nhi u c u trúc sau:
- Danh sách
- Ng n x p
- Hàng i
- C u trúc cây.
Nh ng ph n t này c xác nh b ng vi c l p trình (các thu t toán ã c thi t k ). N u
li u c x lí theo th t nó c a vào, thì hàng i c s d ng. N u d li u c
lí theo th t o v i vi c a vào, thì ng n x p c dùng.
Do ó, n i dung c a c u trúc d li u h ng v n c xác nh b i nh ng thu t toán v i
c nào ó.
2.1 C s v thu t toán 27

Hình 2-1-1 nh ngh a ph n d li u và th t c trình ch ng trình COBOL


DATA DIVISION
FILE SECTION
FD TOUGETU-FILE
01 T-REC
02 T-HIZUKE PIC X(06).
nh ngh a d li u 88 T-ENDF VALUE HIGH-VALUE.
02 FILLER PIC X(34).
FD RUISEKI-FILE.
01 R-REC.
02 R-HIZUKE PIC X(06).
88 R-ENDF VALUE HIGH-VALUE.
02 FILLER PIC X(34).
01 N-REC PIC X(40).
WORKING-STORAGE SECTION.
01 T-COUNT PIC 9(05)
01 R-COUNT PIC 9(05)
01 N-COUNT PIC 9(05)
*
PROCEDURE DIVISION.
HEIGOU-SYORI.
OPEN INPUT TOUGETU-FILE RUISEKI-FILE
OUTPUT N-RUISEKI-FILE.
INITIALIZE T-COUNT R-COUNT N-COUNT.
PERFORM T-YOMIKOMI.
PERFORM R-YOMIKOMI
PERFORM UNTIL T-ENF AND R-ENDF.
IF T-HIZUKE < R-HIZUKE
THEN WRITE N-REC FROM T-REC
PERFORM T-YOMIKOMI
ELSE WRITE N-REC FROM R-REC
PERFORM R-YOMIKOMI
Ph n th t c

END-IF
COMPUTE N-COUNT = N-COUNT + 1
END-PERFORM.
DISPLAY T-COUNT R-COUNT N-COUNT.
CLOSE TOUGETU-FILE RUISEKI-FILE N-RUISEKI-FILE.
STOP RUN.
T-YOMIKOMI.
READ TOUGETU-FILE
AT END MOVE HIGH-VALUE TO T-HIZUKE
NOT AT END COMPUTE T-COUNT = T-COUNT + 1
END-READ.
R-YOMIKOMI.
READ RUISEKI-FILE
AT END MOVE HIGH-VALUE TO R-HIZUKE
NOT AT END COMPUTE R-COUNT = R-COUNT + 1
END-READ
28 Ch ng 2 Thu t toán

(2) Quan h gi a thu t toán và c u trúc d li u


i quan h gi a thu t toán và c u trúc d li u có th c mô t nh sau:
• X lí m ng
y thu t toán duy t tuy n tính (chi ti t c gi i thích trong M c 2.2.1) c v trong
Hình 2-1-2 làm ví d .

Hình 2-1-2 Thu t toán duy t tuy n tính và c u trúc d li u


t u
1 2 3 4 N-1 N
các ph n t → N TBL 7 9 15 6 8 2
Nh p X

1→i X 25 S l n l p l i
l n nh t = N
0 → tìm th y

i>N
ho c Có
tìm th y = 1

Không
= TBL (i) : X ≠ ≠ TBL (i) : X =

Tìm ki m
1 → tìm th y i+1 → i Tìm ki m không
thành công thành công

t thúc

Duy t tuy n tính th ng c s d ng nhi u nh t duy t d li u. Trong khi th c hi n


duy t tuy n tính trên d li u, d li u c duy t trong khi ch s trong m ng c t ng lên.
t i a l n duy t c l p l i là kích c c a m ng. T c là, n u c u trúc d li u m ng c
dùng, thì th t c và s l n l p l i là c xác nh.
‚ X lí t p
y thu t toán c và in t p nh c nêu trong Hình 2-1-3 làm ví d . (Chi ti t c gi i
thích trong m c 2.2.5.)
Vi c x lí c, so n th o và in m t t p c l p l i cho t i khi không còn d li u trong t p.
Vì t p ph i c truy nh p trong t ng chu trình x lí nên nhi m v này c th c hi n d i
ng m t chu trình.
2.1 C s v thu t toán 29

Hình 2-1-3 Thu t toán x lí t p và c u trúc d li u


B t u p

M t p 0125 136900

In tiêu
0020 011100
In ph n u 0010 050100
<Mã hàng> <S l ng

ct p bán>
u vào

Ph n u c in

Hi u ch nh Hi u ch nh

N i dung s a → vùng ra

In ra u ra

óng t p

K t thúc

ƒ X lí danh sách
Trong x lí c u trúc m ng, d li u có th c duy t và c p nh t m t cách tr n tru nh ng l i
t th i gian chèn thêm hay xoá d li u. B i vì d li u c thu x p trong hàng i, nên
vi c chèn thêm hay xoá d li u không tránh kh i i kèm v i vi c d ch chuy n d li u ra sau
hay lên tr c.

Hình 2-1-4 Chèn thêm d li u vào trong m ng

1 2 3 4 5 6 7
TBL 3 6 9 15 21 21 30

ch chuy n
X 18
Dùng c u trúc danh sách, vi c chèn thêm hay xoá d li u là d dàng. M c d u d li u c
thu x p theo cách có tr t t trong c u trúc danh sách, nó c thu x p m t cách logic cho
không c n ph i c thu x p v m t v t lí theo th t tu n t .

Hình 2-1-5 C u trúc danh sách


Ph n Ph n Ph n Ph n Ph n Ph n
li u con tr li u con tr li u con tr

Trong tr ng h p c a c u trúc danh sách, d li u không nh t thi t ph i b d ch chuy n nh


c v trong Hình 2-1-6; d li u có th c chèn thêm hay xoá i b i vi c thao tác con tr
t cách n gi n.

Hình 2-1-6 Chèn thêm d li u vào trong danh sách


Ph n Ph n Ph n Ph n Ph n Ph n
li u con tr li u con tr li u con tr

Ph n Ph n
li u con tr
30 Ch ng 2 Thu t toán

2.2 Các thu t toán


Thu t toán nên c xem nh gi i quy t t ng bài toán c bi t. N u thu t toán có th gi i
quy t các bài toán t ng t ã c thi t k và ã có s n, thì vi c dùng thu t toán nh v y s
o kh n ng cho b n t o ra thu t toán t t h n theo cách hi u qu .
c này mô t v các thu t toán tiêu bi u ã c phát tri n cho t i nay trong quan h v i
ng ki u bài toán.

2.2.1 Thu t toán duy t


Vi c duy t b ng là ph ng pháp th c hi n vi c duy t trên b ng và t p c l u gi trong b
nh tìm ra các y u t áp ng cho các yêu c u xác nh.
c này mô t cho hai ph ng pháp duy t b ng: ph ng pháp duy t tuy n tính (hay tu n t )
và ph ng pháp duy t nh phân.

(1) Ph ng pháp duy t tuy n tính (hay tu n t )


Ph ng pháp duy t tuy n tính (hay tu n t ) là ph ng pháp duy t r t n gi n t u b ng
theo cách tu n t .
• Ph ng pháp duy t vét c n
Ph ng pháp duy t vét c n là ph ng pháp duy t n gi n nh t cho m t b ng i t u n
cu i.

Hình 2-2-1 Hình nh v ph ng pháp duy t vét c n


1 2 3 4 5 6 7
TBL 15 3 2 9 6 1 7 8

So sánh
6 Tìm t u n cu i t ng b cm t

li u tìm ki m s c i chi u v i d li u trong b ng. Thu t toán này c thi t k sao


cho vi c duy t là thành công ch n u có d li u sánh úng v i d li u c n tìm và nó là không
thành công n u không có d li u nào sánh úng v i d li u c n tìm.
Th t c duy t ch m d t khi vi c sánh thành công u tiên xu t hi n. Do ó, ph ng pháp
duy t này là không thích h p cho vi c m s d li u sánh úng v i d li u c n tìm.
‚ Ph ng pháp duy t lính canh
Ph ng pháp duy t lính canh dùng thu t toán mà trong ó cùng d li u (lính canh) nh d
li u c n tìm c t vào cu i c a b ng làm n gi n hoá thu t toán duy t và làm
gi m s l n d li u c so sánh.
2.2 Các thu t toán 31

Hình 2-2-2 Ph ng pháp duy t lính canh


1 2 3 4 5 6 7 8 9 10

H K A I S D E A G S

N v trí Lính canh th N +1


D li u t ng t nh d li u
li u c n tìm S
c n tìm c l u tr

u s d li u c ch a trong b ng là N, thì c ng d li u ó (lính canh) nh d li u c n


tìm c l u gi vào v trí (N + 1) sao cho d li u c n tìm có th c i sánh ngay l p t c
i d li u lính canh.
Hình 2-2-3 ch ra vi c so sánh c a tr ng h p ph ng pháp duy t lính canh c dùng và
tr ng h p nó không c dùng.

Hình 2-2-3 So sánh tr ng h p ph ng pháp duy t lính canh c dùng và tr ng h p nó


không c dùng

t u t u

1→i 1→i

Ch có 1 phép TBL ( i ) : X = i:9 >


so sánh trong Có 2 phép so
≠ sánh trong quá ≤ Không tìm th
quá trình tìm
ki m i+1→i trình tìm ki m TBL ( i ) : X =

> i+1→i
i:9


Tìm th Không tìm th Tìm th

t thúc t thúc

<Tr ng h p ph ng pháp duy t lính canh c dùng>


Trong vòng th nh t c a vi c i chi u d li u, d li u c n tìm c xác th c. Trong vòng
th hai, ph i xác nh li u có d li u sánh úng v i d li u c n tìm hay không. T c là, n u
d li u là N, vi c so sánh c th c hi n ch (N + 1) l n.
<Tr ng h p ph ng pháp duy t lính canh không c dùng>
Trong m t vòng i chi u d li u, tính xác th c c a d li u c n tìm c ng nh li u vi c tìm
ki m có k t thúc hay không ph i c xác nh. T c là, vi c so sánh c th c hi n (N × 2)
n.
<S l n so sánh c c i c th c hi n n u s ph n t là N:>
- (N + 1) l n n u ph ng pháp duy t lính canh c dùng
- (N × 2) l n n u ph ng pháp duy t vét c n c dùng
32 Ch ng 2 Thu t toán

(2) Ph ng pháp duy t nh phân


Ph ng pháp duy t nh phân là ph ng pháp làm h p d n d li u ích khi phân chia liên ti p
mi n duy t thành hai ph n. S các phép so sánh có th c gi m i r t nhi u n u so v i
ph ng pháp duy t tuy n tính và tính hi u qu duy t có th c nâng cao. Tuy nhiên ph ng
pháp duy t này òi h i r ng các ph n t ph i c s p theo th t t ng hay gi m.
Hình 2-2-4 ch ra thu t toán c dùng cho ph ng pháp duy t nh phân.

Hình 2-2-4 Thu t toán cho ph ng pháp duy t nh phân

c 1: L y t ng ch s d i u b ng và ch s d i cu i b ng chia 2.
c 2: Ph n t có giá tr b c 1 c so sánh v i ph n t ích.
c 3: N u có ph n t t ng t v i ph n t ích thì k t thúc tìm ki m.
c 4: N u giá tr c a ph n t ích nh h n giá tr c a ph n t trong b ng, ch s
c tr i 1 và giá tr c s d ng nh ch s bi u di n cu i b ng.
u giá tr c a ph n t g c l n h n giá tr c a ph n t trong b ng thì ch s hi n t i
c c ng thêm 1 và l y làm giá tr ch s c a u b ng.
c 5: L p l i t b c 1 t i b c 4. N u ph n t gi ng ph n t ích không tìm th y t
giá tr u ch s bi u di n u b ng l n h n giá tr ch s bi u di n cu i b ng, tìm ki m
không thành công. K t thúc tìm ki m.

TBL(1) TBL(2) TBL(3) TBL(4) TBL(5) TBL(6) TBL(7) TBL(8) TBL(9) TBL(10)

TBL 1002 1005 1010 1024 1028 1052 1211 1322 1866 2132

So sánh l n th nh t

X 1866

TBL(6) TBL(7) TBL(8) TBL(9) TBL(10)


1052 1211 1322 1866 2132

So sánh l n th hai

X 1866
TBL(9) TBL(10)
1866 2132

So sánh l n th ba

X 1866

Vì các ph n t c x p theo th t t ng hay gi m, nên d li u nh h n d li u tham chi u


không c n ph i c duy t n u d li u ang c duy t l n h n d li u tham chi u. Do ó, s
li u c n duy t có th c gi m i m t n a sau l n duy t th nh t - m t u th l n v hi u
qu duy t.
Hình 2-2-5 ch ra s kh i c a ph ng pháp duy t nh phân.
2.2 Các thu t toán 33

Hình 2-2-5 L u c a ph ng pháp duy t nh phân

Ph ng pháp duy t nh phân

các ph n t →N

Nh p X

0 → Tìm th y

Chú ý: [a] ngh a là ph n th p phân c a a


1→A c làm tròn thành a trong s nguyên

N→B

A > B ho c Có
Tìm th y = 1

Không
A+ B ≠→ i
2

= X : TBL ( i )

1 → Tìm th y
< X : TBL ( i )
>

i-1→B i +1 → A

≠ =
Tìm th y : 1

Tìm ki m không Tìm ki m


thành công thành công

t thúc

<S l n t i a và s l n trung bình c th c hi n: N u s phân t là N>


- S l n trung bình = [log2N]
- S l n t i a -[log2N] +1
([ ] là kí hi u Gaussian và ph n th p phân c a giá tr trong kí hi u này c làm tròn)
34 Ch ng 2 Thu t toán

2.2.2 Thu t toán s p x p


Vi c s p x p d li u là vi c t ch c l i d li u theo m t th t c bi t. Vi c s p x p theo th
giá tr t nh t i l n c g i là s p x p theo th t t ng, còn vi c s p d li u theo chi u
ng c l i c g i là s p theo th t gi m.
u d li u c s p x p hay t ch c theo m t th t c bi t nào ó (ti n l ng, mã hàng
hoá v.v..), thì hi u qu c a công vi c x lí d li u có th c t ng lên. Do ó, thu t toán s p
p là m t trong nh ng thu t toán thông d ng nh t. Dùng thu t toán s p x p này, ng i ta có
th s p x p s và kí t . Ki u s p x p này là có th b i vì các kí t c bi u di n nh các mã
kí t (mã n i b ) trong máy tính.
Hình 2-2-6 a ra các ph ng pháp s p x p khác nhau.

Hình 2-2-6 Ph ng pháp s p x p

p x p trong Ph ng pháp trao ic s

Ph ng pháp ch n c s

Ph ng pháp chèn c s
px p
Ph ng pháp s p x p bóc v

Ph ng pháp s p x p nhanh

p x p ngoài Ph ng pháp s p x p g p

p x p trong ngh a là s p x p d li u trong b nh chính. S p x p ngoài ngh a là s p x p d


li u ã c l u gi trên a t và n v nh ph khác.
Trong vi c ch n m t ph ng pháp s p x p, t c s p x p, c ng nh cách d li u c
px p ph i c xem xét làm t i thi u th i gian c n cho vi c so sánh và tráo i d li u.
Trong vi c ch n m t ph ng pháp, b n c ng ph i làm rõ th i gian tính toán ( ph c t p tính
toán). m này s c mô t chi ti t trong M c 2.3.

(1) Ph ng pháp tráo i c s (s p x p n i b t - bubble sort)


Ph ng pháp tráo i c s (s p x p n i b t) c dùng so sánh m t c p d li u tu n t t
u m ng. N u tr t t mà sai, thì d li u c tráo i. Khi t t c các kho n m c d li u trong
t m ng c so sánh, thì trình này cho l i u m ng và nó c l p l i cho t i khi không
còn kho n m c d li u nào c n tráo i n a. Ph ng pháp này là ph ng pháp s p x p n
gi n nh t, n i ti ng nh t. Cái tên "s p x p n i b t" c cho b i vì vi c chuy n t i a hay t i
thi u d li u gi ng nh b t n i lên b m t n c.
2.2 Các thu t toán 35

Hình 2-2-7 Các b c c a ph ng pháp tráo ic s

Thu t toán s p x p d li u theo th t t ng d n


B c 1: So sánh ph n t th nh t và th hai trong b ng.
B c 2: N u ph n t th nh t l n h n ph n t th hai thì i ch ph n t th nh t và ph n t th
hai.
B c 3: N u ph n t th nh t nh h n ph n t th hai thì không i ch hai ph n t .
B c 4: So sánh ph n t th hai và ph n t th ba và l p l i b c 2 và b c 3.
B c 5: L p l i cho t i khi t i ph n t cu i cùng trong b ng. Khi tìm t i ph n t cu i cùng, giá
tr l n nh t c l u tr trong ph n t cu i cùng trong b ng.
B c 6: Th c hi n b c 1 t i b c 4 và b c 5 cho t i khi phép toán i t i ph n t cu i cùng tr
t.
B c 7: L p l i b c 1 t i b c 6 cho n khi ch còn l i ph n t th nh t và ph n t th hai
trong b ng.
t thúc vi c s p x p d li u

25 36 11 32 81 15 52

So sánh
So sánh
i ch
25 11 36 32 81 15 52

So sánh
i ch
25 11 32 36 81 15 52

So sánh
So sánh
i ch
25 11 32 36 15 81 52

So sánh
i ch Xác nh là giá tr l n nh t

25 11 32 36 15 52 81

So sánh
i ch
11 25 32 36 15 52 81

So sánh
So sánh
So sánh
i ch ã xác nh

11 25 32 15 36 52 81

So sánh
t c các b c trên ul pl im tl t

c tr ng>
- ây là m t trong nh ng ph ng pháp s p x p n gi n nh t
- Tính hi u qu là th p vì d li u c so sánh vô u ki n ngay c khi chúng ã cs p
p úng.
- N u kh i l ng d li u l n thì t n th i gian x lí.
36 Ch ng 2 Thu t toán

ph c t p tính toán>
- ph c t p tính toán t i a: O (n2)
- ph c t p tính toán trung bình: O (n 2)

Hình 2-2-8 a ra l u c a ph ng pháp tráo ic s .

Hình 2-2-8 L u c a ph ng pháp tráo ic s

Ph ng pháp trao ic s

các ph n t → N

Vòng l p 1
N=1

1→i

Vòng l p 2
i=N

TBL ( i ) ≤ Có
TBL ( i+1)
Không
TBL ( i ) → SAVE

TBL (i+1) →TBL( i )

SAVE → TBL (i+1)

i+1→i

Vòng l p 2

N-1→N

Vòng l p 1

t thúc
2.2 Các thu t toán 37

(2) Ph ng pháp l a c s (basic selection sort)


Trong thu t toán s p x p c a ph ng pháp l a c s , m t kho n m c d li u v i giá tr nh
nh t (hay l n nh t) c ch n ra u tiên t t t c các kho n m c d li u và nó c tráo i
i kho n m c d li u u m ng, r i cùng vi c này c th c hi n l p l i trên t t c các
kho n m c d li u còn l i. Khi d li u úng a vào v trí cu i cùng là m t, thì vi c s p x p
li u c hoàn thành.
Vì ph ng pháp này cho phép ph n t còn l i v i giá tr nh nh t hay l n nh t c ch n l a,
nên nó c g i là ph ng pháp l a c s .
Hình 2-2-9 a ra thu t toán c a ph ng pháp l a c s .

Hình 2-2-9 Các b c c a ph ng pháp l a c s

Các b c trong thu t toán s p x p d li u theo th t t ng d n


B c 1: Phát hi n ph n t d li u có giá tr nh nh t trong b ng.
B c 2: Trao i ph n t d li u có giá tr nh nh t v i ph n t d li u u
tiên trong b ng.
B c 3: Phát hi n ph n t d li u có giá tr nh nh t trong các ph n t còn l i
trong b ng.
B c 4: Trao i ph n t d li u có giá tr nh nh t trong b c 3 v i ph n t
li u th hai trong b ng.
B c 5: L p l i ho t ng trên cho t i ph n t d li u cu i cùng c tìm ra.
Khi ph n t d li u cu i cùng c tìm ra là ph n t có giá tr nh
nh t thì hoàn thành vi c s p x p d li u.
Tìm ph n t d li u có giá tr nh nh t
25 36 11 32 81 46 52

i ch
Tìm ph n t d li u có giá tr nh nh t

11 36 25 32 81 46 52

i ch
Tìm ph n t d li u có giá tr nh nh t

11 25 36 32 81 46 52

i ch
Tìm ph n t d li u có giá tr nh nh t

11 25 32 36 81 46 52

Tìm ph n t d li u có giá tr nh nh t

11 25 32 36 81 46 52

i ch
So sánh

11 25 32 36 46 81 52

i ch

11 25 32 36 46 52 81

c tr ng>
- M t trong các ph ng pháp s p x p n gi n nh t, nh ph ng pháp tráo i
- Tính hi u qu th p vì kho n m c d li u c so sánh vô u ki n ngay c khi chúng
38 Ch ng 2 Thu t toán

c s p x p úng.
- N u kh i l ng d li u l n, thì t n th i gian x lí.
ph c t p tính toán>
- ph c t p tính toán t i a: O (n2)
- ph c t p tính toán trung bình: O (n 2)

Hình 2-2-10 a ra l u c a ph ng pháp l a c s .

Hình 2-2-10 L u c a ph ng pháp l a c s

Ph ng pháp l a c s

các ph n t →N

Vòng l p 1
i = 1, , N - 1

i → MIN

Vòng l p 2
j = i, , N

TBL ( MIN ) : ≤
TBL ( j )
>
j → MIN

Vòng l p 2

TBL ( i ) → SAVE

TBL (MIN) →TBL( i )

SAVE → TBL (MIN)

Vòng l p 1

t thúc
2.2 Các thu t toán 39

(3) Ph ng pháp chèn c s (basic insert sort)


Trong thu t toán c a ph ng pháp chèn c s , trong khi các kho n m c d li u c s p, m t
kho n m c d li u ch a s p x p c chèn vào v trí úng trong trình t các kho n m c d
li u ã c s p x p.
Hình 2-2-11 a ra thu t toán cho ph ng pháp chèn c s .

Hình 2-2-11 Các b c c a ph ng pháp chèn c s

Thu t toán s p x p d li u theo th t t ng d n


B c 1: So sánh ph n t th nh t và th 2 trong b ng.
B c 2: N u ph n t th nh t nh h n ph n t th hai, gi nguyên tr t t .
B c 3: N u ph n t th hai nh h n ph n t th nh t, i ch ph n t th hai và th nh t.
Lúc này ph n t th nh t và ph n t th hai ã theo úng tr t t .
B c 4:So sánh ph n t th hai và ph n t th ba.
B c 5: N u ph n t th hai nh h n ph n t th ba, gi nguyên tr t t .
B c 6: N u ph n t th ba nh h n ph n t th hai, i ch ph n t th hai và ph n t th ba.
Sau ó ph n t này c so sánh v i ph n t tr c ó theo b c 2 và 3. Nh ng b c này
c l p l i cho n khi các ph n t theo úng th t t ng d n
B c 7: L p l i b c 4, 5 và 6 cho n khi ph n t cu i cùng trong b ng c t vào úng v trí.
t thúc vi c s p x p d li u.

25 36 11 32 81 15 52

So sánh

25 36 11 32 81 15 52

So sánh
So sánh i ch
i ch

11 25 36 32 81 15 52

So sánh
So sánh i ch

11 25 32 36 81 15 52

So sánh

11 25 32 36 81 15 52

So sánh
i ch
So sánh
i ch
So sánh
i ch
So sánh
i ch
So sánh

11 15 25 32 36 81 52

So sánh
So sánh i ch

11 15 25 32 36 52 81

c tr ng>
- M t trong các ph ng pháp s p x p n gi n nh t, nh ph ng pháp tráo i
- Vì d li u ng tr c ã c s p nên t c so sánh và chèn thêm là nhanh.
- N u kh i l ng d li u l n, t n th i gian x lí.
40 Ch ng 2 Thu t toán

Hình 2-2-12 a ra l u c a ph ng pháp chèn c s .

Hình 2-2-12 L u c a ph ng pháp chèn c s

Ph ng pháp chèn c s

các ph n t →N

2→j

Vòng l p 1
j>N

j-1→k

Vòng l p 2
TBL (k) ≤ TBL(k+1)
ho c k < 1

TBL ( k ) → SAVE

TBL (k+1) →TBL(k)

SAVE → TBL (k+1)

k-1→k

Vòng l p 2

j+1→j

Vòng l p 1

t thúc
2.2 Các thu t toán 41

(4) Ph ng pháp s p x p sàng l c (shaker sort)


Thu t toán c a ph ng pháp s p x p sàng l c v c b n là gi ng nh ph ng pháp tráo i c
(s p x p n i b t). Trong thu t toán c a ph ng pháp tráo i c s , các kho n m c d li u
c so sánh t trái sang ph i và c s p theo cách giá tr c c i (c c ti u) c t vào v
trí bên ph i nh t. Tuy nhiên, trong thu t toán c a ph ng pháp s p x p sàng l c, các kho n
c d li u tr c h t c so sánh t trái sang ph i, sau ó, sau khi giá tr c c i (c c ti u)
ã c t vào v trí bên ph i nh t, thì các kho n m c c so sánh t ph i sang trái và giá tr
c ti u (c c i) c t vào v trí bên trái nh t; thao tác này c th c hi n l p l i s p
p d li u.
c tr ng>
- N u kh i l ng d li u l n, thì t n th i gian.

Hình 2-2-13 a ra l u c a ph ng pháp s p x p sàng l c.

Hình 2-2-13 L u c a ph ng pháp s p x p sàng l c

p x p sàng l c 1

W→S
các ph n t →j
S→i

1→E Vòng l p 3
j→S i=E
1 →W

Vòng l p 1 ≤
E≥S TBL (i - 1) : TBL ( i )

E→i
>
TBL ( i ) → SAVE
TBL ( i - 1) → TBL( i )
Vòng l p 2 SAVE → TBL (i 1)
i=S

i→W


TBL ( i ) :TBL ( i+1) i-1→i

>
TBL( i ) → SAVE Vòng l p 3
TBL( i +1) → TBL ( i )
SAVE → TBL (i+1)
∗ W→E

TBL ( k ) → SAVE
Vòng l p 1

i +1 → i

t thúc
Vòng l p 2
∗ V trí n i y u t d li u c trao i
c l u tr trong b nh .
1
42 Ch ng 2 Thu t toán

(5) Ph ng pháp s p x p bóc v (Shell sort method)


Ph ng pháp s p x p bóc v là phiên b n m r ng c a ph ng pháp chèn c s . Hai kho n
c d li u xa nhau vào m t kho ng nào ó c l y ra so sánh v i nhau. Kho ng này
i là l h ng. L h ng này c t l n lúc b t u s p x p; khi vi c s p x p ti n tri n, nó
n c làm nh l i và cu i cùng c t là 1. Có nh ng cách khác xác nh l h ng này.
u s d li u là n, m t cách n gi n xác nh l h ng là [n/2], [n/4],··· 1. Khi l h ng này
cu i cùng c t là 1, thì vi c s p x p c th c hi n theo ích xác cùng cách nh ph ng
pháp chèn c s .
Dùng ph ng pháp chèn c s , các ph n t k nhau c so sánh và tráo i và, do ó, t c
th c hi n th p. Dùng ph ng pháp s p x p bóc v , các m u d li u xa nhau và n m nh ng
trí khác nhau nhanh chóng c tráo i cho các kho n m c d li u c s p sai v trí có
th c s p l i v v trí úng trong nh ng giai n s m nh t c a thao tác s p x p. Khi vi c
p x p ti n hành, l h ng gi a các kho n m c d li u c n c so sánh s h p d n.
Hình 2-2-14 a ra thu t toán c a ph ng pháp s p x p bóc v .

Hình 2-2-14 Các b c c a ph ng pháp s p x p bóc v


1 2 3 4 5 6 7 8
TBL 7 9 6 10 2 5 8 4 Kho ng cách = 8/2
=4
1
2 3
4
1 2 3 4 5 6 7 8
TBL 2 5 6 4 7 9 8 10 Kho ng cách = 4/2
=2
1
2
1 2 3 4 5 6 7 8
TBL 2 4 6 5 7 9 8 10 Kho ng cách = 2/2
c tr ng> =1

- N u m t ph n c a d li u ã c s p, thì vi c s p x p có th c hoàn t t r t nhanh


chóng.
- Ph ng pháp s p x p t c cao dùng ph ng pháp chèn c s

Hình 2-2-15 a ra l u c a ph ng pháp s p x p bóc v .


2.2 Các thu t toán 43

Hình 2-2-15 L u c a ph ng pháp s p x p bóc v

p x p bóc v A

các ph n t →N Vòng l p 3

N → Kho ng cách
m+1→m

Vòng l p 1
Vòng l p 2
Kho ng cách <1

Tính kho ng cách → kho ng cách


Vòng l p 1

1→m
t thúc
Vòng l p 2
m > kho ng cách

m+kho ng cách → h

Vòng l p 3
h>N

h kho ng cách→ j

Vòng l p 4
j<l

TBL ( j ) >
không
TBL ( j+kho ng cách)
>

TBL( J ) → SAVE

TBL(j+kho ng cách) →TBL(j)

SAVE →TBL(j+kho ng cách)

j - kho ng cách → j

Vòng l p 4

h +kho ng cách→h

A
44 Ch ng 2 Thu t toán

(6) Ph ng pháp s p x p nhanh (Quick sort method)


Ph ng pháp s p x p nhanh do Hoare thi t k ra. Nó hi n th i là ph ng pháp s p x p nhanh
nh t dùng ph ng pháp g i qui.

<S p x p d li u theo th t t ng>


1. M t giá tr tham chi u ( m th hay giá tr th ) c ch n t d li u c n s p x p. M c
u các giá tr khác nhau c dùng nh giá tr tham chi u, m t giá tr trung gian c a ba
ph n t (ph n t ph i, gi a và trái) th ng c dùng. Chúng ta dùng giá tr trung gian
trong ví d s p x p c nêu d i ây.

Hình 2-2-16 Th (giá tr th )

Dãy d li u 6 11 7 4 3 88 12 1 13 9

m th (giá tr th )

2. Nh ng kho n m c d li u nh h n giá tr th c chuy n sang bên trái c a kho n m c


li u th trong khi các kho n m c d li u l n h n giá tr th c chuy n sang bên
ph i c a nó. T t c các kho n m c d li u v y c chia thành hai ph n.

Hình 2-2-17 Chuy n d li u


Hàng kho n Hàng kho n
m c d li u m c d li u

m th

Kho n m c d Kho n m c d
li u nh h n li u l n h n
m th m th

{Ví d } 6 1 7 4 3 8 12 11 13 9

Kho n m c d li u Kho n m c d
m th
nh h n 8 li u l n h n 8

3. m th c ch n t m i ph n c a các kho n m c d li u cho ph n này c phân


chia thêm n a thành hai ph n con.
4. Thao tác phân chia này c l p l i cho t i khi ch còn l i m t ph n t .

Hình 2-2-18 D li u sau khi vi c s p x p c hoàn t t

1 3 4 6 7 8 9 11 12 13

Ph ng pháp phân chia m t v n l n thành nh ng v n nh và gi i quy t t ng v n nh


t cách riêng r , nh ph ng pháp s p x p nhanh này, c g i là ph ng pháp chia và tr .
Trong khi th c hi n các b c 3 và 4 trên, ph ng pháp g i qui t g i t i chính nó nói
chung c s d ng. Ph ng pháp g i qui này th ng c dùng tính giai th a. (Xem
Hình 2-2-19.)
2.2 Các thu t toán 45

Hình 2-2-19 Thu t toán tính giai th a


f (k)

Không
k>0


f (k 1) X k → f ( k ) 1→f(k)

t thúc

ph c t p tính toán, n u tr ng h p lí t ng, m th có th chia d li u thành hai ph n


bao gi c ng có th ch n c, thì s l n so sánh s r t g n v i O (nlogn). N u giá tr c c i
(c c ti u) trong dãy d li u bao gi c ng c ch n làm m th , thì s l n so sánh s là t i
nh t, O (n 2). M c d u ph c t p tính toán th ng ch ra ph c t p tính toán c c i,
tr ng h p nh th này có th x y ra mà ph c t p tính toán trung bình tr thành m t ch
báo quan tr ng.
Sau khi các kho n m c d li u c phân chia thành hai ph n, các kho n m c d li u trong
i ph n là ch cho m t trình qui có th c x lí riêng bi t. Do ó, vi c x lí song
song có th c th c hi n. Th i gian x lí trung bình là O (logn) n u vi c x lí song song
c th c hi n.
Hình 2-2-20 a ra thu t toán th c hi n vi c s p x p nhanh chóng v i t p th v trí bên
ph i nh t c a m ng.
c bi t, hai con tr c dùng và trình này ti n hành t c hai u i vào trung tâm c a dãy
li u. M t con tr i t trái sang ph i là "i" và m t con tr i t ph i sang trái là "j."

Hình 2-2-20 Thu t toán v ph ng pháp s p x p nhanh m th

(1) (2) (3) (4) (5) (6) (7)


c 1: ây là b c chu n b , kh i ch y các ng a 25 36 11 32 81 15 52
con tr i và j.
Vì 15 < 52, j không th chuy n
- i t i v trí cu i cùng bên trái và b ng 1
- j t i v trí cu i cùng bên ph i nh ng a(7) 25 36 11 32 81 15 52
a m chu n là 6
a(i) i ch cho a ( j )
c 2-1: i c chuy n sang ph i cho t i khi
tìm ra kho n m c l n h n m chu n. 25 36 11 32 15 81 52
c 2-2: j c chuy n sang trái cho t i khi tìm
Vì i > j, hoàn thành s p x p
ra kho n m c nh h n m chu n.
c 2-3: i ch a ( i ) và a ( j ) 25 36 11 32 15 81 52
c 2-4: L p l i b c 2-1, 2-2, 2-3 cho t i khi i
a( i) i ch v i m th
≥ j.
c 2-5: a ( i ) i ch v i m chu n t i cu i 25 36 11 32 15 52 81
cùng bên ph i
Các kho n m c nh h n m th Các kho n m c l n h n m th
m th

Hình 2-2-21 a ra l u c a ph ng pháp s p x p nhanh.


46 Ch ng 2 Thu t toán

Hình 2-2-21 Thu t toán c a ph ng pháp s p x p nhanh

p x p nhanh Phân chia

ng các thông s nh n s→i


c x lý: a e 1→ j
trí b t u: s
trí k t thúc:e a( e)→ m th

Vòng l p 1

s:e i≥j

< Vòng l p 2
Phân chia → j i≥j
ho c a ( i ) ≥ m th
g i
S p x p nhanh * 1 i+1→i
g i
S p x p nhanh * 2
Vòng l p 2

t thúc Vòng l p 3
i ≥j
m th ≥ a( j)
* 1 Các thông s (a, s, j 1)
ho c

* 2 Các thông s (a, j + 1, e)


j 1→ j

Vòng l p 3


i:j

<
a ( i ) → SAVE

a(j)→a(i)

SAVE → a ( j )

Vòng l p 1

a ( i ) → SAVE

a( e)→a(i)

SAVE → a ( j )

Tr v j
2.2 Các thu t toán 47

(7) Ph ng pháp s p x p g p (Merge sort method)


Trong thu t toán c a ph ng pháp s p x p g p, t t c các kho n m c d li u c phân chia
thành các ph n và vi c s p x p c th c hi n theo t ng ph n ã c chia ra. Các ph n c
px p c g p vào trong dãy c s p x p (xem Hình 2-2-22). G p ngh a là so sánh các
các kho n m c d li u trong hai dãy cs px pt u và t o ra m t dãy d li u cs p
p b ng vi c l y ra l p i l p l i kho n m c d li u nh h n theo cách tu n t . N u s kho n
c d li u là 2n, l p vi c g p n l n s hoàn thành vi c s p x p. N u nó không ph i là 2n, thì
ns u ch nh nào ó.

Hình 2-2-22 Bi u khái ni m v s p x p g p

qui) qui)
Phân chia Phân chia Phân chia

S p xêp S p xêp S p xêp

G pl i G pl i G pl i
c tr ng> (Tr v ) (Tr v )

- L i g i qui và ph ng pháp chia và tr c dùng, nh trong tr ng h p ph ng pháp


p x p nhanh.
- Vì các dãy d li u c truy nh p tu n t và c s p x p, nên thu t toán s p x p g p
c dùng cho vi c s p x p ngoài, ch ng h n s p x p d li u trên b ng t .
<Th t c>
1. D li u c phân chia thành hai ph n và t ng ph n c chia nh thêm n a cho t i khi
ch còn l i m t ph n t trong dãy d li u.
2. Sau khi dãy d li u c phân chia, các ph n c phân chia c g p tu n t l i.

Các hình 2-2-23 và 2-2-24 a ra tr ng thái c a dãy d li u trong các thao tác s p x p g p và
u c a ph ng pháp s p x p g p.

Hình 2-2-23 Tr ng thái c a dãy d li u trong các thao tác s p x p

Dãy d li u 8 2 6 4 7 5 1 3

8 2 6 4 7 5 1 3 Phân chia l n 1 ( qui)

8 2 6 4 7 5 1 3 Phân chia l n 2 ( qui)

8 2 6 4 7 5 1 3 Phân chia l n 3 ( qui)


(S các kho n m c là 1 và k t thúc qui)

2 8 4 6 5 7 1 3 pl n1
(tr l i nh ng qui)

2 4 6 8 1 3 5 7 pl n2
(Tr l i nh ng qui)

1 2 3 4 5 6 7 8 pl n3
(K t thúc nh ng qui)
< Hoàn thành vi c s p x p>
48 Ch ng 2 Thu t toán

HÌnh 2-2-24 L u c a ph ng pháp s p x p g p


Các thông s (tham s )
t u px pg p - Dãy d li u: TBL
- V trí b t u trong dãy d li u: S
- V trí k t thúc trong dãy d li u: N
1→S =
S:N

<
các ph n t → N
[(S + N) / 2] → H p x p n a dãy d li u Các thông s
c chia u tiên - Dãy d li u: TBL
S px pg p - V trí b t u dãy d li u: S
S px pg p - V trí k t thúc dãy d li u: H-1
p x p n a dãy d li u Các thông s
t thúc sau - Dãy d li u: TBL
S px pg p
- V trí b t u dãy d li u: H
- V trí k t thúc dãy d li u: N
Dãy u tiên và m t n a dãy Thông s
- Dãy d li u: TBL
sau cg pl i
- V trí b t u c a n a dãy d li u u tiên: S
- V trí b t u c a n a dãy d li u sau: H
- V trí k t thúc c a n a dãy d li u sau: N
t thúc
2.2 Các thu t toán 49

2.2.3 Thu t toán qui


i g i qui là vi c m t trình g i t i chính nó trong khi x lí d li u. Thu t toán c thi t
b ng vi c dùng l i g i qui là thu t toán g i qui. Các thu t toán s p x p nhanh và s p
p g p c ng là nh ng thu t toán qui.
c này xét "bài toán tám h u" nh m t thí d gi i thích cách thu t toán qui làm vi c.

(1) Bài toán tám h u


Bài toán tám h u là bài toán tìm cách b trí tám con h u trên bàn c (k ô 8x8) sao cho không
con nào n c con nào. Con h u là m t con c , và nó có th n con c khác n m trên các
ng ng, ngang hay chéo n i v i nó. Do ó trong câu tr l i, các con h u ph i c t
theo cách chúng không vào trên cùng m t ng th ng. Hình 2-2-25 nêu ra m t trong
nh ng câu tr l i.

Hình 2-2-25 Ví d v câu tr l i cho câu h i tám h u

1 2 3 4 5 6 7 8

1
Q
2 Q
3 Q
4 Q
5 Q
6 Q
7 Q
8
Q Q:H u

Trong vi c gi i bài toán này, b n cách b trí sau ây c dùng:


q [i]: V trí n i m t con h u c t vào c t th i (i=1 t i 8)
Trong ví d trên, q = {1, 5, 8, 6, 3, 7, 2, 4}
x [j]: Ch ra li u có con h u nào trên hàng th j (j=1 t i 8) không
y [k]: Ch ra li u có con h u nào trên ng chéo i lên t trái sang ph i th k không.
Trên cùng ng chéo i lên trái sang ph i, i + j bao gi c ng nh nhau. u này có th
c dùng thu c m t ch s "k" v i i+j-1 (k=1 t i 15).
Z [l]: Ch ra li u có con h u nào ng chéo xu ng d i t trái sang ph i v trí th l
không. Trên cùng ng chéo xu ng d i trái sang ph i, i-j bao gi c ng nh nhau.
u này có th c dùng l y ch s "l" v i i-j+8 (l=1 t i 15).
∗ V i các m ng x, y và z, các ch s 0 và 1 ngh a là 'không có con h u' và 'có con h u' t ng
ng.

Hình 2-2-26 a ra l u v thu t toán cho vi c gi i bài toán này.


50 Ch ng 2 Thu t toán

Hình 2-2-26 L u c a bài toán tám h u

t u u ( i, F )

t c các y u t trong t t c 0→j


các m ng u kh i u b ng 0
p th
0→F

j+1→j
u ( i, F )

x [ j ] + y [i + j 1]

F:1 + z [i j + 8] → W

=

u ra là các ph< n W:0
c a m ng
=

t thúc j →q[i]

1 → x [ j ],
y[i+j 1],
z[i j+8]


i:8

<
H u ( i + 1, F) 1→F

F:0

=
0 → x [ j ],
y[i+j 1],
z[i j+8]

F = 1 ho c j = 8
p th

Thoát
2.2 Các thu t toán 51

2.2.4 lí xâu kí t
Kí t c duy t, chèn thêm, xoá, tráo i hay nén l i. M c này mô t vi c duy t và nén xâu.

(1) Duy t xâu kí t


duy t xâu kí t , ta dùng thu t toán cho vi c duy t m t m u xâu nào ó và nh v nó trong
xâu kí t .
• i sánh n gi n
nb n c so sánh theo t ng kí t m t cách tu n t t u. Khi m t xâu kí t c duy t
qua, thì v trí t i ó ang duy t qua s c t là giá tr cho l i. V nguyên t c, vi c so sánh
này c th c hi n l p l i cho t i khi kí t th nh t c a xâu kí t c n duy t sánh úng v i kí
trong xâu kí t c a v n b n. N u có s sánh úng, t ng kí t còn l i c a xâu kí t em
sánh s c so sánh v i t ng kí t c a xâu kí t c n duy t.

Hình 2-2-27 Hình nh c a vi c duy t


1 2 3 4 5 6 7 8 9 10 11 a
TBL T h e w e a t h e r e

Không kh p Kh p
S a t h trí cu i cùng c a chu i ký t c t là b
1 2 3
52 Ch ng 2 Thu t toán

Hình 2-2-28 L u c a i sánh n

t u

1→j
a b + 1→ E
off → S W

Vòng l p 1
J > E ho c
S W = on

1→k

Vòng l p 2
k > b ho c
TBL (j + k 1) ≠ S(k)

k+1→k

Vòng l p 2

không
k>b


on → S W j+1→j

u tìm ki m thành công,


In giá tr j
in ra v trí d ng l i.

Vòng l p 1

t thúc

‚ Ph ng pháp Boyer-Moore ( ph ng pháp BM)


Trong thu t toán Boyer-Moore, d li u c i sánh trong khi các kí t trong v n b n c
qua. Trong m c này, ta ch gi i thích l c c s c a thu t toán này.
a. N u không có xâu kí t nào duy t
Hình 2-2-29 ch ra vi c so sánh uôi c a xâu kí t c n duy t và m u v n b n.

Hình 2-2-29 Ph ng pháp BM (tr ng h p 1)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
T t c các chu i ký
u không kh p

Chu i ký t
r a n

Chu i ký t
f i n e
c tìm ki m
f i n e
(D ch chuy n)
t

Trong tr ng h p này, kí t t i uôi, và t t c các kí t khác trong ph n v n b n th nh t


không sánh úng v i b t kì kí t nào c a xâu kí t c n c duy t. Do ó, m duy t
c chuy n i theo chi u dài c a xâu kí t c duy t cho phép vi c duy t ti p c
t ut m ó.
2.2 Các thu t toán 53

b. N u có vi c sánh úng v i m t kí t t i uôi c a xâu kí t c n duy t


Hình 2-2-30 a ra tr ng h p trong ó m t kí t t i uôi c a xâu kí t c n duy t c so
sánh v i m u v n b n và có vi c so sánh úng.

Hình 2-2-30 Ph ng pháp BM (tr ng h p 2)


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
r e e

4 3 2 1 Phù h p

f i n e

Vì m t kí t t i uôi c a xâu kí t so sánh úng v i m t kí t trong v n b n, nên các kí t


ng tr c kí t so sánh úng này ph i c so sánh. N u t t c các kí t u so sánh
úng, thì giá tr ch s c a kí t th nh t c a m u v n b n so sánh úng c cho l i.

Hình 2-2-31 Duy t thành công


Giá tr c a ký t u tiên
c quay tr l i
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

r f i n e r

f i n e
<T t c các ký t phù h p>

c. N u có vi c sánh úng v i m t kí t âu ó trong xâu kí t nh ng l i không


sánh v i m t kí t uôi c a xâu kí t
Trong tr ng h p này c v Hình 2-2-32, xâu kí t c n duy t có th n gi n c
i. V n là kho ng cách di chuy n.

Hình 2-2-32 Ph ng pháp BM (tr ng h p 3)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
a i k

Phù h p x x

f i n e

(Di chuy n b i 3 ký t )

f i n e

Kho ng cách di chuy n c xác nh b i cách các kí t trong xâu kí t c n duy t c


trí nh c v trong Hình 2-2-33.

Hình 2-2-33 Kho ng cách di chuy n

Ký t f i n e các ký t khác
Kho ng cách di chuy n 3 2 1 0 4

ng cách l u gi kho ng cách di chuy n này trong m t m ng, xâu kí t c n duy t có th


c di chuy n t i v trí úng.
54 Ch ng 2 Thu t toán

(2) Nén xâu kí t


Làm cho m t xâu kí t ng n l i b ng vi c thay th nh ng kí t liên ti p hay d u cách b ng s
ng kí t ó c g i là nén xâu kí t .
c này gi i thích thu t toán nén các kí t d u tr ng (d u cách).
Trong tr ng h p c a ví d c nêu trong Hình 2-2-34, xâu kí t c duy t t u, và n u
có ba kí t tr ng liên ti p, chúng s c thay th b ng m t kí t c bi t (#) và s các kí t
tr ng.
Hình 2-2-34 Hình nh v nén xâu kí t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
TBL A T Y A U K K U O H A S

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
TBL B # 4 T Y A U # 5 K K U O H A S

Ký t c bi t u s ký t tr ng là m t ho c hai thì
S ký t tr ng không ti n hành nén
Hình 2-2-35 a ra l u c a vi c nén xâu kí t .

Hình 2-2-35 L u c a vi c nén xâu kí t


t u

các ph n t c a TBL A → N

1→a
1→ b

Vòng l p 1
a> N

0 → inc

Vòng l p 2
TBL A(a + inc) ≠ r ng
ho c a + inc = N

inc + 1 → inc

Vòng l p 2

<
Inc : 3

≥ Vòng l p 3
# → TBL B (b) inc = 0
inc → TBL B (b + 1)
TBL A (a) →
a + inc → a TBL B (b)
b+2→b
a+1→a
Vòng l p 1 b+1→b

inc - 1 → 1
t thúc

Vòng l p 3
2.2 Các thu t toán 55

2.2.5 lí t p
Các t p khác nhau c dùng th c hi n nh ng nhi m v gi y t . c tr ng c a x lí t p là
lí cho t ng b n ghi m t.
Thu t toán x lí t p n hình là nh sau:
Ví d
lí chu n b : M t p, xoá b m v.v..
lí chính: Tính toán, so n th o, a ra v.v...
lí k t thúc: óng t p, v.v..

c này mô t m t thu t toán cho vi c x lí các t p cùng ki u và thu t toán khác cho vi c x
lí các t p ki u khác nhau.

(1) Ki m soát nhóm trong x lí các t p cùng ki u


Ki m soát nhóm (t ng nhóm) là x lí các b n ghi v i cùng khoá nh m t t ng th . Trong
vi c tính t ng s bán hàng cho t ng mã khách hàng (khoá = mã khách hàng) hay m c trung
bình cho t ng l p (khoá = mã l p), ch ng h n, ki m soát nhóm là m t trình x lí không th
thi u c.
Ki m soát nhóm òi h i r ng các b n ghi c s p x p theo t ng khoá.
Ví d Thu t toán c t p s bán hàng và in ra b n in chi ti t v bán hàng và t ng
bán cho m i ngày
• B trí t p bán hàng
Hình 2-2-36 a ra b trí c a t p bán hàng.

Hình 2-2-36 B trí c a t p bán hàng


12 / 10 S004 200000

Nhóm 12 tháng 10 12 / 10 S003 300000

12 / 10 S002 150000

11 / 10 S003 350000
Nhóm 11 tháng 10
11 / 10 S001 200000

10 / 10 S004 250000

10 / 10 S002 50000
Nhóm 10 tháng 10
Ngày bán Mã hàng S l ng Nh ng th
10 / 10 S001 bán khác
100000
56 Ch ng 2 Thu t toán

‚ nh d ng a ra (b n in chi ti t v bán hàng)


Hình 2-2-37 a ra nh d ng c dùng in b n in chi ti t v bán hàng và t ng s bán
hàng t ng ngày.

Hình 2-2-37 nh d ng c dùng a ra b n in chi ti t v bán hàng

Ngày bán Mã hàng S l ng bán


10 / 10 S001 100.000
10 / 10 S002 50.000 Danh sách chi ti t 10 tháng 10
10 / 10 S004 250.000
ng s l ng bán 400.000 ..T ng nhóm 10 tháng 10
11 / 10 S001 200.000 Danh sách chi ti t 11 tháng 10
11 / 10 S003 350.000
ng s l ng bán 550.000 ..T ng nhóm 11 tháng 10
12 / 10 S002 150.000
12 / 10 S003 300.000 Danh sách chi ti t 12 tháng 10
12 / 10 S004 200.000
ng s l ng bán 650.000 ..T ng nhóm 12 tháng 10
ng toàn b s l ng bán 1.600.000 ..T ng toàn b s l ng bán

ƒL u và s chi ti t
thu c t ng nhóm, vi c phân chia gi a các nhóm ph i c phân bi t rõ. V i ch
c bi t này, m mà ngày bán thay i tr thành vi c phân chia. Do ó, c n xác nh li u
ngày bán hàng trong b n ghi m i c n p vào có sánh úng v i ngày trong các b n ghi ã
lí g n ây nh t hay không. làm u này, m t khoá (ngày bán hàng) t m th i cc t
gi tr c khi b n ghi u tiên trong nhóm c x lí, và nó c so sánh v i khoá (ngày
bán hàng) c a các b n ghi quá kh .
Hình 2-2-38 a ra l u c a ki m soát nhóm.
2.2 Các thu t toán 57

Hình 2-2-38 L u c a ki m soát nhóm

t u t u

Nh p các b n ghi 0 → t ng ph
bán

Ngày bán → ngày


a ra tiêu c ghi t m th i

0 → t ng Thoát

lý nhóm u tiên

Danh sách
Vòng l p 1 nhóm chi ti t
Cho n khi không có
n ghi bán
Ngày bán,
Mã hàng,
l ng bán,
Ngày bán: Ngày =
Vùng ra
c ghi t m th i
≠ u ra chi ti t
a ra t ng s ph
ng ph + s l ng
ng + t ng ph bán → t ng ph
→ T ng toàn b
Thoát
lý nhóm u tiên

Danh sách chi ti t nhóm

Nh p các b n ghi
bán

Vòng l p 1

a ra t ng
toàn ph n

t thúc
58 Ch ng 2 Thu t toán

(2) C p nh t nhi u t p
u nhi u t p c so sánh b ng vi c dùng cùng tiêu chu n b ng vi c sánh, thì m i t p ph i
c s p theo trình t c a khoá, nh trong tr ng h p c a ki m soát nhóm.
Các nhi m v x lí t p là nh sau:
- G pt p
- i sánh t p
- C p nh t t p
- Duy trì t p
c này mô t nhi m v c p nh t t p. Vi c c p nh t t p là c p nh t t p chính d a trên d li u
ch a trong t p giao tác. N u t p chính là t p tu n t , thì nó ph i c t o m i l i hoàn toàn.
u t p chính có th c truy nh p ng u nhiên, thì không c n t o ra t p chính m i vì các b n
ghi có th c tìm ki m b ng các khoá, và c c p nh t. T i ây, chúng ta gi i quy t v i
th t c c p nh t n u t p chính là t p tu n t .
2.2 Các thu t toán 59

• C p nh t 1:1
p nh t 1:1 ngh a là vi c c p nh t c th c hi n n u t ng b n ghi trong t p chính sánh
úng v i m t b n ghi trong t p giao tác. (Xem Hình 2-2-39.)
Nhi u t p c c và trình x lí c xác nh b ng vi c so sánh kích c c a t ng khoá
nh sau:
Kích c c a khoá
- TR key = MS key D li u c c p nh t.
- TR key > MS key D li u c sao (d li u c vi t vào t p chính m i).
- TR key < MS key D li u c b sung vào t p chính m i (có th là tr ng h p mà
tr ng thái này c xem nh l i và trình x lí l i này th c hi n).

Hình 2-2-39 Hình nh v c p nh t 1:1

li u s n sàng c
u tr theo giá tr khóa p p ch u tr theo giá tr khóa
(cho m t khóa trong t p giao
ch , có nhi u b n ghi ch
giao d ch: n)

p nh t

p ch Danh sách
i i

<T p giao d ch> <T p ch c >


Mã hàng Tên hàng S l ng Mã hàng Tên hàng S l ng
bán bán

S001 Television 134.000 S001 Television 656.000


S004 Video recorder 98.000 S002 Stereo 423.000
S006 Personal computer 156.000 S004 Video recorder 256.000
S007 Printer 43.000 S006 Personal computer 432.000
S009 Scanner 86.000 S007 Printer 83.000
S008 Digital camera 92.000

Mã hàng Tên hàng S l ng


bán

S001 Television 790.000


S002 Stereo 423.000
S004 Video recorder 354.000
S006 Personal computer 588.000
S007 Printer 126.000
S008 Digital camera 92.000
S009 Scanner 86.000
<T p ch m i>
60 Ch ng 2 Thu t toán

Hình 2-2-40 a ra l u c a c p nh t 1:1.

Hình 2-2-40 L u c a c p nh t 1:1

t u

t p

Nh p b n ghi M

Nh p b n ghi T - B n ghi M: b n ghi chính


- B n ghi T: b n ghi giao d ch
p
Cho n khi c 2 khóa - Khóa M: khóa chính
M và T tr thành - Khóa T: khóa giao d ch
giá tr cao

= ≠
Khóa M : Khóa T

C p nh t b n ghi M < >


d ng b n ghi T Khóa M : Khóa T

n ghi M n ghi M
u không có b n ghi
→ B n ghi M m i → B n ghi M m i phù h p trong t p
chính
a ra b n ghi M m i (T p tin thi hành l i)
a ra b n ghi M m i

Nh p b n ghi M Nh p b n ghi M Nh p b n ghi T

Nh p b n ghi T

t thúc
2.2 Các thu t toán 61

‚ C p nh t 1:n
p nh t 1:n là trình c p nh t c dùng n u m t b n ghi trong t p chính sánh úng v i
nhi u b n ghi trong t p giao tác. (Xem Hình 2-2-41.)
nguyên t c, nhi u t p c c vào, nh trong tr ng h p c a c p nh t 1:1, và các trình
lí c xác nh b ng cách so sánh kích c c a khoá nh sau:
Kích c c a khoá
- TR key = MS key D li u c l y t ng và k t qu c l u gi trong vùng làm vi c.
- TR key > MS key D li u c c p nh t.
- TR key < MS key D li u c b sung vào t p chính m i (có th có tr ng h p u
này c coi là l i và trình x lí l i c g i t i).

Hình 2-2-41 Hình nh v c p nh t 1:n

li u s n sàng c
u tr theo giá tr khóa p p ch u tr theo giá tr khóa
(cho m t khó trong t p giao
ch , có nhi u b n ghi ch
giao d ch: n)

p nh t

p ch Danh sách
i i

<T p giao d ch> <T p ch c >


Mã hàng Tên hàng S l ng Mã hàng Tên hàng S l ng
bán bán
Nhi u l n

S001 Television 134.000 S001 Television 656.000


S001 Television 121.000 S002 Stereo 423.000
S004 Video recorder 98.000 S004 Video recorder 256.000
S006 Personal computer 156.000 S006 Personal computer 432.000
Nhi u l n

S007 Printer 43.000 S007 Printer 83.000


S007 Printer 41.000 S008 Digital camera 92.000
S009 Scanner 86.000

Mã hàng Tên hàng S l ng


bán

S001 Television 911.000


S002 Stereo 423.000
S004 Video recorder 354.000
S006 Personal computer 588.000

S007 Printer 167.000


S008 Digital camera 92.000
S009 Scanner 86.000
<T p ch m i>

Hình 2-2-42 a ra l u c a c p nh t 1:n.


62 Ch ng 2 Thu t toán

Hình 2-2-42 L u c a c p nh t 1:n

t u

t p

Nh p b n ghi M

Nh p b n ghi T

Vùng làm vi c

p
Cho n khi c 2 khóa
M và T tr thành
giá tr cao

= ≠
Khóa M : Khóa T

Công vi c + l ng < >


doanh thu b n ghi T Khóa M : Khóa T
→ công vi c
p nh t vi c s u không có b n ghi
ng b n ghi M phù h p trong
Nh p b n ghi T p chính
(T p tin thi hành l i)
n ghi M
→ B n ghi M m i
Nh p b n ghi T
Vùng làm vi c

Nh p b n ghi M

t thúc
2.2 Các thu t toán 63

2.2.6 hình
Trong th gi i máy tính hi n t i, CAD, CG và nh ng công ngh v hình ang c s d ng.
Trong thu t toán v hình, m t hình c i x nh m t t p các ch m. Cách m t ng th ng
n và ng tròn c v ra s c gi i thích trong m c này.
Hàm D (x, y) c dùng v m t ch m t i m giao n i ng theo to x và ng theo
to y g p nhau, nh c a ra trong Hình 2-2-43.

Hình 2-2-43 Cách hàm D (x, y) làm vi c


Tr c Y

m v A có t a D (x, Y)
y

0 x Tr c X

(1) V ng th ng
Hình 2-2-44 nêu vi c v ng th ng.

Hình 2-2-44 Ví d v vi c v ng th ng

u c a ra trong Hình 2-2-45 là m t thu t toán v ng th ng n i hai m ã


cho theo to , t c là, (x1, y1), (x2, y2) 0<x1 x2, 0<y1, 0<y2 . M c d u thu t toán này có
th v ng th ng ch y xiên theo h ng trên cao hay d i th p b ng vi c v các ch m theo
to nguyên, nó c thi t k cho phép các ng trông nh ng th ng. C ng v y, các
phép toán nhân chia c gi t i m c t i thi u còn phép toán c ng-tr c dùng nhi u nh t
làm t ng t c x lí.
64 Ch ng 2 Thu t toán

Hình 2-2-45 L u c a vi c v ng th ng

t u

Nh p
x1, x2, y1, y2

x2 x1 →dx


y1 : y2
<
1 → ST - 1 → ST
y2 y1→ dy y2 - y1→ dy


dx : dy
>

D (x1, y1) y1 : y2
>
dx ÷ 2 → S Trao i x1 v i x2
và y1 v i y2

Vòng l p 1
D (x1, y1)
x1 ≥ x2

S dy → S dy ÷ 2 → S

≥ Vòng l p 2
S:0
y1 ≥ y2
<
S + dx → S S dx → S
y1 + ST → y1

x1 + 1 → x1 S:0
<
D (x1, y1) S + dy → S
x1 + ST → x1

Vòng l p 1 y1 + 1 → y1

D (x1, y1)

Vòng l p 2

t thúc
2.2 Các thu t toán 65

(2) V ng tròn
Hình 2-2-46 nêu cách v ng tròn.

Hình 2-2-46 Cách v ng tròn

u trong Hình 2-2-47 nêu ra thu t toán v ng tròn d a trên to (x, y) c a tâm m
và bán kính r. v ng tròn này, không nên dùng hàm l ng giác c n th i gian th c hi n
lâu.
66 Ch ng 2 Thu t toán

Hình 2-2-47 L u cho vi c v ng tròn

t u

Nh p x, y, r

r → wx, ws
0 → wy

Vòng l p 1
wx < wy

D (x + wx, y + wy)

D (x + wx, y - wy)

D (x - wx, y + wy)

D (x - wx, y - wy)

D (x + wy, y + wx)

D (x + wy, y - wx)

D (x - wy, y + wx)

D (x - wy, y - wx)

ws wy ∗ 2 1
→ ws

wy +1 → wy

ws : 0

ws +( wx 1) ∗ 2
→ ws

wx - 1 → wx

Vòng l p 1

t thúc
2.2 Các thu t toán 67

2.2.7 th
th chúng ta th o lu n trong m c này là th c t o nên t các cung n i nhi u m. V
b n ta gi thi t là th vô h ng. th có h ng c ng có th c dùng, tu theo ki u
n c n c gi i quy t.
Bài toán ng i ng n nh t c mô t ây nh m t trong nh ng bài toán th tiêu bi u.

(1) Bài toán ng i ng n nh t


Nh c nêu trong Hình 2-2-48, có các ng và nút, và ph i tìm ra ng i ng n nh t t
m A t i m H. B i vì con s d c theo m i ng ch ra kho ng cách, nên b n có th th y
ngay r ng ng tô m là ng ng n nh t.

Hình 2-2-48 B n ( ng tô m là ng ng n nh t)
D
3 1

B F
2 2 3

A 4 2 H
C

3 2 4 3
E G

th c v trên Hình 2-2-48 có các con s d c theo t ng ng ch ra kho ng cách


ng c g i là th có tr ng s . M c d u chúng ta có th th y rõ ng ng n nh t b ng
t, thu t toán ph i c dùng làm cho máy tính tìm ra ng ng n nh t qua tính toán.
Chúng ta s mô t ây ba ph ng pháp tìm ng: ph ng pháp chi u sâu tr c và chi u
ng tr c, v n m b o r ng kho ng cách c a m i ng là 1, và ph ng pháp duy t c a
Dijkstra v n là ph ng pháp duy t chính tìm ra ng i ng n nh t.

Hình 2-2-49 th trong ó kho ng cách c a m i ng u c t là 1


D
1 1

B F
1 1 1

A 1 1 H
C

1 1 1 1
E G

• Ph ng pháp duy t chi u sâu tr c


Dùng ph ng pháp duy t chi u sâu tr c, m t ng c ch n làm mb t u và vi c
duy t b t u tìm con ng t i ích b ng vi c dùng ch ng.
<Th t c> (Hình 2-2-50)
1. M t nút t i m b t u c t vào ch ng.
2. M t nút c l y ra t ch ng. Các nút k v i nút v a l y ra c ki m tra và nh ng nút
tr c ây ch a bao gi c n p vào ch ng c ch n l y. Các nút c ch n cn p
vào ch ng.
3. Khi các nút c ch n c n p vào ch ng, thì nút c l y ra b c 2 trên cl u
gi vào trong m ng.
4. Các b c 1, 2 và 3 c th c hi n l p l i cho t i khi nút ích c t vào ch ng hay
ch ng tr thành r ng.
68 Ch ng 2 Thu t toán

Hình 2-2-50 Tr ng thái c a ng n x p


PUSH PUSH POP POP PUSH POP PUSH POP
A C E B A E G C H F G

E
H
C C G
A F
B B B B
1 2 3 4 5
Hình 2-2-51 Tr ng thái c a m ng
A B C D E F G H
A A A G C G

3 1
2
Tr c khi các nút c ch n c a vào trong ng n x p, nút ã ch n b c 2 trên ph i cl u
tr trong m ng. Ví d n u A c ch n và B , C và E c a vào trong ng n x p. A ph i
c l u tr trong các ph n t c a B, C và E. Sau khi nút tìm ra c t vào trong ng n x p, các nút
còn l i c tìm l n l t tìm ra ng ng n nh t. ( ng t ng t c th c hi n trong h p hình
2-2-53.
<K t qu >
Vi c duy t c th c hi n b ng ph ng pháp chi u sâu tr c cho k t qu trong ng
A-C-G-H c v trong Hình 2-2-51. M c d u hình trên v ra s c s c a vi c th c
hi n duy t, u x y ra trong vi c duy t th c t còn ph c t p h n. T c là, gi s r ng ng
ng n nh t không th tìm c, các ng khác c duy t l p l i, t c là khi vi c duy t t
i b c tr c b c t H, c v trong Hình 2-2-50, b c … trong ch ng, nó nh y lùi v
c 1 và l p l i t t c các b c. n trình này c l p cho t i khi ch ng tr thành r ng
cho t t c các ng u c tính t i tìm ra ng ng n nh t.
‚ Ph ng pháp duy t chi u r ng tr c
Dùng ph ng pháp duy t chi u r ng tr c, t t c các ng có th d n t i ích u c
duy t qua b ng vi c dùng hàng i.
<Th t c> (Hình 2-2-52)
1. M t nút t i m b t u c t vào trong hàng i.
2. M t nút c l y ra kh i hàng i. Các nút k v i nút c l y ra này c ki m tra còn
nh ng nút ch a bao gi c t vào trong hàng i thì c ch n. Các nút c ch n
c t vào hàng i.
3. Nút c l y ra trong b c 2 c l u gi vào m ng.
4. Các b c 1, 2 và 3 trên c th c hi n l p l i cho t i khi m t nút ích c t t i hay
khi hàng i tr thành r ng.
Hình 2-2-52 Tr ng thái c a hàng i
A A

A B C E B C E

B C E D F D F

C E D F G G

E Vì C g n E v a c t vào trong
D F G
hàng i, nên không có cái x lý

D F G Vì C g n E v a c t vào trong
hàng i, nên không có cái x lý
F G H H
2.2 Các thu t toán 69

Hình 2-2-53 Tr ng thái c a m ng

A B C D E F G H
A A B A B C F

3 1
2
Tr c khi nút c t vào trong hàng i, nút tìm ra b c2 c l u tr
trong m ng. Ví d , n u a c tìm ra và B, C và E c t vào trong hàng
i, A c l u tr trong các ph n t c a B , C và E
Vi c duy t c th c hi n b ng vi c dùng ph ng pháp duy t chi u r ng tr c cho k t qu
trong ng i ng n nh t A-B-F-H c v trong Hình 2-2-53. T t c các nút u c
duy t l n l t, nh c nêu trên, trong khi các tính toán c th c hi n tìm ng t t
nh t.
ƒ Ph ng pháp duy t c a Dijkstra
Ph ng pháp duy t c a Dijkstra là ph ng pháp áp d ng cách duy t chi u r ng tr c.
<Th t c> (Hình 2-2-54)
1. Kho ng cách t i t ng nút k v i nút b t u c o và nút n m t i kho ng cách ng n
nh t s c ch n (nút này c g i là X).
2. Kho ng cách t i t ng nút k v i nút X t nút b t u c ng nh kho nh cách t i các nút
ngo i tr X t nút b t u là c o và nút n m kho ng cách ng n nh t c ch n.
3. B c 2 c th c hi n l p l i trên m i nút cho t i khi t t i nút ích.
4. ng vi c b sung thêm kho ng cách c g n v i t ng nút, có th thi t l p ra con ng
ng n nh t.
70 Ch ng 2 Thu t toán

Hình 2-2-54 Ph ng pháp duy t c a Dijkstra

ng tô m là ng chia các
nút riêng ho c các tuy n ng
ã x lý

So sánh nút b t u và nút c nh nó và ánh d u nút xác nh kho ng


cách ng n nh t

So sánh kho ng cách t i nút xác nh t i tuy n ng A t i B v i kho ng


cách gi a nút li n k t i A và nút c ánh d u kho ng cách ng n nh t

Nút g n C t i E c xác nh t i kho ng cách ng n nh t có th c


duy t qua A.
Vì kho ng cách t A t i C ng n h n kho ng cách t A t i C qua E nên
ng E t i C b c t b

(Kho ng cách ng t B t i F ng n h n
kho ng cách ng t B t i F qua D. Vì v y,
ng t D t i F b c t b )

Tr c khi tuy n ng b b ,
xem xét kho ng cách
hai ng ub c tb

t qu thu c t ng t nh
ph ng pháp duy t chính xác th
nh t
<Tìm ki m xong>
2.2 Các thu t toán 71

2.2.8 Tính toán s


(1) Nghi m ph ng trình is
• Ph ng pháp phân ôi
Ph ng pháp phân ôi là gi i pháp n gi n nh t c a ph ng trình b c cao. Ph ng trình
c cao thông th ng c nh ngh a là y = f(x) và các giá tr khác nhau c gán cho x.
ng c v ra b ng cách gán các giá tr cho x. Giá tr c a x khi ng này giao v i y =
0 (tr c x) tr thành nghi m c a ph ng trình này.
Hình 2-2-55 là th c v d a trên y = f(x).

Hình 2-2-55 th c v d a trên y = f(x)

f(x1) · f(x2)<0 ch ra r ng có ít nh t m t gi i pháp bên trong vùng [x1, x2] trong ó ng


này giao v i tr c x. B ng vi c dùng ph ng pháp phân ôi, vùng [x1, x2] này c chia
thành hai ph n. thu c l i gi i x p x , ti n trình phân chia m t mi n thành hai ph n
c th c hi n l p i l p l i ch n ra ph n ( c ch b i ↔) có l i gi i.

Hình 2-2-56 Thu t toán c a ph ng pháp phân ôi

c 1 Tính xm chia vùng [x1, x2] thành 2 ph n [x1, xm] và [xm, x2]
c 2 M i ph n c ki m tra xác nh xem ph n nào có l i gi i. N u f(x1).f(x2) < 0, thì ph n có
i gi i bên trái, ng c l i ph n có l i gi i bên ph i.
c 3 N u f(x1) . f(xm) < 0, xm x2, Ng c l i xm x1.
c 4 So sánh | x1 x2 | và xét xem có áp án g n úng hay không. N u | x1 x2 | > , quay l i
c 1 và l p l i các b c 1 n b c 4.

Hình 2-2-57 a ra l u c a thu t toán thu c l i gi i c a f(x) = 0 b ng vi c dùng


ph ng pháp phân ôi.
72 Ch ng 2 Thu t toán

Hình 2-2-57 L u c a thu t toán thu c l i gi i c a f(x) = 0 b ng vi c dùng ph ng


pháp phân ôi
Ph ng pháp phân ôi

Nh p x1 và x2

f (x1 ) → y

x1 + x2 xm
2

Không y x f ( xm ) <0 Có

xm → x1 xm → x2

Có x1 - x2 ≥

Không

a ra
x1 + x2
2

K t thúc
‚ Ph ng pháp Newton
Ph ng pháp Newton gi thi t r ng m t l i gi i x p x c a ph ng trình b c cao là ã c
bi t. L i gi i x p x ó c hi u ch nh l p l i thu c l i gi i úng. Ph ng pháp c a
Newton là cao c p h n các ph ng pháp khác ch t c h i t nhanh h n và có th thu
c c nghi m th c và o.
Hình 2-2-58 là th c v dùng ph ng pháp Newton.

Hình 2-2-58 Ph ng pháp Newton

Hình 2-2-59 Thu t toán c a ph ng pháp Newton


- B c 1: Ti p tuy n v i y = f(x) t i m p1( x1, y1) và c t tr c hoành t i x2
- B c 2: Ti p tuy n v i y = f(x) t i m p2 (x2, y2). b c này ng ti p tuy n c th c
hi n l p l i g n v i k t qu c n tìm.
- B c 3: S khác nhau gi a các giá tr x p x nhau trong b c 2 c so sánh v i chính
xác c a giá tr h i t cho tr c. L p l i b c 2 và b c 3 cho n khi s khác nhau này nh
n giá tr h i t cho tr c.

Vì ph ng trình cho ng ti p tuy n t i m p1 là y-f(x1) = f'(x1)(x-x1), m x2 n i


ng ti p tuy n giao v i tr c x có th thu c b ng vi c dùng ph ng trình sau:
2.2 Các thu t toán 73

f (x i )
x i +1 = x 1 − (i = 0, 1, 2, ...)
f ′( x i )
Hình 2-2-60 a ra l u c a thu t toán thu c l i gi i c a f(x) = 0 b ng vi c dùng
ph ng pháp Newton.

Hình 2-2-60 L u c a thu t toán thu c l i gi i c a f(x) = 0 b ng vi c dùng ph ng


pháp Newton

Ph ng pháp Newton

0→K

l n l p l i l n nh t: Kmax

Giá tr h i t :

Giá tr ban u F (x) = 0 : x0

xk -
f (xk )x2 xk
f (xk )


xk +1 - xk :

>
K+1 →K


K : Kmax
a ra xk + 1
>
Không h i t

K t thúc
74 Ch ng 2 Thu t toán

(2) Tích phân s


Ph ng pháp tích phân s c dùng tính di n tích c a m t hình c bao b i các ng
cong. M c này mô t qui t c hình thang và ph ng pháp Simpson c a t t c các ph ng pháp
tích phân s thông d ng.
• Qui t c hình thang
Hình 2-2-61 nêu ra khái ni m c s c a qui t c hình thang.

Hình 2-2-61 Khái ni m c s c a qui t c hình thang

Hình 2-2-62 nêu ra th t c tính di n tích c bao b i ng cong y = f(x), di n tích d c


theo tr c x và ph n c bao b i tr c x.

Hình 2-2-62 Th t c tính di n tích dùng qui t c hình thang


c 1: Chia ng cong thành các kho ng u nhau.
c 2: Gi s ng cong c chia thành các n th ng, các ph n c chia là
hình thang.
c 3: M i ph n c chia c coi là hình thang và tính di n tích hình thang.
Di n tích m i hình thang = (c nh trên + c nh d i) x chi u cao ÷ 2
c 4: Di n tích b gi i h n b i ng cong b ng t ng t t c các di n tích hình thang.

u m t di n tích c tính toán b ng vi c dùng qui t c hình thang, thì sai s xu t hi n i


i ph n t i, nh c v trong Hình 2-2-61, vì di n tích úng khác v i di n tích hình thang.
làm gi m sai s , ph i t ng s các hình thang lên. Hình 2-2-63 a ra cách m t di n tích
c chia thành các hình thang.
2.2 Các thu t toán 75

Hình 2-2-63 Di n tích c chia ra t ng ng v i qui t c hình thang

Hình 2-2-64 nêu thu t toán tính di n tích b ng vi c dùng qui t c hình thang d a trên
Hình 2-2-63.

Hình 2-2-64 Thu t toán c a qui t c hình thang

c 1: Ph n c n tính tích phân, ví d [a, b] c a y = f(x) c chia thành n


ph n.
c 2: Chia n [a, b] thành n ph n b ng nhau, t i m i m d ng ng
vuông góc v i tr c x.
c 3: Giá tr c a hàm t i x0, x1, x2, x3, . xn là y0, y1, y2, ..yn.
c 4: Các ng th ng b c 2 c t ng cong t i p0, p1, p2, pn. V i các
m x, y và p hình thành m t hình thang.
c 5: Tính di n tích c a các hình thang S1, S2, .Sn theo công th c sau:
S1 = h(y0 + y1)/2
S1 = h(y1 + y2)/2
.
.
S1 = h(y n - 1 + yn )/2
c 6: Vùng óng b i ng cong thu c b ng t ng các di n tích c a m i
vùng: S = S1 + S 2 + ..Sn

Hình 2-2-65 nêu ra l u c a thu t toán tính di n tích b ng vi c dùng máy tính và qui
c hình thang.
76 Ch ng 2 Thu t toán

Hình 2-2-65 L u c a vi c tính di n tích x p x b ng vi c dùng qui t c hình thang

t u

Nh p a, b và n

b-a →n
n

0 →S

0 →k

a →x

f (x) → y 1

k+1→k
x + h→ x

f (x) → y 2

y2→y1 S + h (y 1 + y 2 ) → S
2

< k:n


a ra S

t thúc

‚ Ph ng pháp Simpson
ng vi c dùng qui t c hình thang, m t ng cong c chia thành các kho ng u nhau
và các m giao c a ng cong cn il i t o thành các hình thang.T ng di n tích
c tính b ng t ng di n tích c a các hình thang. M c d u sai s có th c gi m i b ng
vi c t ng s các hình thang, s các hình thang càng l n thì th i gian tính toán càng lâu. H n
a, b i vì ph ng pháp này d a trên s trong ó m t di n tích c bao b i ba ng
th ng và m t ng cong c coi là hình thang, nên có m i quan tâm v chính xác c a
t qu thu c.
Xem nh m t gi i pháp, ph ng pháp Simpson c dùng nh c nêu trong Hình 2-2-66.
ng vi c dùng ph ng pháp này, ng cong c làm x p x thành m t parabol d x lí
tính di n tích.
2.2 Các thu t toán 77

Hình 2-2-66 Di n tích c chia ra b ng vi c dùng ph ng pháp Simpson

tính di n tích S1 c bao b i y = f(x), x = x0, x = x2 và tr c x c v trong Hình 2-2-66


ng vi c dùng ph ng pháp Simpson, f(x) c xem nh m t parabola ch y qua p0, p1 và
p 2, và S1 c tính x p x nh sau:
( y 0 + 4y 1 + y 2 )h
S1 =
3
Ph ng pháp này hoàn toàn khác v i qui t c hình thang trong ó m t di n tích c chia
u thành 2n ph n (phân chia b ng nhau, theo s ch n), không theo n.
Hình 2-2-67 nêu ra thu t toán tính di n tích c v trong Hình 2-2-66 b ng vi c dùng
ph ng pháp Simpson.

Hình 2-2-67 Thu t toán tính di n tích b ng vi c dùng ph ng pháp Simpson

c1 n [a, b] n i l y tích phân c a hàm y = f(x) c chia thành 2n ph n b ng nhau.


c 2 Các ng th ng vuông góc v i tr c x c t tr c x t i các m x0, x1, x3, ….x2n
c 3 Giá tr c a hàm t i các m trên là y0, y1, …..y2n.
c 4 Các ng th ng trên c t ng y = f(x) t i các m p0, p1, ….p2n.
c 5 Ba m p2i-2(x2i-2, y2i-2), p2i-1 (x2i-1, y2i-1) và p2i (x2i, y2i) trong hai ph n c tính g n úng
nh di n tích hình Si.
S1 = (y0 + 4 y1 + y2) h/3
S1 = (y2 + 4 y3 + y4) h/3

S1 = (y2n-2 + 4 y2n-1 + y2n) h/3


c 6 Di n tích Si trong m i ph n c tính b ng t ng c a di n tích vùng S cbao b i ng
cong.
S = S1 + S2 +…..Sn

Hình 2-2-68 nêu ra l u c a thu t toán tính di n tích b ng vi c dùng máy tính và
ph ng pháp Simpson.
78 Ch ng 2 Thu t toán

Hình 2-2-68 L u c a vi c tính x p x di n tích b ng ph ng pháp Simpson


Công th c Simpson

(b a)/(2Xn) → h

a →x

0 →S

0 →i

S + f(x)+4 X f(x + h )
+ f(x + 2h ) → S

x+2Xh →x

i+1→i

< i:n


SX →S
3

a ra S

t thúc

2.2.9 Thu t toán i sánh


Trong thu t toán i sánh, các giá tr c l u gi trong m ng c so sánh thu c gi i
pháp. Vi c duy t các xâu kí t c mô t trong M c 2.2.4, X lí xâu kí t , c ng dùng m t
trong trong các thu t toán i sánh.
c này mô t cho bài toán hôn nhân n nh gi i thích cho m t trong nh ng thu t toán i
sánh tiêu bi u.

(1) Bài toán hôn nhân n nh


Trong vi c gi i bài toán hôn nhân n nh, các c p àn ông và àn bà n nh c xác nh.
n nh có ngh a là tr ng thái trong ó àn ông và àn bà c m th y yêu m n nhi u v i b n
tình c a mình h n là v i ng i khác. c bi t, gi s r ng có ba àn ông và àn bà, àn ông
tên là A, B và C và àn bà tên là a, b và c. Các m c yêu m n (t cao t i th p theo th t 1, 2
và 3) c v trong b ng sau:

àn ông> < àn bà>


1 2 3 1 2 3
A B a c a A C B
B C A b b C B A
C C B a c A B C
2.2 Các thu t toán 79

uh c s p thành c p là
P = { (A, a), (B, b), (C, c) },
A c m th y yêu m n b h n a, ng i là b n tình hi n t i. b c m th y yêu m n B, ng i là b n
tình hi n t i, h n A. Do ó, ph i không có v n gì. B c m th y yêu m n a và c h n b, ng i
là b n tình hi n t i. B i vì a c m th y yêu m n A, ng i là b n tình hi n t i, h n B, nên ph i
không có v n gì. Tuy nhiên, c c m th y yêu m n B h n C ng i là b n tình hi n t i. Tr ng
thái này c g i là tr ng thái không n nh. B ng vi c thay i b n tình, h có th cs p
thành c p là
P = { (A, a), (B, c), (C, b) }.
Tr ng thái s p c p này có th c phân tích nh sau:
• A c m th y yêu m n b h n a, ng i là b n tình hi n t i. → b c m th y yêu m n C, ng i
là b n tình hi n t i, h n A.
‚ B c m th y yêu m n c ng i là b n tình hi n t i.
ƒ C c m th y yêu m n c h n b, ng i là b n tình hi n t i. → c c m th y yêu m n B, ng i
là b n tình hi n t i, h n C.
„ a c m th y yêu m n A ng i là b n tình hi n t i.
… b c m th y yêu m n C, ng i là b n tình hi n t i.
† c c m th y yêu m n A h n B, ng i là b n tình hi n t i. → A c m th y yêu m n a, ng i
là b n tình hi n t i, h n c.
Trong vi c s p x p c p này, không c p nào có nhân t không n nh. K t qu này c g i là
n nh hay i sánh n nh.
i sánh n nh có th không nh t thi t c xác nh duy nh t. Có th có tr ng h p vi c
i sánh n nh không th c t t i b ng vi c dùng cách ti p c n c mô t trên. Bài
toán hôn nhân n nh c mô t t i ây, c thi t k t t i vi c sánh ôi n nh b ng
cách xác nh các u ki n cho t ng c p nh t nh:
[Bài toàn hôn nhân n nh]
N àn ông và N àn bà ang tìm các c p n nh.

- Các m c yêu m n c a àn ông và àn bà c t s n trong m ng M và F (s các ph n


: N+1).
- Xem nh các m c yêu m n, các s t 1 t i 5 (cao t i th p) c gán cho các s c a t ng
p.
Ví d N u có n m àn ông và n m àn bà
[T h p M: Các m c yêu m n c xét t phía àn ông]
1 2 3 4 5 6 (PT) * M t b n tình c a vào
M (1) 2 1 4 3 5 0 trong PT.
M (2) 1 3 4 2 5 0 0 c t ây nh giá tr
M (3) 1 4 5 2 3 0 ban u.
M (4) 5 4 1 3 2 0
M (5) 4 2 3 1 5 0

[T h p F: Các m c yêu m n c xét t phía àn bà]


1 2 3 4 5 6 (PT) * M t b n tình c a vào
F (1) 3 1 5 2 4 0 trong PT.
F (2) 2 1 4 3 5 0 0 c t ây nh giá tr
F (3) 3 2 5 4 1 0 ban u.
F (4) 5 2 1 3 4 0
80 Ch ng 2 Thu t toán

F (5) 5 4 2 1 3 0

- Các ngh c th c hi n theo th t c a M (1), M (2).... M (N).


- àn ông a ra ngh v i àn bà theo th t cao xu ng th p c a yêu m n. H l p l i các
ngh cho t i khi h thu c OK. Tuy nhiên có th x y ra là các OK thu c nh v y
có th b xoá b .
- àn bà cho OK ho c NO theo tiêu chu n sau:
• N u m t ng i nh n ngh l n u tiên, cô y cho OK và b o m anh ta nh b n
tình.
‚ N u cô y ã có m t àn ông, cô y so sánh yêu m n c a mình v i b n tình hi n t i
và yêu m n v i ng i ã làm ngh .
- N u cô y c m th y yêu m n b n tình hi n t i h n, cô y cho NO.
- N u cô y c m th y yêu m n ng i àn ông a ra ngh , cô y xoá b b n tình hi n t i
và b o m v i ng i v a a ra ngh làm b n tình (OK).
- Ng i àn ông v a c OK nh ng l i b xoá b v sau b t u làm ngh v i nh ng
àn bà c p yêu m n cao h n. Anh ta l p l i vi c làm ngh cho t i khi anh ta thu c
OK.

Trong l u c v trong Hình 2-2-69, hàm K (p1, p2, p3) c dùng so sánh các m c
yêu m n.
Hàm K (p1, p2, p3): Hàm này là cho l i ho c p2 ho c p3 trong ph n t m ng p1, ph n t
cao h n theo m c yêu m n. K (F(2), 1, 3) → 1
Hình 2-2-69 nêu l u c a thu t toán c a bài toán hôn nhân n nh.
2.2 Các thu t toán 81

Hình 2-2-69 L u c a thu t toán c a bài toán hôn nhân n nh

t u lý theo ngh

1 →i Vòng l p 2
M ( j , N + 1) ≠ 0

Vòng l p 1
i>N M (j , k) → l

i →j F (I, N + 1) : 0
=


1→k
F (I, N + 1) → w I → M ( j , N + 1)

lý theo ngh
K (F ( I ), j, w) → x j → F ( I , N + 1)

i+1→i

x: j
=
Vòng l p 1
I → M ( j , N + 1)

a ra danh sách các j → F ( I , N + 1)


i tác A

w →j
t thúc

0 → M ( j ,N + 1)

1→k

Vòng l p 3
M ( j, k) ≠ I

k+1 →k

Vòng l p 3

k+1 →k

Vòng l p 2

Thoát
82 Ch ng 2 Thu t toán

2.2.10 Thu t toán x p x và xác su t


Các thu t toán nói chung c dùng thu l y các giá tr úng hay gi i pháp. Có các bài toán
òi h i th i gian r t dài gi i, và có nh ng bài toán hi n không có thu t toán gi i. Trong
tr ng h p này, các thu t toán thu c l i gi i có sai s hay có xác su t ch a sai s r t nh
c dùng.

(1) Thu t toán x p x


Thu t toán x p x c dùng thu l y l i gi i x p x trong nh ng tr ng h p không th thu
c l i gi i úng cho bài toán hay ph i m t r t nhi u th i gian gi i. C hai ph ng pháp
Newton và Simpson ã mô t trong M c 2. 2. 8 r i vào lo i thu t toán x p x .
c này mô t cho bài toán ba lô xem nh m t thu t toán x p x tiêu bi u.
[Bài toán ba lô]
n có n món hàng khác nhau v tr ng l ng và giá tr . B n mu n bán chúng trong th tr n
nh ng b n không th t t c chúng vào ba lô c a mình c. Hãy tìm ra cách t h p hàng
hoá làm t i a giá tr c a chúng.

Chúng ta áp d ng các giá tr sau gi i thích cách thu t toán làm vi c:


hàng hoá (kho n m c): 5
Tr ng l ng t ng kho n m c (kg): {2, 3, 5, 7, 8} áp d ng cho kho n m c 1, kho n m c
2,......kho n m c 5 theo th t ó
Giá tr c a t ng kho n m c (10,000 yen):{2, 4, 8, 9, 10} áp d ng cho kho n m c 1, kho n
c 2, …kho n m c 5 theo th t ó.
Kh i l ng c a ba lô: 10 kg
t cách gi i bài toán này là xem xét t ng t h p hàng hoá mà s em tr ng l ng t i 10
kg và so sánh giá tr toàn b c a hàng hoá trong t ng t h p. V i bài toán c bi t này, t ng
giá tr tr thành cao nh t n u hàng hoá 1, 2 và 3 c óng gói vào ba lô, nh c nêu trong
ng d i ây:

Hàng c ng tr ng
ng giá tr
ch n ng
Hàng 1, 2 và 3 2 + 3 + 5 = 10 2 + 4 + 8 = 14 ← T i a
Hàng 1 và 5 2 + 8 = 10 2 + 10 = 12
Hàng 2 và 4 3 + 7 = 10 4 + 9 = 13

Vi c làm t ng tr ng l ng b ng kh i l ng c a ba lô không ph i bao gi c ng là gi i pháp t t


nh t. Ch ng h n, n u có kho n m c th sáu, n ng 9 kg và có giá tr 150,000 yên thì giá tr t i
a có th thu c b i vi c óng gói m i m t kho n m c này vào ba lô. tìm ra gi i pháp t t
nh t, t t c các t h p hàng hoá có th u ph i c xem xét. Khi hàng hoá t ng lên v s
ng, thì s t h p tr thành kh ng l và ph i m t nhi u th i gian tìm ra gi i pháp. Xem
nh gi i pháp cho u này, có th dùng thu t toán x p x .
Bài toán ba lô có th c phát bi u nh sau:

Có n s nguyên d ng a1, a2, a3, ..., an, và b1, b 2, b3, ..., bn, và m t s nguyên d ng, c. Hãy tìm
t t h p c a x1, x2, x3, ..., xn làm t i a t ng s c a b ixi (i = 1-n) v i xi ={0, 1} và t ng s c a
aixi (i = 1-n) là b ng hay nh h n c.
2.2 Các thu t toán 83

u phát bi u này c xét t ng t v i bài toán ã c mô t tr c ây, thì a là tr ng l ng


a hàng hoá, b là giá tr c a hàng hoá, và c là dung l ng c a ba lô. x là li u hàng hoá có
c óng gói vào ba lô hay không. 0 ngh a là hàng hoá không c óng gói còn 1 ngh a là
hàng hoá c óng gói. Do ó, bài toán ba lô và l i gi i có th c di n t nh sau:
a = | 2, 3, 5, 7, 8 |
b = | 2, 4, 8, 9, 10 |
c = 10
x = | 1, 1, 1, 0, 0 |
ng vi c dùng công th c này, vi c duy t c th c hi n 2n l n ki m tra m i t h p có th
a 0, 1 trong m ng x n u thu t toán x p x không c dùng.
Tuy nhiên, dùng thu t toán x p x , các giá tr n v c a m i hàng hoá c nh n di n tr c
t. Giá tr n v ngh a là giá tr trên tr ng l ng và nó c cho b i giá tr (bi)÷tr ng l ng
(ai).
Giá tr nv k= | 2/2, 4/3, 8/5, 9/7, 10/8 |
= | 1.00, 1.33, 1.60, 1.28, 1.25 |
Sau khi t t c các giá tr nv ã c nh n di n, hàng hoá c óng gói vào ba lô theo th
giá tr n v cao t i th p. B i vì hàng hoá không th c phân chia, nên hàng hoá v t
quá kh i l ng không dùng c a ba lô không th c óng gói.
• Kho n m c 3 v i giá tr n v cao nh t c óng gói: kh i l ng không dùng = 10-5 =
5
‚ Kho n m c 2 v i giá tr n v cao th hai c óng gói: kh i l ng không dùng = 5-3
=2
ƒ Kho n m c 4 v i giá tr n v bé h n kho n m c 2 không th c óng gói: kh i l ng
không dùng < tr ng l ng c a kho n m c 4
„ Kho n m c 5 v i giá tr n v bé h n kho n m c 4 không th c óng gói: kh i l ng
không dùng < tr ng l ng kho n m c 5
… Kho n m c 1 v i giá tr n v bé h n giá tr c a kho n m c 5 c óng gói: kh i l ng
không dùng = 2-2 = 0
Theo cách này thu c gi i pháp không nh t thi t cho l i gi i t t nh t. N u các giá tr
c xác nh là {2, 4, 8, 11, 10}, thì thu t toán x p x cho l i gi i : (kho n m c 1, kho n m c
2, kho n m c 3) = 140,000 yen m c d u chúng ta ã có l i gi i t t nh t: (kho n m c 2, kho n
c 4) = 150,000 yen. Tuy nhiên l i gi i x p x c dùng trong nhi u l nh v c khác nhau
nh ph ng pháp thu c nhanh chóng giá tr x p x r t g n v i l i gi i t t nh t.
Hình 2-2-70 a ra l u c a thu t toán gi i bài toán ba lô.
84 Ch ng 2 Thu t toán

Hình 2-2-70 L u c a thu t toán gi i bài toán ba lô


t u t u

ng ban ux Vòng l p 1
i = 1 , 2, , N

0 → MAX
b ( i )/ a ( i ) → k ( i )

0 →T
Vòng l p 1
Vòng l p 1
T≥2
N

ng ban ux

d ng T nh s nh phân, m i
c thay th trong m ng w 0 → MAX

0→J c→j

Vòng l p 2
Vòng l p 2 t c các ph n t k
I = 1, 2, , N trong m ng u b ng
0 ho c j = 0

J +a(i)∗w(i)→J
Ch s d i cho giá tr l n
nh t trong m ng là k → i
Vòng l p 2
0 →k(i)
>
j:c >
a(i):j


0→K
1→x( i)

Vòng l p 3 J a(i)→J
I = 1, 2, , N

MAX + b ( i ) → MAX
K + b ( i )∗ w ( i ) → K

Vòng l p 2
Vòng l p 3

≤ ng x, a ra MAX
K : MAX
>
K → MAX t thúc

ng w → M ng x

T+1→T

Vòng l p 1

ng x, a ra MAX

t thúc
2.2 Các thu t toán 85

(2) Thu t toán xác su t


Thu t toán xác su t dùng cách ti p c n xác su t tìm ra l i gi i b ng s ng u nhiên. Cách
ti p c n xác su t là cách ti p c n trong ó s thích h p c a l i gi i c xem xét d i d ng
xác su t, ho c là cách ti p c n mà gi i pháp c tìm ra d a trên xác su t xu t hi n c a bi n
nào ó.
c này mô t v bài toán ki m th s nguyên t nh thu t toán xem xét tính thích h p c a
i gi i d i d ng xác su t, và tr ng h p thu c h ng s hình tròn π nh thu t toán tìm
i gi i d a trên xác su t xu t hi n c a bi n c nào ó.
• Bài toán ki m th s nguyên t
Bài toán ki m th s nguyên t là m t ti n trình ki m tra s ã cho N (= 2Sd+1, d là s l ) và
xác nh xem nó có ph i là s nguyên t hay không. gi i bài toán ki m th s nguyên t ,
N ã cho c chia ra cho các s nguyên 2, 3, ...., N , và nó c coi là s nguyên t
u nó không chia h t cho b t kì s nguyên nào. M c d u l i gi i úng có th thu c b ng
vi c dùng cách ti p c n này, c n th i gian dài h n nhi u t t i l i gi i n u giá tr c a N
là l n. Xem nh m t l i gi i ta s d ng thu t toán Rabin, c thi t k v i nh lí sau:
nh lí s nguyên t ]
u N (= 2 Sd+1, d là s l ) là s nguyên t , thì m t trong hai u ki n c nêu d i ây là
úng cho b t kì s nguyên d ng c ch n tu ý, a (>1):
- ad = 1 (mod N)
- a2kd = -1 (mod N) v i 0≤k≤S-1
u s nguyên c ch n tu ý, a, không áp ng các u ki n trên, thì N c xem nh
p s , không ph i là s nguyên t . Xác su t s nguyên c ch n tu ý, a, i v i h p s N
có th áp ng các u ki n trên là b ng hay bé h n 1/4. Do ó, n u s nguyên c ch n
tu ý, a, áp ng các u ki n trên, thì xác su t xu t hi n c a ánh giá r ng N là s nguyên
là b ng hay l n h n 3/4.

Xác su t các u Xác su t các u


ki n có th c áp ki n không th c
ng áp ng
nguyên t N 100% 0%
ps N 25% hay th p h n 75% hay cao h n

u thu t toán này c dùng, thì kh n ng còn l i là l i gi i c cho b i thu t toán này là
không úng. Ki u thu t toán này c g i là thu t toán xác su t v i sai s b ch n. V i thí
c bi t trên, vì xác su t mà sai s s xu t hi n là th p, nên l i gi i c cho b i thu t
toán này nên c xem là ph thu c. Bên c nh thu t toán xác su t v i sai s b ch n, thu t
toán xác su t không sai s ôi khi c ng c dùng. M c d u thu t toán này v m t lí thuy t
có th m b o tính úng n c a l i gi i ã cho, ôi khi ph i m t r t lâu m i th c hi n
xong ti n trình thu t toán này, hay nó k t thúc mà không cho l i gi i xác nh.
Thu t toán xác su t không sai s là thu t toán s p x p nhanh. Thu t toán này c thi t k
t ng c ng hi u qu b ng vi c b trí l i ng u nhiên d li u vào b ng vi c dùng s ng u
nhiên.
‚ Cách tìm h ng s hình tròn π
Hình 2-2-71 a ra m t vòng tròn bán kính 1. Di n tích c bao b i các tr c và cung là
t ph n t di n tích c a hình tròn y có bán kính 1. Do ó, nó là π/4 (= 1 × 1 × π/4).
t khác, di n tích c a hình vuông c bao b i b n ng, x = 0, x = 1, y = 0 và y = 1 là
86 Ch ng 2 Thu t toán

1. N u các m trên hình vuông này c ch n l a theo cách ng u nhiên, thì xác su t các
m c ch n này bên trong vòng tròn là π/4.
Trong l u c v trong Hình 2-2-71, 1,000 m c sinh ra b ng vi c dùng hàm
RAN ( ) mà có th sinh s ng u nhiên gi a 0 và 1. Li u các m c sinh ra có bên trong
vòng tròn hay không c xác nh b ng vi c o kho ng cách tr c ti p t (0, 0) t i t ng
m. làm n gi n hoá tính toán, vi c tính c n b qua. Trong tr ng h p c a ví d
c nêu trong Hình 2-2-71, ng i ta ánh giá r ng (x1, y1) là bên trong n u (x12+y1 2)≤1
và r ng (x2, y2) là bên ngoài n u (x22+y2 2)>1.

Hình 2-2-71 L u c a thu t toán tìm h ng vòng tròn

Tr c y
t u

y2
(x2 , y2 ) 0 → i, ct

Vòng l p 1
i > 1000

y1 (x1 , y1 ) RAN ( ) → x
RAN ( ) → y
0 x1 x2 1 tr c x
x∗x+y∗ y→w

w:1
>

ct + 1 → ct

i+1→i

Vòng l p 1

ct ∗ 4 / i → P

t thúc

Vì h ng vòng tròn thu c theo cách này ch a sai s n y sinh t các c tr ng c h u trong
ph ng pháp c dùng sinh ra s ng u nhiên, nó nói chung c dùng trong bi u di n
có ch a sai s chu n (l i gi i ± sai s chu n).
Thu t toán gi ng th này, dùng s ng u nhiên gi i các bài toán toán h c, c g i là
ph ng pháp Monte Carlo.
2.3 ánh giá thu t toán 87

2.3 ánh giá thu t toán


Thu t toán nên c ánh giá và l a ch n d a trên nh ng tiêu chí nào ó. N u có th tìm
c thu t toán thích h p nh t gi i m t bài toán, thì công vi c l p trình có th c th c
hi n m t cách có hi u qu và ch ng trình ch t l ng cao có th c t o ra.
c này mô t cho ba tiêu chí ánh giá thu t toán sau:
- ánh giá theo ph c t p tính toán (tiêu chí ánh giá tính hi u qu )
- ánh giá theo tính h p l (tiêu chí ánh giá tin c y)
- ánh giá theo vi c bi u di n (tiêu chí ánh giá vi c xoá b d th a và làm t ng t c
lí)

2.3.1 ánh giá theo ph c t p tính toán


ph c t p tính toán, c ng c g i là o tính toán, ch ra v m t nh l ng t i công vi c
n th c hi n tính toán.
ph c t p tính toán là o c dùng làm rõ ràng v m t toán h c máy tính yêu c u
bao nhiêu th i gian và vùng b nh th c hi n tính toán.
ph c t p tính toán c bi u di n b i O (c p).
Ví d : N u m t thu t toán gi i quy t các d li u theo cách d li u t ng lên g p ôi, g p
ba, g p t ....v.v., th i gian th c hi n c ng tr nên g p ôi, g p ba, g p t ...v.v., thì
ph c t p tính toán c a thu t toán này là O (n).

(1) Các ki u ph c t p tính toán


Có hai ki u ph c t p tính toán.
- o ph c t p th i gian: Th i gian t i a thu t toán c n x lí m i d li u
- ph c t p không gian: Vùng t i a thu t toán c n x lí m i d li u
Nói chung, ph c t p tính toán gi thi t tr ng h p t i nh t. ph c t p tính toán c
th o lu n trong m c này c ng gi thi t tr ng h p t i nh t, n u không c nói thêm. N u
ph c t p tính toán trung bình là O (nlogn) và n u ph c t p tính toán t i a là O (n2), nh
tr ng h p c a s p x p nhanh, thì ph c t p tính toán trung bình nên c coi là quan tr ng
nh t.
ph c t p tính toán c a m t thu t toán c bi u di n nh kích c d li u (ch ng h n, hình
vuông v i c nh n) là không b h n ch b i nh ng gi i h n ph n c ng hay ph n m m.

(2) Ví d tính toán


Bây gi chúng ta l y thu t toán duy t tuy n tính (duy t tu n t ) và thu t toán duy t nh phân
làm ví d . Gi s r ng kích c d li u là n, s l n so sánh và ph c t p tính toán là nh sau:
• Duy t tuy n tính (duy t tu n t )
- S t i thi u l n so sánh: 1 ( ph c t p tính toán: O (1))
- S trung bình l n so sánh: n/2 ( ph c t p tính toán: O (n))
- S t i a l n so sánh: n ( ph c t p tính toán: O (n))
88 Ch ng 2 Thu t toán

‚ Duy t nh phân
- S t i thi u l n so sánh: 1 ( ph c t p tính toán: O (1))
- S trung bình l n so sánh: [log2n] ( ph c t p tính toán: O (log2n))
- S t i a l n so sánh: [log2n]+1 ( ph c t p tính toán: O (log2n))

2.3.2 ánh giá theo tính h p l


Tính h p l c a thu t toán là tiêu chí a ra ánh giá xem li u m t thu t toán có tho mãn
c t ch ng trình hay không (tài li u thi t k mô un v.v.).
Tính h p l có th c chia thêm thành ba lo i:
- H p l b ph n: Li u các n hay hàm có tho mãn c t hay không.
- Tính k t thúc: Li u m t ch ng trình có th k t thúc sau m t s xác nh các b c th c
hi n hay không, nh ã c nh ngh a b i thu t toán; b i vì chu trình vô h n ph i
không c xu t hi n.
- Tính h p l toàn b : Li u toàn th thu t toán có tho mãn c t hay không.
c d u các ph ng pháp khác nhau c dùng ki m ch ng tính h p l c a thu t toán,
n khó ki m ch ng nó m t cách y . N u ph m vi d li u c xác nh, thì tính h p l
có th c ki m ch ng d dàng b ng vi c phát hi n r c r i có th xu t hi n khi d li u bên
ngoài ph m vi ã xác nh c a vào.

2.3.3 ánh giá theo bi u di n


Các thu t toán ph i c ánh giá theo không ch ph c t p tính toán và tính h p l , mà
ng còn theo cách bi u di n thu t toán, th ng c g i là kh i th o bi u di n thu t toán.
Ví d
- Cùng m t b c c th c hi n l p l i: n u các b c cl pl i c xác nh nh các
trình con, thì chúng có th c mô t nh m t b c sao cho lu ng các b c trong thu t
toán có th c trình bày theo cách n gi n, d hi u.
- C n t ng t c th c hi n thu t toán: C n ph i chú ý t i các b c c l p l i th ng
xuyên nh t, và cách làm t ng t c nên c nghiên c u (n u s p x p nhanh c dùng,
có th c n b vi c dùng l i g i qui và làm vi c v i ph ng án khác).
2.4 Cách thi t k thu t toán 89

2.4 Cách thi t k thu t toán


a trên d li u thu c b i vi c phân tích bài toán và nh ng k t qu ánh giá c mô t
c tr c, thu t toán c thi t k v i s chú ý nhi u nh t t i cách l i gi i có th có cv i
c hi u qu cao. Có nhi u ph ng pháp c dùng thi t k thu t toán. Các ph ng
pháp tiêu bi u là:
- Ph ng pháp qui ho ch ng
- Ph ng pháp thu t toán tham lam
- Ph ng pháp rút g n

(1) Ph ng pháp qui ho ch ng


Trong ph ng pháp qui ho ch ng, m t bài toán c xét là m t t p các bài toán con. Các
c c n tuân theo là:
1. Bài toán c chia thành m t s bài toán con.
2. Gi i pháp c tìm cho t ng bài toán con.
3. M t s bài toán con c g n l i làm ra bài toán b ph n h i l n h n.
4. Các b c 2 và 3 c l p l i cho t i khi ph ng pháp gi i pháp cho bài toán g c c tìm
ra.

(2) Ph ng pháp thu t toán tham lam


Trong ph ng pháp thu t toán tham lam, c dùng tìm l i gi i cho bài toán t i u, các giá
tr c a các bi n c thay i theo m c ph thu c vào t ng u ki n hi n t i. Ch ng h n,
tìm cách làm gi m t i thi u s ng xu ph i tr cho m t kho n ti n xác nh, các s ng
xu m nh giá l n t i nh c xác nh b ng vi c dùng ph ng pháp thu t toán tham lam.
Ví d tr 574 yen
t xu 500-yen - con d 74 yen
t xu 50-yen - còn d 24 yen
Hai xu m i yen - còn d 4
n xu 1-yen - Không còn d

(3) Ph ng pháp rút g n


Trong ph ng pháp rút g n, thu t toán g c c thi t k có ph c t p O (n) c gi thi t là
t ti n trình rút g n chi u dài th i gian cn, sao cho nó th c rút g n thành kích c nh
n t o ra thu t toán m i c p O (n/x). N u O (n)>cn+ O (n/x) không th c tho mãn, thì
thu t toán này là vô ngh a. Do ó, n u n là r t nh , thu t toán này không th t o ra k t qu
mong mu n c.
90 Ch ng 2 Thu t toán

Bài t p

Q1 Thu t ng nào c dùng ch ra m t thu t toán duy t các ph n t m t cách


tu n t t u t i cu i m t b ng?
a. Tuy n tính b. Nh phân c. B m d. ng

Q2 Giá tr trong m ng có ch a n ph n t , c so sánh tu n t v i d li u X là d li u


c duy t. N u d li u X sánh v i giá tr nào ó trong b ng, "exist" c ch ra.
li u X c l u gi vào v trí c l y ch s là n+1.
Ch s 1 2 3 ... i ... n n+1
Giá tr a1 a2 a3 ... ai ... an X

Trong thu t toán duy t tuy n tính c nêu d i ây, u ki n nào nên c a vào trong
ch tr ng ?

c1 1 c t cho ch s i.
c2 n u , trình nh y t i b c 5.
c3 1 c c ng vào ch s i.
c4 Trình nh y t i b c 2.
c5 N u ch s i là n hay bé h n, "exist" c ch ra.
c6 K t thúc

a. i≥n b. i≠n b. i<n d. X = ai e. X≠ai

Q3 Có m ng A ch a n d li u c s p theo th t t ng d n. L u sau ây nêu ra


t trình tìm ki m d li u x t m ng A b ng vi c dùng ph ng pháp duy t nh
phân. Hãy ch n m t t h p úng các thao tác và a chúng vào ch tr ng a và b.
Các s th p phân c a m t giá tr thu c b ng vi c chia ph i b ch t i.

t u

1 → l0
n → hi

(l 0 + h i) / 2 → k

= >
A( k ) : x

aa ba

l0:hi

>
a b nt ix Không t n t i x

a k + l → hi K - l → lo
b k - l → hi k + l → lo t thúc
c k + l → lo K - l → hi
d k - l → lo k + l → hi
Bài t p 91

Q4 Có m t b ng có 2,000 ph n t khác nhau c s p theo th t t ng d n c a khoá.


Dùng m t khoá a vào t ngoài, b ng này c duy t theo ph ng pháp duy t
nh phân, và các ph n t sánh úng v i khoá c tìm ra. S t i a l n so sánh c n
th c hi n tr c khi t t c m i ph n t sánh úng c tìm th y là gì? Gi s r ng
ng này ch a các khoá sánh úng.
a. 10 b. 11 c. 12 d. 13

Q5 Chú thích nào trong các chú thích sau c nêu v ph ng pháp duy t là sai?
a. Dùng ph ng pháp duy t nh phân, d li u ph i c s p x p.
b. duy t 100 d li u b ng vi c dùng ph ng pháp duy t nh phân, s l n so sánh t i a
c c n t i tìm ra d li u ích là 7.
c. N u ph ng pháp duy t tuy n tính c dùng, s l n so sánh không nh t thi t gi m i cho
dù d li u ã c l u gi .
d. N u s d li u là 10 hay nh h n, thì s l n so sánh trung bình mà ph ng pháp duy t
tuy n tính òi h i, là nh h n s l n trung bình c a ph ng pháp duy t nh phân.
e. N u s d li u t ng lên t 100 t i 1,000, thì s l n so sánh t ng lên 10 l n h n ph ng
pháp duy t tuy n tính c dùng. B ng vi c dùng ph ng pháp duy t nh phân, s này
ng lên hai hay ít h n.

Q6 Liên quan t i s p x p và g p d li u, hãy ch n nh ng t h p úng c a các t và


a chúng vào trong ch tr ng .
Vi c s p x p d li u theo th t giá tr nh t i l n c tham chi u là A B . N u m t dãy
li u ích trong b nh ph , phép toán này c g i là C .
Vi c tích h p hai hay nhi u t p D theo th t nào ó vào m t t p c g i là E .

A B C D E
a gi m d n s px p s p x p ngoài cs px p vi c g p
b t ng d n g p g p ngoài cg p vi c s p
p
c gi m d n g p g p trong cg p vi c s p
p
d t ng d n s px p vi c s p x p cs px p vi c g p
ngoài
e t ng d n g p g p trong cg p vi c s p
p
92 Ch ng 2 Thu t toán

Q7 L u sau ây v cho lo i thu t toán nào?

t u

các ph n t →n

Vòng l p
n≤1

1→i

Trao i
i=n

A ( i ) : A (i + 1)

A(i)→w
A(i +1)→A(i)
w → A ( i + 1)

i+1→i

Trao i

n-1→n

pl i

t thúc

a. p x p nhanh-Quick sort b. S p x p sàng l c-Shaker sort c. S p x p bóc v -Shell sort


d. S p x p chèn thêm-Insertion sort e. S p x p n i b t-Bubble sort

Q8 Ph i m t 1.0 giây cho máy tính nào ó s p x p 1,000 d li u b ng vi c dùng


ph ng pháp s p x p n i b t. Ph i m t th i gian bao lâu s p 100,000 d li u
cùng ki u? Th i gian m t cho m t máy tính s p x p d li u ki u n i b t là t l v i
bình ph ng c a s d li u c xác nh là n.
a. 1 b. 10 c. 100 d. 1,000 e. 10,000
Bài t p 93

Q9 Liên quan t i ph ng pháp s p x p d li u, mô t nào trong các mô t c cho


i ây là úng?
a. S p x p nhanh Quick sort là ph ng pháp s p x p d li u theo các dãy con bao g m các
kho n m c d li u c l y t các kho ng và s p x p các dãy con nh h n bao g m các
kho n m c d li u c l y t i kho ng nh nh t.
b. S p x p bóc v Shell sort là ph ng pháp s p x p d li u b ng cách so sánh m t c p các
ph n t k và tráo i chúng n u ph n t th hai l n h n ph n t th nh t.
c. S p x p n i b t Bubble là ph ng pháp s p x p d li u b ng cách t m t giá tr tham
chi u trung gian, phân b các phân t v i giá tr l n h n giá tr tham chi u trong ph n này
và t các ph n t v i gí tr nh h n giá tr tham chi u vào ph n kia và l p l i vi c này cho
ng ph n riêng m t.
d. S p x p vun ng là ph ng pháp s p x p d li u b ng vi c bi u di n m t vùng ch a s p
p nh m t cây con, l y giá tr t i a hay t i thi u t mi n ch a s p, chuy n giá tr t i a
hay t i thi u vào vùng c s p x p và l p l i vi c này làm h p d n mi n ch a s p x p.

Q10 Mô t nào là mô t thích h p cho s p x p nhanh quick sort?


a. So sánh và tráo i c th c hi n cho hai d li u xa nhau v i kho ng cách nào ó.
Kho ng cách này d n d n và liên t c c làm h p s p x p m i d li u.
b. Giá tr t i thi u th nh t c tìm ra trong d li u. Giá tr t i thi u th hai c tìm ra
trong d li u mà trong ó giá tr t i thi u th nh t không c bao hàm. Vi c này c
th c hi n l p l i.
c. D li u c chia thành m t nhóm các d li u nh h n m t giá tr tham chi u và nhóm
kia là các d li u l n h n giá tr tham chi u. Trong t ng nhóm, m t giá tr tham chi u m i
c l a ra và d li u gi ng th l i c phân chia thành hai nhóm d a trên giá tr tham
chi u này. Vi c này c th c hi n l p l i.
d. li u k c so sánh và tráo i l p l i cho phép d li u nh h n c chuy n v
cu i m ng d li u.

Q11 Có m ng TANGO v i s ch s b t u t 0. n t c ch a trong TANGO (1) t i


TANGO(n). L u d i ây nêu ra các b c t ch c l i b ng t b ng vi c d ch
chuy n các t trong TANGO (1) t i TANGO (n-1) ng c l i, m t t , t t th
n vào TANGO (1). Hãy a vào m t b c úng trong ch tr ng .

t u

TANGO ( n ) → TANGO ( 0 )

Vòng l p
i : n 1, -1, 0

Vòng l p

t thúc

a. TANGO (i) → TANGO (i+1)


b. TANGO (i) → TANGO (n-i)
d. TANGO (i+1) → TANGO (n-i)
94 Ch ng 2 Thu t toán

e. TANGO (n-i) → TANGO (i)

Q12 D a trên mô t c nêu cho ph ng pháp Newton, c bi t t i nh thu t toán


thu c l i gi i x p x cho ph ng trình f(x) = 0, hãy ch n mô t nào thích h p
nh t sau ây.
a. M c d u m t hàm, f(x), không th c l y vi phân, có th thu c m t l i gi i x p x .
b. Nh c th y theo quan m hình h c, ph ng pháp thu l y l i gi i x p x b ng vi c
dùng ng ti p tuy n c a y = f(x).
c. Hai giá tr kh i u khác nhau ph i c cung c p.
d. V i b t kì giá tr ban u nào bao gi c ng thu c m t giá tr x p x .
3 Thi t k trong

c ích c a ch ng

Thi t k trong là m t ti n trình thi t k ra h th ng d a


trên tài li u thi t k ngoài. Nó gi i quy t cách máy tính
n ph i v n hành th c hi n nhi m v ã trao, trong
khi thi t k ngoài t p trung vào ch c n ng, tính hi u
qu và d dùng theo quan m ng i s d ng.
Ch ng này mô t các nhi m v thi t k trong c n
c th c hi n thi t k s n ph m.

• Hi u m c ích, các m quan tr ng và các th t c


a thi t k trong.
‚ Hi u n i dung và ý ngh a c a t ng ti n trình thi t k
trong.
ƒ Hi u vi c t o ra và dùng l i các b ph n c ng nh
các ph ng ti n th c t v t ch t hoá vi c t o ra
và dùng l i các b ph n
96 Ch ng 3 Thi t k trong

Gi i thi u
c ích c a thi t k trong là xác nh các ch c n ng c a ph n m m theo quan m c a
ng i phát tri n. Thi t k trong là m t ti n trình r t quan tr ng, vì m t k ho ch thi t k c s
c phát bi u ra và phân tích h th ng ph i c cài t trong ti n trình này.
c d u thi t k ngoài không gi i quy t v i ch ng trình, thi t k trong l i liên quan t i
ch ng trình, mà trong ó các hàm c n thi t c xác nh qua vi c phát tri n các h con
trong giai n thi t k ngoài, ph i c cài t. Ch ng trình có nh h ng l n, không ch
lên thi t k và ki m th ch ng trình trong ti n trình ti p, mà còn lên tính hi u qu khi h
th ng i vào v n hành. Do ó, các h con ph i c phân chia r t c n th n.
Trong ch ng này, chúng ta h c cách t ng kho n m c c ti n hành và k thu t nào c
dùng cho ta có th hi u rõ m t tài li u thi t k ngoài, và có kh n ng t b n thân mình
chu n b công vi c thi t k tin c y.

3.1 Thi t k trong là gì?


Thi t k trong là thi t k cho các ph n không th y c. Nó là thi t k khi c nhìn theo
quan m c a chuyên gia máy tính hay ng i phát tri n h th ng. Trong thi t k ngoài, h
th ng c thi t k theo quan m c a ng i dùng. Trong thi t k trong, ph n c ng và các
n ch khác, c ng nh các yêu c u ph n m m c xem xét làm cho máy tính có kh
ng th c hi n ch c n ng c yêu c u.

3.1.1 c ích c a thi t k trong và nh ng m c n



(1) c ích c a thi t k trong
Có hai m c ích c a thi t k trong:
• Xác nh các ch c n ng mà ph n m m c n ph i th c hi n theo quan m ng i
phát tri n.
Ti n trình thi t k trong trong t t c các ti n trình phát tri n h th ng là n i h th ng c
xác nh theo quan m c a ng i phát tri n. B i vì các ch c n ng ã c xác nh có
nh h ng l n t i không ch thi t k và ki m th ch ng trình trong các ti n trình sau, mà
còn t i tính hi u qu khi h th ng v n hành, nên chúng ph i c xác nh r t c n th n.
• mb os c l p c a t ng pha sao cho pha n có th c phân bi t rõ ràng
i pha kia.
Mô hình thác t lâu ã c dùng nh m t ph ng ti n cho vi c phát tri n h th ng. ã
ng c làm m n và c i ti n, nó là ph ng pháp lu n v n ang c s d ng. M c d u có
th xu t hi n m t s ch ch m nhau gi a các pha c nh nhau, t ng pha v c b n v n ph i
c l p.
n chú ý t i ch công vi c c a thi t k ch ng trình c th c hi n nh m t ph n c a
3.1 Thi t k trong là gì? 97

thi t k trong.

Ví d Vi c phân ho ch mô un c coi là quan tr ng h n; cho nên nó c phân


ho ch thành ch ng trình và t ng ch ng trình l i c phân ho ch thêm n a
thành các mô un.
t qu là ch ng trình b l ch; nó h ng "phân ho ch mô un" ch không h ng "ti n
trình", gây ra cho b n thân thi t k trong m t tính m m d o. u này có th nh h ng t i
các giai n ki m th , v n hành và th m chí b o trì.

(2) Các m c n l u ý khi làm thi t k trong


Khi làm thi t k trong, bao gi c ng ph i luôn nh "t i sao", "cái gì" và "th nào".
• T i sao: Xác nh các h con
i sao t ng h con c phân chia trong thi t k ngoài l i ph i c làm rõ ràng.
• Cái gì: Xác nh các ch c n ng c a h con
Ch c n ng nào mà t ng h con th c hi n trong lu ng h th ng t ng th , ph i c xem xét
theo quan m v m i quan h gi a các h con.
• Th nào: Xác nh các chi ti t v h con trong ch ng trình
Cách th c các u ki n vào, x lí ch c n ng và u ki n ra cho vi c v n hành c a các h
con có th c cài t trong ch ng trình ph i c làm sáng t .

Trong khi làm sáng t các nhân t "t i sao" và "cái gì", xem nh m t nguyên t c, thì "th nào"
ph i b g t ra ngoài xem xét.

3.1.2 Th t c thi t k trong


Hình 3-1-1 nêu ra th t c thi t k trong.

Hình 3-1-1 Th t c thi t k trong

Hi u tài li u phân
tích h th ng

Phân ho ch và c u
trúc ch c n ng

Thi t k Hình 1-1-1


li u v t lí Th t c
thi t k trong
Thi t k
vào/ra chi ti t

o ra tài li u thi t
trong

Xét duy t
thi t k
98 Ch ng 3 Thi t k trong

Chi ti t c a t ng b c c mô t d i ây:

(1) Hi u tài li u thi t k ngoài


Trong giai n thi t k trong, n i dung c a tài li u thi t k ngoài (s n ph m hay tài li u v
ti n trình tr c) ph i c hi u, t ch c và ph n ánh nh m t t ng th trong h th ng.
Tài li u thi t k ngoài ch a nh ng thông tin sau:
- T ng quan h th ng (lu ng h th ng, lu ng các h con v.v.)
Thông tin này c dùng làm c s cho vi c phân chia m t h con thành các ph n ch c
ng.
- Thi t k cái vào và cái ra.
Thông tin này c dùng làm c s cho vi c chu n b thi t k vào ra chi ti t.
- Thi t k d li u logic.
Thông tin này c dùng làm c s cho vi c chu n b thi t k d li u v t lí.
- C u hình và hi u n ng h th ng.
u hình h th ng (ph n c ng, ph n m m, m ng v.v..) và các giá tr c l ng v hi u
ng h th ng do thi t k ngoài cung c p, ph i c làm h p l khi ch ng trình c
xác nh và thi t k d li u v t lí c chu n b trong giai n thi t k trong.

(2) Phân ho ch và c u trúc ch c n ng


Các ch c n ng c nh ngh a qua vi c phát tri n các h th ng con trong giai n thi t k
ngoài ph i c xác nh và thi t k ch ng trình cho t ng thao tác ph i c chu n b .
• Phân ho ch ch c n ng
c 1: T i sao: Xác nh các h con
i sao t ng h con c phân chia trong thi t k ngoài l i ph i c làm rõ ràng.
c 2: Cái gì: Xác nh các ch c n ng c a h con
- Ch c n ng c a t ng h con c chia ra thành nhi u ch c n ng.
- Các ch c n ng c g p nhóm.
- Xác nh m t ch c n ng mà t ng nhóm th c hi n, hay m t ch cho t ng
nhóm.
c 3: Th nào: Xác nh ch ng trình
Th t c cho vi c phát tri n m t ch c xác nh.
‚ C u trúc ch c n ng
c 1: Các ch c n ng chi ti t c a m t ch ng trình c ki m m.
Các ch c n ng c a ch ng trình c ki m m.
c 2: Giao di n gi a các ch ng trình.
li u truy n gi a ch ng trình c làm rõ.
c 3: Xác nh lu ng x lí.
Th t c x lí ch ng trình c xác nh.

(3) Thi t k d li u v t lí
Trong b c này c a th t c thi t k trong, các ng truy nh p vào c s d li u và t p, vi c
so n th o các t p c ng nh cách b trí, c thi t k d a trên d li u c a thi t k d li u logic
ã c t o ra trong ti n trình thi t k ngoài.
3.1 Thi t k trong là gì? 99

<Th t c thi t k d li u v t lí>


1. Phân tích các c tr ng d li u
2. Xác nh c u trúc t ch c logic c a t p
3. Xác nh c u trúc t ch c v t lí c a t p
4. Xác nh ph ng ti n ghi nh d li u
5. Thi t k b trí kho n m c d li u

(4) Thi t k vào-ra chi ti t


Trong b c này, các cái vào và cái ra d li u chi ti t c thi t k b ng vi c dùng các khuôn
u chuyên d ng (s không gian và các khuôn m u khác) d a trên hình nh ã c
chu n b trong ti n trình thi t k ngoài v i xem xét thêm v h n ch ph n c ng.
Giao di n ng i dùng ho (GUI) c a vào trong công vi c thi t k này t nhi u n m
tr c. B c kí t quang h c (OCR) và b c d u hi u quang (OMR) v n còn c dùng
ng rãi n gi n hoá công vi c vào d li u.
Vi c a ra d li u dùng d ng chuyên d ng ph i c thi t k khác nhau t vi c dùng các
ng ph d ng.
<Các m c n l u ý khi thi t k cái vào và cái ra chi ti t>
- S phù h p c a nhi m v vào hay ra d li u v i nhi m v khác.
Cái vào và cái ra ph i c thi t k có xem xét t i vi c d th c hi n cho t ng nhi m v .
- Ch n ph ng ti n có tính n vi c làm d dàng x lí và qu n lí d li u.
Các ph ng ti n a vào k c b c kí t quang h c, a m m, b c mã v ch v.v..
Ph ng ti n a ra bao g m máy in, màn hình v.v.. Ph ng ti n úng ph i c ch n có
tính t i s thu n ti n cho x lí và qu n lí d li u.
- Tính t i các h n ch liên quan t i ph n c ng.
n nêu ra r ng máy in va p có ch c n ng sao chép, nh ng nó l i n và t c ch m,
hay máy c kí t quang và máy ánh d u kí t quang b ph thu c ph n c ng do lí do
thi t k . Nh ng h n ch liên quan t i ph n c ng nh v y c n ph i c tính t i.
- Gi i quy t l i c a d li u vào.
u m u ch t là ph i ki m tra l i c a d li u a vào. Ph i xác nh cách ki m tra và s a
i.
- m b o d b o trì, k c ki m soát úng n v ph ng ti n vào và ra.
Thi t k ph i c chu n b có xem xét t i vi c d b o trì và ki m soát úng ph ng ti n
vào và ra.

(5) o ra tài li u thi t k trong


Tài li u trong c t o ra nh m t s n ph m c a công vi c c nêu trên:
<N i dung c a tài li u thi t k trong>
- Chính sách thi t k trong
- C u hình h th ng
- Ch c n ng ch ng trình
- B trí màn hình
- B trí cái vào và cái ra
- T ch c t p
- Hi u n ng h th ng
- K ho ch ki m th tích h p
100 Ch ng 3 Thi t k trong

(6) Ki m m thi t k
c ích c a ki m m thi t k trong giai n thi t k trong là:
- Làm h p l r ng yêu c u c a ng i dùng c tho mãn
- Ki m ch ng tính nh t quán v i thi t k ngoài c duy trì và d li u thi t k trong ã
chu n b có th c trao cho giai n thi t k ch ng trình.
Ghi nh hai m c ích này, vi c ki m m thi t k c ti n hành theo cách k l ng. Cu c
p ki m m thi t k là quan tr ng trong b t kì giai n nào; thi t k ch ng trình và các
ti n trình ti p theo sau ó b nh h ng l n b i li u cu c ki m m thi t k ti n hành cho
thi t k trong có thành công hay không.
<Các m c n l u ý khi ti n hành ki m m thi t k >
- Các s n ph m c t o ra giai n thi t k trong c ki m ch ng..
- N i dung c a thi t k trong c ki m m xác nh n r ng nó là nh t quán v i n i
dung c a tài li u thi t k ngoài, và r ng t t c các ch c n ng c nêu ra trong tài li u
thi t k ngoài là c cài t.
- Các ch c n ng c cài t c ki m m xác nh n r ng chúng c phân chia và
u trúc thích h p.
- Các giao di n gi a các ch ng trình c ki m m xác nh n r ng chúng ã c
thi t k úng.
- S thích h p c a thi t k d li u v t lí c ki m m.
- Các cái vào và cái ra chi ti t c ki m m xác nh n r ng chúng c thi t k có
tính t i vi c làm d dàng cho ng i dùng.
- Các ch c n ng thi u và nh ng m không thích h p c ch ra.
3.2 Phân ho ch và c u trúc ch c n ng 101

3.2 Phân ho ch và c u trúc ch c


ng
Phân ho ch và c u trúc ch c n ng là công vi c phân ho ch các ch c n ng c a các h con
thành các ch ng trình sau khi xem xét tài li u thi t k ngoài và làm sáng t các ch c n ng
a t ng ch ng trình, lu ng các thao tác bao g m nhi u ch ng trình, và s phù h p c a
ch ng trình n v i ch ng trình kia.
Ti n trình c u trúc là không th thi u c cho c thi t k ngoài và phát tri n h th ng.

3.2.1 Các n v c a vi c phân ho ch và c u trúc ch c


ng
Trong giai n thi t k ngoài, h con c phân ho ch thành các ch c n ng. Trong giai n
thi t k trong, h con c phân ho ch thành các ch ng trình d a trên các ch c n ng c a nó.
khác bi t gi a ch c n ng và ch ng trình c mô t nh sau:

(1) Ch c n ng và ch ng trình
<Thi t k ngoài>
con c xây d ng lên trong vi c phân ho ch nó thành các ch c n ng. Trong khi làm vi c
phân ho ch, m i ch c n ng c xét nh nv c phân ho ch nh nh t; không k ó là
ch ng trình hay công vi c th công.

Hình 3-2-1 Phát tri n h con trong thi t k ngoài

Qu n lí phi u sinh viên

Vào phi u Tính Tích lu d li u a ra danh


ng m cá nhân sv sách phi u sv

(th công)

<Thi t k trong>
Các ch c n ng c a h con c nghiên c u k l ng và chúng c phân ho ch ra, ng v i
trong ch ng trình là m t n v c a vi c x lí máy tính.

Hình 3-2-2 Phân ho ch và c u trúc ch c n ng trong thi t k trong

Ki m soát phi u sinh viên

Vào phi u Tính o ra danh sách


ng m phi u sv
102 Ch ng 3 Thi t k trong

(2) S p th t
<Thi t k ngoài>
con c phát tri n, nh ng các ch c n ng c a h con còn ch a c s p th t .
<Thi t k trong>
Th t th c hi n ch ng trình c xác nh cài t các ch c n ng và th c hi n các
thao tác m t cách có hi u qu . Nó th ng c bi u di n d i d ng l u ti n trình (xem
Hình 3-2-3).

Hình 3-2-3 L u ti n trình

Các
p
chính

a vào các b n ghi

n Danh
ghi t p sách
chính

Tính t ng các b n ghi

ng các Các
p chính p
chính

o ra danh sách b n ghi

Danh
sách b n
ghi
3.2 Phân ho ch và c u trúc ch c n ng 103

3.2.2 Các th t c phân ho ch và c u trúc ch c n ng


Các th t c phân ho ch và c u trúc ch c n ng c gi i thích ây b ng vi c tham chi u t i
bài t p c nêu sau ây.

<Bài t p> Tính l ng tháng


n kê l ng, b n báo cáo tr l ng, và m t t p tr l ng hàng n m c c p nh t trên c s
công vi c c a t ng nhân viên và d li u l ng.
1. Gi làm thêm và gi v ng m t trong t ng tháng c a nhân viên c a vào d a trên d
li u làm vi c.
2. D li u vào c ki m tra. N u có ch a l i thì b n in danh sách l i s c in ra. Trong
tr ng h p này, d li u vào c s a i và d li u này c n p l i vào máy.
3. Sau khi s a xong l i, d li u làm vi c c s p x p t ng ng v i mã phòng ban và nhân
viên.
4. Các kho n ph phí và s ti n chi t kh u c tính toán d a trên t p l ng chính, và các
tính toán khác c th c hi n.
5. B n kê l ng và báo cáo tr l ng tháng c in ra d a trên t p kê l ng có ch a d li u
thu c t các b c 3 và 4 trên.
6. T p l ng hàng n m c c p nh t d a trên t p kê l ng.

(1) Nghiên c u k các ch c n ng


Các ch c n ng c nghiên c u k d a trên l u làm vi c m i (DFD v t lí m i) và l u
con làm vi c. T t c các ch c n ng ph i c cài t trong các h con u c nghiên c u k
ng. Trong tr ng h p thi t k ngoài, công vi c th công mà máy tính không th c hi n s
c a vào các ch c n ng. Tuy nhiên, các ch c n ng c th o lu n trong m c này ph i
c cài t thành ch ng trình.
Trong tr ng h p c bi t này, có th quan ni m b y ch c n ng c v trong Hình 1-2-4.

Hình 3-2-4 Nghiên c u k các ch c n ng

Ki m tra d px pd Tính l ng o t p kê
li u làm vi c li u làm vi c tháng ng

o b n kê o báo cáo ot p
ng ng tháng ng n m

(2) Làm rõ lu ng d li u
phân ho ch ch c n ng, lu ng d li u c n c x lí ph i c xác nh rõ. Lu ng d li u
c bi u di n b ng vi c dùng d li u logic d i d ng bi u lu ng d li u (DFD) hay s
t.
104 Ch ng 3 Thi t k trong

Hình 3-2-5 Làm rõ lu ng d li u (bi u di n nó d i d ng s b t)


pl ng chính
li u làm vi c
li u làm vi c li u làm vi c
ã ki m tra ãs px p
Ki m tra px p Tính
li u li u ng
làm vi c làm vi c tháng p chi n m (c )

p t ng k t chi

n in l i
ot p p t ng k t ot p
ng k t chi
chi chi n m

p t ng k t chi p t ng k t chi

ob n o báo
ng k t cáo chi p chi n m
chi tháng (m i)

Báo cáo chi


p t ng k t chi tháng

(3) G p nhóm ch c n ng
a trên lu ng d li u c v trên, các ch c n ng yêu c u c g p nhóm l i cho phép
máy tính th c hi n t ng nhi m v ã nêu. B c này r t có th c g i là b c chu n b , u
d n t i vi c t o ra và dùng l i các b ph n..
Các ch c n ng trong lu ng c v theo (2) trên có th c g p nhóm nh trong Hình 3-2-6.
Hình 3-2-6 G p nhóm ch c n ng
pl ng chính
li u làm vi c
li u làm vi c li u làm vi c
ã ki m tra ãs px p
Ki m tra px p Tính
li u li u ng
p chi n m
làm vi c làm vi c tháng
(c )
p t ng
t chi p t ng
t chi

n in l i px p Tính
li u ng
p t ng làm vi c tháng
t chi p t ng
t chi

ob n o báo
p chi
kê l ng cáo l ng m
tháng (m i)

p t ng k t Báo cáo l ng
tháng
chi
<Ki m tra <S p x p a ra k t qu tính
li u> li u> ng tháng>
3.2 Phân ho ch và c u trúc ch c n ng 105

(4) C u trúc phân c p


i chú ý c nêu cho lu ng d li u, các ch c n ng c yêu c u s c a vào m t c u
trúc phân c p trong các giai n. Nh c v trong Hình 3-2-7, m t s giao di n ch ng
trình v i ch ng trình (b ng tham bi n) c chu n b t o m ch cho lu ng d li u vào và
ra trong ch ng trình.
Hình 3-2-7 C u trúc phân c p và giao di n ch ng trình v i ch ng trình
con tính
ng tháng

1
2 3

Ki m tra d p x p d li u Tính l ng
li u làm vi c làm vi c tháng

4
5 6 7

o t p t ng o b n t ng o báo cáo o t p chi


t chi t chi chi tháng hàng n m

< B ng tham bi n >


Cái vào Cái ra

li u làm vi c li u làm vi c ã ki m tra.


1
Danh sách l i
li u làm vi c ã ki m tra D li u làm vi c ã s p x p
2
li u làm vi c ã s p x p ng k t chi, Báo cáo chi tháng
3
p chi chính p chi n m (m i)
li u làm vi c ã s p x p p t ng k t chi
4
p chi chính
p t ng k t chi n t ng k t chi
5
p t ng t t chi Báo cáo chi tháng
6
p t ng k t chi i chi n m (m i)
7
p chi n m (c )

<Nh ng m c n l u ý khi xây d ng các ch c n ng trong c u trúc phân c p>


- Nên tránh phân c p sâu. N u phân c p c t o ra quá sâu thì vùng thi t k ch ng trình
có th b b qua.
- Nên th n tr ng gi s ch ng trình trong m t phân c p là t i thi u.
106 Ch ng 3 Thi t k trong

Hình 3-2-8 Ví d v c u trúc phân c p không úng

(5) Xác nh ch c n ng ch ng trình


i h th ng phân c p c p th p nh t c v ra t (4), chi ti t v các trình con c a ch ng
trình c xác nh v i vi c chú ý t i lu ng d li u. N u có th c thì các b ph n c a ph n
m có th c l p ráp t i m này.

Hình 3-2-9 Xác nh ch c n ng ch ng trình

Ki m tra d li u làm vi c
li u c a vào và ki m tra.
u d li u làm vi c ch a l i, thì nó c a ra b n in l i
li u không ch a l i c ghi lên t p trên b nh ph xem
nh d li u làm vi c ã ki m tra.
li u a ra b n in l i c s a l i, và l i c a ra nh
li u làm vi c ã ki m tra
li u làm vi c ã s p x p
li u làm vi c ã ki m tra c phân lo i theo mã phòng
ban và nhân viên t o ra d li u làm vi c ã s p x p (d li u
tháng)

(6) ánh giá k t qu c a phân ho ch


Các ch c n ng ã phân ho ch c xém xét nh c u trúc ch ng trình và chúng c tính
nh các ch ng trình. K t qu c a công vi c này, c mô t theo (5) trên, c ki m m
i.
it ng ánh giá k t qu c a phân ho ch>

• N u ch ng trình ch a hai hay nhi u ch c n ng (t ng s c a ch c n ng)


Hình 3-2-10 T ng s ch c n ng

Ch c n ng A Ch c n ng B Ch c n ng C

Ch ng trình này ch a
nhi u ch c n ng

Ch c n ng A Ch c n ng B Ch c n ng C
3.2 Phân ho ch và c u trúc ch c n ng 107

‚ N u các ch ng trình ã phân ho ch c g n n i v i nhau (tích h p ch c


ng)
Hình 3-2-11 Tích h p ch c n ng

Ch c n ng A Ch c n ng B Ch c n ng C Ch c n ng D

Hai ch ng trình này c g n n i v i nhau

Ch c n ng A Ch c n ng B Ch c n ng C Ch c n ng D

Hai ch ng trình này c tích h p l i

ƒ N u c n xem xét l i các ch ng trình ã phân ho ch t khía c nh hi u qu x lí


Hình 3-2-12 T khía c nh c a tính hi u qu x lí

- Chúng c g p nhóm trong


ch c n ng trích rút/so sánh và A B
ch c n ng c p nh t
A B - Th i gian D chi m gi t ng lên
C Ch ng trình

Ch ng trình
W C

D F
E Ch ng trình

W: t p làm vi c F
D E

c l p c a các ch c n ng c dùng nh m t ph ng ti n ánh giá s thích h p c a


phân c p và các ch c n ng c hàm ch a. Trong vi c ánh giá s c l p c a các ch c n ng,
hai ch báo c nêu d i ây s c s d ng. Chúng s c gi i thích chi ti t trong m c
4.2.3.
- S ch c n ng: S ch c n ng nên c t ng nhi u nh t có th c.
- G n n i ch c n ng: G n n i ch c n ng nên c gi m nhi u nh t có th c.

(7) Làm tài li u c t ch c n ng


Các ch c n ng ã phân ho ch thành các ch ng trình c mô t trong các tài li u. Nh ng tài
li u này t o nên m t ph n c a tài li u thi t k trong. Chúng có th c chu n b d i d ng
bi u lu ng d li u, l u , h phân c p c ng v i cái vào x lí cái ra (hierarchy plus input
process output - HIPO), hay b ng b t kì ph ng ti n nào c ch nh làm chu n n i b .
108 Ch ng 3 Thi t k trong

<Tài li u>
Hình 3-2-13, 3-2-14 và 3-2-15 a ra c u trúc h con, giao di n ch ng trình v i ch ng
trình và các ch c n ng ch ng trình t ng ng trong tr ng h p v a trình b y trên.
Hình 3-2-13 C u trúc h con
0.0
con tính
ng tháng

1.0 2.0
lí d li u làm vi c Tính l ng tháng

1.1 1.2 2.1 2.2 2.3 2.4


Ki m tra px p ot p ob n o báo o t p chi
li u li u ng k t ng k t cáo chi hàng n m
làm vi c làm vi c chi chi tháng

Hình 3-2-14 Giao di n ch ng trình v i ch ng trình

cs al i
a vào d li u làm vi c

và nh p l i.
D li u h ng
Ki m tra d li u làm vi c

li u làm vi c

li u ã Danh
ki m tra sách l i

p x p d li u làm vi c p x p theo mã nhân viên và phòng ban.

li u làm vi c ã s p

p chi li u
chính ãs p
li u làm vi c ã s p cho tháng
li u chi ã s p hi n t i

o ra t p t ng k t chi

li u chi t ng nhân viên cho


tháng hi n t i
pb n
kê chi

Hình 3-2-15 Ch c n ng ch ng trình ( c t o ra cho t ng ch ng trình)

Chi ti t v nhi m v
Cách th c hi n nhi m v trong ch ng trình
Gi i thích các tham bi n vào và ra
Gi i quy t l i
Danh sách các thông báo
uý c bi t
3.2 Phân ho ch và c u trúc ch c n ng 109

3.2.3 Ph ng pháp thi t k có c u trúc


Các k thu t hay công c c dùng cho thi t k có c u trúc là nh sau:
- L u - Flowchart
- Bi u lu ng d li u - Data flow diagram (DFD)
- C p b c c ng v i cái vào x lí cái ra - Hierarchy plus input process output (HIPO)
- S có c u trúc - Structured chart
- Bi u chuy n tr ng thái - State transition diagram
- Bi u b t - Bubble chart

(1) L u
u c ng còn c g i là s ti n trình. (L u th ng c dùng cho các x lí h l u.)
u c t o ra b ng vi c dùng các kí hi u c chu n hoá, b ng vi c xác nh và phân
tích các v n ph c t p và các th t c x lí nhi m v .
Hình 3-2-16 L u (s ti n trình)

a d li u làm
vi c vào

Ki m tra

li u làm vi c n in l i
ã ki m tra

Hàng i:
px p
Mã phòng ban, mã nhân viên

li u làm vi c p
ãs px p chi chính

Tính l ng tháng

p
p t ng k t
chi n m (c )
chi

In b n t ng k t chi In báo cáo chi tháng o t p chi n m

ng k t chi Báo cáo chi p


chi n m (c )
110 Ch ng 3 Thi t k trong

(2) Bi u lu ng d li u (DFD)
Bi u lu ng d li u (DFD) c dùng di n t lu ng x lí nhi m v hay thao tác h
th ng m t cách có h th ng. Trong khi vi t bi u lu ng d li u, nói chung c n ph i chú ý t i
i d li u c dùng, cách nó c x lí và n i nó c l u gi . Bi u lu ng d li u là
t k thu t d dùng và hi u qu trong vi c trình bày m t t ng quan v yêu c u ng i dùng.
n ây nó ã c dùng ch ra lu ng d li u trong h con.

(3) H phân c p v i cái vào x lí cái ra (HIPO)


phân c p v i cái vào x lí cái ra (HIPO) là m t công c h tr làm tài li u, c dùng nh
t ph ng ti n ph h tr cho công vi c thi t k .
i vì nó phân chia h th ng hay các ch c n ng ch ng trình m t cách có h th ng thành các
ph n theo th t tu n t , nên có th áp ng cho nhi u nhu c u a d ng c a ng i qu n lí,
ng i thi t k , các phòng ban dùng ch ng trình, nhân viên ch u trách nhi m phát tri n hay
o trì,v.v.

(4) S có c u trúc
có c u trúc c dùng bi u di n cho các ch c n ng c a t ng ch ng trình theo m t
cách th c d hi u. Vi c dùng m t s có c u trúc, các quan h ch - t gi a các ch ng trình
có th c di n t nh m t c u trúc phân c p.
ts có c u trúc r t d hi u khi c dùng bi u di n cho các giao di n gi a các
ch ng trình ch a h th ng hay c u trúc c a t ng ch ng trình.

Hình 3-2-17 Hình 3-2-17 Các kí hi u c dùng trong s có c u trúc

Module L p Các tham s D li u ki m soát


và d li u i qua i qua

(5) Bi u chuy n tr ng thái


Bi u chuy n tr ng thái c dùng ch cách tr ng thái thay i (chuy n i). Nó thích
p cho vi c t ch c hay di n t tr ng thái c a h u hành hay ch ng trình ki m soát
truy n thông. (Xem Hình 3-2-18.)
<Cách vi t bi u chuy n tr ng thái>
- Các tr ng thái có th x y ra c bao trong hình tròn hay hình ch nh t.
- Các tr ng thái c n i b ng m i tên theo th t chúng x y ra.
- Các u ki n gây cho m t tr ng thái c bi t x y ra c vi t sát c nh m i tên.
3.2 Phân ho ch và c u trúc ch c n ng 111

Hình 3-2-18 Bi u chuy n tr ng thái

1. Nh p công vi c
( b c công vi c)

o công vi c
i l nh
2. u ki n th c hi n 3. Tr ng thái th c hi n
u ki n s n sàng) (tr ng thái ch y)
Thi t b b m gi ng t
Ng t vào ra Ng t SVC

5. Xóa ho c xác nh
4. u ki n i
công vi c

(6) S b t
b t c dùng phân tích hay phân chia m t h th ng hay ch ng trình mong mu n.
Các m c n l u ý là khi phân tích m t h th ng hay ch ng trình:
- D li u nào c sinh ra âu?
- Lu ng d li u nh th nào?
- D li u c x lí nh th nào?
Công vi c c a thi t k có c u trúc có th c s p x p h p lí b ng vi c dùng các k thu t hay
công c (1) t i (6) theo cách t h p.
112 Ch ng 3 Thi t k trong

3.3 Thi t k d li u v t lí
Trong ti n trình thi t k d li u v t lí, các kho n m c và các c tr ng (vi c s d ng và t ng t
) c a d li u trong c s d li u, t p hay c u trúc b ng trong b nh , c xác nh trong
ti n trình thi t k d li u logic, s c ki m m và cách t ch c v t lí và b trí d li u c
thi t k .
li u và ph ng ti n ghi nh ph i c xem xét có chú ý t i các c tr ng t ng ng c a
chúng, và ph ng ti n l u gi thích h p nh t ph i c ch n l a sao cho các c tr ng d
li u có th c dùng t n d ng các u th , các b n ghi có th c t ch c theo cách b trí
hi u qu cao.

3.3.1 Th t c thi t k d li u v t lí
Th t c thi t k d li u v t lí c mô t trong M c 3.1.2. M c này mô t n i dung c a công
vi c thi t k d li u v t lí, các m quan tr ng c n l u ý, và nhi u c tr ng khác m t cách
th t chi ti t.

(1) Phân tích c tr ng d li u


Các c tr ng c a d li u c phân tích ch t ch và thi t k c chu n b theo cách các c
tr ng c a d li u t ng ng có th c t n d ng. Các m sau ây ph i luôn ghi nh khi
thi t k :
m quan tr ng c n l u ý>
• Các c tr ng và vi c dùng d li u
- ó là t p chính hay t p giao tác?
- Ph i duy trì nó bao lâu (duy trì th i gian dài hay duy trì t m th i)?
- Nó c dùng nh d li u d phòng hay duy trì nh b n ghi c p nh t?
• Thêm, xoá hay thay i d li u
- Kh i l ng d li u c thêm vào, xoá i hay thay i trong th i kì xác nh
- N i dung c a nhi m v c n c th c hi n (theo tr t t khoá hay ng u nhiên)
• C p nh t
- Nó c c p nh t hàng ngày, hàng tháng, hàng n m hay theo th i kì xác nh?
• Cách d li u c dùng
- Nó c dùng cho x lí theo lô?
- Nó c dùng cho x lí tr c tuy n?
• B o trì
- D li u có th c khôi ph c th nào n u nó b phá hu ?

(2) Xác nh h th ng t ch c d li u trong c u trúc logic


u ph ng ti n l u gi hay t ch c v t lí c ch p nh n tr c khi h th ng dành cho vi c
ch c d li u thành c u trúc logic c xác nh (t p chính hay t p giao tác, v.v.), thì tính
hi u qu c a thao tác, s thay i công vi c thi t k v.v.., s b nh h ng b t l i.
3.3 Thi t k d li u v t lý 113

- Tr ng h p ch t nh n c
th ng cho t ch c d li u thành c u trúc logic c xác nh tr c h t, r i t ch c v t
lí c xác nh.
n: t p hàng hoá ph i c thi t k nh t p chính.
t qu : T p hàng hoá c l u gi trên a t và c dùng nh t p tu n t có ch s .
- Tr ng h p không ch p nh n c
ch c v t lí c xác nh tr c, r i h th ng cho vi c t ch c d li u thành c u trúc
logic c xác nh.
n: Các t p ph i c l u gi trên b ng t và c dùng nh các t p tu n t có ch s .
t qu : T p hàng hoá nên c dùng nh t p chính, nh ng b ng t là không ti n dùng.
Chúng ta nên làm gì?
u c n khuy n cáo là h th ng t ch c d li u thành c u trúc logic c xác nh tr c,
i t ch c v t lí m i theo sau.
m c n l u ý>
- Ph m vi c a vi c dùng d li u
li u có cd nh dùng ch trong h th ng ang c phát tri n không? Hay nó
ph i c dùng trong m t h th ng khác nh t p chính? Hay nó c dùng ch cho l p
trình?
- D li u t m th i hay d li u c t gi
li u c x lí có ch c dùng t m th i không? Hay nó ph i c gi i quy t nh d
li u c t gi ?
- D li u có c x lí tu n t không và nó có t ng d n hay t ng nhanh?
Nó có ph i là ki u d li u t ng d n và nó yêu c u duy trì b n ghi c p nh t?

(3) Xác nh ph ng ti n l u tr d li u
• Xác nh ph ng ti n ghi nh
Ph ng ti n ghi nh d li u v t lí bao g m:
- a t ( a c ng)
- B ng t
- am m
- a t quang (MO)
- ZIP
- Streamer ( sao l u d li u lên a c ng)
a t -quang, ZIP và streamer là các ph ng ti n ghi nh g n ây m i xu t hi n. Chúng
có dung l ng nh l n (hàng ch c megabytes t i hàng tr m gigabytes) và thích h p cho
vi c l u gi d li u multimedia.
Các m sau ây nên c xem xét trong vi c l a ph ng ti n ghi nh thích h p nh t:
- Dung l ng ghi nh
- c tr ng (ph ng pháp truy nh p d li u)
- T c truy nh p
- B o trì, v n hành, giá c , v.v..
u b n mu n truy nh p tr c ti p vào d li u dùng khoá, thì ch nh ng thi t b ghi nh cho
phép truy nh p tr c ti p, nh a t , m i có th c dùng.
‚ Tính dung l ng nh và th i gian truy nh p
Trong vi c tính dung l ng nh và th i gian truy nh p, c n ph i chú ý t i s khác bi t gi a
các b n ghi logic và v t lí, và nhân t kh i.
114 Ch ng 3 Thi t k trong

<Ki u b n ghi>
- B n ghi logic: M t n v d li u c m t ch ng trình x lí; nó là m t trong nh ng
v t c gi i quy t b ng thi t k tr ng.
- B n ghi v t lí: M t n v d li u c c vào và c ghi ra ph ng ti n ghi nh
Hình 3-3-1 B n ghi logic và v t lí
<b n ghi logic> <b n ghi v t lí>

n ghi n ghi B n ghi B n ghi


u nhân t kh i là 3

m c n l u ý>
- Nhân t kh i 3 ngh a là m t kh i ch a ba b n ghi logic.
- Ch ng trình gi i quy t v i b n ghi logic, trong khi d li u a vào, và a ra t
ph ng ti n ghi nh là các b n ghi v t lí.
- Có l h ng gi a các kh i - interblock gap (IBG).
Hình 3-3-2 a ra cách tính dung l ng b nh c a a t và th i gian truy nh p.

Hình 3-3-2 Tính dung l ng nh c a a t và th i gian truy nh p


1. Dung l ng nh c a a t
<Các thông s c a a t >
cylinder trên 1 a 800 cylinder
rãnh trên cylinder 19 rãnh
Dung l ng rãnh 24 000 byte

(Cách tính)
Dung l ng l u tr c a a t có th c tính nh sau:
Dung l ng l u tr c a rãnh x s rãnh x s cylinder
Ví d : 24 000 bye trên 1 rãnh x 19 rãnh trên cylinder x 800 cylinder trên 1 a
= 364 800 000 byte trên 1 a
2. Th i gian truy c p c a a t
<Các thông s c a a t >
Kh n ng l u tr c a rãnh 15 000 byte
Th i gian nh v u t trung bình 25 mili giây
c quay 3000 vòng /phút
dài m t b n ghi 15 000 byte

<Cách tính>
tính c th i gian truy c p, c n 3 y u t : th i gian nh v u t trung bình, th i gian tìm
ki m trung bình và th i gian truy n d li u. Vì trong b ng trên ch có th i gian nh v u t trung
bình nên ta ph i tính th i gian tìm ki m trung bình và th i gian truy n d li u.
Th i gian tìm ki m trung bình có th tính d dàng qua t c vòng quay c a a t . N u t c
quay là 300 vòng / phút thì th i gian a quay 1 vòng m t 20 mili giây. Vì th i gian tìm ki m trung
bình b ng m t n a th i gian a quay m t vòng nên th i gian tìm ki m trung bình là:
20 mili giây / 2 = 10 mili giây.
Vì t c quay là 3000 vòng / phút = 50 vòng / giây nên th i gian truy n d li u là:
3
50 rãnh / giây x 15 000 byte / rãnh = 750 x 10 byte / giây
i b n ghi có th truy n 15 000 byte nên t c truy n d li u là:
3
15 x 10 byte
3 = 0.02 giây = 20 mili giây
750 x 10 byte / giây
y th i gian truy c p là:
25 mili giây + 10 mili giây + 20 mili giây = 55 mili giây.
3.3 Thi t k d li u v t lý 115

(4) Thi t k cách b trí b n ghi


Ti n trình thi t k cách b trí b n ghi là b trí các kho n m c d li u.
• Thi t k Tr ng (kho n m c) (thi t k b n ghi logic)
Trong vi c chu n b thi t k tr ng, các m sau ây nên c l u ý:
• Th t các kho n m c
- Các kho n m c nên c thu x p tu n t , b t u v i kho n m c khoá. N u khoá
bao g m hai hay nhi u tr ng, thì nh ng tr ng này nên c b trí k ti p.
- Các kho n m c nên c thu x p theo th t t m quan tr ng t cao t i th p hay t
cao t i th p c a t n s s d ng.
- Các kho n m c nên c thu x p theo cách d dùng.
• Kích c tr ng và ki u d li u
- Nên dùng nh d ng ngày tháng th ng nh t (yymmdd, yyyymmdd, v.v.). ây là
chu n ngày tháng và gi qu c t c n ph i c thi t k sao cho b t kì ph n t nào
(n m, tháng, ngày) trong nh d ng ngày tháng c ng có th c gi i quy t m t
cách riêng bi t và ng th i, t t c các ph n t có th c dùng nh m t nhóm.
- Các kho n m c s nên là s th p phân ã óng gói.
• Tr ng l
- Nên l p ra m t vùng d tr cung c p vi c m r ng t ng lai ( làm t ng s
tr ng).
- Các tr ng l nên c dùng i sánh chi u dài c a các b n ghi (sánh t 80 byte
hay 256 byte).
- Tr ng l c thi t l p theo hai cách:
a. Không gian t do c thi t l p t i u cu i
b. Không gian t do c thi t l p ngay sau m t t p cd nh dùng trong m r ng t ng
lai. Không gian này nên có cùng kích c nh tr ng d li u hi n th i.
• C n tính t i vi c d dùng mã hoá.
‚ Ki u b n ghi
Có các ki u b n ghi sau:
a. B n ghi chi u dài c nh
Trong tr ng h p b n ghi chi u dài c nh, t ng b n ghi u bao g m m t t p có cùng
chi u dài. N u trong ki u t p này có t o kh i, thì chi u dài c a t ng kh i tr thành nh
nhau.
n ghi chi u dài c nh c dùng r ng rãi b i vì c tr ng d dùng c a nó.
b. B n ghi chi u dài bi n thiên
Trong tr ng h p b n ghi chi u dài bi n thiên, chi u dài c a t ng b n ghi trong m t t p
là không nh nhau. V i m t t p c t o ra dùng nh d ng b n ghi chi u dài bi n thiên,
ng b n ghi c ch a trong t p ph i c g n s n v i m t b mô t b n ghi ch ra chi u
dài c a b n ghi. Khi các b n ghi có chia kh i, thì t ng kh i ph i c g n v i b mô t
n ghi ch ra chi u dài toàn th c a kh i ó.

Hình 3-3-3 B n ghi chi u dài bi n thiên


n ghi 1 B n ghi 2

c. B n ghi chi u dài không xác nh


Trong tr ng h p b n ghi chi u dài không xác nh, chi u dài c a t ng b n ghi c xác
nh b i ch ng trình, vì chi u dài c a t ng b n ghi logic m t là khác nhau.
116 Ch ng 3 Thi t k trong

ƒ B trí b n ghi
n ph i tính t i nh ng m sau ây khi thi t k b trí b n ghi b ng cách dùng m u b trí
n ghi (t p):
- V i tên b n ghi, c n ch n dãy kí t d nh bi u di n cho n i dung c a d li u.
- X (kí t ch -s ), 9 (s ) và K hay G (ki u Nh t) ph i c a vào ch ra ki u c a
thu c tính.
- S các ch s t o nên kho n m c d li u ph i c a vào. M t ch s là m t kí
ch -s (m t byte). Trong tr ng h p ki u Nh t B n, m t kí t t ng ng v i hai
byte, và do ó ng i ta khuy n cáo r ng s các ch s c ng nh s các kí t c a
vào làm cho t ng kho n m c d li u d hi u.

Hình 3-3-4 Ví d v b trí b n ghi


3.3 Thi t k d li u v t lý 117

3.3.2 ch c d li u v t lí
(1) Ki u t ch c t p
Các ki u t ch c t p v t lí c xác nh d a trên k t qu c a phân tích c tr ng d li u,
ph ng pháp t ch c logic, ch c n ng ch ng trình, v.v...
Các ki u t ch c t p v t lí là:
- T p t ch c tu n t
- T p t ch c tr c ti p
- T p tu n t ch s
- T p t ch c c phân ho ch
- T p t ch c ghi nh o - Virtual storage organization file (VSAM file)
- B ng
Nên ch n ki u t ch c t p v t lí thích h p nh t theo m c ích ã cho.
• T p t ch c tu n t
Trong t p t ch c tu n t , các b n ghi c l u gi tu n t theo v trí liên ti p trên thi t b
ghi nh .
Các b n ghi th ng c thu x p theo th t t ng hay gi m v i kho n m c d li u nào ó
c ch nh làm khoá, hay theo th t các b n ghi c t o ra.
c tr ng>
- Ki u t p này có th c t o ra trên b t kì ph ng ti n nh nào, a t , b ng t v.v.
- Vi c c và ghi t p b t u t u b n ghi; không h tr cho truy nh p ng u nhiên.
- B i vì các b n ghi c l u gi m t cách v t lí và k ti p nhau, nên b n ghi m i không
th c b sung hay chèn thêm vào. Do ó, c p nh t t p nào ó trên b ng t , t p
i ph i c t o ra. Tuy nhiên trong tr ng h p c a a t , d li u có th c ghi
i vào t p g c.
- T c truy nh p nhanh.
- Ki u t p này là thích h p cho x lí theo lô hay sao l u d li u.
‚ T p t ch c tr c ti p
p t ch c tr c ti p ch có th c dùng trên thi t b b nh truy nh p tr c ti p, nh a
.
c tr ng>
- a ch c a d li u c tính b ng vi c dùng ph ng pháp tính a ch c bi t g i là
ph ng pháp b m.
- Cùng m t a ch có th xu t hi n nhi u l n khi vi c chuy n i a ch c th c hi n.
t a ch nh v y c g i là ng ngh a.
- Vi c truy nh p tr c ti p c h tr . Trong m t s tr ng h p, truy nh p tu n t c ng
c h tr .
- Hi u qu b nh là cao.
- T c x lí nhanh.
- Ki u t p này là phù h p v i x lí th i gian th c tr c tuy n òi h i t c cao.
ƒ T p tu n t có ch s
p cho phép tham chi u t i ch s v trí l u gi d li u c ng nh vi c c d li u c bi t
c g i là t p tu n t có ch s . Ki u t p này ch có th c dùng trên thi t b nh truy
nh p tr c ti p (direct access storage devices: DASD).
118 Ch ng 3 Thi t k trong

c tr ng>
- Vùng b nh d li u bao g m m t vùng ch s , vùng d li u chính và vùng tràn.
- Vùng ch s bao g m ch s chính, ch s tr và ch s rãnh. Các ch s này c thi t
sánh v i các khoá c a t ng b n ghi sao cho d li u có th c duy t và tìm. Do
ó, các giá tr khoá ph i c thu x p theo th t t ng.
- C truy nh p tu n t và tr c ti p u là có th .
- Vì vùng ch s ph i c duy t tr c, nên m c hi u qu l u gi là th p.
- T c x lí ch m.
- Ki u t p này phù h p v i t p chính cho công vi c gi y t .
„ T p t ch c có phân ho ch
Trong t p t ch c có phân ho ch, t p tu n t c phân ho ch thành các t p con g i là thành
viên, và m t danh m c c t o ra ch ra v trí b t u c a t ng thành viên cho t ng
thành viên l có th c truy nh p tr c ti p.
Ki u t p này ch có th c dùng trên các thi t b nh truy nh p tr c ti p (DASD), nh a
, nh trong tr ng h p c a t p t ch c tr c ti p.
c tr ng>
- M c d u t ng thành viên có th c truy nh p tr c ti p, các b n ghi c ch a trong
t thành viên c truy nh p tu n t .
- T c truy nh p g n nh là gi ng t c c a t p t ch c tu n t .
- M c hi u qu ghi nh th p h n m c hi u qu c a t p t ch c tu n t vì các danh
c c t o ra.
- Ki u t p này là thích h p cho t p ch ng trình và các th vi n khác nhau.
… T p t ch c l u gi o (t p VSAM file)
p t ch c l u gi o có th c dùng v i h u hành có ch c n ng b nh o.
Ki u t p này ch có th c dùng trên các thi t b l u tr truy nh p tr c ti p (DASD), nh
a t , nh trong tr ng h p c a t p t ch c tr c ti p.
c tr ng>
- T p này c thi t k b ng vi c tích h p ba ph ng pháp truy nh p c dùng cho các
p t ch c tu n t có ch s .
- B i vì ki u t p c ki m soát b i h u hành, nên ng i phát tri n h th ng không
n nh chi u dài kh i hay chi u dài b n ghi.
- Ki u t p này c chia thêm thành ba ki u:
p d li u tu n t theo khoá : KSDS (t ng ng v i t p t ch c tu n t có ch s )
p d li u tu n t theo vi c a vào : ESDS (t ng ng v i t p t ch c tu n t )
p d li u b n ghi t ng i : RRDS (t ng ng v i t p t ch c tr c ti p)
† B ng
ng là m t vùng làm vi c c thi t l p trên n v b nh chính. Trong tr ng h p c a
COBOL, các m c sau c nh ngh a trong Data Division:
- Tên b ng
- S các b ng
- Tên c a kho n m c trong b ng
- Ki u kho n m c d li u (d li u ch -s , d li u s , v.v..)
<Kí t >
- B i vì b ng n m trong b nh , nên t c truy nh p r t nhanh.
- C hai vi c truy nh p tu n t và tr c ti p u có th có do c u trúc ch ng trình.
3.3 Thi t k d li u v t lý 119

- N u máy tính b t t, thì d li u b m t. Do ó, b ng không th c dùng nh t p


chính.
- B ng nói chung c dùng nh m t vùng th c hi n duy t t c cao trên d li u,
hay tính t ng d li u.

(2) Cách x lí
Cách d li u c nh d ng và duy trì có nh h ng t i tính s d ng c c a h th ng. Khi
phát tri n c u trúc d li u trong thi t b nh , ph i xem xét các nhân t khác nhau, ch ng h n
ph ng pháp truy nh p, hi u qu truy nh p, hi u qu không gian, nh v ch h ng, hi u qu
a kh i l ng b m trong b nh , v.v.. Tính t i t t c nh ng nhân t này, vi c gi i quy t
các t p và dùng c s d li u nên c xem xét t i.
Hi u n ng, giá c , gi i quy t tr c tr c và nh ng nhân t khác liên k t v i thi t k h th ng
chung nên c xác nh cùng v i xem xét v các yêu c u h th ng. Tuy nhiên khó t t i
tính hi u qu và dung l ng nh , hay tính hi u qu c a vi c duy t (hi u qu ghi) vào cùng lúc.
Nh ng nhân t liên quan t i tính hi u qu này ph i c xác nh cho chúng có th c
gi cân b ng.
Các t p c ng c di n gi i m t cách khác nhau, tu theo h u hành mà trong ó ch ng
trình ph n m m c t o ra ang ch y. C n ki m ch ng các ch c n ng d ch v qu n lí t p do
u hành cung c p. T ng ng v i di n gi i c a UNIX, m t trong nh ng h u hành
chính, n i dung c a t p nên c ch ng trình nh n ra và không c n h th ng t p c a UNIX
nh n ra. Tuy nhiên theo di n gi i c a MVS, m t nhóm d li u logic c nh n ra nh m t b n
ghi và n v c s c a thao tác t p c ng i l p trình thi t k , là c h th ng t p h tr .
120 Ch ng 3 Thi t k trong

3.4 Thi t k vào ra chi ti t


Trong giai n thi t k ngoài, màn hình và báo cáo c thi t k cho phép ng i dùng
nh n ra hình nh c a màn hình và cái ra. Vi c thu x p chính xác các kho n m c, kích th c
font, m u s c, ki u bi u t ng và các chi ti t khác là ch cho các ràng bu c liên quan t i
ph n c ng hay h th ng không c t o ra trong giai n thi t k ngoài.
Trong giai n thi t k trong, nh ng chi ti t nh v y c d a trên hình nh ã c t o ra
trong giai n thi t k ngoài. Thi t k trong c chu n b v i xem xét liên quan t i các ràng
bu c ph n c ng. B i vì thi t k trong d a trên công vi c c a thi t k ngoài, nên ch m
chính là t t i vi c d dùng cho ng i dùng.

3.4.1 Thi t k d li u vào chi ti t


u d li u vào là m t trong nh ng d li u a vào chính. M c này mô t thi t k chi ti t cho
u d li u vào.

(1) M c ích thi t k


Ng i dùng s d ng m u d li u vào. thi t k m u d li u vào c trau chu t, có cân
nh c k , c n ghi nh v các u ki n c a ng i dùng và t c , chính xác và tính d dàng
a d li u.
Các m c ích ph i t c tr c h t trong thi t k m u d li u vào là:
- D vi t
- D a vào máy tính (gõ vào)

(2) Thi t k
Kích c c a m u, s l ng b n sao, m u s c c dùng trong m u và khuôn kh c a m u d
li u vào ph i c xác nh.
•D a vào d li u
• Ph i gi l ng công vi c c n vi t m c t i thi u
Nh ng m sau nên c xem xét ti t ki m th i gian và lao ng c a ng i dùng
trong vi c a d li u vào:
- Ph ng pháp l a ch n (ng i dùng c yêu c u a ra ch n l a và óng khuôn
t kho n m c)
- S t i thi u các kho n m c a vào
- S trùng l p
- Các kho n m c c nh c n c in ra trên m u a vào d li u
- Nh ng kho n m c ít c a vào s c g p nhóm vào vùng l u ý
• Kho n m c a vào
Kho n m c a vào nên c thu x p theo trình t ý ngh .
- Ng i dùng nên c h ng d n tr c h t a d li u vào nh ng kho n m c c n
chính.
- Ng i dùng nên c h ng d n a d li u vào t góc trên bên trái t i góc d i
3.4 Thi t k vào ra chi ti t 121

bên ph i.
- Các kho n m c a vào nên d c và d hi u.

Hình 3-4-1 Cách t ng kho n m c có th c làm cho d c và d hi u


1. D a ra nh ng gì mà ng i s d ng mu n vi t m t cách rõ ràng

Ngày____________________________ Khó hi u

Ngày: n m 2000__, tháng______ngày__ D hi u

2. H ng d n ng i s d ng ng n anh ta/ cô ta t vi c t o ra l i nh p

l ng Khó hi u

nh n , , u này ng n ng i s d ng t vi c t o ra l i nh p.
(không bao g m n n h n)

‚D a vào (t bàn phím) máy tính


chính xác c a d li u có th c m b o n u d li u c a vào n i nó c sinh ra
(t i ch làm vi c). Do ó, m u a d li u vào ph i c thi t k d a trên m c ích c a
ng nhi m v x lí d li u, và n i dung c a các thao tác h th ng m i (lu ng d li u) v i
gi thi t r ng nó c dùng t i t ng ch làm vi c.
- Nên dùng m u nh m u a vào d li u cho phép ng i dùng nh n ra nó ngay tho t
nhìn.
- T ng kho n m c d li u nên c bao trong ng m d th y.
- M t kho n m c tách bi t nên c thi t l p cho phép ng i dùng phân bi t trên
u a d li u vào mà d li u ã c a vào v i nh ng ph n ch a a vào.
u a vào d li u c nêu nh sau.

Hình 3-4-2 M u a vào d li u (riêng cho OCR)

ƒ Thi t k m u OCR
ng vi c dùng b c kí t quang h c OCR, b n có th a d li u vào tr c ti p b ng vi c
cho m u qua máy c. V i giai n hi n t i c a vi c phát tri n công ngh OCR, vi c c
sai th ng xu t hi n ngay c d li u c vi t úng và d c.
Có m t s bi n pháp tho hi p c ch n: chú ý t i vi c làm rõ m u OCR ( ng n c n vi c
c l m) hay a ra nh ng gi i thích v ki u kí t .
122 Ch ng 3 Thi t k trong

(3) Ki m tra d li u a vào


li u a vào bao gi c ng ph i c ki m tra vì xác su t ng i dùng ph m sai l m a
vào là cao, hay vì máy OCR hay OMR c l m d li u vào. Sai l m trong d li u a vào có
th d n t i không ch k t qu không úng, mà còn c vi c làm t t h th ng hay h th ng ch y
m.
n thân d li u có th ch a l i. D li u a vào v t quá m t gi i h n th i gian a vào xác
nh hay d li u nào ó b m t. T t c nh ng v n này u c coi là l i a vào.
• S a l i d li u
Khi m t l i d li u c tìm th y, nó ph i c s a ngay l p t c. Nh ng hành ng c n
th c hi n khi tìm th y l i ph i c xác nh rõ ràng.
• L i c tìm th y tr c khi d li u c a vào máy tính
ul i c tìm th y khi d li u c a vào, thì m u a vào d li u ph i c tr
i cho b ph n n vào nó. Thao tác viên không bao gi c s a l i này. N u thao
tác viên s a nó theo ch quan c a mình, thì có th m t v n tr m tr ng, b t ng s
y ra v sau. Các l i c tìm th y giai n này có nh h ng nh t i thao tác x
lí d li u.
• L i do ch ng trình phát hi n ra
ul i c tìm th y khi m t ch ng trình ã lo i b d li u a vào, thì vi c x lí
li u ã c ti n hành. Do ó, ph i xác nh nh ng m nào l i c n cs a
ch a.
‚ Gi i quy t l i d li u

• B qua l i d li u và ti p t c x lí d li u
u ch có vài l i d li u trong hàng nghìn d li u c x lí v i m c ích th ng kê,
thì nh ng l i nh v y ch có nh h ng t i thi u lên các thao tác x lí toàn th , và có
th b qua c. N u t t c các d li u ph i c ng kí, hay n u t l d li u l i t ng
lên, ph ng pháp gi i quy t l i này không th dùng c.
• Th c hi n x lí d li u sau khi t t c các l i d li u ã cs a
Ph ng pháp gi i quy t l i này c dùng n u nó c gi i quy t trong u ki n r t
nghiêm ng t và không m t l i nào c phép xu t hi n (ch ng h n d li u ng kí).
Tuy nhiên công vi c này bao g m vi c s a l i d li u r t t n th i gian.
• Ch dùng d li u úng và ti p t c x lí d li u
Ch dùng d li u úng thì vi c x lí d li u có th c ti p t c. Sau khi c hoàn t t,
các l i d li u c s a, và c g p v i d li u úng. Ti n trình chính, b t u khi t t
các d li u ã c làm thành s n có.
3.4 Thi t k vào ra chi ti t 123

ƒ Ph ng pháp ki m tra d li u
Hình 3-4-3 a ra các ph ng pháp ki m tra d li u chính.
Hình 3-4-3 Các ph ng pháp ki m tra d li u
Ph ng pháp ki m tra d li u Các v n c n ki m tra
Ki m tra nh d ng li u c t o theo nh d ng c th
Ki m tra tính h p

Ki m tra s Các d li u khác v i các ký t s không c nh p vòa trong các m c s


Ki m tra gi i h n li u không c quá ph m vi và gi i h n cho phép
l

Ki m tra vùng Giá tr ph i trong gi i h n cho phép


Ki m tra tràn li u không cv t quá dài d li u cho phép
Ki m tra ch s ki m tra Các s ki m tra ph i c mã hóa xác nh các s c úng
Ki m tra t ng t qu tính toán b ng máy bàn ph i c so sánh v i k t qu tính toán
Ki m tra t p

ng máy tính
Ki m tra chu i li u c s p x p theo chu i phù h p v i chu n cho phép
Ki m tra s d Các s bên có và bên n ph i phù h p
Ki m tra d li u th c t ph i phù h p v i s d li u trong máy tính
Ki m tra b ng m t li u a ra ph i c ki m tra tìm các l i d li u

3.4.2 Thi t k màn hình


Thi t k màn hình là m t trong nh ng nhân t quan tr ng mà ng i dùng xem xét xác nh
li u h th ng c thi t k t t hay t i, nh ã c gi i thích trong m c dành cho phân tích h
th ng. Màn hình là khuôn m t c a h th ng i v i ng i dùng. Màn hình ph i c thi t k
i u tiên cao nh t dành cho vi c d dùng.
i vì các k thu t giao di n ng i dùng ho (GUI) dùng ngôn ng tr c quan ã tr thành
các k thu t máy tính ch o, nên m c này mô t cho thi t k màn hình dùng các k thu t
GUI.
Thi t k màn hình v i vi c dùng các k thu t GUI c th c hi n b ng vi c làm b n m u. Th
c thi t k màn hình c nêu d i ây.
<Th t c thi t k màn hình>
1. B trí chu n màn hình, các yêu c u ph i c áp ng th c hi n các ch c n ng xác
nh, và m c thành th o c a ng i dùng c làm rõ ràng.
2. Màn hình b n m u c t o ra b ng vi c dùng ngôn ng tr c quan.
3. Ng i dùng ánh giá màn hình b n m u. Các s a i và c i ti n c th c hi n hoàn
ch nh màn hình b n m u.

(1) Giao di n ng i dùng ho (GUI)


GUI dùng các bi u t ng tr c giác (kí hi u hình nh), các menu b t ra, menu th xu ng v.v
cho phép các nhi m v c th c hi n. c bi t, m t m i tên c di chuy n b ng vi c dùng
thi t b tr (chu t hay các thi t b khác) nh v vào ch mong mu n, n i m t bi u t ng
hay kho n m c c ch n h ng d n cho máy tính th c hi n nhi m v ã nêu.
124 Ch ng 3 Thi t k trong

Hình 3-4-4 Bi u t ng và menu b t ra

Hình 3-4-5 Menu th xu ng (kéo xu ng)

Các ch c n ng GUI c xây d ng bên trong h u hành c a máy tính cá nhân. Tuy nhiên,
trong tr ng h p c a UNIX, các ch c n ng GUI ph i c cài t thêm. Các bi u di n, ý
ngh a và các thao tác trên các bi u t ng là khác nhau tu theo GUI c dùng. B i vì vi c
chu n hoá ã c th c hi n cho t ng GUI, nên n ng su t thi t k ã c i ti n và s l i ã c
gi m i.

(2) Thu t ng liên quan t i môi tr ng GUI (Windows)


Tr c khi mô t v thi t k màn hình, m t s thu t ng liên quan t i thi t k màn hình trong
GUI c gi i thích v n t t ây:
• Ch ng trình c u khi n theo bi n c
t c các ng d ng c dùng trong môi tr ng GUI u là các ch ng trình c u
khi n theo bi n c . Các ng d ng c phát tri n tr c khi có GUI u ã c thi t k v i
c u khi n tu n t . V i ch ng trình u khi n theo bi n c , các hành ng nh
3.4 Thi t k vào ra chi ti t 125

m chu t hay rê con ch y có th gây ra m t bi n c c bi t, mà nl t nó l i kích ho t


các th t c nh s n t ng ng.
‚ Windows (c a s )
s c a GUI là các c a s . Chúng thay it ng d ng n sang ng d ng kia.
ƒ Tài li u
i dung c nêu trong m t c a s c g i là tài li u. Ki u tài li u c g i là giao di n
tài li u và c phân lo i i th thành hai ki u:
a. Giao di n m t tài li u (SDI)
Giao di n m t tài li u (SDI) nêu ra m t tài li u bên trong m t ng d ng. (Xem Hình
3-4-6.)

Hình 3-4-6 Giao di n m t tài li u (SDI)

b. Giao di n a tài li u (MDI)


Giao di n a tài li u (MDI) nêu ra nhi u tài li u bên trong m t ng d ng.

Hình 3-4-7 Giao di n a tài li u (MDI)

„ H p tho i
p tho i c dùng nêu ra thông tin ph n h i cho ng i dùng và l i nh c ng i dùng
126 Ch ng 3 Thi t k trong

áp ng. (Xem Hình 3-4-8.)

Hình 3-4-8 H p tho i

(3) Th t c và nhi m v cho thi t k màn hình b ng vi c dùng GUI


Thi t k màn hình c ti n hành theo sáu b cd i ây:
• Chu n hoá
i vi c b trí trong các màn hình và t ng tác, c n xác nh các qui t c chu n.

Hình 3-4-9 Chu n hoá màn hình

Ph n t c i dung
chu n hoá
Tính liên tác Ph m vi v n hành c ch ra sao cho ng i dùng có
th ch n l a và a ra h ng d n. u mong mu n là
màn hình có tính n ng thao tác tr c ti p cho phép áp
ng ngay l p t c.
Tính u Tính nh t quán hay tính u ph i c m b o theo
cách cùng ch c n ng c hi n th và v n hành nh
nhau (các bi u t ng ch ng h n)
Hi n th Tr ng thái v n hành bao gi c ng nên c hi n th và
thông tin c n thi t c cung c p m t cách thích h p
sao cho ng i dùng có th có c m giác ch ng.
Ch c n ng Các ch c n ng tr giúp tr c tuy n, ch c n ng khôi
ph c, phím l i t t v.v. nên c xây d ng trong màn
hình v i xem xét c nêu cho m c ng i dùng thành
th o.
Thu t ng , Thu t ng có th d hi u cho ng i dùng nên cs
us c ng. M u s c nên c ch n l a không ch c t c
hay làm m t ng i dùng.
3.4 Thi t k vào ra chi ti t 127

‚ Chu n b góc nhìn chung v màn hình GUI


n chu n b m t hình nh bi u l cách b trí toàn b màn hình, và m i quan h gi a các
u t trên màn hình. Các y u t c s trên màn hình bao g m các menu chính và menu h
con, và các thao tác riêng c n th c hi n.
ƒ T o ra lu ng màn hình GUI
Th t c t ng tác dùng các màn hình c n c thi t k .
<Nh ng m quan tr ng>
- Sau khi màn hình hi n th i bi n m t, màn hình ti p c n m ra.
- V trí màn hình là c nh.
- Khi nút " óng" c nh n, màn hình c g i ph i c v ra.
- dùng màn hình ch nh c ng i dùng a vào, c n dùng h p thông báo và màn
hình hi n th i v n còn m .
- Thông báo c nh báo xu t hi n lôi kéo s chú ý c a ng i dùng, n u nút " óng"
c nh n mà không c p nh t (c t gi ) d li u.
„ Xác nh ph ng pháp a vào màn hình GUI
n xác nh ph ng pháp a vào màn hình GUI.
<Nh ng m quan tr ng>
- N u ng i dùng là ng i m i b t u, thì ph ng pháp ch n l a nh menu kéo xu ng
c khuy n cáo.
- N u ng i dùng có kinh nghi m, thì ph ng pháp a vào tr c ti p ( a th ng v n
n vào) l i là mong mu n ti t ki m th i gian.
- Các kho n m c nên c b trí theo cùng th t chúng ã c b trí trong m u a
vào d li u, làm t i thi u l i a vào.
- Các kho n m c nên c b trí t nh t i áy và t trái qua ph i.
- M t báo ng nên c a ra khi m t l i a vào xu t hi n, ng th i m t h p thông
báo nên xu t hi n lôi kéo s chú ý c a ng i dùng.

Hình 3-4-10 Ví d v màn hình a vào

… Xác nh ph ng pháp a ra màn hình GUI


Trên màn hình GUI, nên có h tr cho ch c n ng xem tr c cho phép d li u c bi u l
i nh d ng in ra. C ng v y, ch c n ng hi n th k t qu duy t nên c h tr . (Xem
128 Ch ng 3 Thi t k trong

Hình 3-4-11.)
<Nh ng m quan tr ng>
- Các nút "back" và "next" nên c t vào, vì có th x y ra là t t c các d li u không
th bi u th c h t lên màn hình do gi i h n kích th c c a màn hình.
- Nút "print" nên có cho phép ng i dùng b t u in nh ng th có trên màn hình.
- M u s c và kh i l ng d li u c hi n th trên màn hình nên c gi i h n cho
li u c hi n th có th trông rõ ràng.

Hình 3-4-11 Ví d v màn hình a ra

† Thi t k b trí màn hình GUI


t ph ng pháp thi t k cách b trí màn hình là v ra b trí màn hình trên m t m u c
bi t. Ph ng pháp n a là dùng ngôn ng tr c quan và làm b n m u; b n m u c ánh giá,
a i và c i ti n hoàn ch nh cách b trí màn hình g n nh t v i nh màn hình lí t ng.

(4) Các m c n xem xét khi thi t k màn hình


Các m sau c n c xem xét khi thi t k màn hình:
• Chu n hoá màn hình
i vì môi tr ng GUI cho phép t do thi t k m c cao, nên các b trí màn hình y là
hay b thay i và nh t là khi nhi u ng i cùng tham gia vào công vi c thi t k . Cho nên khi
có nhi u ng i, nhi u ý ki n thì nh ng ph n c b n c a màn hình ph i c chu n hoá nh
sau:
ví d
• Vùng tiêu và v trí a vào d li u
Tiêu và ngày tháng ph i c a vào trong vùng tiêu .
• Vùng nút
trí c a nút xác nh ch c n ng ti p c n c xác nh.
• V trí và n i dung c a thông báo (k c thông báo m u s c)
Các yêu c u c s v h p thông báo nên c xác nh. (Ch nút OK hay các nút làm l i
và xoá b là c c n t i?)
3.4 Thi t k vào ra chi ti t 129

Hình 3-4-12 H p thông báo

• Lu ng các hình m u ti n trình


n xác nh lu ng c s ; ch ng h n menu chính → menu con → t ng ti n trình.
• Dùng các phím PF (ch c n ng ch ng trình)
Ph i xác nh xem li u các phím PF có c dùng hay không.
• B m chu t
n thi t l p các qui t c chu n v b m kép và b m chu t.
• Dùng bi u d
Nên dùng các bi u d làm cho ng i dùng d hi u.

Hình 3-4-13 Bi u d

• Chu n hoá ti n trình t ng tác


Nên chu n hoá t ng tác b ng vi c dùng h p thông báo v.v...
• M us c
các m u nên c gi m c n m hay ít h n. M u và các m u sáng nên c dùng
lôi kéo s chú ý vào m t vùng nh , trong khi m u xanh nh t và các m u khác nên
c dùng bi u th cho mi n l n.

t nh d ng chu n nh c mô t trên s làm t ng tính d dùng.


‚ Phím t t
Trong khi chu n b cái nhìn toàn b v màn hình, ng ch có hi n th các menu d n t ng
c và ch n các c tr ng, mà còn ph i cung c p c nh ng c tr ng ch n tr c ti p (các
phím t t) t ng ng v i m c thành th o c a ng i dùng. u này làm nh b t t i công
vi c, và làm ng n b t th i gian a vào, trong khi làm gi m th i gian và công s c toàn th .
(Xem Hình 3-4-14.)
130 Ch ng 3 Thi t k trong

Hình 3-4-14 Phím t t

ƒ Hành ng c n th c hi n khi màn hình b khoá, hay ph m ph i l i a vào v.v..


Màn hình ph i c thi t k bao quát c l i ra kh n c p khi m t ch c n ng b bu c ph i
t thúc thì có th c dùng thoát kh i ch ng trình, khi màn hình b khoá c ng nh c n
có h p thông báo a ra l i c nh báo.
„ Khuôn m u màn hình
i vì nhi u màn hình ( a c a s v.v..) ph i c dùng th c hi n m t nhi m v , nên
lu ng các khuôn m u màn hình ph i c thi t k cho phép ng i dùng xem các màn
hình khác m t cách có hi u qu . Ch c n ng xoá lu ng các khuôn m u k ti p (nút c t b )
ng nh tr giúp tr c tuy n nên c h tr .

Hình 3-4-15 Ch c n ng tr giúp tr c tuy n


3.4 Thi t k vào ra chi ti t 131

(5) Thi t k thông báo


u m t thông báo v các u ki n h th ng c th hi n trên màn hình, thì tính hi u qu
n hành h th ng s t ng lên. Màn hình nên c thi t k hi n th tr ng thái bên trong,
nh l i in ra, vi c nh n vào phím không h p l , và l i d li u. (Các l i nên c th hi n
ng m u trong khi m t báo ng c a ra cùng lúc ó.)
i vì mã d x lí h n, nên c ng ph i thi t k v mã (mã n i b ).
Hình 3-4-16 a ra m t ví d v thi t k thông báo.

Hình 3-4-16 Thi t k thông báo


M X XXX XXX
th t
<Ví d > 000: Chung
010: H th ng con x lý thanh toán chính
h th ng con 020: H th ng con x lý hàng tháng
<Ví d > I : Mô t m c
E :L i
W : C nh báo l i
p thông p G : H ng d n nh p

Tên mã nh n d ng thông p

Mã thông p Thông p Mô t
ME000001 Phím nh n là khóa ch c n ng không Nh n khóa ch c
pl ng sai
MG000002 Sau khi ki m tra d li u nh p vào, Thúc y ng i
nh n khóa th c hi n dùng ki m tra d
li u
ME000001 Khóa ã t n t i Khóa sai c thi t
p s d ng?
MI000002 t gi y lên máy in Gi y không t
trong máy in
ME000003 D li u c làm n i b t trong video Nh p d li u ch a
o ng c ch a các l i i
132 Ch ng 3 Thi t k trong

3.4.3 Thi t k d li u a ra chi ti t


Ng i dùng a vào d li u, cho máy tính x lí nó, và a d li u ra trên màn hi n th hay
trên gi y ki m tra k t qu c a vi c x lí d li u. Các m u a ra d li u c n ph i c thi t
cho nó d hi u và c dùng cho các thao tác x lí d li u.

(1) Th t c và nhi m v thi t k báo cáo


i vì dàn bài c a báo cáo a ra ã c thi t l p trong giai n thi t k ngoài, nên khuôn
u a d li u ra ph i c thi t k b ng vi c dùng m u chuyên d ng (s cách) d a
trên d li u do thi t k ngoài cung c p. (Xem Hình 3-4-17.)
u m t khuôn m u a d li u ra c dùng, thì nó nên c thi t k theo chi ti t nhi u h n
a trên dàn bài c a khuôn m u ã c t o ra trong giai n thi t k ngoài.

Hình 3-4-17 S cách (ví d )

Nh ng m sau nên c xét t i khi chu n b thi t k b ng vi c dùng s cách:


- M t dòng có 132 v trí kí t (trong tr ng h p c a Hình 3-4-17).
- M t trang có 48 dòng (trong tr ng h p c a Hình 3-4-17).
- V nguyên t c, m t kí t nên c a vào t ng ô m t. Trong tr ng h p kí t ch bi u
ý thì a vào trong hai ô.
Khuôn m u a d li u ra là th t c bao g m ba b c c nêu d i ây:
• Xác nh v trí tiêu và các dòng chi ti t
trí c a tiêu (các tiêu l n, v a và nh ) và c t v các dòng chi ti t c xác nh.
• V trí tiêu
trí c a tên báo cáo a ra, s trang (th ng c a vào góc trên bên ph i),
ngày tháng báo cáo c chu n b (th ng góc trên bên ph i), và tiêu con cho các
mô t chi ti t c xác nh V trí c a tiêu con nói riêng ph i c xác nh c n
th n vì nó nh h ng t i s v trí kí t mà theo ó t ng kho n m c d li u ph i c
3.4 Thi t k vào ra chi ti t 133

a vào (Xem Hình 3-4-18.)


Hình 3-4-18 Xác nh v trí c a tiêu

• Các dòng n i d li u chi ti t c a vào


Vi c t kho ng cách gi a các dòng và v trí c a dòng cu i cùng c n c xác nh.
Trong Hình 3-4-17, các kí t có th c in ra trên 48 dòng m t trang. Cách b trí này
nên c thi t k sao cho d li u c a vào trên nh ng dòng này là th y c và
hi u v i ng i dùng.
‚ Xác nh v trí c a các kho n m c d li u và s ch s
Các v trí c a kho n m c d li u c in trên t ng dòng và s các ch s c xác nh.
• V trí c a kho n m c d li u
Các kho n m c d li u c a cùng ki u c in c n k bên nhau. C ng v y, ng i dùng
có th hình dung ra t ng s d dàng n u các kho n m c d li u c thu x p t trái
sang ph i.
• Xác nh s các ch s
các h p nên c xác nh v i s d d tr nào ó. Khi t ng s c in ra, c n d
ki n có th in ra s l n t i a.
i các s , vi c b các s không ng tr c nên c th c hi n làm cho chúng
thành d th y.

Hình 3-4-19 Các th hi n s các ch s cho t ng kho n m c d li u


các ch s có th c so n th o nh sau làm cho các ch s thành d th y.
----,--9 à -54,000
-$$$,$$$ à -$54,000
-zzz,zz9 à - 54,000

ƒ Thi t k b trí báo cáo


i t t c nh ng xem xét trên, d li u ph i c a vào trong s có ch tr ng thi t
báo cáo d li u a ra. (Xem Hình 3-4-20.)
134 Ch ng 3 Thi t k trong

Hình 3-4-20 Thi t k báo cáo a d li u ra

(2) Nh ng m c n xem xét khi thi t k báo cáo


Báo cáo nên c thi t k v i xem xét y v tính dùng c và "d c." T ng t nh
y, nh ng m sau nên c xem xét khi thi t k báo cáo:
• V trí tiêu và các kho n m c a ra nên c chu n hoá nhi u nh t có th
c.
u các v trí tiêu và các kho n m c a ra c chu n hoá bên trong, thì báo cáo là
u nhau, d th y và x lí.
• Nên dùng nh ng nh d ng d th y.
i nh ng dòng có ch a d li u chi ti t, nên xác nh kho ng cách dòng, v trí kí t , vi c
u ch nh kho n m c d li u (b các s không v.v..), kích c font v.v… làm cho toàn b
báo cáo thành m t k t c u d nhìn.
• D li u nên c thu x p theo m c quan tr ng t trái sang ph i và t trên xu ng
i.
Các kho n m c d li u các v trí bên trái nh t và bên ph i nh t c nh n m nh.
• Các xâu kí t nên c canh trái, và s nên c canh ph i.
Các xâu kí t a ra nên c canh trái. Các v trí không dùng nên c b tr ng nh d u
cách. Các s nên c canh ph i và c hi u ch nh khi c n thi t.
• Các nh d ng c l p theo nhóm.
li u c a cùng ki u nên c g n v i nhau thành nhóm, và c thu x p trong nh
ng d nhìn. (Xem Hình 3-4-21.)
3.4 Thi t k vào ra chi ti t 135

Hình 3-4-21 Thi t k nh d ng cho t ng nhóm

PRG0100 *** Danh sách b n ghi sinh viên (toàn nhóm) ***
1 Tháng 12, 2000 Trang 1
Phòng L p S tham d Tên Ph n c ng Ph n m m L p trình Th ng m i
s DK01 01 Ichiro Suzuki A B B B
nt ng t
nh trên ς ς ς ς ς ς
ng t DK02 01 Yoshio Yamamoto B A B A
nh trên ng t
ς ς ς ς ς ς
nh trên
Phòng h th ng JS01 01 Tokuaki Honda B B A A
ng t
thông tin nh trên
ς ς ς ς ς ς
ng t JS02 01 Tsuyoshi Hashimoto A B B A
nh trên ng t ς ς ς ς ς ς
nh trên
136 Ch ng 3 Thi t k trong

3.5 o ra và dùng l i các b


ph n

3.5.1 Khái ni m v t o ra và dùng l i các b ph n


Nói chung, thách th c c a vi c dùng l i ph n m m là d ‘tìm’, ‘ ng kí’ và ‘thay i’. N u các
ph n ph n m m c xem nh ph ng ti n cho vi c dùng l i, thì nh ng thách th c này b
thay th b i ‘s nh t quán c a các b ph n xem nh các n v ’, ‘h th ng hoá c a các b ph n’,
và ‘tính c l p c a các b ph n’.
Trong khái ni m h ng i t ng, thì n v c a b ph n ph n m m là m t i t ng. Các i
ng c h th ng hoá trong th vi n l p, và tính c l p c a i t ng c th c hi n qua
vi c bao b c. Do ó, khái ni m h ng i t ng có th c nói là thích h p cho vi c dùng l i
các s n ph m công vi c.

3.5.2 Dùng gói ph n m m


(1) Th vi n ch ng trình con
Th vi n ch ng trình con t lâu ã c bi t t i nh gói ch ng trình con khoa h c - scientific
subroutine package (SSP), trong l nh v c tính toán khoa h c và k ngh . Các ch ng trình con
và hàm ph c t p không do ng i dùng phát tri n mà c các nhà ch t o, các tr ng i h c và
vi n nghiên c u t ng h p thành th vi n s n có cho ng i dùng.
Khái ni m này ã c áp d ng cho vi c phát tri n các ch ng trình ng d ng nghi p v , và các
ch ng trình con có ích c cung c p nh các gói cho ng i dùng thông th ng, không m t
ti n. B ng cách dùng các gói này, ng i ta t t i vi c rút g n áng k gi công c n phát tri n
ph n m m. Tuy nhiên h th ng ng d ng nghi p v l i ch a các v t ph m ã c phân lo i hay
tri th c s h u riêng. Do ó, m t công ti t ch c các ch ng trình con c phát tri n d a trên
các chu n n i b , thành th vi n và cho phép chúng c dùng l i ch trong n i b .

(2) Th vi n l p
Trong phát tri n h ng i t ng, các i t ng c bao b c nh ng thay i c a m t i
ng này không nh h ng t i các i t ng bao quanh. Có th duy trì tính c l p c a t ng
i t ng. Do ó, các i t ng có th c dùng l i nh các b ph n d dàng h n các b ph n
trong ch ng trình c phát tri n b ng vi c dùng ngôn ng th t c. Ch ng h n trong tr ng
p ngôn ng Java, các i t ng th ng c dùng c t p h p trong th vi n l p. B ng vi c
dùng th vi n l p, th i gian và lao ng c n cho phát tri n ch ng trình có th c ti t ki m.
3.6 T o ra tài li u thi t k trong 137

3.6 o ra tài li u thi t k trong


Tài li u thi t k trong c t o ra d a trên d li u do thi t k trong cung c p. Thi t k trong
c chu n b d a trên tài li u thi t k ngoài theo quan m c a ng i phát tri n. B i vì tài li u
thi t k trong c ng i phát tri n duy t xét, nên vi c dùng các thu t ng k thu t trong tài li u
này là c phép. C ng v y, t t c các chi ti t, k c h con, ch ng trình và ngo i l , u ph i
c mô t trong tài li u thi t k trong.
t qu c a công vi c thi t k h th ng c bi t c biên so n thành tài li u thi t k trong.
Thi t k trong là m t ti n trình thi t k quan tr ng vì nó có trách nhi m tho mãn m i yêu c u
ng i dùng do thi t k ngoài xác nh. B t kì sai l m thi t k nào c ng u có th có tác ng
nghiêm tr ng lên các ti n trình v sau. Ph i luôn nh r ng m t ph n nh c a h th ng c thi t
trong giai n thi t k h th ng và do ó ng i ta ph i nh r ng b t kì thay i nào trong
thi t k ã hoàn ch nh u không th d dàng c th c hi n.
Tài li u thi t k trong bao g m các ph n t c v trong Hình 3-6-1.

Hình 3-6-1 Các y u t trong tài li u thi t k trong

ho ch ki m th
Hi u n ng h th ng
u hình t p
trí báo cáo vào/ra
trí màn hình
Ch c n ng ch ng trình
u hình h th ng
Chính sách thi t k trong
Tài li u thi t k trong

3.6.1 ch c tài li u thi t k trong


(1) Chính sách thi t k trong
Trong chính sách thi t k trong, c n mô t m t t ng quan v chính sách phát tri n h th ng tr c
khi b t u công vi c thi t k .
• Ph ng pháp thi t k
Mô t cho ph ng pháp thi t k c ch n cho công vi c thi t k trong. Thông th ng
ph ng pháp thi t k có c u trúc c s d ng. Mô t cách dùng ph ng pháp thi t k có c u
trúc c xác nh v i vi c nói t i các ph ng pháp thi t k ã c xét duy t khác.
138 Ch ng 3 Thi t k trong

‚ K thu t làm tài li u


Các k thu t làm tài li u nh : HIPO, DFD, l u ,s b t v.v... Mô t cho các k thu t c
ch p thu n và cách chúng c ch p nh n.
ƒ Nhi m v thi t k
„ Các công vi c khác
Mô t th t c ghi l i thay i, chi ti t v xét duy t thi t k và các v n khác ph i xác nh
tr c khi b t u công vi c thi t k .

(2) C u hình h th ng
Trong c u hình h th ng, mô t cho các chi ti t v h th ng và h con c nêu sau ây.
• T ng quan h th ng (lu ng h th ng)
Trong t ng quan h th ng, mô t cho lu ng h th ng m i (DFD h th ng m i) c t o ra b i
phân tích h th ng. N u thay i c th c hi n trong lu ng h th ng m i do vi c c u trúc
hay phân ho ch ch c n ng trong thi t k h th ng thì c n mô t cho lu ng h th ng m i ã
thay i.
‚S c u trúc h th ng (bi u n i dung)
Bi u các n i dung c a ra trong Hình 3-2-13.
ƒ Giao di n gi a các ch ng trình
Bi u nêu ra cái vào cho t i cái ra t m t ch ng trình c v ra. S d ng bi u lu ng d
li u (DFD), l u v.v... (Xem Hình 3-2-14.)
„ Bi u quan h ch ng trình
Th ng a ra lu ng ti n trình bi u th cho trình t th c hi n c a ch ng trình.
… B n in ch ng trình
n chu n b b n in ch ng trình ch ra tên c a ch ng trình c dùng trong h th ng, t ng
quan v n hành v.v...

(3) Ch c n ng ch ng trình
Trong các ch c n ng ch ng trình có mô t v các ch ng trình ã c phân chia b ng vi c
dùng bi u cái vào x lí cái ra (IPO).
• Bi u chung
Mô t m t t ng quan v các h con và ch ng trình.
‚ Bi u chi ti t
Mô t các chi ti t c a t ng n v ch c n ng riêng (ch ng trình).

(4) B trí màn hình


Trong b trí màn hình, các tài li u sau c nêu ra:
- Cái nhìn chung v màn hình
- Bi u chuy n màn hình
3.6 T o ra tài li u thi t k trong 139

(5) B trí báo cáo vào/ra


Danh sách các báo cáo c dùng trong h th ng, các gi i thích chi ti t v t ng báo cáo và vi c
trí c a c hai lo i tài li u g c a vào và báo cáo a ra c ính kèm. (Xem Hình 3-4-2 và
3-4-20.)

(6) C u hình t p
Danh sách các t p c dùng trong h th ng, nh ng gi i thích chi ti t v t ng t p và cách b trí
p c g n v i c u hình t p. (Xem Hình 3-3-4.)
Tên t p, dung l ng t p, tên th vi n và v trí (s hi u a) c mô t trong danh sách các t p.
ng t nh v y, c t cho các b ng c dùng trong h th ng c ng c ính kèm.

(7) Hi u n ng h th ng
Hi u n ng h th ng c tính toán và ánh giá d a trên hi u n ng máy tính, dung l ng b nh
và hi u n ng c a thi t b nh , b n thân ph n m m h th ng và x lí, môi tr ng h th ng v.v.
Mô t cho hi u n ng h th ng ã c tính toán.
<Tính hi u n ng h th ng >
- Kh i l ng trung bình các d li u c sinh ra và kh i l ng d li u trong gi cao m
- Th i gian x lí d li u (cho m t kho n m c hay trong m t th i kì xác nh)

(8) K ho ch ki m th
Mô t k ho ch ki m th tích h p.
- Kh i l ng d li u

3.6.2 Các m c n l u ý khi t o ra tài li u thi t k trong


Các m sau ây c n c l u ý khi t o ra tài li u thi t k h th ng:
• Tài li u thi t k trong ph i bao hàm t t c các ch c n ng c mô t trong tài li u
thi t k ngoài.
c d u thi t k trong c t o nên theo quan m c a ng i phát tri n, nó v n ph i d a
trên thi t k ngoài c t o ra theo quan m c a ng i dùng. B i vì nhân t hàng u trong
vi c phát tri n h th ng là ng i dùng, cho nên c n xác nh n l i r ng t t c m i yêu c u c a
ng i dùng u c bao hàm trong tài li u thi t k trong.
• T t c các ch ng trình u ph i c mô t rõ ràng.
Không ch mô t nh ng ph n chính c a ch ng trình mà còn c các ph n ngo i l , s a ch a,
sao l u và các yêu c u ch ng trình khác.
• T t c các t p và t t c cái vào và cái ra u ph i c mô t rõ ràng.
t c các t p, màn hình và báo cáo vào/ra c dùng trong h th ng ph i c mô t rõ
ràng.
• M i th t c gi i quy t l i u ph i c mô t rõ ràng.
Cách th c l i c x lí nh h ng t i tin c y h th ng. T ng t nh v y, ph i mô t rõ
th i gian gi i quy t l i.
• Ph i tôn tr ng chu n làm tài li u, c n tránh các cách di n t sai l m.
n b n trong tài li u ph i c vi t theo cách th c rõ ràng, chính xác.
140 Ch ng 3 Thi t k trong

3.6.3 Ki m m thi t k
Vi c ki m m c ti n hành trong giai n thi t k c a ti n trình phát tri n ph n m m c
i là ki m m thi t k . Nó bao g m các c t thi t k . B i vì ch t l ng s n ph m c xác
nh theo c t thi t k , nên cu c h p ki m m là r t quan tr ng c i ti n ch t l ng ph n
m.

(1) Ph ng pháp ki m m
Ki m m thi t k ch y u c ti n hành vào ti n trình thi t k h th ng và thi t k ch ng
trình. Các tài li u là ch cho cu c h p ki m m thi t k bao g m nh ng tài li u sau:
- Tài li u thi t k trong
- Bi u quan h ch ng trình
- Các h ng d n v ch c n ng ch ng trình
- Tài li u thi t k màn hình chi ti t
- Tài li u thi t k báo cáo chi ti t
- Tài li u thi t k t p chi ti t
- Tài li u thi t k d li u ki m th

Nh ng chu n b sau ph i c th c hi n tr c khi b t u ki m m thi t k :


• L p k ho ch ki m m thi t k
Ph i u ch nh l ch và trình cho t ch c ch u trách nhi m th c hi n ki m m thi t k .
• Phân ph i tài li u có liên quan tr c khi b t u ki m m thi t k
Nh ng tài li u ã chu n b và các tài li u có liên quan c phân phát cho nh ng ng i tham
vào ki m m thi t k , cho h có th ki m tra chúng tr c khi ki m m c th vào
thi t k
• Chu n b danh sách ki m m
ng vi c i chi u vào danh sách ki m m, c n ki m k l ng tính thích h p c a n i dung
các kho n m c, tính nh t quán, vi c b sót, s tuân th v i chu n n i b , s rõ ràng, tính hi u
c và các m khác. Danh sách ki m m ph i bao g m t t c nh ng m này cho s
t c ki m m có th c ánh giá úng.

Trong ki m m thi t k th c t , các tài li u c t o ra trong giai n thi t k trong c


sánh v i nh ng c t thi t k c t o ra giai n thi t k ngoài. Ch t l ng c a t ng tài li u
xác nh c ánh giá, và m c tuân th các c tr ng ch t l ng c yêu c u s c
ki m m.
Th i gian dành cho vi c ki m m thi t k là x p x hai gi cho m i ki m m, mà c ng có th
khác, tu theo kích c c a ch ng trình. Vi c ki m m thi t k này nên c th c hi n thông
th ng m t hay hai l n.

(2) H th ng ki m m
Nh ng ng i c nêu d i ây óng vai trò trung tâm trong vi c th c hi n ki m m thi t k :
- Nh ng ng i thi t k có cùng m c k n ng k thu t nh nh ng ng i tr c ti p ch u trách
nhi m cho vi c t o ra ch ng trình trong giai n thi t k trong
- Nh ng nhân viên liên quan t i ti n trình thi t k
Nh ng ng i c p cao h n ng i thi t k và nh ng nhân viên liên quan không nên tham gia vào
cu c ki m m thi t k . u này là vì h p ki m m thi t k nh m ánh giá các tài li u,
không ánh giá kh n ng c a ng i th c hi n ki m m thi t k .
3.6 T o ra tài li u thi t k trong 141

Nói chung, m t b ph n chuyên cho ki m m thi t k c thành l p c l p v i t ch c mà


nh ng ng i thi t k và nh ng nhân viên liên quan này thu c vào. Do ó, ki m m thi t k có
th c ti n hành theo quan m c a bên th ba.

(3) S tham d c a ng i dùng


Thi t k màn hình chi ti t hay thi t k báo cáo chi ti t, là công vi c t o ra giao di n gi a h
th ng và ng i dùng. Do ó, t ch c ng i dùng có th tham gia vào ki m m thi t k khi có
nhu c u phát sinh.
142 Ch ng 3 Thi t k trong

Bài t p

Q1 Công vi c nào là công vi c thích h p nh t c làm thi t k trong, xem nh


t ph n c a ho t ng phát tri n h th ng?
a. Thi t k mã b. Thi t k d li u v t lí
c. Thi t k c u trúc ch ng trình d. Xác nh yêu c u
e. Thi t k d li u v t lí

Q2 Hãy ch n hai nhi m v c n c th c hi n trong thi t k d li u v t lí trong giai


n thi t k trong.
a. c l ng th i gian truy nh p và dung l ng b. Xác nh kho n m c d li u
c. Phân tích m i quan h d li u d. T o ra ct t p e. Xác nh cách b trí b n
ghi

Q3 K thu t nào là k thu t bi u di n các ch c n ng và lu ng d li u b ng các kí


hi u ch ra lu ng d li u, x lí (ch c n ng), kho d li u và ngu n ngoài (ngu n
li u c sinh ra và g i i)? (K thu t này là m t trong các ph ng pháp
phân tích có c u trúc.)
a. DFD b. ERD c. S NS d. Bi u chuy n tr ng thái e. bi u Warnier

Q4 Mô t nào là mô t thích h p v HIPO, m t ph ng pháp thi t k có c u trúc?


a. Bi u các n i dung và bi u lu ng d li u c dùng.
b. Thông tin u khi n c truy n qua gi a các kh i x lí c mô t cùng v i các m i
tên trong bi u n i dung.
c. Bi u n i dung ch ra ch c n ng toàn th c a ch ng trình, và các s c a vào
trong các kh i x lí ch ra trình t x lí.
d. Các kí hi u trong l u c dùng ch ra cái gì c ch n và cái gì c l p l i.
e. M i quan h gi a các b c vào/ra và x lí có th c bi u di n rõ ràng.

Q5 Trong xem xét c nêu d i ây v thi t k màn hình trong các giai n thi t
ngoài và trong, xem xét nào là xem xét không thích h p?
a. Vi c chuy n màn hình nên c thi t k v i vi c xem xét không ch vi c l a t ng b c
ng vi c dùng m t menu, mà còn v i truy nh p tr c ti p vào màn hình mong mu n cho
ng i dùng ã thành th o.
b. T ng kho n m c mà d li u c a vào trên màn hình ph i c bao trong ngo c
vuông, nh n m nh r ng nó là tr ng a vào d li u.
c. Cách b trí màn hình ph i c thi t k theo cách các kho n m c c n tham chi u c
thu x p t trái sang ph i, và t trên xu ng d i.
d. hoàn thành ti n trình ang di n ra, màn hình ph i c thi t k ng n c n ng i
dùng kh i b vi c a vào d li u, hay tr l i màn hình tr c ó.
e. B trí màn hình ph i c chu n hoá; các qui t c v v trí cho hi n th tiêu và thông
báo ph i c thi t l p.
4 Thi t k ch ng
trình

c ích c a ch ng
Thi t k ch ng trình là m t ti n trình quan tr ng vì nó
làm cho các nhi m v l p trình c trôi ch y.
u m t ch ng trình c phát tri n v i giao di n rõ
ràng và các mô un c thi t k nh nh ng h p en, thì
các b ph n c a ch ng trình này có th c dùng l i
hay chúng có th c dùng t o ra ch ng trình m i.
Có th có kh n ng xây d ng h th ng ch t l ng cao
ng vi c t h p n gi n các mô un ch t l ng cao.
Ch ng này mô t t ng nhi m v thi t k ch ng trình
ng nh các s n ph m công vi c trong giai n thi t k
ch ng trình.

• Hi u m c ích, nh ng m quan tr ng và nhi m v


liên quan t i thi t k ch ng trình
‚ Hi u n i dung và ý ngh a c a t ng ti n trình trong giai
n thi t k ch ng trình
ƒ Hi u vi c phân ho ch mô un và cách ánh giá mô
un
144 Ch ng 4 Thi t k ch ng trình

Gi i thi u
Thi t k ch ng trình là ti n trình cu i cùng trong toàn th giai n thi t k .
ng th i hay song song v i vi c l p trình, tài li u thi t k ch ng trình c chu n b trong
quá kh . Tuy nhiên, v i qui mô ngày càng t ng c a vi c phát tri n h th ng, nhu c u t ng n ng
su t và s d ng các b ph n, vi c thi t k ch ng trình không còn là công vi c ph cho l p trình
a, bây gi nó c coi nh m t trong nh ng ti n trình phát tri n h th ng.
Trong giai n thi t k trong, h con c phân chia thành các n v ch ng trình ch c n ng.
Trong giai n thi t k ch ng trình, công vi c chính là phân ho ch mô un. T ng n v
ch ng trình ch c n ng c xác nh b i thi t k trong, c phân ho ch ra b ng vi c dùng
ph ng pháp thi t k có c u trúc theo các mô un, nh ng n v nh nh t có th c so n th o
ra. V i vi c phân ho ch ch ng trình thành các mô un, m t ch ng trình có th c làm cho
hi u h n và d b o trì h n. H n n a, làm cho nh ng mô un ó là m t ph n c a ch ng
trình m i phát tri n trong t ng lai, c n có vi c phân ho ch logic.
Trong giai n thi t k ch ng trình, n i dung c a tài li u thi t k trong tr c h t ph i c
hi u m t cách th u áo, và sau ó m c ích và th t c ph i c thi t l p làm nh ng nhi m
thi t k ch ng trình có hi u qu .

4.1 c ích và nhi m v c a


thi t k ch ng trình
Thi t k ch ng trình là pha th t theo mô hình thác . Nó là pha mà trong ó các ch ng
trình c thi t k d a trên tài li u thi t k trong.

4.1.1 c ích c a thi t k ch ng trình


c ích c a thi t k ch ng trình là thi t k c u trúc bên trong c a ch ng trình. Trong thi t
ch ng trình, ph ng pháp thi t k có c u trúc c dùng phân ho ch ch ng trình thành
các mô un. B ng vi c phân ho ch ch ng trình thành mô un và làm sáng t m i quan h gi a
các mô un, c u trúc c a ch ng trình và vi c b o trì có th c làm d dàng h n.
Hình 4-1-1 a ra các i t ng c gi i quy t trong vi c phát tri n h th ng, k c nh ng i
ng c bao hàm trong các pha tr c.
Các i t ng c gi i quy t trong vi c phát tri n h th ng c chia nh ra tu theo qui mô
a vi c phát tri n nh sau:
th ng-h con-giao tác/công vi c-ch ng trình-mô un- n (ch c n ng)-ch l nh
4.1 M c ích và nhi m v c a thi t k ch ng trình 145

Hình 4-1-1 Các n v công vi c trong phát tri n h th ng

Thi t k trong Thi t k ngoài


th ng

con con

Giao tác Giao tác

Ch ng trình Ch ng trình

Mô un Mô un Mô un

ng trình
Thi t k
n n n n n

ch
Các mô un bao g m:
- n v d ch trong ngôn ng c p cao
- Các kho n m c ch c n ng c a ch ng trình
- Kho n m c n v menu
- Ch ng trình g c có t 10 t i 300 câu l nh
- Các nhi m v (ti n trình) x trí d i vi c qu n lí nhi m v (ti n trình)
- n v mô un n p
- S v t c dùng trong vi c phát tri n h ng s v t
- n v bi n c giao di n ng i dùng ho (GUI)

t mô un có th c xác nh nh m t n v logic c h u v m t nh l ng hay logic.


nh ngh a này nên c hi u ch nh m t tiêu chí.

4.1.2 Nhi m v thi t k ch ng trình


Công vi c thi t k ch ng trình c th c hi n theo các b c c nêu sau ây:
1. Xác nh n n i dung c a tài li u thi t k trong
2. Phân ho ch thành mô un
3. Chu n b c t mô un
4. Chu n b tài li u thi t k ch ng trình
5. Chu n b c t ki m th
6. Th c hi n ki m m thi t k

(1) Xác nh n n i dung c a tài li u thi t k trong


Trong khi ti n hành thi t k h th ng, tính nh t quán c a t t c công vi c thi t k , k c thi t k
s , thi t k ngoài, thi t k trong và thi t k ch ng trình, u ph i c duy trì. ph n ánh
i dung c a thi t k trong nh m t t ng th trong thi t k ch ng trình, nh ng m c nêu
i ây ph i c xem xét tr c khi ch ng trình c xác nh trong thi t k trong thành các
146 Ch ng 4 Thi t k ch ng trình

mô un.
- Xác nh ch c n ng (ph i làm gì)
- Thông tin vào ( a vào cái gì)
- X lí (ki u x lí nào c n th c hi n)
- Cái ra ( a ra cái gì)

(2) Phân ho ch mô un
Vi c phân ho ch mô un là công vi c phân ho ch các ch c n ng ch ng trình thành các n v
biên d ch, b ng cách dùng ph ng pháp thi t k có c u trúc. Nó là thi t k ch ng trình lõi.
y chi c xe làm ví d gi i thích cho vi c phân ho ch mô un.
Hình 4-1-2 Phân ho ch xe

Xe c l p ráp v i m t thân xe, ng c , bánh xe, ch ng i v.v.. N u tài li u thi t k chu áo và


c t v xe và các b ph n u có s n, thì vi c s n xu t nó c th c hi n d dàng b ng vi c t o
ra t ng b ph n tr c khi l p ráp các b ph n ó l i. N u phanh h ng, b ph n c a nó có th
c s a l i hay thay th .
u này áp d ng cho vi c phát tri n h th ng. Không gi ng nh tr ng h p l p ráp xe, các b
ph n trong vi c phát tri n h th ng là không th y c, do ó vi c phân ho ch c th c hi n t
khía c nh v t lí cho t i logic. Nên tránh vi c ch dùng kích c nh cách o vi c phân ho ch vì nó
làm phát sinh các mô un thi u s th ng nh t, làm khó cho vi c th c hi n các nhi m v l p trình
hay b o trì. Do ó, xem nh m t nguyên t c mô un ph i c phân ho ch thành các n v
logic, và m t cách o v t lí ph i c dùng làm ph ng ti n ph .
Vi c phân ho ch mô un có các u m sau:
• Tính c l p c a mô un có th c m b o.
ng vi c phân ho ch n i dung c a x lí c xác nh trong thi t k trong thành các n v
k t v m t logic thay vì thành các n v v t lí, tính c l p mô un có th c m b o.
• Hi u qu x lí c c i thi n
ng vi c t i thi u hoá các quan h v i các mô un khác, hi u qu x lí có th c i thi n.
• T o ra và dùng l i các b ph n
Các mô un có th c dùng b i ch ng trình, hay các mô un có th c dùng l i thì u
có th c trích ra t o ra các b ph n m i, hay nh các b ph n trong các ch ng trình
khác.
• Tính hi u qu và tin c y b o trì c c i ti n
u c n thay i các ch c n ng h th ng, thì ch nh ng mô un c liên k t v i nh ng thay
i h th ng m i có th b thay i hay thay th , cho nên hi u qu b o trì và tin c y có th
c c i ti n.
Th t c phân ho ch mô un và các chi ti t v thi t k c u trúc s c mô t v sau.

(3) Chu n b c t mô un
n xác nh n i dung c a vi c x lí c th c hi n b i t ng mô un. c t mô un ph i c
4.1 M c ích và nhi m v c a thi t k ch ng trình 147

chu n b có chú ý t i các chi ti t, không b sót các ch c n ng.

(4) Chu n b tài li u thi t k ch ng trình


t qu c a công vi c c th c hi n theo các b c (1), (2) và (3) trên c so n thành tài li u
thi t k ch ng trình, dùng làm h ng d n cho vi c mã hoá. Trong tài li u thi t k ch ng trình,
nh ng thông tin sau ây ph i c mô t :
<N i dung c a c t thi t k ch ng trình >
- ng l i thi t k ch ng trình
- T ng quan v ch ng trình
- Bi u c u trúc ch ng trình
- Chi ti t x lí
- Tr ng h p ki m th
- Mô t kho n m c

(5) Chu n b c t ki m th
c t ki m th c chu n b t ng ng theo m c ích c a t ng ki m th . Ki m th ch ng
trình c phân lo i thành các ki m th n v và ki m th tích h p.

(6) Ki m m thi t k
c ích c a ki m m thi t k là:
- Làm h p l vi c tho mãn yêu c u ng i dùng
- Ki m ch ng s nh t quán v i thi t k trong, và s n sàng cho vi c chuy n sang công vi c
p trình
u ý t i nh ng m c ích này, c n ph i ti n hành ki m m thi t k . Các cu c h p ki m m
là quan tr ng t t c các giai n. K t qu c a vi c ki m m thi t k c ti n hành trên n i
dung c a thi t k ch ng trình có nh h ng l n t i công vi c l p trình.
<Nh ng m quan tr ng c n xét t i khi ti n hành ki m m thi t k >
- N i dung c a tài li u thi t k ch ng trình ph i c ki m tra.
- N i dung c a tài li u thi t ch ng trình ph i c so sánh v i n i dung c a tài li u thi t k
trong. C n ch ra các ch c n ng thi u và các khi m khuy t.
- Xác nh n r ng không có các ch c n ng có liên quan t i mô un mà b thi u.
- Xác nh n r ng vi c phân ho ch mô un ã c làm úng
- Tính nh t quán c a giao di n gi a các mô un ph i c ki m ch ng. C ng v y, ph i ki m
tra xác nh n r ng không có giao di n nào b thi u.
148 Ch ng 4 Thi t k ch ng trình

4.2 Thi t k có c u trúc cho


ch ng trình
Khi qui mô h th ng m r ng l n d n và các ch c n ng mà ng i dùng yêu c u tr nên ph c t p
n, thì ch ng trình c dùng v n hành h th ng nh v y c ng tr thành ph c t p. K t qu
là, s các l i ti m tàng t ng lên, và th i gian và chi phí ph i tiêu s a chúng c ng t ng lên.
Trong quá kh khi ph n c ng còn t, các ch ng trình ã c thi t k b ng c u trúc logic
ph c t p c th hoá các ch c n ng nâng cao; và vi c vi t nh ng ch ng trình nh v y là c
i cho ng i l p trình bi u l tài n ng c a mình. Tài nguyên h th ng bây gi ã s n có d
th a; u quan tr ng là t o ra ch ng trình ch t l ng cao, d hi u.

4.2.1 Th t c thi t k có c u trúc


c này mô t các nhi m v thi t k có c u trúc c a vi c phân ho ch m t ch ng trình thành
các mô un. m m u ch t trong thi t k có c u trúc là phân ho ch ch ng trình theo cách nó
làm t ng s c l p c a các mô un .

Hình 4-2-1 Th t c thi t k có c u trúc


Xác nh module m c cao
nh t

Phân tích ch c n ng c a
i module

Ch n ph ng pháp phân
ho ch

Phân ho ch ch ng trình
thành các module

Xác nh giao di n gi a
các module

Có Phân ho ch l i
module
Không

t thúc

Chi ti t v t ng b c là nh sau:

(1) Xác nh mô un m c cao nh t


Mô un m c cao nh t là mô un cg it il n u tiên khi ch ng trình b t u. Mô un này
th c hi n hai ch c n ng:
4.2 Thi t k có c u trúc cho ch ng trình 149

- Ki m soát toàn b ch ng trình (t ng mô un )


- t các giá tr kh i u cho các kho n m c d li u (nh b m)
- M và óng t p
Có tr ng h p mà mô un m c cao nh t ch ki m soát toàn b ch ng trình, còn các mô un
khác (các mô un m c th p) t giá tr kh i u cho các kho n m c d li u và m óng t p.

(2) Phân tích ch c n ng c a t ng mô un


t c các ch c n ng c t y u c n cho vi c ch y ch ng trình u c nh n di n. Chúng c
phân ho ch thêm n a ra hay c t h p l i khi c n cho chúng có th c phân ho ch thành
t t p t i u các mô un.
<Các ch c n ng c a mô un >
- ct p
- Ki m tra l i trong d li u a vào
- X lí (tính toán) d li u
- a d li u ra
- Gi i quy t l i

(3) Ch n ph ng pháp phân ho ch


i quan m c nói t i d i ây, ph ng pháp phân ho ch mô un thích h p nh t c n ph i
c ch n ra. T ng ph ng pháp phân ho ch c mô t chi ti t trong M c 4.2.2.
• Ph ng pháp phân ho ch c thi t k v i chú ý t p trung vào lu ng d li u
Ph ng pháp này là thích h p cho h th ng giao tác tr c tuy n.
<B t kì m t trong nh ng ph ng pháp sau ây u có th c dùng:>
- Ph ng pháp phân ho ch STS
- Ph ng pháp phân ho ch TR
- Ph ng pháp phân ho ch hàm chung
• Ph ng pháp phân ho ch c thi t k v i chú ý t p trung vào c u trúc d li u
Ph ng pháp này là thích h p cho ki u x lí theo lô trong ó ch y u x lí các t p.
<M t trong hai ph ng pháp sau có th c dùng:>
- Ph ng pháp Jackson
- Ph ng pháp Warnier

(4) Phân ho ch ch ng trình thành các mô un


ng vi c dùng b t kì ph ng pháp phân ho ch nào ã c nêu m c (3) trên, ch ng trình
c phân ho ch thành các mô un d a trên các chu n cho vi c phân ho ch mô un. Mô un
cg it i c g i là mô un c p d i .
<Th t c phân ho ch >
1. Xác nh mô un m c cao nh t
2. Xác nh các mô un c g i b i mô un m c cao nh t
3. Xác nh các mô un c g i b i b c 2 trên ây
4. Các mô un c chia ra d n t ng b c thành các mô un m c th p.
Trong vi c phân ho ch, h ng d n sau nên c tuân th :
<H ng d n v phân ho ch mô un:>
- N u m t ch ng trình bao g m t 10 t i 300 mô un, thì vi c phân ho ch có th c th c
150 Ch ng 4 Thi t k ch ng trình

hi n d dàng.
- S các mô un c ch a m t m c (phân c p b c) nên là m i hay ít h n.
- Chi u sâu nên là b n m c hay ít h n.
Hình 4-2-2 a ra m t tr ng h p trong ó ch ng trình c phân ho ch úng, và tr ng h p
khác nó c phân ho ch không úng.

Hình 4-2-2 Hai tr ng h p phân ho ch mô un


<Tr ng h p ch ng trình phân ho ch thích h p> <Tr ng h p ch ng trình phân ho ch không thích h p>

(5) Xác nh giao di n gi a các mô un


Bây gi chúng ta mô t d li u, và các u ki n c n truy n d li u gi a các mô un. (Xem
Hình 4-2-3.)
Vi c xác nh giao di n gi a các mô un c ng quan tr ng nh vi c phân ho ch mô un. Th m
chí sau khi ch ng trình ã c phân ho ch thành các mô un, thì tin c y c a b n thân
ch ng trình c ng ch có th c m b o n u t ng giao di n mô un có th th c hi n ch c
ng c a nó; ch ng h n, n u A c a vào, thì B c cho l i mà không h ng. Có khuy n
cáo r ng s các kho n m c d li u có th c truy n qua m t giao di n nên gi b y hay ít
n.
Hình 4-2-3 Giao di n gi a các mô un

Thi t b Nh p / xu t d li u
vào / t thi t b u cu i
u cu i
1

áp ng yêu c u
v n chuy n

2 3

Tìm hàng t n kho Tìm s n ph m ã p s n ph m


pt n c thêm vào
nh p vào kho
kho kho

<T p t n kho> <Các s n ph m c a vào l u kho theo k ho ch>


Mã S hàng S hàng t n Mã Ngày các s n ph m S s n ph m d tr S s n ph m c
Hàng c a vào l u kho c a vào l u a vào l u kho
Hàng t n kho d tr theo k ho ch kho theo k ho ch theo k ho ch

ng a vào t các module m c cao a ra t các module m c cao


tn i
1 Mã hàng, S l ng s n ph m theo Tr ng thái, thông p A, thông pB
yêu c u, ngày v n chuy n theo yêu c u
2 Mã hàng S hàng t n kho không d tr
3 Mã hàng Ngày các s n ph m c l u kho theo k ho ch,
s s n ph m c l u kho theo k ho ch

(6) Xem xét vi c phân ho ch l i mô un


u ch ng trình c phân ho ch thành các mô un, d a trên tiêu chí cho vi c phân ho ch mô
un c cho v i c l ng không mong mu n, thì m t trong nh ng ph ng pháp phân ho ch
4.2 Thi t k có c u trúc cho ch ng trình 151

c nêu trong (3) ph i c ch n làm l i nó theo cách trên xu ng. N u làm nh v y, nhi u
ph ng pháp có th c dùng t h p v i nhau khi c n.

Hình 4-2-4 Dùng m t ph ng pháp phân ho ch t h p v i các ph ng pháp khác

Phân ho ch STS

Phân ho ch TR

Phân ho ch ch c n ng thông th ng

<Cách th c t ng ph ng pháp phân ho ch ph i c dùng >


1. Ph ng pháp phân ho ch STS c dùng cho các mô un m c cao.
2. Ph ng pháp phân ho ch TR c dùng cho các mô un m c trung.
3. Ph ng pháp phân ho ch ch c n ng th ng c dùng tích h p các mô un chi ti t,
c th p.

4.2.2 Các k thu t phân ho ch mô un n hình


(1) Các k thu t phân ho ch c thi t k v i chú ý t p trung vào lu ng
li u
• Ph ng pháp phân ho ch STA
nguyên t c, d li u c x lí qua ba b c: a vào, x lí và a ra. Ph ng pháp phân
ho ch STS (Source –Transform-Sink Ngu n-Bi n i-B ch a) c thi t k v i chú ý t p
trung vào lu ng d li u này, ch ng trình c chia thành ba ph n nh sau:
- Ngu n (ch c n ng x lí u vào)
- Bi n i (ch c n ng x lí d li u)
- B ch a (ch c n ng x lí u ra)
Ph ng pháp này là thích h p gi i quy t cho các mô un m c cao có t t c các ch c n ng
a vào, x lí và a ra.
Hình 4-2-5 Th t c phân ho ch STS
u trúc ch ng
trình ph i rõ ràng

Xác nh lu ng d li u, và k t h p m i b c
theo các ch c n ng c th

Xác nh m tr u
ng t i a

Xác nh các module


pd i tr c ti p

Xác nh các giao di n


i các module c p cao

Không
Kh n ng phân
t thúc
ho ch l i

Phân ho ch l i
152 Ch ng 4 Thi t k ch ng trình

<Th t c phân ho ch STS>


1. Tr c h t c u trúc ch ng trình c làm sáng t .
u trúc ch ng trình c làm sáng t v i chú ý chính dành cho các ch c n ng, nh c
a ra trong Hình 4-2-6. Các ch c n ng nên c g p nhóm l i sao cho s các ch c n ng
là t ba t i m i.

Hình 4-2-6 Làm sáng t c u trúc ch ng trình

Ch p nh n
yêu c u
m cc u o các
Th c hi n trúc trong câu h i a ra
câu h i tìm
t c các yêu c u d li u
ki m
tìm ki m Chia thành các
ch c n ng Thu c Tìm c s
li u li u
Module m c cao

2. Lu ng d li u vào và ra c nh n di n và t ng b c trong lu ng này c liên k t v i các


ch c n ng xác nh.
ng b c trong lu ng d li u này trong ch ng trình c liên k t và móc n i l i, dùng các
i tên (s b t) t o ra lu ng d li u chính cho vào và ra, nh c v trong Hình 4-2-7.

Hình 4-2-7 Liên k t t ng b c trong lu ng d li u v i các ch c n ng xác nh

Ch p nh n o các
Tìm c s Thu c Hi n th
yêu c u câu h i tìm
li u li u d li u
ki m

Yêu c u Yêu c u
tìm ki m tìm ki m

3. Nh n di n m tr u t ng t i a
Nh n di n m tr u t ng n i d li u có th không còn c xem xét là d li u vào ( m
vào tr u t ng t i a ), và m mà d li u b t u thành hình nh d li u a ra ( m a
ra tr u t ng t i a ), nh c nêu trong Hình 4-2-8.

Hình 4-2-8 m tr u t ng t i a
o các
Ch p nh n Tìm c s Thu c a ra
câu h i tìm
yêu c u li u li u d li u
ki m

Lu ng d li u chính a ra

m m
vào tr u ra tr u
ng t i a ng t i a

Ph n ngu n ( a vào) Ph n chuy n i (x lý) Ph n chìm ( u ra)

3. Xác nh các mô un c p d i tr c ti p
u trúc, và liên k t các mô un (k c mô un c p cao) ã c phân ho ch thành cái vào,
lí và cái ra, nh c nêu trong Hình 4-2-9.
4.2 Thi t k có c u trúc cho ch ng trình 153

Hình 4-2-9 C u trúc các mô un


Th c hi n t t c các
yêu c u tìm ki m
1 2 3

a ra câu h i tìm Tìm ki m Ti n hành thi t l p


ki m ti p theo s d li u li u

5. Xác nh các giao di n v i các mô un c p cao


Xác nh giao di n v i các mô un c p cao (giao di n gi a các mô un). (Xem Hình
4-2-10.)

Hình 4-2-10 Xác nh các giao di n gi a các mô un


u vào u ra

1 -Tìm ki m câu h i
(không) - B n yêu c u
- a ch cu i
- Mã l i
2 - B n thông tin
- Mã l i
3 . B n thông tin - Mã l i
. B n yêu c u
. a ch cu i

6. Ki m tra kh n ng phân ho ch l i
Ki m tra xem li u có mô un nào ph i c phân ho ch l i không. N u có, ti p t c phân
ho ch các mô un.
‚ Ph ng pháp phân ho ch TR (ph ng pháp phân ho ch giao tác)
u ki u giao tác có th c xác nh b ng ki u c a d li u, thì nên dùng ph ng pháp phân
ho ch TR g p nhóm (làm mô un hoá) cho các mô un theo ki u giao tác. Ph ng pháp này
ph thu c d li u.

Hình 4-2-11 Các mô un c phân ho ch dùng ph ng pháp phân ho ch TR

p nh t
t p chính

Ki m tra d li u p nh t a ra t p
nh p vào chính

lý lý ng vào t p
trong kho ngoài kho chính

: Ph n chia c x lý b i phân ho ch TR c a
ra kèm theo hình ch nh t c tô.

Trong ví d c nêu trong Hình 4-2-11, các ki u giao tác c phân ho ch theo các ki u d
li u vào (x lí trong kho, x lí ngoài kho, b sung vào t p chính). Khi c n x lí m t ki u d
li u nào ó, m t giao tác t ng ng c a nh ng giao tác ã c phân ho ch này s cl a
ra.
154 Ch ng 4 Thi t k ch ng trình

ƒ Ph ng pháp phân ho ch ch c n ng chung


u có các mô un có các ch c n ng chung, thì ph ng pháp này c dùng. (Xem Hình
4-2-12.)

Hình 4-2-12 Ph ng pháp phân ho ch ch c n ng chung


Tìm t p
nhân viên

Tìm ra giao d ch Tìm ra b n ghi Hi n th b n ghi


vào thích h p nhân viên thích h p lên màn hình

Hi n th thông
pl i

(2) K thu t phân ho ch h ng c u trúc d li u


Các mô un c thi t k b ng vi c thi t l p quan h c u trúc c a mô un v i c u trúc c a d
li u vào và ra.
• Ph ng pháp Jackson
i ph ng pháp Jackson, các mô un c phân ho ch b ng vi c l p m i quan h gi a c u
trúc c a ch ng trình v i c u trúc c a d li u vào và ra.
<Nhi m v phân ho ch c a ph ng pháp Jackson>
1. Xác nh c u trúc c a d li u vào và ra.
2. Tìm m i quan h m t-m t gi a các k t c u trong c u trúc c a d li u vào và ra. N u không
th tìm c, thì m t c u trúc d li u trung gian ph i c thi t l p.
3. T o ra c u trúc ch ng trình d a trên c u trúc c a d li u ra.
4. Ki m ch ng c u trúc ch ng trình b ng vi c tham chi u t i c u trúc d li u vào.
<Các k t c u c a ph ng pháp Jackson>
Trong tr ng h p c a ph ng pháp Jackson, m t c u trúc d li u c ng nh c u trúc ch ng
trình c xây d ng nên b ng vi c dùng ba k t c u, "tu n t ," "l p" và "tuy n l a" c nh
ngh a t ng ng theo các ph n t c s .

Hình 4-2-13 Các k t c u c a ph ng pháp Jackson


<Tu n t > <L p> <L a ch n>
<Y u t >
A D F

E
B C D G H I
• Y u t : Các k t c u không th c phân chia thêm n a
Ví d : Kho n m c d li u, câu l nh, v.v...
• Tu n t : K t c u bao g m các k t c u con; m i k t c u con xu t hi n tu n t ch
t l n.
Ví d : B n ghi (nhi u kho n m c d li u), trình x lí tu n t , v.v.
• L p (*): M t k t c u xu t hi n l p i l p l i.
Ví d : T p tu n t , câu l nh PERFORM, v.v...
• Tuy n l a (°): Bao g m nhi u k t c u con; m t trong chúng c l a l y.
Ví d : N -Có, câu l nh EVALUATE v.v...
4.2 Thi t k có c u trúc cho ch ng trình 155

<Cách phân ho ch mô un>


Dùng ph ng pháp Jackson, các mô un c phân ho ch nh c nêu trong Hình 4-2-14.

Hình 4-2-14 D li u vào và ra


< Nh p d li u> <Xu t d li u>

Báo cáo v ti n nh n c t khách hàng


10020 IR 620405 200 000 hi u L p Ngày S ti n
Nhóm
10020 IR 620402 150 000 khách hàng b n ghi nh n c
khách hàng
10020 CR 620401 80 000 10010 620401 100 000
* 100 000
10010 SR 620403 50 000
10020 620402 150 000
Nhóm 10010 IR 620401 100 000 620405 200 000
khách hàng
* 350 000
xxx xxx xxx

• Xác nh c u trúc c a d li u vào và ra.


li u vào bao g m nh ng u sau, nh c nêu trong Hình 4-2-14:
- T p vào: Cùng nhóm khách hàng c l p l i.
- Nhóm khách hàng: Cùng b n ghi nhóm khách hàng c l p l i.
- Ki u c a b n ghi khách hàng: B n ghi ti n nh n c và các b n ghi khác
li u ra bao g m nh ng u sau:
- D li u ra: B n ghi v ti n nh n c t m i khách hàng c l p l i.
- B n ghi v ti n nh n c: Danh sách chi ti t ti n nh n c t t ng khách hàng, và
ng s ti n nh n c t khách hàng c l p l i.
- Danh sách chi ti t v ti n nh n c t khách hàng: B n ghi v ti n nh n c cl p
i.
Do ó, các c u trúc c a d li u vào và ra có th c xác nh nh c nêu trong Hình
4-2-15.

Hình 4-2-15 C u trúc c a d li u vào và ra


<C u trúc d li u vào> <C u trúc d li u ra>
p Biên b n
vào nh n ti n
Nhóm
khách hàng
Tiêu Chi ti t Dòng ghi t ng s ti n
biên b n biên b n nh n c
n ghi
khách hàng

Các b n ghi n ghi nh n ti n t


khác i khách hàng
vào
Các b n ghi n ghi Danh sách chi ti t s ti n Dòng ghi t ng s ti n
khác nh n ti n nh n c t khách hàng nh n c
khác
n ghi
nh n ti n
• Tìm m i quan h m t-m t gi a các k t c u trong c u trúc c a d li u vào và ra
(xem Hình 4-2-16). N u không có quan h nh v y, ph i thi t l p ra m t c u trúc
li u trung gian.
Trong tr ng h p c a Hình 4-2-15, có ba quan h m t-m t:
- T p vào và báo cáo v ti n nh n c
156 Ch ng 4 Thi t k ch ng trình

- Nhóm khách hàng và b n ghi v ti n nh n c t t ng khách hàng


- M t b n ghi ti n nh n c và b n ghi khác v ti n nh n c

Hình 4-2-16 M i quan h m t-m t gi a các ph n t tích h p


<C u trúc d li u vào> <C u trúc d li u ra>
p Biên b n
vào nh n ti n
t m t
Nhóm
khách hàng
Tiêu Chi ti t Dòng ghi t ng s ti n
biên b n biên b n nh n c
n ghi
khách hàng
t m t
Các b n ghi n ghi nh n ti n t
khác i khách hàng
vào
Các b n ghi n ghi Danh sách chi ti t s ti n Dòng ghi t ng s ti n
khác nh n ti n nh n c t khách hàng nh n c
khác

t m t n ghi
nh n ti n

• T o ra c u trúc ch ng trình d a trên c u trúc c a d li u ra.


o ra c u trúc ch ng trình d a trên m i quan h m t-m t gi a các k t c u. (Xem Hình
4-2-17.) V nguyên t c, c u trúc c a ch ng trình ph i có quan h v i d li u a ra, và d
li u a vào c dùng cho c vi c ki m ch ng và s a c u trúc ch ng trình. (Ch d n
"B qua các b n ghi khác - Ignoring other records" là k t qu thu c sau khi m t ph n
a c u trúc ch ng trình ã c s a l i.)

Hình 4-2-17 C u trúc ch ng trình

In biên b n v s ti n nh n
c d a trên t p nh p vào

In tiêu In chi ti t In dòng ghi t ng s ti n


biên b n biên b n nh n c

In biên b n nh n ti n t
m i khách hàng

In chi ti t báo cáo In dòng ghi t ng s ti n


khách hàng nh n c t khách hàng

In dòng ghi t ng s
ti n nh n c

qua các b n ghi khác In 1 dòng


(không th c hi n gì c )

‚ Ph ng pháp Warnier
Ph ng pháp Warnier là k thu t thi t k mô un có c u trúc d a trên lí thuy t t p h p. Nó
c s d ng r ng rãi phân ho ch các mô un cho vi c x lí t p và các ng d ng nghi p v
khác.
c tr ng c a ph ng pháp Warnier>
- Phân tích d li u là c s c a ph ng pháp này.
- Ph ng pháp này d a trên "khi nào, âu và bao nhiêu l n." Vi c phân tích c th c
4.2 Thi t k có c u trúc cho ch ng trình 157

hi n theo cách trên xu ng.


- Trong khi ph ng pháp Jackson c thi t k làm vi c c u trúc ch y u d a trên d
li u a ra, thì ph ng pháp Warnier c thi t k làm vi c c u trúc d a trên d li u
a vào.
Các nhi m v phân ho ch c a ph ng pháp Warnier c nêu d i ây. Xem nh m t ví d ,
y l i ví d c v trong Hình 4-2-14.
<Các nhi m v phân ho ch c a ph ng pháp Warnier>
1. Tìm m i quan h m t-m t gi a c u trúc c a d li u a vào và c u trúc logic c a ch ng
trình.
Tr c h t so sánh c u trúc c a d li u vào v i c u trúc logic c a ch ng trình.

Hình 4-2-18 So sánh c u trúc c a d li u vào v i c u trúc logic c a ch ng trình


c ch ng trình
Nhóm 10020 PR 620405 200 000
Ph n b t u (m t l n)
khách hàng 10020 PR 620402 150 000

ng trình
10020 CR 620401 80 000 lý nhóm
10010 SR 620403 50 000 khách hàng (n l n)
Nhóm

Ch
10010 PR 620401 100 000
khách hàng Ph n k t thúc (m t l n)

S hi u L p Ngày Ti n
khách b n ghi nh n c
IR: B n ghi ti n nh n c

Cùng c u trúc nh c nêu trong Hình 4-2-14 c tham kh o t i ây. C u trúc logic
a ch ng trình t ng ng bao g m các t p con sau:
- Ph n b t u
- Ph n nhóm khách hàng
- Ph n k t thúc
(N: s l n l p, 0 và 1: ho c c l a)
Ví d c nêu trong Hình 4-2-18 ch ra r ng vi c x lí cho nhóm khách hàng ti p t c cho
i khi vi c x lí cho t t c các t p c hoàn t t.

2. Chia ra các t p con theo cách t trên xu ng.


Nhóm khách hàng ã c chia thêm ra c nêu trong Hình 4-2-19.

Hình 4-2-19 Chia ra các t p con (b c 1)


c nhóm khách hàng
Ph n u c a nhóm khách hàng (1 l n)
Nhóm khách hàng lý b n ghi khách hàng (m l n)
Ph n cu i nhóm khách hàng (1 l n)

u trúc logic c a nhóm khách hàng bao g m các t p con sau:


- Ph n b t u c a m t nhóm khách hàng
- Ph n b n ghi khách hàng
- Ph n k t thúc c a nhóm khách hàng
Ph n b n ghi khách hàng ã c phân chia thêm c nêu trong Hình 4-2-20.
158 Ch ng 4 Thi t k ch ng trình

Hình 4-2-20 Chia ra các t p con (b c 2)

c b n ghi khách hàng


Ph n b t u c a b n ghi khách hàng (1 l n)
n ghi khách hàng Li u nó có là b n ghi v ti n nh n c hay không( không ho c 1 l n)
Ph n k t thúc nhóm khách hàng (1 l n)

u trúc logic c a ph n b n ghi khách hàng bao g m các t p con sau:


- Ph n b t u c a b n ghi khách hàng
- Li u nó có là b n ghi v ti n nh n c hay không
- Ph n k t thúc c a b n ghi khách hàng
Vì t p con "li u nó có là b n ghi v ti n nh n c hay không " không th c phân chia
thêm n a, nên vi c phân ho ch d ng l i t i m c này.

3. V l u .
u c v ra d a trên Hình 4-2-18, 4-2-19 và 4-2-20 c nêu trong Hình 4-2-21.

Hình 4-2-21 L u
t u

Ph n b t u m c
ch ng trình

Ph n b t u
nhóm khách hàng

Ph n b t u
n ghi khách hàng
M c b n ghi khách hàng

không Xác nh Có
M c nhóm khách hàng
ng trìn

b n ghi: IR

lý b n ghi
M c ch

nh n ti n

t thúc ph n
n ghi khách hàng

Xác nh xem
không
x lý b n ghi khách hàng có
hoàn thành hay không

Ph n cu i nhóm
khách hàng

Xác nh xem không


x lý nhóm khách hàng có hoàn
thành hay không


Ph n cu i m c
ch ng trình

t thúc
4.2 Thi t k có c u trúc cho ch ng trình 159

(3) Dùng t h p các k thu t phân ho ch


thu t phân ho ch c s c dùng cho thi t k c u trúc là ph ng pháp STS. Trong b c
u tiên c a vi c phân ho ch ch ng trình, ph ng pháp này bao gi c ng c dùng, b i vì
vi c phân ho ch STS cho phép ng i l p trình nh n di n c u trúc duy nh t c a ch ng trình
làm vi c ti p. Nó c ng làm cho ng i l p trình có kh n ng hi u cách th c d li u ch y qua t i
ng b c c a vi c x lí d li u, và cách nó c bi n i trong khi c x lí b i t ng ch c
ng. Trong ph ng pháp phân ho ch STS, các ch c n ng c chia thành các ch c n ng c p
i.
u ph ng pháp phân ho ch STS không th áp d ng c, thì ph i dùng ph ng pháp khác.
Phân ho ch STS không làm vi c t t v i các mô un ph thu c d li u – các mô un mà khó rút
ra c u trúc ch ng trình tr c ti p. Trong tr ng h p này ph i dùng phân ho ch TR. Trong
ph ng pháp phân ho ch TR, các ch c n ng c chia thành các ch c n ng c p d i t ng
ng.
Khi các mô un c phân ho ch ra, s các mô un liên t c t ng lên. Tuy nhiên, nó không t ng
vô h n; khi các mô un c phân ho ch t i m t gi i h n nào ó thì các mô un u xa nh t
ch là các câu l nh. M c d u ây là tr ng h p c c oan, vi c phân ho ch nên d ng l i t i m
nào ó. Tiêu chu n c nêu d i ây c dùng xác nh khi nào thì d ng vi c phân ho ch:
• Tr c khi b n b t u phân ho ch m t mô un, hãy nhìn tr c vào c u trúc logic c a mô
un. N u b n có th nhìn tr c nó m t cách d dàng, thì mô un c c l ng ch a
quãng n m m i câu l nh. Do ó, b n có th xác nh r ng b t kì vi c phân ho ch nào thêm
ng u không c n thi t.
‚ N u b n không còn có th phân ho ch c mô un thành các mô un c p d i tr c ti p có
b n v m t ch c n ng (s gi i thích d i ây), thì b n có th xác nh r ng b t kì vi c
phân ho ch nào thêm n a c ng là không c n thi t.
ƒ N u b n phân vân gi a vi c d ng l i và vi c ti p t c phân ho ch, thì b n nên ti p t c phân
ho ch. N u vi c phân ho ch c a b n quá nhi u, b n có th t ch c l i các mô un, tuy nhiên
a ch a ch ng trình c phân ho ch quá nhi u còn d h n là ch ng trình c phân
ho ch không .
u trúc mô un thay i t hình chóp nh n sang hình dáng mái n th H i giáo, nh c nêu
trong Hình 4-2-22. u này là do vi c phân ho ch ch c n ng thông th ng c th c hi n
c cu i cùng c a vi c phân ho ch mô un.

Hình 4-2-22 Hình dáng c a c u trúc mô un


Ph n
phân chia

Hình chóp

Ph n
phân chia
Ph n
phân chia

Mô hình
duy nhât

Mô hình chung

Hình 4-2-23 cung c p t ng quan v các k thu t phân ho ch mô un, hay các k thu t thi t k
160 Ch ng 4 Thi t k ch ng trình

ch ng trình ã c mô t cho t i nay.

Hình 4-2-23 Các k thu t phân ho ch mô un

thu t phân ho ch mô un

thu t thi t k theo lu ng d li u

Phân ho ch STS Phân ho ch thành các ch c n ng c p d i

Phân ho ch TR Phân ho ch thành các ch c n ng t ng ng

Phân ho ch ch c n ng chung Trích các ch c n ng c p d i

thu t thi t k theo c u trúc d li u

Ph ng pháp Jackson

Ph ng pháp Warnier

4.2.3 Tiêu chí cho vi c phân ho ch mô un


Công vi c thi t k ch ng trình ph c t p có th c làm n gi n hoá b ng vi c phân ho ch
ch ng trình thành các mô un, nh ã gi i thích trong m c tr c. Trong thi t k và s a i,
ng ph n c a ch ng trình ph i m b o tính c l p c a mô un, cho t t c các mô un có
th th c hi n các ch c n ng ã nêu mà không nh h ng l n nhau. Hai m này, vi c làm n
gi n hoá thi t k ch ng trình và tính c l p c a mô un, là nh ng m c tiêu ch y u ph i c
t t i trong thi t k có c u trúc.
Có hai cách o c dùng ánh giá tính c l p c a mô un: b n mô un ch ra s c b n
a m i quan h gi a các mô un, và vi c g n n i mô un ch ra m i quan h gi a các mô un

(1) b n mô un
b n mô un là m t trong nh ng h ng d n mà ta có th tham chi u t i khi xác nh các mô
un trong ti n trình thi t k . Các ki u b n mô un c xem xét t khía c nh c a vi c dùng
i mô un, khuynh h ng l i, tính c l p, tính b o trì c, tính m r ng c v.v.. c bi t,
chúng c xem xét theo tr t t nh ng hi u qu không mong mu n cho t i hi u qu c mong
mu n, c t o ra b i t ng ki u b n mô un.
4.2 Thi t k có c u trúc cho ch ng trình 161

Hình 4-2-24 b n mô un

Th p
ng trùng h p

ng logic

ng th i gian

ng theo th t c

ng trùng h p

ng lan truy n

ng thông tin

ng ch c n ng cl p
Cao

• b n trùng h p ng u nhiên
u b t kì u ki n nào trong nh ng u ki n sau mà áp d ng c cho m t mô un b n
ang ki m tra, b n c a mô un nh v y c g i là b n trùng h p ng u nhiên :
- Các ch c n ng c a mô un không th c xác nh.
- Mô un có nhi u ch c n ng không liên quan l n nhau.
c d u ng i l p trình s không ch ý t o ra mô un nh v y, u ó có th c t o ra m t
cách không ch ý trong nh ng hoàn c nh sau ây:
- N u mô un c phân ho ch thành nh ng ph n tu ti n g i chèn l p.
- N u ng i l p trình ph i áp ng yêu c u r t nghiêm kh c, ch ng h n “s các câu l nh
trong t ng mô un ph i là 50 t i 60".
Mô un c t o ra trong nh ng hoàn c nh nh v y không th c dùng l i chút nào; nó có
th gây ra vi c gi m sút tính b o hành c c ng nh tính m r ng c c a ch ng trình.
Ng i ta cho r ng ch ng trình b phân ho ch thành các mô un có b n trùng h p ng u
nhiên còn t i h n ch ng trình không c phân ho ch chút nào.
Hình 4-2-25 a ra m t ví d v b n trùng h p ng u nhiên .

Hình 4-2-25 Ví d v b n trùng h p ng u nhiên


0
0 Ch c n ng 1
Ch c n ng 1 Trùng h p
400 Ch c n ng 2-1
500
0
Ch c n ng 2 Ch c n ng 2-2
500

Ch c n ng 2-3 0
1300 Ch c n ng 3 Trùng h p
1600 Ch c n ng 3-1 500
Ch c n ng 4
2000 Ch c n ng 3 - 2 0
Ch ng trình tr c khi Trùng h p
Ch c n ng 4
c phân ho ch 500
i module sau khi
‚ b n logic hoàn thành phân ho ch

Mô un có hai hay nhi u ch c n ng có liên quan, và vi c th c hi n m t trong nh ng ch c


ng này do mô un g i l a ra, v thu t ng c g i là b n logic. Ki u mô un này th c
hi n các ch c n ng qua m t giao di n. Hình 4-2-26 a ra ki u mô un này.
162 Ch ng 4 Thi t k ch ng trình

Hình 4-2-26 Mô un v i b n logic (ví d )


Tên module:
Các i c ch p nh n: 4 i
i 1: u i là 0: Xóa b ng
Mã ch c n ng u i là 1: Thêm các m c vào b ng
(1 s ) u i là 2: Xóa các m c t b ng
u i là 3: Tìm b ng
u i là 4: Sao chép b ng t i t p ki m tra
i 2: Các ch c n ng c a i là i nh p n u các ch c n ng 1,2 và 3 c s d ng
Tên Các ch c n ng c a i là i gi n u các ch c n ng 0 và 4 c s d ng
(4 s )
i 3: Các ch c n ng c a i là i nh p n u ch c n ng 1 c s d ng
Các ch c n ng c a i là i xu t n u ch c n ng 3 c s d ng
(8 s ) Các i khác là i gi
i 4: i ra ( tr ch c n ng 0)
l i 0: Không l i (k t thúc bình th ng)
(1 s ) Ch c n ng 1: 1 - b ng y ,2 các m c ch ng chéo lên nhau
Ch c n ng 2 và 3: 1 không có m c nào
Ch c n ng 4: 1 - l i vào / ra, 2 - k t thúc t p, 3 không có d li u
i mô un có b n logic vi c gi i quy t nó có chút ít r c r i h n b i nh ng lí do c nêu
sau ây:
- i c di n gi i theo cách khác, tu theo ch c n ng c g i.
- M c d u m t i nào ó b b qua b i ch c n ng nào ó, nó không th b b i c.
- Cho dù ch m t ch c n ng c dùng, c ng c n th a nh n các ch c n ng khác.
ng v y, n u m t ch c n ng c m t mô un dùng mà ph i b s a i, thì t t c các mô un
khác dùng mô un c bi t này c ng u ph i c s a i m c d u chúng là không liên quan
i ch c n ng c thay i.
Quan ni m t t c các nhi m v x lí c th c hi n theo b ng trên có th c t h p vào
trong m t mô un là úng và h p lí. a quan ni m này vào th c hành, u áng mong
mu n là dùng m t mô un có b n thông tin .
Hình 4-2-27 a ra m t ví d v b n logic .

Hình 4-2-27 b n logic (ví d )


ng ho t ng

Mã ch c n ng
i 1)

Ch c n ng 1 Ch c n ng 2 Ch c n ng 3 Ch c n ng 4 Ch c n ng 5
Xóa b ng Thêm m c Xóa m c Tìm b ng Sao chép t i
t ps a

(không i) i 3) i 2) i 3) i 1)
( ( ( ( (

Quay tr l i

ƒ b n th i gian
Mô un th c hi n nhi u ch c n ng tu n t c g i là mô un có b n th i gian. Tuy nhiên,
các ch c n ng này có m i quan h y u v i nhau. Mô un kh i u hay mô un k t thúc thu c
ki u mô un này.
4.2 Thi t k có c u trúc cho ch ng trình 163

Hình 4-2-28 a ra mô un có b n th i gian .

Hình 4-2-28 b n th i gian (ví d )

Module ban u
m t t p giao d ch
m t t p chính Các m i quan h
t u b ng hình ng m t
In tiêu báo cáo

Các ch c n ng trong ki u mô un này có m i quan h l ng l o l n nhau. Tuy nhiên, có m t


mô un th c hi n hai hay nhi u ch c n ng có m i quan h m nh. N u m t trong các ch c
ng này là kh i u m t b ng, nh c nêu trong Hình 4-2-28, m t trình thao tác cho
ng này nên t n t i m xa v i mô un kh i u trong ch ng trình. Trong m i quan h
a nó v i các mô un khác (các mô un không t ng minh), khó mà phân bi t c mô un
có b n th i gian v i các mô un khác.
Do ó, m t mô un có b n th i gian h u nh không óng góp gì m y cho tính c l p c a
ch ng trình.
„ b n th t c
Mô un có b n th t c là t ng t nh mô un có b n th i gian vì nó th c hi n nhi u
ch c n ng tu n t . T t c các quan h tu n t gi a các ch c n ng, tuy v y, l i c t ch c
bên trong th t c gi i quy t v n . Ki u mô un này c g i là mô un có b n th t c.
Hình 4-2-29 nêu ra m t ví d v mô un có b n th t c.

Hình 4-2-29 b n th t c

Module l i giao d ch
qua t i t p giao d ch ti p theo Các ch c n ng có liên quan
Có tr m ki m soát c a t p chính i ch c n ng khác theo
a ra thông p l i E13 c t ch ng trình

i quan h gi a các ch c n ng c a m t mô un có b n th t c có h i m nh h n m i quan


gi a các ch c n ng c a mô un có b n th i gian. N u chúng không c xác nh, thì
chúng khó mà có th th y rõ c. B i vì m c c a b n th t c vào quãng gi a trong c p
c 7 m c, nên ch ng có gì c bi t mà chúng ta ph i coi th ng, ho c là x ng áng nh c
i m t cách c bi t v ki u mô un này.
… b n trao i
Trong m t mô un có b n trao i, m i quan h tu n t gi a t t c các ch c n ng c di n
gi i nh m t th t c gi i quy t v n . u này là gi ng nh mô un có b n th t c. M t
mô un c thi t k ra v i c tr ng này, c ng thêm v i c tr ng là có m i quan h d li u
gi a t t c các ch c n ng, c g i là mô un có b n trao i. T c là, s khác bi t n i b t
gi a mô un có b n trao i và mô un có b n th t c là ch t t c các ch c n ng u
tham chi u t i cùng d li u.
u m t c t mô un nêu ra r ng m t giao tác không thích h p c hi n th trên thi t b
cu i và c sao chép lên t p ki m nh, ch ng h n, nh c nêu trong Hình 4-2-30, thì mô
un ch a ch c n ng hi n th trên thi t b cu i và mô un ch a ch c n ng sao chép lên t p
ki m nh là các mô un có b n trao i .
164 Ch ng 4 Thi t k ch ng trình

Hình 4-2-30 b n trao i (ví d )

Ch ng trình
Giao d ch
Module nh p
F

Module ki m tra giao d ch Hi n th


Hi n th giao d ch n ghi l i Thi t b
cu i
Sao chép t i t p s a n ghi l i
Sao chép

ps a
Các module khác
F

† b n ch c n ng
áng ra b n thông tin nên c nói t i ây, n u chúng ta nh tuân theo tr t t c a b n,
nh ng bây gi chúng ta mô t mô un có b n ch c n ng tr c. b n ch c n ng là m nh
nh t trong t t c các ki u b n mô un. M t mô un th c hi n m t ch c n ng duy nh t c
i là mô un có b n ch c n ng. M t mô un không th c phân lo i thành các ki u
n trùng h p, logic, th i gian, th t c và trao i có th c xem là mô un có b n ch c
ng. Cho dù m t mô un có th c hi n hai hay nhi u ch c n ng, nó là mô un có b n ch c
ng n u chúng có th c mô t nh m t ch c n ng.
Hình 4-2-31 a ra m t ví d v b n ch c n ng.

Hình 4-2-31 b n ch c n ng (ví d )

Module t ng h p giao d ch Module t ng h p giao d ch


t p giao d ch

c t p giao d ch
ng h p t p giao d ch

Thêm b n ghi t i b ng t ng h p

óng t p giao d ch

‡ b n thông tin
Ch ng trình c thi t k b ng vi c dùng ch các mô un có b n ch c n ng không nh t
thi t có m c c l p cao nh t. Ch ng h n, ba mô un có b n ch c n ng là mô un thêm m t
kho n m c vào trong b ng kí hi u, mô un xoá kho n m c trong b ng kí hi u và mô un
duy t b ng kí hi u. (Xem Hình 4-2-32.)
c d u ba mô un này là c l p cao v i các mô un khác trong ch ng trình, chúng l i có
quan h g n g i l n nhau vì các ch c n ng c a chúng u ph thu c vào c u trúc d li u c a
ng kí hi u. Do ó, có th d oán tr c r ng n u c n s a i mô un này, thì hai mô un kia
ng ph i c s a i.
4.2 Thi t k có c u trúc cho ch ng trình 165

Hình 4-2-32 Mô un có b n thông tin (ví d )


Tên module: B ng thông tin ho t ng c a qu n
m vào Xóa b ng thông tin c a qu n
Không có thông s
m vào Thêm các m c vào b ng thông tin c a qu n
Thông s 1: Tên qu n (4 s ) ( u vào)
Thông s 2: Dân s c a qu n (8 s ) ( u vào)
Thông s 3: C l i (1 s ) ( u ra)
m vào Xóa các m c t b ng thông tin c a qu n
Thông s 1: Tên qu n (4 s ) ( u vào)
Thông s 2: C l i (1 s ) ( u ra)
0: Không có l i, 1: m c không phù h p trong b ng

m vào Duy t b ng thông tin c a qu n


Thông s 1: Tên qu n (4 s ) ( u vào)
Thông s 2: Dân s c a qu n (8 s ) ( u vào)
Thông s 3: C l i (1 s ) ( u ra)
0: Không có l i, 1: m c không phù h p trong b ng
m vào Sao chép b ng thông tin t i t p s a
Thông s 1: C l i (1 s ) ( u ra)
0: Không có l i, 1: L i I/O, 2: EOF, 3: Không có d li u phù h p

Trong ví d trên, tính c l p c a ch ng trình có th c t ng lên b ng vi c thay th ba mô


un t ng h có b n ch c n ng, b ng m t mô un. u này c g i là b n thông tin.

c tr ng c a b n thông tin là:


- Có nhi u m vào.
- M i m vào có m t ch c n ng duy nh t.
- T t c các ch c n ng u có liên quan t i m t khái ni m, c u trúc d li u và tài nguyên
c ch a bên trong mô un .
Ch nh c a b n thông tin là ch a khái ni m, c u trúc d li u, tài nguyên v.v.. trong
t mô un và t t i vi c che d u thông tin.
Hình 4-2-33 nêu ra ví d v b n thông tin .

Hình 4-2-33 b n thông tin (ví d )


Module u hành b ng ký t
m vào
TH T C
Chèn các m c vào trong b ng ký t
QUAY L I
m vào ng
I VÀO
ký t
Xóa các m c t b ng ký t
QUAY L I
m vào I VÀO
Tìm b ng ký t
QUAY L I

t thúc
(2) N i mô un
b n mô un quan tâm t i m i quan h bên trong mô un. M t khác, n i mô un quan tâm t i
i quan h gi a các mô un. (Xem Hình 4-2-34.) M i quan h gi a các mô un nh h ng t i
tính c l p c a mô un. Ng i ta ã xét th y là m i quan h gi a các mô un càng l ng, thì
c c l p c a mô un càng tr nên cao h n.
166 Ch ng 4 Thi t k ch ng trình

Hình 4-2-34 N i mô un

nh Th p

i n i dung

i công c ng

i ngoài

i u khi n

id u

i d li u
cl p
u
Cao

• N i n i dung (content coupling)


u m t mô un tr c ti p tham chi u t i n i dung c a mô un khác, hay nh y tr c ti p sang
mô un khác, thì m i quan h gi a hai mô un này c g i là n i n i dung. (Xem Hình
4-2-35.) N u mô un này ã b s a i, thì c n s a c mô un kia. Các mô un có n i n i
dung có th c t o ra b ng vi c dùng h p ng . Tuy nhiên, trong ph n l n các ngôn ng
chúng không th c t o ra.

Hình 4-2-35 N i n i dung (ví d )


Module A Trong tr ng h p ngôn ng b c cao
NH Y T I xxx
Module A
G IB
Tham chi u tr c ti p b i
a ch tuy t i ho c Trong tr ng h p các
d ch chuy n a ch module t ng ng b i
Module B ( a ch xxx) Module B ng i so n th o liên k t

Ch c n ng b Ch c n ng b

TR L I

‚ N i công c ng (common coupling)


i quan h gi a các mô un tham chi u t i c u trúc d li u toàn c c (bi n toàn c c) cg i
là n i công c ng. Ch ng h n, có m t khái ni m c g i là kh i common trong FORTRAN.
Các bi n c khai báo b ng câu l nh COMMON n i vùng b nh mà ch ng trình dùng.
(Xem Hình 4-2-36.) N i công c ng l y theo tên c a nó t s ki n là vùng b nh c làm
thành ch chung cho phép các mô un dùng chung.

Hình 4-2-36 N i công c ng (ví d 1)


Các kh i chung
Khai Khai
Ch ng trình chính báo TBL T báo Ch ng trình con
COMMON TBL (3) ,A,B,C COMMON T(3) ,L,M,N
A=314 .
CALL SUBRTN M=10
A L
314 .
B 10 M
C N

Các vùng chung


4.2 Thi t k có c u trúc cho ch ng trình 167

Các v n c a n i công c ng c tóm t t nh sau:


- D li u toàn c c làm h h i cho tính d c và d hi u c a ch ng trình.
- C u trúc d li u toàn c c có th gây cho các mô un có v liên quan l i tr thành ph
thu c l n nhau.
- Các mô un tham chi u t i d li u toàn c c thì khó dùng cho các ch nh khác. (Trong
khi th c hi n x lí song song hay x lí a nhi m, tính nh t quán c a vùng d li u công
ng ph i c tính t i.)
- B i vì các mô un c n i qua các tên bi n, nên khó dùng l i chúng cho ch ng trình
i.
- N u d li u toàn c c là d li u ki u có c u trúc, thì th m chí l i còn khó s d ng l i
chúng h n. (T o ra c u trúc câm)
- u c u trúc d li u toàn c c c dùng, thì nhi u d li u h n m c c n thi t s b ph i
y ra cho các mô un khác. (Xem Hình 4-2-37.)

Hình 4-2-37 N i công c ng (ví d 2)

Module A
X
Có th truy c p th m chí Y
u không c n thi t
Gi

Module A
Có th truy c p th m chí X X
u không c n thi t Gi Y
Z Z

Module A
Có th truy c p th m chí Gi
u không c n thi t Y
Z

- Vi c truy nh p d li u bên trong ch ng trình không th c qu n lí úng.


u m t ph n trong m t c u trúc d li u toàn c c b thay i, thì m i mô un tham chi u t i
ph n b thay i ó c a d li u ph i c d ch l i.
ƒ N i ngoài (extern coupling)
u có m t nhóm các mô un ho c không n i n i dung ho c không n i công c ng và tham
chi u t i c u trúc d li u toàn c c, thì m i quan h gi a các mô un nh v y c g i là n i
ngoài . M c d u vi c n i ngoài quan tâm t i m t t p các d li u toàn c c khác nhau v nh
ng và ý ngh a, vi c n i ngoài quan tâm t i t p d li u có cùng m t ki u.
li u cùng ki u ngh a là:
- Ki u d li u này không ch a ki u d li u khác; ch ng h n d li u s , d li u kí t , v.v...
- B ng hay danh sách ch có m t kho n m c
- M ng có các ph n t v i cùng ngh a
Trong n l c c a chúng ta tìm ra gi i pháp cho các v n liên k t v i vi c n i công c ng,
vi c n i ngoài cho phép chúng ta c i thi n các u ki n liên quan t i ch nh ng v n sau:
- S ph thu c không mong mu n gi a các mô un
- T o ra c u trúc câm
- Quá ph i bày d li u
Cho dù chúng ta có th th c hi n nh ng c i ti n nào ó v i các v n trên, các u ki n v n
còn không tho mãn.
168 Ch ng 4 Thi t k ch ng trình

Hình 4-2-38 N i ngoài

Module A

Khai báo ngoài → X

Module B X

Khai báo ngoài → X

„N i u khi n (control coupling)


u có hai mô un không n i n i dung c ng ch ng n i công c ng, ch ng n i ngoài và n u mô
un này truy n các ph n t u khi n cho mô un kia, thì m i quan h gi a hai mô un này
c g i là n i u khi n. Khi mô un này truy n m t mã hàm hay khoá u khi n cho mô
un kia có b n logic, thì m i quan h gi a chúng là n i u khi n. B i vì m t mô un
truy n d li u u khi n ph i bi t c u trúc logic c a mô un kia, nên m c c l p là không
cao l m. M i quan h n i u khi n b h n ch vào tr ng h p mô un này xem nh n i g i
li u, truy n các i nh ph ng ti n u khi n các ch c n ng và logic c a mô un kia
xem nh n i nh n. N u mô un này truy n i mà không có m c ích nào c ch rõ cho mô
un kia thì m i quan h gi a hai mô un này không th c g i là n i u khi n, cho dù mô
un kia xem nh n i nh n dùng i ó (d li u u khi n).

Hình 4-2-39 N i u khi n (ví d )

Module A Module SUB


T o ch c n ng 1 ã th c hi n
=1 SW =2
X=1
CALL SUB (X , SW) Ch c n ng 1 Ch c n ng 2

ây là ch c n ng 1?

… N i d u (stemp coupling)
u có hai mô un không ph i là n i n i dung, c ng không n i công c ng, không n i ngoài
không n i u khi n và n u chúng tham chi u t i cùng c u trúc d li u không toàn c c, thì
i quan h gi a hai mô un này c g i là n i d u. M c d u n i d u là t ng t v i n i
công c ng, s khác bi t là ch các mô un c a n i d u tham chi u t i c u trúc d li u không
toàn c c, không t i c u trúc d li u toàn c c.
Mô un " ánh giá" c nêu trong Hình 4-2-40 c dùng c p nh t "thu nh p hàng n m,"
ng vi c dùng m t b n ghi nhân viên c nh p kh u vào mô un A nh m t i, c ng nh
li u trên "v trí công tác," "n ng su t lao ng" và "s n m công tác" c a m t nhân viên.
4.2 Thi t k có c u trúc cho ch ng trình 169

Hình 4-2-40 N i d u (ví d )

Module A Module A ánh giá


I ánh giá ng i ch (B n ghi nhân viên)
C (B n ghi nhân viên) Thu nh p hàng n m cc p
nh t d a trên s n m công tác, v
trí công tác và
Tên Tên
ng su t lao
Nhân viên Nhân viên
a ch
ng c a nhân a ch
viên (tên)

B n ghi nhân viên

B n ghi nhân viên


Phòng ban Phòng ban
trí công tác trí công tác
Thu nh p Thu nh p
hàng n m hàng n m
c
ng su t ng su t
lao ng lao ng
Quá trình Quá trình
ào t o ào t o
m công tác QUAY L I m công tác

Ng i ch

m t mô un th c hi n ch c n ng " ánh giá", ít nh t ph i c n t i b n kho n m c d li u.


i vì toàn th m t b n ghi nhân viên v n hành nh m t i, nên các kho n m c không c n t i
khác bên c nh b n kho n m c này c ng c truy n. Do ó, n u có b t kì thay i nào c
th c hi n trong nh ng kho n m c khác h n b n kho n m c này, thì mô un ch u trách nhi m
th c hi n ch c n ng " ánh giá" ph i c d ch l i. H n n a, khi các kho n m c không c n
i có th c tham chi u t i, thì có kh n ng là chúng b c p nh t l m. M i quan h gi a mô
un " ánh giá" và t t c các mô un khác tham chi u t i nh ng kho n m c c bi t trong b n
ghi nhân viên, c g i là n i d u.
i d u làm cho chúng ta có kh n ng gi i quy t các v n sau c a n i công c ng:
- Thi u tính d c và d hi u
- Không phù h p c dùng cho các ch ích a d ng
- Ph thu c tên
c d u có th làm gi m t i vi c truy nh p d li u u khi n, nó không th xoá hoàn toàn t i
vi c này. ng th i nó còn t n t i nh ng v n nh :
- S ph thu c không mong mu n gi a các mô un
- T o ra c u trúc câm
- Quá ph i bày d li u
† N i d li u
c i ti n các u ki n liên quan t i mô un th m nh " ánh giá" v n , mô un ch u trách
nhi m " ánh giá" ph i c thi t k nh m t mô un không bi t gì v b n ghi nhân viên. Mô
un này c n ba kho n m c, "v trí công tác," "n ng su t lao ng" và "s n m công tác." Nó
cho ra m t kho n m c "thu nh p hàng n m" d a trên d li u c ch a trong ba kho n m c
này. N u chúng ta có th nh ngh a b n kho n m c này nh các i, chúng ta có th t o ra
t mô un không bi t gì v b n ghi nhân viên.

I ánh giá (b n ghi nhân viên)



I ánh giá (v trí công tác, n ng su t lao ng, s n m công tác, thu nh p hàng n m)
170 Ch ng 4 Thi t k ch ng trình

Gi nh r ng mô un trên m i c t o ra và các yêu c u sau c áp ng, m i quan h gi a


các mô un này c g i là n i d li u:
- Tr ng thái c a vi c n i mô un không ph i là n i n i dung, công c ng, ngoài, u khi n
hay d u..
- Hai mô un có quan h tr c ti p v i nhau.
- T t c các giao di n gi a các mô un u có cùng ki u d li u.
i d li u là m c n i y u nh t. (Xem Hình 4-2-41.)

Hình 4-2-41 N i d li u
Module A Module A
I ánh giá ng i ch (v trí công tác, n ng su t ánh giá ( v trí công tác, n ng su t lao ng,
C lao ng, s n m công tác, thu nh p hàng n m n m công tác, thu nh p hàng n m)
Thu nh p hàng n m c
p nh t d a trên tên nhân viên
Tên
n m công tác ,
Nhân viên
a ch trí công tác và
ng su t lao ng
B n ghi nhân viên

Phòng ban
trí công tác
Thu nh p
hàng n m trí công tác trí công tác
c

ng su t ng su t lao ng ng su t lao ng
lao ng n m công tác n m công tác
Quá trình
ào t o Thu nh p hàng n m Thu nh p hàng n m
m công tác QUAY L I

Ng i ch

(3) Tiêu chí cho kích c phân ho ch


Kích c thích h p cho mô un nói chung là 40 t i 50 câu l nh d i d ng s các l nh th c hi n
trong ngôn ng c p cao. N u kích c nh h n s này, thì ng i c ch ng trình th ng nh y t
mô un này sang mô un kia và lu ng t duy c a ng i ó b ng t l i.
u kích c l n h n nhi u, t c là, n u nó trên 100 câu l nh, thì các giao di n c xác nh rõ
ràng s không có s n và có quá nhi u th ph i c xét t i.
Tiêu chí cho kích c phân ho ch là nh sau:
- V i ch ng trình c nh , có c u trúc t t (s các l nh th c hi n c là 200 t i 300 câu
nh): Trung bình là 30 câu l nh
- V i ch ng trình c v a (s các l nh th c hi n c là 2,000 t i 3,000): Trung bình 40 t i
50 câu l nh
- V i ch ng trình c l n (s các l nh th c hi n c là 10,000 hay h n): Trung bình 100 t i
150 câu l nh
- V i mô un có b n thông tin ( ây là tr ng h p ngo i l ): Trung bình 40 t i 50 câu l nh
cho m t m vào
Nh ng con s trên là trung bình và nên c dùng nh h ng d n n thu n. N u các mô un
c phân ho ch hay c t h p mà quá tuân theo các con s này, thì m c c l p mô un
gi m i. Ph i th t chú tr ng vào v n này.

(4) T o ra và dùng l i các b ph n


xem xét mô un nh các b ph n và dùng l i chúng, chúng ta nên ý th c nhi u h n t i tính
c l p c a mô un. M t mô un v i các ch c n ng c xác nh m h , mô un này ph
thu c quá nhi u vào mô un kia, mô un này nh h ng quá nhi u t i mô un kia hay mô un
4.2 Thi t k có c u trúc cho ch ng trình 171

ph thu c vào c u trúc d li u c bi t thì không th c dùng l i.


c tiêu c a thi t k có c u trúc là t o ra ch các mô un có b n ch c n ng hay thông tin.
u ch nh ng mô un nh v y m i có th c t o ra, thì tính c l p mô un có th c m
o, t l l i có th c gi m i, tính m r ng có th c nâng cao, và xác su t dùng l i có th
c t ng lên.

4.2.4 Phân ho ch ch ng trình


(1) Nh ng m quan tr ng c n xem xét liên quan t i s các phân ho ch
và chi u sâu c p b c
• Chi u sâu c p b c
u c p b c là quá sâu, thì c u trúc logic tr nên khó hi u. M c d u kích c c a ch ng trình
là nhân t c n xem xét, chi u sâu c p b c ph i c gi i h n vào m i m c hay ít h n.
Hình 4-2-42 Chi u sâu c p b c
0

1 1 1

2 2 2 2 2

3 3 3 3

4 4

M c phân c p
5 5

6 6

7 7 7

8 8 8

9 9 9

10 10
‚ Tr i c u trúc c p b c
u c p b c c a các mô un tr i ra quá nhi u, thì lu ng ch ng trình tr thành khó hi u. S
các mô un c p d i mà m t mô un nào ó có th tr c ti p g i n nên c gi i h n quãng
i hay ít h n.
172 Ch ng 4 Thi t k ch ng trình

Hình 4-2-43 Tr i c u trúc c p b c

1 2 3 4 5 6 7 8 9 10

Tr i c u trúc phân b c
4.3 T o ra c t mô un và c t ki m th 173

4.3 o ra c t mô un và c
ki m th

4.3.1 o ra c t mô un
Sau khi ch ng trình c phân ho ch thành các mô un, các chi ti t v x lí c t ng mô un
th c hi n s c xác nh (thi t k logic mô un).
Công vi c vi t mã ph i c th c hi n có chú ý t i các chi ti t t m sao cho không b sót ch c
ng.

(1) Nh ng m quan tr ng c n xét khi t o ra các c t mô un


- T o ra c u trúc n gi n, d hi u
- Tính t i vi c d g l i và b o trì
- Tôn tr ng chu n t o ra ch ng trình (chu n vi t mã)

(2) Th t c t o ra các c t mô un
Các c t mô un c t o ra theo th t c nêu sau ây.
• Phân tích c u trúc d li u
i vì c u trúc d li u có m i quan h ch t ch v i c u trúc logic c a mô un, nên c u trúc c a
li u vào và ra ph i c phân tích, và m i quan h gi a d li u vào và ra c ng nh các
kho n m c c sinh ra qua vi c x lí ph i c nh n di n và li t kê.

Hình 4-3-1 a vào, x lí và a ra


< Nh p > < X lý > < a ra > < Nh p > < X lý > < a ra >

Danh sách Gi i tính


Nh p d li u n ph m li u
0
nam
n ghi
(Nam: 0, N : 1)
Không Có
Nam?

Không x lý lý d li u
u có nhi u d li u a vào thì
th ng s có nhi u d li u c a ra
Tùy thu c vào u ki n mà d li u ra thay i
d ng c u trúc l p x lý
d ng c u trúc l p x lý

u có nhi u kho n m c d li u, thì vi c x lí d li u c th c hi n b ng vi c dùng m t c u


trúc l p l i. N u d li u a ra thay i, tu theo hoàn c nh, vi c x lí d li u c th c hi n
ng vi c dùng c u trúc l a ch n.
‚ Phân t ng c u trúc d li u
i vi c ghi nh ý ngh a c a t ng kho n m c d li u, d li u c t ch c và t h p l i, và
174 Ch ng 4 Thi t k ch ng trình

u trúc d li u c t o ra. M i quan h gi a d li u vào và ra c làm sáng t , và d li u


vào c liên k t v i d li u ra.
4.3 T o ra c t mô un và c t ki m th 175

ƒ Xây d ng logic (thu t toán)


Vi c chuy n i d li u vào thành d li u ra là nhi m v c n th c hi n. Các u ki n a ra
c xác nh khi xem xét t i c u trúc c a d li u ra. Các u ki n a ra ã xác nh c
dùng làm rõ các chi ti t và xây d ng thu t toán.
Logic này c vi t thành tài li u b ng vi c dùng gi mã.

Hình 4-3-2 Gi mã
c b n ghi u tiên
DO WHILE trong b n ghi
IF l p = trong kho THEN
X lý trong kho
ELSE
IF l p = ngoài kho THEN
X lý ngoài kho
ELSE
X lý l i
ENDIF
ENDIF
c b n ghi
ENDDO

(3) n và câu l nh
Mô un bao g m các n nh t quán v m t logic. Kích c c a n là t 10 t i 50 câu l nh
(câu, l nh).
n trong m t mô un c phân lo i thành hai ki u c nêu d i ây:
- n u khi n ( n m c cao) u khi n t t c các n
- n gi i quy t/x lí d li u ( n m c th p) th c hi n nhi m v x lí d li u

Hình 4-3-3 n u khi n và n gi i quy t/x lí d li u


t u
<Các n ki m soát>
nh ng

nh ng nh ng t thúc
<Các n x lý / truy n d li u>
ban u chính nh ng

u các u ki n x lí và chi ti t x lí là nh nhau, thì chúng nên c t h p vào m t n.

4.3.2 o ra c t ki m th
Ki m th n v là ki m th c ti n hành trong giai n thi t k ch ng trình. Ch nh c a
phép ki m th này là ki m ch ng c u trúc logic c a mô un ã vi t mã và giao di n gi a các
mô un.

(1) Các ki u ki m th
Ki m th nv u tiên c ti n hành ki m ch ng r ng c u trúc logic c a các mô un
c t o ra theo úng c t mô un. K thu t c dùng trong ki m th này là ki m th h p
tr ng lo i b i các l i và phòng ng a chúng không cho truy n qua các ki m th k ti p.
Ki m th tích h p mô un ti p ó c ti n hành ki m tra giao di n gi a các mô un. c
bi t, các mô un c n i l i xác nh n r ng các tham bi n vào và ra c xác nh trong c
176 Ch ng 4 Thi t k ch ng trình

mô un, có th c truy n úng. K thu t c dùng trong ki m th này là ki m th h p en.


Vi c ki m th tính n i mô un c chia thành ki m th trên xu ng, c ti n hành b ng vi c
i liên ti p các mô un c p cao v i mô un c p th p, và ki m th d i lên, c ti n hành b ng
vi c n i liên ti p các mô un c p th p v i mô un c p cao. M i ph ng pháp u có u m và
nh c m. Nên ch n m t trong các ph ng pháp này khi xét t i kích c c a ch ng trình và
tài nguyên s n có.

(2) Nh ng m quan tr ng c n xét khi thi t k tr ng h p ki m th


Nói chung, tr ng h p ki m th không ch có ngh a là d li u ki m th mà còn là k ho ch
ki m th và các tài li u khác. Tr c khi ti n hành các ki m th t i t ng m c, d li u ki m th
nên c chu n b có xét t i các k thu t ki m th c ch p thu n. Ngoài d li u thông th ng,
li u sai c ng ph i c chu n b . Các k t qu a ra có th d ki n tr c d a trên d li u
ki m th c ng ph i c chu n b . N u phép ki m th c ti n hành có chú ý t i các chi ti t,
thì ch t l ng c a ch ng trình có th c c i ti n, nh ng s c n t i nhi u công vi c. B i vì
ng su t là t l ngh ch v i m c bao ph , nên c n thi t k d li u ki m th v i s chú tâm nào
ó gi cho chúng c cân b ng.
4.4 T o ra tài li u thi t k ch ng trình 177

4.4 o ra tài li u thi t k ch ng


trình
Tài li u thi t k ch ng trình c t o ra d a trên nhi u d li u và tài li u ã c chu n b
trong giai n thi t k ch ng trình. Trong giai n thi t k ch ng trình, ch ng trình mà ã
c xây d ng b ng thi t k trong c phân ho ch thành các mô un, và c u trúc logic c a mô
un c xác nh. Do ó khi làm vi c thi t k ch ng trình, không c phân ho ch các mô
un n a hay không c thi t k c u trúc logic c a chúng theo cách có th làm nh h ng t i
các ch c n ng c a ch ng trình. Các ch c n ng này ã c thi t k trong giai n thi t k
trong áp ng nh ng yêu c u c bi t.
Trong giai n l p trình ti p theo, công vi c vi t mã c th c hi n theo úng tài li u thi t k
ch ng trình. Có tr ng h p ng i làm h p ng c t làm công vi c thi t k ch ng trình
và các ti n trình k ti p. Theo h ng ó, tài li u thi t k ch ng trình là r t quan tr ng, nó nh
ng r t l n t i thi t k ch ng trình và các ti n trình ti p theo. Do ó, vi c ki m m thi t k
ph i c ti n hành m t cách th u áo, d a trên tài li u thi t k ch ng trình rút ra và s a
i khi m khuy t.
Hình 4-4-1 a ra các kho n m c có trong tài li u thi t k ch ng trình.

Hình 4-4-1 Tài li u thi t k ch ng trình

Mô t kho n m c d li u
c t ki m th
Chi ti t x lí
Bi u c u trúc ch. trình
ng quan ch ng trình
Chính sách thi t k h
Tài li u thi th
t k ngch ng
trình

4.4.1 o ra tài li u thi t k ch ng trình và n i dung


(1) Chính sách thi t k ch ng trình
Ch ng trình c thi t k d a trên chính sách thi t k ch ng trình sau ây:
• Chính sách thi t k
Tr c khi b t u thi t k ch ng trình, ph i mô t k thu t thi t k c ch p thu n. Th ng
thi t k có c u trúc hay c dùng. N u ch n k thu t thi t k khác, thì ph i mô t lí do cho
vi c ch p thu n này.
• K thu t làm tài li u
HIPO, DFD, l u , s b t, v.v.., c tham chi u t i nh k thu t làm tài li u. Ph i mô t
các k thu t c ch p thu n và cách chúng c ch p thu n.
178 Ch ng 4 Thi t k ch ng trình

• Nhi m v thi t k
Mô t nhi m v thi t k .
• Các v n khác
Ph i mô t các b n ghi thay i, chi ti t các cu c ki m m thi t k và các v n khác c n
c xác nh tr c khi b t u thi t k ch ng trình.

(2) B n t ng quan ch ng trình


Bi u nêu ra c u trúc ch ng trình (k c ki u d li u vào và ra) c n c ính v i b n t ng
quan ch ng trình. (Xem Hình 4-4-2.)

Hình 4-4-2 B n t ng quan ch ng trình

ng quan ch ng trình Ngày / / ng i kh i u c ch p nh n

Tên h th ng H th ng thanh toán l ng H con X lý hàng tháng


Tên ch ng trình X lý hàng tháng ID ch ng trình GET20030

Ngôn ng Chính ho c ph Các dòng mã c ánh giá

Hàm

li u làm vi c ã s p x p (t p d li u hàng tháng) c ti p t c ki m tra t p l ng chính

Sau khi tr toàn b , tính t ng s l y i, cân is ã tr

o t p tr l ng chi ti t

ng k t chi và thu
p d li u p d li u
tháng tháng

GET 20030
lý theo tháng

p d li u
tháng

i dung tài li u thi t k


q Thay i b n ghi q Gi i thích thêm v x lý IPO
q Gi i thích thêm v ch c n ng và q Danh sách thông p
cách s d ng tài li u thi t k q T ng quan ch ng trình
q Gi i thích v các thông s vào ra q
q Gi n c u trúc ch ng trình
q Mô t quy trình IPO

(3) Bi u c u hình ch ng trình


Bi u c u hình ch ng trình và danh sách các giao di n gi a các mô un c n c ính kèm.
(Xem Hình 4-2-3.) Bi u các n i dung c t o ra b ng vi c dùng k thu t HIPO có th c
dùng nh bi u c u hình mô un.
4.4 T o ra tài li u thi t k ch ng trình 179

(4) Chi ti t x lí
Tài li u mô t chi ti t x lí c n c t ng mô un th c hi n c ính kèm v i các chi ti t x lí.
Bi u IPO, v.v.. c ng có ích.

(5) c t ki m th
n k ho ch ki m th mô t nhân viên ki m th , kho n m c ki m th và ph ng pháp ki m
ch ng c n c chu n b ti n hành các ki m th ch ng trình có hi u qu .

(6) Mô t các kho n m c d li u


Màn hình c dùng ch y ch ng trình và d li u vào/ra c ính vào mô t các kho n
c d li u. C ng có th dùng màn hình và d li u vào/ra do thi t k ngoài và trong cung c p.
Nh ng tài li u sau ây c ính kèm v i mô t v các kho n m c d li u:
- Các m u a vào và các báo cáo a ra
- Tài li u thi t k màn hình
- Tài li u thi t k t p
- c t b ng
- Các tài li u khác

4.4.2 Nh ng m c n l u ý khi t o ra tài li u thi t k


ch ng trình
Nh ng m sau ây nên c xét t i khi t o ra tài li u thi t k ch ng trình:
<Nh ng m quan tr ng c n xem xét>
- Các ch c n ng c mô t trong tài li u thi t k trong ph i c mô t trong tài li u thi t k
ch ng trình mà không b sót.
- T t c các d li u vào và ra ph i c mô t rõ ràng.
- T t c các qui t c gi i quy t l i ph i c mô t rõ ràng.
- Tiêu chí cho vi c chu n b tài li u ph i c tôn tr ng và c n tránh nh ng các bi u th c l c
lõng.

4.4.3 p ki m m thi t k
p ki m m thi t k c th c hi n khi công vi c thi t k ch ng trình c hoàn t t, nh
trong tr ng h p c a giai n thi t k trong. (Tham kh o chi ti t Ch ng 3.)

(1) Tài li u c n c ki m m
Tài li u c n c ki m m trong giai n thi t k ch ng trình là:
- Tài li u thi t k ch ng trình
- Bi u c u trúc ch ng trình
- c t ch ng trình
- c t mô un
- Tài li u thi t k tr ng h p ki m th
- Các tài li u khác
180 Ch ng 4 Thi t k ch ng trình

(2) Nhân s ki m m
Các nhân s nêu d i ây gi vai trò trung tâm trong vi c th c hi n bu i ki m m thi t k :
- Nh ng ng i thi t k có cùng m c k n ng k thu t nh ng i tr c ti p ch u trách nhi m
thi t k ch ng trình
- Các nhân s có liên quan t i ti n trình thi t k
p trên c a ng i thi t k và c a các nhân s này không c n tham d vào cu c h p ki m m
thi t k .
Bài t p 181

Bài t p

Q1 Nh n xét nào là không thích h p liên quan t i vi c phân ho ch mô un trong giai


n thi t k ch ng trình?
a. S các mô un c p d i mà m t mô un có th g i t i ph i c gi i h n.
b. Mô un ph i c thi t k sao cho nó ch a m t s úng các b c.
c. Trong thi t k c u trúc c p b c mô un này g i t i mô un kia, ph i ý t i vi c gi chi u
sâu trong gi i h n xác nh.
d. Giao di n gi a các mô un ph i c làm n gi n hoá.
e. Nên a vào các chú thích úng làm cho d hi u logic bên trong mô un.

Q2 Khi m t ch ng trình c d li u, l a ra ch d li u s và cho hi n ra giá tr trung


bình, c l y ra làm phân ho ch STS, thì các ch c n ng c s p x p vào các lo i
ch a, ngu n và bi n i. Hãy l a ra t h p úng t nh ng t h p c nêu
i ây.
Ch c n ng
Vào d li u as Tính giá tr trung bình Bi u th k t qu
a ch a B ch a Bi n i Bi n i
b ch a Ngu n Bi n i Bi n i
c Ngu n Ngu n Bi n i ch a
d Ngu n Bi n i Bi n i ch a
e Bi n i a ra a ra Ngu n

Q3 Có m t ch ng trình ch p nh n c p nh t tr ti n c b n, c p nh t ti n công
nh t và c p nh t kh u tr và c p nh t t p tính l ng. Ch ng trình này c
phân ho ch thành các mô un, nh c nêu d i ây. Ph ng pháp phân ho ch
mô un nào c dùng?
C p nh t t p

p nh t tr ti n p nh t công p nh t kh u
b n nh t tr

a. Ph ng pháp phân ho ch STS b. Ph ng pháp Jackson


c. Ph ng pháp phân ho ch giao tác d. Ph ng pháp Warnier

Q4 B n nên dùng ph ng pháp nào chuy n bi u lu ng d li u c phân tích có


u trúc t o ra thành s c u trúc c dùng cho thi t k có c u trúc?
a. Ph ng pháp KJ b. Ph ng pháp OMT c. Ph ng pháp Jackson
d. Ph ng pháp phân ho ch giao tác
182 Ch ng 4 Thi t k ch ng trình

Q5 K thu t nào sau ây là k thu t phân ho ch mô un h ng c u trúc?


a. Ph ng pháp phân ho ch ch c n ng chung
b. Ph ng pháp phân ho ch ngu n/bi n i/b ch a (ph ng pháp phân ho ch STS)
c. Ph ng pháp Jackson
d. Ph ng pháp phân ho ch giao tác (Ph ng pháp phân ho ch TR )

Q6 L u ý nào c nêu d i ây mô t sát nh t cho ph ng pháp Warnier c dùng


t o ra thi t k có c u trúc c a ch ng trình?
a. Bi u c u trúc c a d li u vào và ra c v v i chú ý chính d n vào c u trúc d li u.
Bi u c u trúc ch ng trình c chu n b d a trên bi u c u trúc d li u vào/ra.
b. Các ch c n ng trong lu ng d li u c g p nhóm vào trong các lo i ngu n, bi n i và
ch a v i chú ý chính c d n vào lu ng d li u c n gi i quy t.
c. Ph n m m c coi nh m t tuy n t p các d li u và qui trình. Tính c l p mô un c
ng lên b ng cách bao b c nh ng d li u và qui trình này.
d. V i chú ý chính c d n vào c u trúc u khi n c a ch ng trình, logic ch ng trình
c thi t k d a trên lu ng u khi n, bi u l m i quan h g i nhau.

Q7 Tính n i mô un là cách o s c l p mô un. Tính n i mô un càng y u, thì m c


c l p mô un càng tr nên cao h n. Ki u n i mô un nào c nêu d i ây
có tính n i m nh nh t?
a. N i công c ng b. N i d u c. N i d li u d. N i d i dung

Q8 Khi ch ng trình sau c th c hi n, b n thu c k t qu nào trong s c nêu


i ây? x ( i hình th c) là l i g i theo giá tr còn y là l i g i theo tham chi u.
Main program Subprogram sub (x, y)
a=3 ; x=x+y ;
b=2 ; y=x+y ;
sub (a, b) ; return ;
a. a=3, b=2 b. a=3, b=7 c. a=5, b=2 d. a=5, b=7
5 Th c hi n ch ng
trình

c ích c a ch ng
Trong giai n th c hi n ch ng trình, h th ng thông
tin c thi t k theo các th t c ã c mô t , s c
xây d ng nên.
Ch ng này mô t nh ng m quan tr ng c n chú ý khi
làm vi c l p trình (vi t mã), các ph ng pháp ki m th
và các công c phát tri n khác nhau mà chúng ta có th
dùng.

• Hi u mô th c l p trình và phong cách l p trình


‚ Hi u các ki u khác nhau v ki m th , ph ng pháp
ki m th và th t c ki m th
ƒ Hi u các ki u và c tr ng c a các công c phát tri n
khác nhau mà b n có th dùng cho vi c l p trình và
ki m th
184 Ch ng 5 Th c hi n ch ng trình

Gi i thi u
Cài t ch ng trình là cho m t d ng c th c a ch ng trình c thi t k v m t logic. c
bi t nó bao g m ti n trình t o ra ch ng trình d a trên n i dung c a thi t k ch ng trình, và
ti n trình th c hi n nh ng phép ki m th a d ng tr c khi cho ch y ch ng trình nh m t h
th ng.

5.1 p trình
p trình là mô t (vi t mã) trong m t ngôn ng l p trình cho m t th t c (thu t toán) c xác
nh b i thi t k ch ng trình.
i ngôn ng l p trình u gán ngh a riêng c a nó cho các l nh và cú pháp th ng nh t chúng,
và do v y mô t cho các thu t toán theo nh ng cách khác nhau. Do ó, c n có m t chu n chung
(mô th c l p trình) xét t i nh ng c tr ng c a t ng ngôn ng l p trình.
i vì công vi c l p trình c th c hi n b ng nhóm ng i, nên phong cách l p trình rõ ràng là
n thi t m b o s nh t quán bên trong h th ng.

5.1.1 Mô th c l p trình
i ngôn ng l p trình c dùng u có mô th c riêng c a nó. Trong khi làm vi c l p trình,
n hi u t ng mô th c l p trình riêng.
i vì mô th c ph thu c vào t ng ngôn ng l p trình, nên nó ph i c nghiên c u cho t ng
ngôn ng m t. Chúng ta phân l p nó m t cách i th thành b n ki u t ng ng v i vi c phân
p v ngôn ng l p trình:
- Mô th cl p trình th t c
- Mô th cl p trình logic
- Mô th cl p trình hàm
- Mô th cl p trình h ng it ng

(1) Mô th c l p trình th t c
p trình th t c là mô th c c a các ngôn ng l p trình th t c mô t cho gi i pháp v n d i
ng m t chu i các th t c. C và COBOL là i bi u cho các ngôn ng l p trình th t c.
t c tr ng c a ngôn ng l p trình này là l p trình có c u trúc. Khái ni m v l p trình có c u
trúc d nh di n t m i thu t toán b ng vi c dùng ba c u trúc u khi n c s (tu n t , tuy n
ch n và l p). B ng vi c dùng l c l p trình này, chúng ta có th t i thi u vi c dùng câu l nh
go to th ng gây ra s suy gi m trong công tác b o trì.
5.1 L p trình 185

(2) Mô th c l p trình logic


p trình logic là mô th c c a ngôn ng l p trình logic mô t cho gi i pháp v n d i d ng
các khai báo logic. Prolog là i di n cho ngôn ng l p trình logic.
c tr ng c a ngôn ng này là qui t c gi i d a trên tam n lu n. Trong tr ng h p c a Prolog,
ba cú pháp c dùng: qui t c, s ki n và truy v n. Vi c sánh m u (th ng nh t), vi c tìm t
ng (l n ng c) v.v.. c dùng làm các c u trúc c s .

(3) Mô th c l p trình hàm


p trình hàm là mô th c c a ngôn ng l p trình hàm mô t cho gi i pháp v n d i d ng các
khai báo hàm. LISP là i di n cho ngôn ng l p trình hàm.
c tr ng c a ngôn ng này là vi c dùng m t c u trúc danh sách. B i vì các i t ng (d li u)
c x lí u gi i quy t v i c u trúc danh sách, nên nhi u hàm c cung c p x lí danh
sách. mô t và nh ngh a các hàm, m t h th ng ngôn ng tr u t ng cao g i là tính toán
lambda c s d ng.

(4) Mô th c l p trình h ng it ng
p trình h ng i t ng là mô th c c a ngôn ng l p trình h ng i t ng dùng i t ng
có d li u và th t c (hành vi) c bao b c l i. Smalltalk và Java là các ngôn ng l p trình
ng i t ng i di n.
Các c tr ng c a ngôn ng l p trình này là:
- Ch c n ng bao b c
Ch c n ng này gi i quy t v i d li u (thu c tính) và th t c ( ng pháp) nh m t th c th .
- Ch c n ng xây d ng th nghi m
Ch c n ng làm th nghi m cho m t l p tr u t ng
- Ch c n ng k th a
Ch c n ng k th a các tính ch t c a m t siêu l p cho l p con
- Ch c n ng truy n thông báo
Ch c n ng truy n thông báo gi a các i t ng.

5.1.2 Phong cách l p trình


Phong cách l p trình là c s d a vào ó ch ng trình c t o ra. Khi h th ng tr nên l n
qui mô, nhi u ng i phát tri n tham gia vào công vi c l p trình và do ó c n có m t phong
cách l p trình rõ ràng.
Phong cách l p trình c xác nh t các quan m sau:
- Tính rõ ràng
- Tính hi u qu
- Tính b o trì c

(1) Tính rõ ràng


Tính rõ ràng ngh a là kh n ng hi u c ch ng trình. làm t ng m c rõ ràng, nói chung
ng i ta thi t l p ra nh ng qui t c vi t mã (chu n).
186 Ch ng 5 Th c hi n ch ng trình

Qui t c vi t mã xác nh các qui t c c n tuân th khi vi t mã: t t l , t tên bi n và mô un, l i


chú thích v.v.. B ng vi c tuân theo các qui t c này, ta có th t o ra m t ch ng trình d hi u i
i nh ng ng i khác. Công vi c vi t mã, c ti n hành tuân th theo các qui t c này, d ng
nh t n nhi u th i gian h n công vi c vi t mã c làm mà không có qui t c nào. Vi c vi t mã
c th c hi n theo các qui t c này cu i cùng d n t i vi c làm gi m th i gian dành cho ki m
m l i, tuy nhiên, l i cho phép t ng l ng th i gian phát tri n ch ng trình c rút b t.

(2) Tính hi u qu
Tính hi u qu ngh a là d dàng t o ra ch ng trình. làm t ng tính hi u qu , nh ng ph n d
th a c a ch ng trình ph i c lo i b t i a. Tuy nhiên c ng nên l u ý ây r ng tính rõ ràng
a ch ng trình có th c t ng thêm nhi u b ng nh ng ph n b sung vào ch ng trình.
Ch ng h n, m c d u l i chú thích là ph n ph thêm không liên quan t i vi c th c hi n ch ng
trình, nó v n óng góp làm t ng m c rõ ràng c a ch ng trình. Do ó, c n gi tính rõ ràng và
tính hi u qu c cân b ng t t.

(3) Tính b o trì c


Tính b o trì ngh a là d s a i ch ng trình. Ng i làm l p trình th ng không s a i ch ng
trình. Vi c s a này do ng i khác th c hi n. làm cho công vi c b o trì c d dàng, u
quan tr ng là c n t o ra ch ng trình d hi u.
nâng cao tính b o trì c, b n thân ch ng trình ph i c c u trúc cao ng n c n vi c
a i th c hi n ph n này có th nh h ng t i ph n khác c a ch ng trình.

5.1.3 Dùng b x lí ngôn ng


x lí ngôn ng là t chung nói t i các ch ng trình th c hi n các nhi m v d ch và so n
th o làm cho ch ng trình ã vi t ch y c.
Các b x lí ngôn ng i di n là:
- B biên d ch, d ch ch ng trình vi t trong ngôn ng c p cao thành ch ng trình mã máy
ngay l p t c.
- B h p d ch, d ch ch ng trình c vi t trong h p ng thành ngôn ng máy ngay l p t c.
- B thông d ch, d ch và th c hi n các câu l nh trong ch ng trình c vi t trong ngôn ng
p cao theo t ng l nh m t.
Trong khi làm công vi c l p trình, ng i ta ph i s d ng t i các c tr ng c a t ng b x lí
ngôn ng này.
Các c tr ng c a b thông d ch là:
- Vi c th c hi n l n l t t ng l nh là có th c.
- Ch ng trình có th c cho ch y ngay c khi ch a hoàn thành.
i vi c t n d ng các c tr ng này, có th thu c nh ng ích l i sau:
- Có th ki m ch ng c hành vi c a ch ng trình t i t ng m n i nó m i hoàn thành n a
ch ng.
- Công vi c g l i c th c hi n d dàng (có th d dàng thêm vào các l nh g l i).
c th c hi n c a ch ng trình c vi t trong b thông d ch tuy v y l i ch m h n so v i t c
c a ch ng trình c biên d ch. Do ó trong vi c l p trình th c t , b thông d ch c dùng
tr c h t hoàn thi n ch ng trình, r i b biên d ch c dùng t ng t c vi c th c hi n nó.
5.1 L p trình 187

Hình 5-1-1 Dùng các b x lí ngôn ng

[L p trình] [Khi ch ng trình


hoàn t t]

Trình thông Trình biên


Ch ng
ch ch
trình ngu n

Di n gi i/ Ch ng
Th c hi n trình ích

t b x lí ngôn ng c dùng khá thông d ng khác là b ti n x lí. Theo ngh a h p, b ti n


lí c dùng th c hi n các m r ng macro trong câu l nh ch ng trình hay nh p kh u
các t p. Trong vi c l p trình th c t , b n nên nh n bi t r ng b ti n x lí ch y th c hi n
nh ng ch c n ng này. Theo ngh a r ng, b ti n x lí c dùng chuy n m t ch ng trình
vi t trong m t ngôn ng c p cao này thành m t ch ng trình c vi t trong m t ngôn ng c p
cao khác. Do ó v i vi c dùng b ti n x lí, tr c h t b n có th xây d ng m t ch ng trình
ng vi c dùng ngôn ng l p trình x, r i chuy n i nó sang nh d ng c a ngôn ng l p trình y
và cho ch y ch ng trình ã chuy n i này. Ph ng pháp này dùng m t b x lí ngôn ng có
liên k t v i b x lí ngôn ng khác, là có ích n u trình biên d ch y c dùng r ng rãi h n trình
biên d ch x, hay n u vi c dùng hai b x lí ngôn ng khác nhau có th làm t ng tính hi u qu t i
u. B i vì yêu c u tiên quy t cho k thu t l p trình này là chuy n i tr n tru t x sang y, nên x
th ng là m t phiên b n m r ng c a y.

5.1.4 Môi tr ng l p trình


x lí ngôn ng và các công c phát tri n khác c a vào trong môi tr ng phát tri n
ch ng trình. H th ng l p trình c dùng nhi u trong nh ng n m g n ây là IDE, có các b
lí ngôn ng và công c phát tri n c tích h p trong m t h th ng.
ng t , các công c phát tri n ã c thi t k h tr cho các k thu t l p trình m i nh l p
trình web ang c phát tri n.

(1) IDE (Môi tr ng phát tri n tích h p - integrated development


environment)
IDE cho phép m t lo t các nhi m v l p trình t so n th o ch ng trình ngu n cho t i vi c biên
ch, và t móc n i cho t i g l i u c th c hi n trong m t môi tr ng liên t c. Công vi c
p trình tr c ây ã c th c hi n b ng vi c dùng các công c khác nhau th c hi n t ng
nhi m v l p trình. Do ó lu ng l p trình tr n tru b ng t quãng, gây ra gi m tính hi u qu và
ng su t. IDE cung c p gi i pháp cho nh ng v n này, cho phép t t c các nhiêm v l p trình
c th c hi n trong m t môi tr ng tích h p.
Các c tr ng c a IDE là nh sau:
188 Ch ng 5 Th c hi n ch ng trình

- T ng h p v i các ngôn ng l p trình th ng c dùng (C, COBOL, v.v.)


- c thi t k cho phép hàng lo t nhi m v l p trình th c t c th c hi n.
- Móc n i v i h qu n tr c s d li u
Các s n ph m i di n c a IDE là:
- Visual Studio 6.0 (Microsoft): Môi tr ng phát tri n Windows dùng VB, VC++ và các
ngôn ng khác trong m t gói.
- Delphi 5.0 (Borland): H th ng phát tri n tr c quan dùng trình biên d ch t c cao
- Developer 2000 (Oracle): Môi tr ng phát tri n cho các ng d ng c s d li u dùng
Oracle.

(2) L p trình Web


Có hai cách ti p c n c tính t i t o ra vi c l p trình web b ng vi c dùng môi tr ng web:
- Làm cho ch ng trình hi n th c hi n c trong môi tr ng web.
- Phát tri n m t ch ng trình m i v i d nh cho ch y nó trong môi tr ng web.
t công c phát tri n thích h p cho cách ti p c n th nh t trên ây là VB-web và công c thích
p cho cách ti p c n th hai là FrontPage. C hai u do Microsoft cung c p.
Các ch c n ng c n cho công c phát tri n web là:
- Ch c n ng xây d ng GUI n gi n
- Ch c n ng thi t k khung ch ng trình dùng thu t s
- Dùng ASP (Active Server Page - trang ngu n ph c v tích c c)
- T ng h p v i các ngôn ng qui c
5.2 Ki m th 189

5.2 Ki m th
Ng i ta th ng nói m t ch ng trình m i c t o ra ch a vài l i trong 100 dòng. Trong
nh ng dòng này, l i t ti n trình l p trình và l i t ti n trình thi t k u có c . N u m t ch ng
trình ch a l i c dùng v n hành m t h th ng tr c tuy n, thì nh ng h h ng nghiêm tr ng
phát sinh ra không ch nh h ng t i công ti v n hành h th ng ó, mà còn nh h ng c t i
công chúng l n bên ngoài.
Do ó, vi c ki m th s n ph m ph i c ti n hành tr c khi chuy n giao s n ph m công
nghi p. Vi c ki m th ch ng trình c ng ph i c ti n hành theo m t trình t ki m th c
bi t ki m ch ng r ng ch ng trình và h th ng mà nó u khi n, có th v n hành t ng ng
i các c t . M c d u chúng ta không th m b o hoàn toàn lo i b h t l i trong ch ng trình,
chúng v n có th làm gi m s l i ó t i m c t i thi u nh t n u chúng ta ki m th ch ng trình
theo cách chính xác, hi u qu .

5.2.1 ng quan v ki m th
Trong mô hình thác , ki m th n v , ki m th tích h p, ki m th h th ng và ki m th v n
hành c ti n hành theo th t ó. Phía phát tri n h th ng th c hi n b c u trong ti n hành
ki m th n v , tích h p và h th ng, trong khi b ph n ng i s d ng ch u trách nhi m ti n
hành ki m th v n hành.

Hình 5-2-1 ng quan v ki m th

ho ch c s Ki m th v n hành t thúc pha xây d ng

Thi t k ngoài
Ki m th h th ng
th ng

Thi t k trong
PG PG
Ki m th tích h p
M M
Thi t k PG

p trình Ki m th nv M M M M

M : Mô un
PG Ch ng trình

Khi b ph n ng i dùng hoàn thành ki m th v n hành, thì ch ng trình c chính th c


chuy n t t ch c h th ng sang ng i dùng. Sau u này, t ch c ng i dùng nh n trách
nhi m qu n lí ch ng trình.
190 Ch ng 5 Th c hi n ch ng trình

5.2.2 Ki m th nv
Ki m th nv c ti n hành t i nh ng giai n s m nh t trong pha ki m th . M c tiêu
ki m th là t ng mô un.

(1) ic ng và m c ích c a ki m th nv
Ki m th nv c ti n hành cho t ng mô un, n v nh nh t bên trong h th ng ang xây
ng. M c ích là ki m ch ng l i công vi c ã c làm trong pha l p trình. Trong ki m th
n v th c t , vi c ki m ch ng c th c hi n xem li u các ch c n ng mô un có t ng ng
i c t mô un hay không.
Sau khi các mô un ã c móc n i và tích h p vào m c h th ng ch ng trình, thì m t s l n
công vi c c n làm là lo i b l i. tránh u này, l i tr c h t ph i c lo i b kh i t ng mô
un trong giai n ki m th n v , tr c khi các mô un c tích h p l i.

(2) Ph ng pháp ki m th và thi t k các tr ng h p ki m th


• Ph ng pháp ki m th
nguyên t c, ki m th h p en th ng c ti n hành. Ki m th h p tr ng c ti n hành
u c n.
- Ki m th h p tr ng (còn g i là ki m th h p trong): Chú ý chính c d n vào c u trúc bên
trong.
- Ki m th h p en: Chú ý chính c d n vào giao di n (cái vào và cái ra) gi a các mô un.
‚ Thi t k tr ng h p ki m th
Tr c khi ki m th ch ng trình, ph i chu n b các tr ng h p ki m th (d li u ki m th ).
ó là m t nhân t quan tr ng c n xét t i vì nó nh h ng t i k t qu c a vi c ki m th , hay
th m chí còn xác nh ra ch t l ng c a h th ng.
thi t k các tr ng h p ki m th t i u, n u có s n m t h ng d n nào ó (tài li u thi t k
tr ng h p ki m th ) thì s r t có ích. B ng cách tích lu các d li u và xem l i tài li u thi t
tr ng h p ki m th , t ch c phát tri n có th l u gi cách làm c i ti n ch t l ng ph n
m, và dùng nó nh ph ng ti n truy n d li u sang giai n l p trình sau.

5.2.3 Ki m th tích h p
Ki m th tích h p c ti n hành sau khi ki m th nv ã c hoàn t t. Chúng cd
nh ki m ch ng l i nh ng công vi c ã c ti n hành trong các pha thi t k ch ng trình
và thi t k ch ng trình.

(1) ic ng và m c ích c a ki m th tích h p


Ki m th tích h p c ti n hành ki m ch ng r ng nhi u mô un có th v n hành úng khi
c n i v i các mô un khác có liên quan. Trong khi ti n hành vi c ki m th này, chú ý chính
c dành cho giao di n gi a các mô un (giao di n gi a các ch ng trình). Cho dù không tìm
th y v n gì trong ki m th n v , l i v n th ng xu t hi n khi các mô un c n i l i. N u
i xu t hi n trong ki m th tích h p thì b n ph i quay lui tr v ti n trình tr c và s a v n .
Hãy nh r ng b n c ng ph i ch a l i tài li u thi t k .
Tr c khi ti n hành ki m th tích h p, ph i nh ngh a rõ ràng các mô un c n i theo th t
5.2 Ki m th 191

nào và khi nào.

(2) Cu ng và khi n trình


Trong giai n l p trình c a phát tri n h th ng, ch ng trình có c u trúc phân c p bao g m
nhi u mô un. Do ó, vi c mã hoá c th c hi n cho t ng mô un riêng, và các mô un c p
cao hay c p th p c c n t i ki m ch ng s v n hành bình th ng c a các mô un ã xây
ng. Trong ki m th th c t , các mô un câm c g i là cu ng hay khi n trình s c dùng
i.
- Cu ng (stub): M t ch ng trình dành cho ki m th cung c p các ch c n ng c a mô un
c th p.
- Khi n trình (driver): M t ch ng trình dành cho ki m th cung c p các ch c n ng c a
các mô un c p cao

Hình 5-2-2 Cu ng và khi n trình

<Cu ng> Mô un ã hoàn thành ki m th

Mô un c n ki m th Mô un c n ki m th

Cu ng Cu ng

<Khi n trình> Khi n trình

Mô un c n ki m th Mô un c n ki m th

Mô un ã ki m th Mô un ã ki m th

Hình 5-2-3 nêu ra m t ví d v cu ng

CALL "S"
<Mô un c n ki m th >
USING X Y

<S> <Cu ng>


Cu ng cho l i giá tr

Hình 5-2-3 Ví d v cu ng.


192 Ch ng 5 Th c hi n ch ng trình

(3) Ki m th t ng d n
Trong ki m th t ng d n, các mô un ã hoàn t t ki m th s c móc n i liên ti p v i các mô
un khác. Ki m th t ng d n c phân lo i i th thành ba ki m th c nêu d i ây:
- Ki m th trên xu ng
- Ki m th d i lên
- Ki m th t h p (ki m th bánh mì k p th t)
< c tr ng>
- Thích h p cho ki m th ch ng trình kích c l n.
- C n dùng các mô un ki m th (mô un câm) nh các cu ng và khi n trình thay cho các
mô un ch a hoàn thành.
- K t qu c a vi c ki m th có th thay i, tu theo các mô un c móc n i vào theo trình
nào.
- D theo dõi d u v t l i v nguyên nhân.
• Ki m th trên xu ng
Ki m th trên xu ng c dùng phát tri n h th ng theo th t t các mô un cao t i mô
un th p ( c g i là l p trình trên xu ng).

5.2.3.1 Hình 5.54 Ki m th trên xu ng

Cu ng Cu ng

B C
Mô un ã ki m th
Mô un c n ki m th
Cu ng Cu ng Mô un câm

B C

Cu ng Cu ng

< c tr ng>
- Mô un m c cao nh t (mô un lõi hay mô un có logic) tr c h t c móc n i v i mô
un cao nh t ti p ó và t t c các mô un khác c ng c móc n i gi ng th theo trình t
các mô un t m c cao t i th p.
- Các mô un quan tr ng c ki m th th ng xuyên h n các mô un kém quan tr ng,
5.2 Ki m th 193

do v y làm t ng tin c y c a giao di n gi a các mô un c p cao.


- Ti n u ki n cho vi c dùng ki m th này là ch b n thân ch ng trình ph i ct o
ra b ng vi c dùng thi t k có c u trúc.
- B i vì mô un c p cao v i m t s nh các ch ng trình là c phát tri n tr c, nên khó
làm vi c l p trình và ti n hành ki m th song song t i giai n kh i u.
- Thích h p cho vi c phát tri n h th ng m i
- Xem nh (ch ng trình) h th ng ki m th , c n dùng t i cu ng.

‚ Ki m th d i lên
Ki m th d i lên c dùng phát tri n h th ng theo trình t các mô un m c th p t i
c cao ( c g i là l p trình d i lên).

Hình 5-2-5 Ki m th d i lên

B C

D E

Khi n trình
Mô un ã ki m th
Mô un c n ki m th
B C Mô un câm

D E

Khi n trình

D E

< c tr ng>
- Ki m th c ti n hành b ng vi c móc n i các mô un theo trình t mô un m c th p
i cao.
- Khi ki m th tích h p ã c hoàn t t, thì ch ng trình có th c ki m th theo u
ki n v n hành th c t .
- B i vì các mô un m c th p v i m t s l n ch ng trình là c phát tri n tr c h t,
nên có th làm vi c l p trình, và ti n hành ki m th song song t i giai n kh i u.
- Xem nh h th ng (ch ng trình) ki m th , c n có khi n trình.
- Thích h p cho vi c phát tri n m t phiên b n s a i c a h th ng hi n t i.
194 Ch ng 5 Th c hi n ch ng trình

ƒ Ki m th t h p (ki m th bánh mì k p th t)
Ki m th t h p (ki m th bánh mì k p th t) là vi c t h p c a các ki m th trên xu ng và
i lên. Các ki m th trên xu ng và d i lên c ti n hành ng th i cho t i khi t t i làn
ranh gi i tho hi p ã nh s n.

Hình 5-2-6 Ki m th t h p

Trên xu ng B C
ng t h p>
i lên

D E

c tr ng>
- Các mô un trên ng t h p là ch cho ki m th trên xu ng trong khi các mô un
i ng t h p là ch cho ki m th d i lên.
- Vì các ki m th trên xu ng và d i lên có th c ti n hành ng th i, nên các ki m
th có th c hoàn t t trong th i gian ng n h n nhi u.
- Ph n khung c a ch ng trình có th c ki m th d dàng.
- Xem nh h th ng (ch ng trình) ki m th , thì c cu ng và khi n trình u c c n t i.

(4) Ki m th không t ng d n
Trong ki m th này, t t c các mô un có vi c ki m th nv ã c hoàn t t u c móc
i và cho ch y. Ki m th không t ng i di n là ki m th big bang.
c tr ng>
- Thích h p cho vi c ki m th ch ng trình kích c nh .
- Không c n t i cu ng hay khi n trình.
- N u l i xu t hi n thì khó dò d u v t chúng ng c v nguyên nhân.
• Ki m th Big-bang
Ki m th big-bang dùng k thu t c a vi c th c hi n ki m th n v tr c h t trên m i mô un,
i móc n i chúng t t c l i m t lúc và th c hi n ki m th tích h p toàn b .
5.2 Ki m th 195

Hình 5-2-7 Ki m th Big-bang

B C

D E

Ph i cung c p cu ng và khi n trình cho t ng mô un

A Khi n trình A Khi n trình A Khi n trình C Khi n trình C

B C D E
Cu ng B Cu ng C

Cu ng D Cu ng E

Ki m th tích h p

B C

D E

c tr ng>
- B i vì ki m th này c ti n hành sau ki m th n v nên k t qu có tin c y cao.
- th c hi n ki m th móc n i thì cu ng hay khi n trình là không c n thi t.
- Các mô un có th c ki m th t t c ngay m t lúc.
- N u ki m th n v không c hoàn t t thì không th ti n hành ki m th big bang
c.
- Khó tìm l i trong giao di n gi a các mô un.
- Sau khi tìm c l i, thì vi c g l i l i l ng nh ng.

5.2.4 Ki m th h th ng
Sau khi các mô un c móc n i v i nhau ã c ki m th , thì các ki m th c ti n hành
theo trình t c a t ng ch ng trình, r i ki m th cho t ng h con m t, và cu i cùng ki m th
cho toàn b h th ng.
Các ki m th c ti n hành sau ki m th tích h p c g i là ki m th h th ng.

(1) T ng quan v ki m th h th ng
Ki m th h th ng c ti n hành ki m ch ng s phù h p v i thi t k ngoài. Trong vi c ti n
hành ki m th này, ph n l n chú ý c dành cho giao di n gi a các h con. Ki m th h th ng
c g i là ki m th toàn di n, và c ti n hành b i m t nhóm chuyên ki m th . Nó là ki m
196 Ch ng 5 Th c hi n ch ng trình

th cu i cùng c ti n hành b i t ch c phát tri n h th ng.

Hình 5-2-8 Ph m vi c a ki m th h th ng

th ng

Ch.tr Ch.tr Ch.tr Ch.tr

<H con>
Ch.tr Ch.tr Ch.tr Ch.tr Ch.tr: Ch ng trình

Ch.tr Ch.tr Ch.tr Ch.tr


Ch.tr Ch.tr Ch.tr Ch.tr

<<Ch ng trình c tích h p và toàn b h th ng c ki m th >>

(2) Các ki u ki m th h th ng
Ki m th h th ng c ti n hành ki m tra các ch c n ng và hi u n ng t nhi u góc khác
nhau nh c nêu d i ây:
• Ki m th tích h p ch ng trình/h con
Các ch ng trình c móc n i v i nhau, và các h con c móc n i v i nhau, và các h con
và giao di n gi a các ch ng trình c ki m th .
‚ Ki m th ch c n ng
Ki m th này c ti n hành ki m ch ng li u các yêu c u ch c n ng c a ng i dùng có
c áp ng hay không.
ƒ Ki m th hi u n ng
Ki m th này c ti n hành ki m ch ng th i gian áp ng và các kho n m c hi u n ng
khác.
„ Ki m th v n hành
Giao di n con ng i (GUI) và các m khác liên quan t i v n hành c ki m tra và ki m
ch ng.
… Ki m th ph c h i h ng hóc
Cách th c h th ng có th ph c h i t h ng hóc và th c hi n l i các ch c n ng là c ki m
th .
† Ki m th t i
Ki m th này c ti n hành ki m tra hi u n ng và ch c n ng c a h th ng khi m t kh i
ng l n d li u c a vào m t lúc, hay khi m t t i l n c áp vào h th ng.
‡ Ki m th ngo i l
Ki m th này c ti n hành ki m ch ng r ng h th ng có th gi i quy t thích h p cho các
li u không h p l khi c a vào.
ˆ Ki m th ch u ng
Ki m th này c ti n hành ki m ch ng r ng m t h th ng có th ng v ng nhi u gi
làm vi c liên t c.
5.2 Ki m th 197

5.2.5 Các ki m th khác


ng còn có ki m th v n hành ( c ti n hành sau khi ki m th h th ng ã hoàn t t) và ki m
th rà l i.

(1) Ki m th v n hành
ch c c a ng i dùng ch u trách nhi m ti n hành ki m th v n hành. Ki m th v n hành là
ki m th cu i cùng c ti n hành trên h th ng. T ch c c a ng i dùng ph i chu n b các
tr ng h p ki m th , ti n hành ki m th trong u ki n v n hành th c t , và ki m ch ng r ng
th ng tho mãn các c t ã c yêu c u. B i vì ki m th này d nh làm cho h th ng
ã xây d ng c t ch c ng i dùng ch p nh n, nên nó c g i là ki m th ch p thu n hay
ki m th ch p nh n.
i vì ki m th v n hành c ti n hành b ng cách cho ch y ch ng trình trên máy ang c
dùng cho v n hành nghi p v th c t , nên ph i h t s c chu áo ng làm nhi u các ho t ng
nghi p v .

(2) Ki m th rà l i
Ki m th rà l i có liên quan ch t ch v i ho t ng b o trì.
c ích c a ki m th rà l i là ki m ch ng r ng nh ng s a i h th ng c ti n hành trong
công vi c b o trì không nh h ng t i các b ph n ang ho t ng bình th ng c a h th ng.

5.2.6 ho ch và nhi m v ki m th
Các ki m th a d ng c ti n hành trong phát tri n h th ng ã c mô t c r i. M c này
gi i thích các nhi m v ki m th chung và n i dung c a công vi c c làm ti n hành ki m
th .

(1) Nhi m v ki m th (t ng quan)


Hình 5-2-9 ch ra m t t ng quan v các nhi m v ki m th .
Hình 5-2-9 Nhi m v ki m th
p k ho ch ki m th

Chu n b môi tr ng

Ti n hành ki m th

Ki m ch ng k t qu
ki m th

Phân tích nhu c u/


phân tích hi u n ng

a ch a và c i ti n tài
li u hay ch ng trình
198 Ch ng 5 Th c hi n ch ng trình

(2) Lu ng ki m th và n i dung các nhi m v


• K ho ch ki m th
n chu n b b n k ho ch ki m th . B n k ho ch ki m th có m i quan h ch t ch v i công
vi c phát tri n h th ng, nh c v trong Hình 5-2-10.

Hình 5-2-10 K ho ch ki m th
[K ho ch ki m th ]

p k ho ch c s <Ki m th v n hành>

Thi t k ngoài <Ki m th h th ng>

Thi t k trong
<Ki m th tích h p>
Thi t k ch ng trình

p trình <Ki m th nv>

n chu n b b n k ho ch chung, có tên là l ch bi u ch . Các l ch bi u trong pha l p k ho ch


s cho vi c ti n hành ki m th c xác nh t i m này. M i ki m th trong Hình 5.2.10
nên c l p l ch v i vi c t th i gian nêu sau ây:
<Khi nào xác nh l ch bi u cho t ng ki m th >
- Ki m th v n hành: c xác nh khi k ho ch c b n c t o ra.
- Ki m th h th ng: c xác nh trong thi t k trong.
- Ki m th tích h p: c xác nh trong thi t k trong ho c thi t k ch ng trình.
- Ki m th n v (mô un): c xác nh trong khi l p trình (thi t k mô un).
‚ Chu n b môi tr ng ki m th
Các b c sau ây ph i c chu n b tr c khi ti n hành t ng ki m th :
- H th ng ki m th
- D li u ki m th
- Ch ng trình ki m th (mô un)
- Công c ki m th (gói ph n m m)
5.2 Ki m th 199

b nh

Trình x
ch p
nhanh
theo dõi v t

Công c sinh d li u
ki m th
Mô ph ng
giao tác
Công c g
i
mô ph ng M« pháng
thiÕt bÞ
Công c ki m th

Mô ph ng l i

t p
Công c ki m
soát ti n trình

Công c phân tích k t thúc b t


th ng

Hình 5-2-11 Công c ki m th

a. Thi t k h th ng ki m th
Có nh ng tr ng h p máy c dùng cho các v n hành nghi p v ph i c dùng cho
ch y ch ng trình ki m th . Tuy nhiên, n u máy này l u gi các t p hay c s d li u
n c truy nh p t i trong v n hành hàng ngày, hay n u m t t i l ng l n b áp vào máy
trong khi ki m th , thì vi c s n xu t s b gây r i lo n. Do ó, c n phát tri n hay thi t k
cùng h u hành, t p và c s d li u nh ng s là i t ng c dùng trong vi c ch y
n xu t th c.
b. Thi t k ch ng trình ki m th và d li u ki m th
Ph i thi t k ch ng trình ki m th (cu ng và khi n trình). C ng v y d li u ki m th ph i
c chu n b và các tr ng h p ki m th ph i c thi t k b ng vi c dùng nhi u ph ng
pháp.
Có th dùng công c phát tri n m i có ây d dàng sinh ra d li u ki m th d a trên các
tham bi n n gi n. M t công c nh v y là r t thu n ti n vì d li u sai có th c sinh ra
t cách có ch ý.
c. Thi t t các công c ki m th
Các công c ki m th c n ph i c thi t t. Các ch ng trình ti n ích c a h u hành
200 Ch ng 5 Th c hi n ch ng trình

nói chung c dùng làm công c ki m th . Các gói ph n m m c thi t k làm công c
ki m th bây gi r t s n có. Môi tr ng v n hành c a gói nh v y nên c ki m tra và a
vào làm gi m chi phí phát tri n, và làm t ng tính hi u qu và ch t l ng c a ki m th .
Hình 5-2-11 a ra m t s công c ki m th .
1) Công c g l i
• Trình x ra
Trình x ra a ra n i dung c a b nh hay thanh ghi.
- X b nh : Vi t ra n i dung c a b nh hay thanh ghi khi vi c k t thúc b t th ng
xu t hi n.
- X ch p nhanh: V i m t l nh g r i nhúng trong ch ng trình, và n i dung c a b
nh hay thanh ghi c vi t ra m i l n l nh này c th c hi n
• B dò v t
dò v t c ng còn c g i là ch ng trình dò v t. M i l n m t l nh c th c hi n và
u ki n nào ó c tho mãn, thì b dò v t c kích ho t và ghi l i n i dung c a
thanh ghi và a ch c a vùng b nh c tham chi u.
• Công c sinh d li u ki m th
Công c sinh d li u ki m th t ng sinh ra d li u ki m th d a trên các tham bi n
do ng i dùng cung c p.
• B mô ph ng
- B mô ph ng giao tác mô ph ng cho h th ng x lí giao tác.
- B mô ph ng thi t b mô ph ng cho m t thi t b cu i.
- B mô ph ng h ng hóc mô ph ng cho các hoàn c nh h ng hóc.
• X t p
Ch ng trình x t p ghi ra n i dung c a m t t p c ghi trên thi t b nh nh at
hay b ng t .

2) Công c ki m soát ti n trình ki m th


Công c ki m soát ti n trình ki m th có th h tr cho m i ti n trình ki m th t l p k
ho ch ki m th và thi t k cho t i g l i.
3) Công c phân tích k t thúc b t th ng
Công c phân tích k t thúc b t th ng có th tìm ra nguyên nhân c a s k t thúc b t th ng
xu t hi n cho ch ng trình, và nêu ra nh ng hành ng s a i.

Các công c ki m th trên nên c s d ng nhi u nh t có th c có tính t i ngân sách có


n. Chúng là nh ng công c hi u qu có th óng góp c i ti n n ng su t. K t qu là, ch t
ng c a h th ng s t ng lên, chi phí b o trì sau khi h th ng tr nên v n hành có th c
gi m b t, và có th trông i u t quay vòng t t h n.

ng v y, các m sau nên c xem xét tr c khi ti n hành ki m th :


- T o ra m t ch c n ng cho vi c x lí d li u ki m th trong toàn b b ng ph ng ti n
JCL (job control language), các l nh l p v hay t p x lí theo lô.
- C i thi n h ng hóc, m ng và các môi tr ng mô ph ng khác (b ng vi c dùng công c
ki m th )
- T ng hoá x lí t ng tác
ƒ Ti n hành ki m th
Nhi u lo i ki m th ph i c ti n hành trong u ki n môi tr ng th c hi n c chu n b
t.
5.2 Ki m th 201

„ Ki m tra k t qu c a ki m th
Ki m th c ti n hành t ng ng v i các k ho ch ki m th và c t ki m th , và k t qu
a vi c ki m th ph i c ki m tra l i.
… Phân tích h ng hóc, phân tích hi u n ng
Các l i và h ng hóc b phát hi n ph i c phân tích ch t ch b ng vi c dùng các công c và
các k thu t ki m tra ch t l ng a d ng.
† S a ch a và c i ti n tài li u và ch ng trình g c
u l i hay sai sót thi t k c tìm th y và n u chúng có th c s a ch a ngay l p t c, thì
ch ng trình ngu n ph i c s a ch a hay c i ti n. Ph n c a tài li u thi t k liên quan t i các
i hay sai sót thi t k nh v y c ng ph i c s a ch a. N u ch ch ng trình ngu n c
a ch a, thì s nh t quán gi a ch ng trình ngu n và tài li u thi t k s b m t, và r c r i có
th xu t hi n khi công vi c ki m ch ng các ph n khác hay vi c b o trì c ti n hành.
‡ L y hành ng thích h p sau m t ki m th hoàn t t
Sau khi m t ki m th ã c hoàn t t và ch ng trình ã c s a ch a, thì các hành ng
sau ph i c ti n hành:
a. Qu n lí ti n ki m th và báo cáo
Ng i ch u trách nhi m ph i báo cáo v ti n c a vi c ki m th b ng vi c dùng báo cáo
công vi c hàng tu n hay báo cáo ki m th . Sau khi ki m th c hoàn t t, ng i ó ph i
báo cáo k t qu c a vi c ki m th b ng vi c dùng báo cáo hoàn thành ki m th .
b. Ki m soát d li u liên quan t i h ng hóc
li u v l i hay khi m khuy t c tìm ra trong khi ki m th ph i c tích lu l i. C ng
y, l i xu t hi n trong tình hu ng nào, hành ng s a ch a nào ã ti n hành và các thông
tin chi ti t khác ph i c c t gi .
c. Xem l i tài li u v n hành th ng l u
t sai l m c tìm ra trong giao di n con ng i hay trong các giao di n gi a các h con
có th qui cho thi t k trong, nh c mô t trong m c † trên. Không ch ph n c a
ch ng trình d n t i sai l m ó ph i c s a l i, mà c b n thân tài li u thi t k trong c ng
ph i c ch a l i ng n c n cùng sai l m ó x y ra n a.
ng n c n vi c l p l i các l i gây ra b i m t sai l m ph m ph i trong ti n trình ng c
dòng tr c, m t ch ng trình, hay m t ph n c a tài li u thi t k liên quan t i sai l m ó
ng nh tài li u v n hành t ng ng, ph i c s a l i hay xem xét l i ng n c n s xu t
hi n n a c a cùng sai l m.
202 Ch ng 5 Th c hi n ch ng trình

Bài t p

Q1 Trong khi ti n hành các ki m th trong giai n phát tri n h th ng, các ki m th
c ti n hành theo th t t các n v nh t i n v l n, và k t qu c a vi c
ki m th c tích lu l i nh d li u. Tr t t các ki m th nào sau ây là thích
p nh t?
a. Ki m th h th ng → ki m th tích h p → ki m th nv
b. Ki m th h th ng → ki m th n v → ki m th tích h p
c. Ki m th n v → ki m th tích h p → ki m th h th ng
d. Ki m th n v → ki m th h th ng → ki m th tích h p

Q2 Thu t ng nào là thích h p nh t cho vi c ki m th c ti n hành v i s chú ý


nh t c dành cho c u trúc bên trong c a ch ng trình và thu t toán?
a. Ki m th h th ng b. Ki m th trên xu ng
c. Ki m th h p en d. Ki m th h p tr ng
e. Ki m th d i lên

Q3 K thu t nào sau ây là chu n b d li u ki m th , và ki m th các ch c n ng


a ch ng trình v i s chú ý nhi u nh t c dành cho m i quan h gi a d li u
vào và k t qu a ra?
a. Ki m th trên xu ng b. Ki m th h p en
c. Ki m th d i lên d. Ki m th h p tr ng

Q4 Mô t nào sau ây là thích h p cho ki m th tích h p c ti n hành trong ti n


trình phát tri n h th ng, ngay sau ki m th n v (ki m th mô un) c hoàn
t?
a. Ki m ch ng r ng h th ng có th th c hi n không có l i nào cho t t c các ch c n ng
c xác nh trong tài li u thi t k ngoài
b. Ki m ch ng r ng t p các m c tiêu v th i gian x lí và m c tiêu th i gian áp ng ã
c tt i
c. Ki m ch ng r ng không có v n gì trong các ki u và s thi t b vào và ra và thi t b
truy n thông c ghép n i
d. Ki m ch ng r ng không có v n gì v i giao di n gi a các mô un, là các c u ph n c a
ch ng trình
e. Ki m ch ng r ng vi c cho ch y nhi u vi c và ghép n i ng th i các thi t b cu i có th
c th c hi n nh ã c xác nh

Q5 Gi i thích nào là úng v ki m th d i lên, m t trong nh ng k thu t ki m th ?


a. Ki m th c ti n hành b ng cách móc n i các mô un theo tr t t mô un th p t i cao.
Các khi n trình c c n t i làm cái thay th cho các mô un m c cao ch a hoàn t t.
b. T ng mô un riêng l c ki m th . Khi t t c các mô un u ã c ki m th , thì
chúng c móc n i và ki m th .
c. Ki m th c ti n hành b ng vi c móc n i các mô un theo th t t mô un cao xu ng
mô un th p. Cu ng c c n t i nh cái thay th cho các mô un c p th p ch a hoàn t t.
d. Các ki m th c ti n hành theo tr t t ki m th n v , tích h p, h th ng và v n hành.
Bài t p 203

Q6 Mô t nào là úng cho d li u ki m th c dùng giám nh ch ng trình?


a. Các tr ng h p ki m th c chu n b tr c, và d li u ki m th có th áp ng các yêu
u c xác nh trong tr ng h p ki m th c chu n b .
b. Ch d li u ki m th có th c x lí úng m i c chu n b nh các ti n trình ki m
th .
c. Nh d li u c dùng cho ki m th , quãng 20% kh i l ng d li u c n x lí trong các
thao tác th c t m i c chu n b .
d. D li u ki m th b bác b nh l i trong giai n a vào không c n ph i c cung c p.

Q7 K thu t g l i nào ghi ra n i dung c a các bi n hay thanh ghi m i l n m t câu


nh c bi t c th c hi n?
a. Walk-through b. nh ch p nhanh
c. B sinh d li u ki m th d. Khi n trình
204 Tr l i bài t p

6 p nh t v n hành
và phát tri n h th ng

c ích c a ch ng
Hi u thi t k ch ng trình b ng cách s d ng ti p c n
ng i t ng.

• Hi u nh ngh a l p và các m i quan h


‚ Hi u cách ánh x thi t k vào hình th c th c hi n
ƒ Hi u thi t k các d ch v Web b ng cách s d ng ti p
n h ng i t ng
Tr l i bài t p 205

Gi i thi u

t nhi u gói ph n m m c phát tri n i cùng v i hình th c i t ng nào ó. Kh n ng tái


d ng các l p mà không c n lo l ng v thân chúng cho phép các h th ng k t h p l ng l o
c phát tri n m t cách d dàng. Trong ch ng này, chúng ta s gi i thích v thi t k ch ng
trình s d ng ph ng pháp h ng i t ng.

6.1 Thi t k ch ng trình

6.1.1 Thi t k ch ng trình h ng it ng


(1) T ch c c a ch ng trình h ng it ng
Truy nh p vào giao di n ng i s d ng, c c s d li u và các qui t c kinh doanh, t t c u ct h p
i nhau trong ch ng trình truy n th ng.
Ch ng trình truy n th ng

Giao di n ng i s d ng

Các qui t c kinh doanh

Truy nh p d li u

Khi cách ti p c n h ng i t ng c ch p nh n cho thi t k ch ng trình, các c u ph n riêng l ph i c


tách b ch. H u h t các giao di n ng i s d ng s d ng mô hình u khi n theo bi n c . Các hành ng th c
hi n trong th gi i th c c d ch thành l i g i ch c n ng. B gi i quy t bi n c thích h p trong giao di n
ng i s d ng c thay i x lí hành ng. u này d n t i các ki u l p sau:
• Giao di n ng i s d ng
‚ Các l p mi n v n
ƒ Các l p mi n c s d li u
B ng cách chia thi t k ch ng trình thành 3 mi n này, u ó cho phép hi u và t o các mi n d dàng h n.

Giao di n ng i s d ng Mi n v n Mi n c s d li u

i t ng i t ng c
a s cha khách hàng d li u s
li u
Các ch c n ng bi n c

Ki m soát i t ng
n ph m
Các ch c n ng bi n c

i t ng
n hàng
206 Tr l i bài t p

u này cho phép vi c n i l ng l o gi a các ph n khác nhau c a ch ng trình b ng vi c chia các nh ngh a
p vào ba mi n này. Giao di n ng i dùng bên máy khách cho phép ng i dùng t ng tác v i h th ng.
Các l p mi n v n c dùng bao b c các qui t c kinh doanh. L p c s d li u c dùng cô l p v
trí c a c s d li u làm cho nó thành trong su t v i h th ng. V trí c a các l p mi n v n có th trên máy
ph c v hay máy khách. Vì t ng máy khách dùng m t t p các giá tr khác nhau, nên trong th c hành u
thông th ng là c p cho các i t ng mi n v n vào máy khách.

(2) L p và it ng
it ng là th nghi m c a l p. B n có th coi l p nh nh ngh a. Các l p c nhóm v i nhau nh m t
gói. Gói

nh ngh a
p g m 2 ph n p
• Thu c tính
Thu c tính ch a nh ngh a d li u cho l p.
‚ Ph ng pháp (Methods)
Ph ng pháp tr thành các ch c n ng trong l p.

Tên l p

Thu c tính nh ngh a d li u

Ph ng pháp
Ch c n ng

Vùng truy nh p

Có 3 ki u vùng truy nh p.
a. Công (public)
Truy nh p công ngh a là các ph ng pháp và các thu c tính có th c truy nh p t i t bên ngoài.
p

Thu c tính t
Thu c tính công

Thu c tính t
Thu c tính công

b. Truy nh p t (Private)
u này ngh a là các ph ng pháp hay các thu c tính ch có th c truy nh p b i các ph ng pháp n m
bên trong i t ng. u này ngh a là ngay c các i t ng c a cùng m t l p c ng không th truy nh p
c t i các ph ng pháp t c a các i t ng khác. Vì d li u trong m i l p c qu n lý b i b n thân i
ng này, nên u này có ngh a là các thu c tính th ng là t và các ph ng pháp là công
c. c b o v (Protected)
u này ch áp d ng n u k th a c cài t. Truy nh p c b o v ngh a là các con cháu c a l p này có
th truy nh p các ph ng pháp và các thu c tính ó.
Tr l i bài t p 207

p cha

Thu c tính
cb o v
Ph ng pháp
cb o v

p con

Ph ng pháp

„ Các l p mi n v n
Các l p mi n v n bi u di n cho ng c kinh doanh. Các qui t c kinh doanh c c bao b c trong các
p mi n v n
Tên l p

Các thu c tính

Các qui t c kinh Các ph ng pháp


doanh c chia thành
các l p ch u trách
nhi m x lý b ph n
a chúng Tên l p

Các thu c tính

Các ph ng pháp

(3) Các thu c tính

Các thu c tính bi u di n d li u mà mô t cho l p mi n v n . Các ki u thu c tính khác là


Thu c tính tr ng thái
Thu c tính quan h v i khóa ngo i
n s c a i t ng

• Thu c tính tr ng thái


Các l p c bi t hoá bi u di n các tr ng thái có th c nh ngh a b ng cách s d ng thu c tính tr ng thái.
208 Tr l i bài t p

Các c t c thay th b i thu c


tính và t t c các ph ng pháp và
thu c tính c k t h p.
Thu c tính CurrentState c thêm
vào phân bi t gi a các c t

‚ Thu c tính quan h khóa ngo i


u m t l p có m t liên k t ho c m t k t t p v i m t l p khác, thì khóa ngo i xu t hi n trong l p thi t k . Ví

u BorrowerNo là danh x ng i t ng cho borrower, thì nó c ng xu t hi n nh m t thu c tính trong l p


Borrowed copy.
ƒ B n s c a i t ng (Cardinality of the object)
Các thu c tính ki u s là ng viên t t cho vi c xác nh các tr ng thái gi i h n. B n s c a i t ng c
bi u di n nh m t thu c tính trong l p.
Ví d v ng i m n Borrower và tài li u c m n Borrowed copy

t thu c tính di n t s các b n sao cm n (Number of borrowed copies) có th c thêm vào l p


Tr l i bài t p 209

borrower . T ng s các b n sao cm n (number of borrowed copies) là h u h n. Thu c tính này có th


c s d ng xác nh xem ng i m n có v t quá gi i h n cho phép hay không.

(4) Các ki u ph ng pháp trong các l p mi n v n

Các ph ng pháp c tìm th y trong các l p mi n v n có th c phân lo i là


Các ph ng pháp ki m ch ng tr ng thái
Các ph ng pháp thay i tr ng thái
Các ph ng pháp trao i d li u
• Các ph ng pháp ki m ch ng tr ng thái
Xét k ch b n m n sách trong h th ng th vi n. Ng i m n và tài li u ph i tho mãn m t s u ki n
tr c khi c phép tham gia vào trong k ch b n này. Sau k ch b n này, có s thay i tr ng thái c a các i
ng nh m i quan h c t o ra gi a ng i m n và tài li u.

it ng i t ng sách
Tr c khi di n ra s
ng i có th m n
ki n m n sách
n

ch b n
n sách

Sau khi di n ra s i t ng i t ng sách


ki n m n sách ng im n cm n

i quan h c t o gi a ng i
n và sách

Ph ng pháp ki m ch ng tr ng thái c s d ng xác nh tr ng thái ban u c a i t ng. Các i


ng tài li u v i tr ng thái có s n c phép tham gia trong vi c m n sách. u này ngh a là ph ng pháp
ki u nh IsAvailable cho cái ra ki u True/False có th c s d ng xác nh xem i t ng tài li u là
trong tr ng thái s n có hay không.
Ví d v ph ng pháp ki m ch ng tr ng thái trong l p Copy (ví d VB)
public Sub IsAvailable( OutReply As Boolean)
‚ Ph ng pháp thay i tr ng thái
Ph ng pháp này c s d ng làm cho i t ng thay i tr ng thái c a nó.
Ví d trong tr ng h p k ch b n m n sách
i t ng tài li u c thay i t tr ng thái s n có sang tr ng thái ã c m n. u này ngh a là kh
ng nh n di n i t ng ng i m n liên k t ph i c truy n qua i t ng tài li u.
Ví d v ph ng pháp thay i tr ng thái trong l p Copy
public Sub Borrow( InBorrower As Borrower)
ƒ Ph ng pháp trao i d li u
Ph ng pháp này bi u di n s trao i thông tin gi a các i t ng. Giao di n ng i s d ng có th yêu c u
các giá tr c nêu ra cho th gi i th c. Thay vì t o nhi u ph ng pháp trao i d li u, m t c u trúc trao
i có th c nh ngh a nh m t tham bi n. Hai ph ng pháp có th c nh ngh a bi u di n d li u
truy n i ho c d li u tr l i.

(5) S ph thu c gi a các it ng

i l p có vùng trách nhi m riêng c a nó. Khi m t khách hàng c th c tích tr , tiêu chu n truy nh p nh
giá tr khóa c truy n vào m t ph ng pháp trong l p khách hàng (Customer). L p khách hàng s không
210 Tr l i bài t p

c tr c ti p c s d li u. Vi c vi t và c c s d li u thu c trách nhi m c a l p Database. Thay vì th m t


i t ng c a l p database c t o trong thân c a ph ng pháp Customer. Ph ng pháp c cung c p b i
i t ng database r i c th c hi n b ng vi c truy n tiêu chu n truy nh p c yêu c u và nh n l i d li u.
Không gi ng nh các ch ng trình truy n th ng, d li u c s d ng thi t l p các giá tr trong i t ng
mi n v n , t c là customer.

Trong truy c p d li u,
i i t ng c
nói t i khôi ph c d
li u c a riêng chúng
ng cách s d ng
các ph ng pháp
c cung c p b i i
ng c s d li u

i t ng
s d li u

(6) L p c s d li u (Database)
p c s d li u c s d ng che gi u v trí c a máy ph c v c s d li u. Nó c x lí gi ng nh
máy u quy n proxy cho máy ph c v . Trong môi tr ng khách/ph c v , l p c s d li u s th c t giao ti p
i máy ph c v c s d li u. Nh c m là giao di n máy khách c s d li u ph i c cài t.

Máy khách Máy ph c v c s d li u

Giao th c c s d li u
ph n u khi n c s d c s d ng
li u ph i c xác nh trong
máy khách
Ngày nay, các ki n trúc a bên ã thành thông d ng h n. Trong ki n trúc a bên, i t ng c s d li u trong
máy khách th c t là m t u quy n proxy s d ng giao th c chu n nh SOAP truy nh p các d ch v web
trên máy ph c v . Sau ó, các d ch v web có th truy nh p máy ph c v c s d li u ho c máy ph c v web
khác i t i máy ph c v c s d li u. Các d ch v web có th c coi nh m t t h p các ph ng pháp
p mi n v n c yêu c u mà ã c a ra s d ng.

Máy ph c v
Máy ph c v Web c s d li u

Máy khách

ph n u khi n c s d li u
không c n trong máy khách
Tr l i bài t p 211

Các l p mi n v n ban u

ch v web
p

Các ph ng pháp Các


ph ng pháp

ch v web Các
ph ng pháp

Các ph ng pháp p

Các
ph ng pháp
212 Tr l i bài t p

Tr l i bài t p
Tr l i cho Quy n 3 Ch ng 1 (C u trúc d li u)
Danh sách áp án
______________________________________________________________
áp án
Q 1: c Q 2: b Q 3: b Q 4: d Q 5: c
Q 6: c Q 7: d Q 8: b Q 9: a Q 10: c
Q 11: b Q 12: c

Tr l i và mô t

Q1

Tr l i
c. 190

Mô t
trí c a a[5,6] trong m ng nh sau.

a[1,1] a[1,2] a[1,10]


a[2,1] a[2,2] a[2,10]
a[3,1] a[3,2] a[3,10]
a[4,1] a[4,2] a[4,10]
a[5,1] a[5,2] a[5,3] a[5,4] a[5,5] a[5,6]

Nó v trí th 46.
a ch m t hai c a (a[1,2]) là 100 + 2*1=102
Và a ch m t ba c a (a[1,3]) là 100 + 2*2=104.
Vì v y a ch m t 46 là
100 + 2*45=190

Q2

Tr l i
b. Con tr cho Shizuoka c t là 70 và con tr cho Atami c t là 150

Mô t
Danh sách m t chi u có th c hình dung nh sau:
10 Tokyo-->50 ShinYokohama-->90 Atami-->70 Hamamatsu-->30 Nagoya
Sau khi chèn Shizuoka gi a Atami và Hamamatsu, danh sách m t chi u s nh sau
10 Tokyo-->50 ShinYokohama-->90 Atami-->150 Shizuoka-->70 Hamamatsu-->30 Nagoya
Tr l i bài t p 213

Vì v y, con tr c a Shizuoka s là 70. Con tr c a Atami s là 150.


Con tr u a ch li u Con tr
10 10 Tokyo 50
30 Nagoya 0
50 Shin Yokohama 90
70 Hamamatsu 30
90 Atami 150
150 Shizuoka 70

Q3

Tr l i
b. Hàng i

Mô t
Hàng i c g i là h th ng vào tr c ra tr c (FIFO) à ây là câu tr l i
Ng n x p c cho là h th ng vào sau ra tr c (LIFO).
Cây nh phân là lo i c u trúc cây mà th t chèn và th t truy c p là c l p (không gi ng FIFO ho c
LIFO)
ng là lo i cây nh phân.

Q4

Tr l i

A b c d e

1 3 3 3 6
7 4 4 7 4
3 5 6 1 3

Mô t
Ng n x p qu nl ý d li u theo FILO(vào tr c ra sau).
PUSH 1-->PUSH 5-->POP-->PUSH 7-->PUSH 6-->PUSH 4-->POP-->POP-->PUSH 3
PUSH 1-->PUSH 5
5
1

POP
1

PUSH 7-->PUSH 6-->PUSH 4


4
6
7
1

POP-->POP
7
1
214 Tr l i bài t p

PUSH 3
3
7
1

Q5

Tr l i
c. 4

Mô t
Ch s Giá tr Con tr 1 Con tr 2

1 200 3 2
2 220 0 0
3 180 5 a
4 190 0 0
5 150 6 0
6 130 0 0
Hình 1 Cây nh phân Hình 2
ng di n t cây nh phân

Trong hình 1 trên, m i nút di n t b ng m t s ch s , con tr 1 xác nh giá tr ch s c a nó t nút con


bên trái, con tr 2 xác nh giá tr ch s c a nó t nút con bên ph i.
"a" ngh a là giá tr tr s c a nút bên ph i c a 180 t c là 190 và giá tr ch s là 4.

Q6

Tr l i
c. 13

Mô t
Trong cây nh phân, m i nút ph i th a mãn u ki n sau.
Giá tr khóa l n nh t c a các nút bên trái nút < Giá tr khóa c a nút < Giá tr khóa nh nh t c a các nút
bên ph i nút
Vì v y
Nút có giá tr 12 ph i có giá tr l n h n 10 và nh h n 14.
Tr l i bài t p 215

Q7

Tr l i
d. hicdbjfkgea

Mô t
Tìm ki m là th c hi n s d ng ph ng pháp th t ví tr , ngh a là
m b t u d i cùng bên trái, phía ph i m i nút c theo dõi m t cách tu n t .
Vì v y, h, i và c c a ra tr c.

Q8

Tr l i
b. A + B × C - (D + E) ÷ F

Mô t

+ ÷
A X F
+
B C D E
Ký hi u

Vì v y,

di n t B x C,

di n t A + B x C
216 Tr l i bài t p

ng cách gi i thích d a theo h ng d n nh trên, câu tr l i là


A + B x C - (D + E) / F

Q9

Tr l i
a. Chia ra và g p l i các nút cho phép chi u sâu phân c p tr thành nh nhau.

Mô t
a là úng.
b ph n ánh b m
(b. Nh n di n v trí n i d li u c l u gi b ng vi c dùng m t hàm nào ó và giá tr khoá.)
c mô t các t p truy c p tu n t
(c. Ch có th truy nh p tu n t t i d li u u và d li u ti p ó.)
d di n t các t p t ch c phân ho ch
(d. Có danh m c và m t thành viên. Thành viên là t p c t ch c tu n t .)

Q10

Tr l i
c. 11

Mô t
Trong câu h i này c n tìm v trí A sau khi 7 c chèn vào v trí .

1) i ch 7 và 25 vì 7 < 25

2) i ch 7 và 11 vì 7 < 11

3) i ch 7 và 9 vì 7 < 9.
Tr l i bài t p 217

u này hto i mãn yêu c u hoàn thành vi c i ch .

Sau khi i ch nh trên, ph n t trong v trí A là 11. Vì v y, câu tr l i là c.

Q11

Tr l i
b. 2

Mô t
Ch c n ng b m
mod(a1 a2 a3 a4 a5, 13)
mod(54321,13)=mod(5+4+3+2+1,13)=2
Vì v y ch s c a 54321 là 2.

Q12

Tr l i
c. 0.7

Mô t
ng b m v i 10 phân t
Vì v y xác xu t t ng ngh a không x y ra cho các giá tr 5 là
9/10 x 8/10 x 7/10 x 6/10 = 3024/10000
Xác xu t xung t x y ra là
1-0.3024=0.6976
218 Tr l i bài t p

Tr l i cho Quy n 3 Ch ng 2 (Các thu t toán)


Danh sách áp án
______________________________________________________________
áp án
Q 1: a Q 2: d Q 3: c Q 4: b Q 5: d
Q 6: d Q 7: e Q 8: e Q 9: d Q 10: c
Q 11: a Q 12: b

Tr l i và mô t

Q1

Tr l i
a. Tuy n tính

Mô t
a. Tuy n tính
Thu t toán tìm ki m tuy n tính tìm các ph n t tu n t t u t i cu i b ng à ây là câu tr l i
b. Nh phân
Ph ng pháp tìm ki m nh phân là ph ng pháp thu h p d li u ích xu ng trong khi chia vùng tìm
ki m thành hai ph n. Các ph n t không c tìm ki m m t cách tu n t .
c. B m
m là cách s d ng c u trúc d li u ki m m ng. S d ng b m, b n có th truy c p tr c ti p t i d
li u c th s d ng khóa không truy c p d li u b n ghi i x ng m t m t.
d. ng
ng là lo i cây tìm ki m nh phân. Nó là cây nh phân hoàn h o, có m i liên h v kích c gi a nút
cha và nút con. ng khác v i tìm ki m nh phân ch ng không có m i quan h v kích c gi a
các nút anh em.
Tr l i bài t p 219

Q2

Tr l i
d. X = ai

Mô t
Ch s 1 2 3 ... i ... n n+1
Giá tr a1 a2 a3 ... ai ... an X
pl it b c 2 t i b c 4.
Kho ng tr ng di n t u ki n l p.
u ki n t n t i là giá tr c tìm th ho c v trí cu i c tìm .
Vì v trí cu i ho c không c ki m tra trong b c 5, ô tr ng s là giá tr c tìm th , ví d X phù
p v i giá tr ph n t hiên t i. à Câu tr l i là d

Q3

Tr l i
a b
C k + l → lo k - l → hi

Mô t
t u

1 → l0
n → hi

( l 0 + h i) / 2 → k

= A( k ) : x
>

a
a a
b

l0:hi ≤
>
nt ix Không t n t i x

t thúc
220 Tr l i bài t p

Ph ng pháp tìm ki m nh phân là ph ng pháp thu h p d li u ích trong khi chia vùng tìm ki m
thành hai ph n.
1) ch tr ng a
u A(k) < X, chia vùng có n a cao h n thành hai ph n, vì v y k+1 à lo .
2) kho ng tr ng b
u A(k) > X, chia vùng n a th p h n thành hai ph n, vì v y k-1 à hi
Do ó, câu tr l i là c.

Q4

Tr l i
b. 11

Mô t
Trong tìm ki m nh phân, s l n so sánh trung trình và l n nh t v i s các ph n t là N:
-S l n so sánh trung bình là [log2N]
-S l n so sánh l n nh t là [log2N] +1
([ ] là ký t Gaussian và s th p phân c a giá tr a ra trong ký t c b b t.)
l n trung bình là k thì
1 <= 2000/2k < 2
2k <= 2000/2k < 2k+1
ây,
log21024 = log2(2)10=10 <= log22000 < log22048 = log2(2)11=11
Vì v y k = 10 và s l n l n nh t là k+1 = 11
à câu tr l i là b.

Q5

Tr l i
d. N u s d li u là 10 hay nh h n, thì s l n so sánh trung bình mà ph ng pháp duy t
tuy n tính òi h i là nh h n s l n trung bình c a ph ng pháp duy t nh phân.

Mô t
Trong tìm ki m nh phân, s l n so sánh trung bình và l n nh t v i s các ph n t là N:
-S l n trung bình là [log2N]
-S l n l n nh t là [log2N] +1
Trong tìm ki m tuy n tính, s l n so sánh l n nh t là: N u s ph n t là N,
Tr l i bài t p 221

-S l n so sánh trung bình là N/2


-S l n so sánh l n nh t là N

a. Dùng ph ng pháp duy t nh phân, d li u ph i c s p x p.


a là úng.

b. duy t 100 d li u b ng vi c dùng ph ng pháp duy t nh phân, s l n so sánh t i a


c c n t i tìm ra d li u ích là 7.
u N=100, s l n trung bình cho tìm ki m nh phân là
log2100 < log2128 = log2(2)7
Vì v y trung bình là 6 và l n nh t là 7 à b c ng úng.

c. N u ph ng pháp duy t tuy n tính c dùng, s l n so sánh không nh t thi t gi m i cho


dù d li u ã c l u gi .
C c ng úng.

d. N u s d li u là 10 hay nh h n, thì s l n so sánh trung bình mà ph ng pháp duy t


tuy n tính òi h i là nh h n s l n trung bình c a ph ng pháp duy t nh phân.
u N=10,
l n tìm ki m tuy n tính trung bình là 10/2 = 5
l n tìm ki m nh phân trung bình là log210 < log2(2)4 = 4
Vì v y d là sai à ây là câu tr l i

e. N u s d li u t ng lên t 100 t i 1,000, thì s l n so sánh t ng lên 10 l n h n ph ng


pháp duy t tuy n tính c dùng. B ng vi c dùng ph ng pháp duy t nh phân, s này
ng lên hai hay ít h n.
l n trung bình c a tìm ki m nh phân v i N=100 và N=1000 là nh d i ây. Vì v y
e c ng úng.
u N=100, log2100 < log2128 = log2(2)7
u N=1000, log21000 < log21024 = log2(2)10

Q6

Tr l i
a b c d
D T ng d n S px p p x p ngoài G p

Mô t
1) a, b
p x p d li u theo th t tu n t t giá tr nh nh t n giá tr l n nh ngh a là
p x p t ng d .
222 Tr l i bài t p

2) c
u dãy d li u ích là l u tr ph , thì ho t ng này g i là p x p ngoài .
c.f. S p x p ngoài ngh a là s p x p d li u trong n v b nh chính. S p x p ngoài
ngh a là d li u l u tr c l u tr trên a t ho c n v l u tr ph khác.
3) d
Tích h p hai ho c nhi u t p c l u tr theo th t trong m t t p c g i là

Q7

Tr l i
e. S p x p n i b t

Mô t

t u

các ph n t →n

Vòng l p
n≤1

1→i

Trao i
i=n

A ( i ) : A (i + 1)

A(i)→w
A(i+1)→A(i )
w → A ( i + 1)

i+1→i

Trao i

n-1→n

pl i

t thúc
Tr l i bài t p 223

Trong l u trên, so sánh A(i) và A(i+1), n u A(i) > A(i+1), chúng c i ch , ví d ,


t c p ph n t ti p theo m i ph n t trong chu i c so sánh và n u chu i s là sai
thì i ch .
Ph n này mô t s p x p n i b t. à câu tr l i là e.

Q8

Tr l i
e. 10,000

Mô t
Trong c c u s p x p n i b t, hai ph n t ti p theo m i ph n t trong chu i c so
sánh và n u chu i sai thì i ch .
ph c t p c a máy n toán là n2 (t ng ng v i m t hình vuông có c nh n, n: s
li u)
u s d li u l n g p 100 l n (tr c kia là 1000 và bây gi là 100 000), thì th i gian
c tính s là (100)2 = 10,000 l n so v i tr c kia.
à câu tr l i là e. 10,000.

Q9

Tr l i
d. S p x p vun ng là ph ng pháp s p x p d li u b ng vi c bi u di n m t vùng ch a s p
p nh m t cây con, l y giá tr t i a hay t i thi u t mi n ch a s p, chuy n giá tr t i a
hay t i thi u vào vùng c s p x p và l p l i vi c này thu h p d n mi n ch a s p x p.

Mô t
a. S p x p nhanh Quick sort là ph ng pháp s p x p d li u theo các dãy con bao g m các
kho n m c d li u c l y t các kho ng và s p x p các dãy con nh h n bao g m các
kho n m c d li u c l y t i kho ng nh nh t.
Câu này mô t ph ng pháp s p x p bóc v mà hai y u t d li u c xác nh
ngay t m i y u t t i kho ng th i gian nào ó c ch n ra t dãy d li u.

b. S p x p bóc v Shell sort là ph ng pháp s p x p d li u b ng cách so sánh m t c p các


ph n t k nhau và tráo i chúng n u ph n t th hai l n h n ph n t th nh t.
Câu này mô t ph ng pháp s p x p n i b ,là ph ng pháp so sánh m t c p các
ph n t k nhau.

c. S p x p n i b t Bubble là ph ng pháp s p x p d li u b ng cách t m t giá tr tham


chi u trung gian, phân b các phân t v i giá tr l n h n giá tr tham chi u trong ph n này
và t các ph n t v i giá tr nh h n giá tr tham chi u vào ph n kia và l p l i vi c này
cho t ng ph n riêng m t.
224 Tr l i bài t p

Câu này mô t ph ng pháp s p x p nhanh .

d. S p x p vun ng là ph ng pháp s p x p d li u b ng vi c bi u di n m t vùng ch a s p


p nh m t cây con, l y giá tr t i a hay t i thi u t mi n ch a s p x p, chuy n giá tr
i a hay t i thi u vào vùng c s p x p và l p l i vi c này thu h p d n mi n ch a
p x p.
ây là mô t v ph ng pháp s p x p vun ng. à ây là câu tr l i

Q10

Tr l i
c. D li u c chia thành m t nhóm các d li u nh h n m t giá tr tham chi u và nhóm
kia là các d li u l n h n giá tr tham chi u. Trong t ng nhóm, m t giá tr tham chi u m i
c l a ra và d li u gi ng th l i c phân chia thành hai nhóm d a trên giá tr tham
chi u này. Vi c này c th c hi n l p l i.

Mô t
Trong câu h i này c n tìm mô t thích h p v s p x p nhanh.
Ph ng pháp s p x p nhanh do Hoare thi t k . Nó di n t ph ng pháp s p x p
nhanh nh t s d ng ph ng pháp quy.
Giá tr tham chi u ( m th ho c giá tr th ) c ch n t d li u c s p x p. Giá
tr trung bình c a ba ph n t (ph n t trái, chính gi a, ph i) c s d ng th ng
xuyên. Sau ó, ph n t d li u nh h n giá tr chính c chuy n sang trái c a giá tr
chính trong khi nh ng ph n t d li u l n h n giá tr chính c chuy n sang ph i.
t c ph n t d li u c chia thành hai ph n.
Ho t ng phân chia này c th c hi n l p l i cho n khi ch còn l i m t ph n t .
à c. là mô t thích h p v ph ng pháp s p x p nhanh à ây là câu tr l i

a. So sánh và tráo i c th c hi n cho hai d li u xa nhau v i kho ng cách nào ó.


Kho ng cách này d n d n và liên t c c thu h p s p x p m i d li u.
a. mô t ph ng pháp s p x p nhanh.

b. Giá tr t i thi u th nh t c tìm ra trong d li u. Giá tr t i thi u th hai c tìm ra


trong d li u mà trong ó giá tr t i thi u th nh t không c bao hàm. Vi c này c
th c hi n l p l i.
b. mô t ph ng pháp l a ch n c b n.

d. D li u k nhau c so sánh và tráo il p il pl i cho phép d li u nh h n c


chuy n v cu i m ng d li u.
d. mô t ph ng pháp s p x p n i b t.
Tr l i bài t p 225

Q11

Tr l i
a. TANGO (i) → TANGO (i+1)

Mô t
t u

TANGO ( n ) → TANGO ( 0 )

Vòng l p
i : n 1, -1, 0

Vòng l p

t thúc

Thu t toán này bao g m


1) TANGO(n) à TANGO(0)
2) L p, giá tr ch s thay i t n-1 t i 0 v i l ng gi m b ng 1

Áp d ng thu t toán trên ta có.


Gi s n=5 và m ng TANGO là ban u. Ví d các t FE , SW , JITEC , JIPDEC và METI
c l u tr l n l t theo th t trong TANGO(1), TANGO(2), TANGO(3), TANGO(4) và
TANGO(5).

FE SW JITEC JIPDEC METI


TANGO(0) TANGO(1) TANGO(2) TANGO(3) TANGO(4) TANGO(5)

Sau khi áp d ng thu t toán này, t trong TANGO(n) gi s c l u tr trong TANGO(1), sau ó
các t còn l i c d ch sang ph i.
METI METI FE SW JITEC JIPDEC
TANGO(0) TANGO(1) TANGO(2) TANGO(3) TANGO(4) TANGO(5)

Sau khi th c hi n TANGO(5)àTANGO(0) , th c hi n theo vòng l p (giá tr ch s thay i t n-1


n0v il ng gi m m t giá tr )
TANGO(4) à TANGO(5)
TANGO(3) à TANGO(4)
:
TANGO(0) à TANGO(1)
226 Tr l i bài t p

u này có th c mô t s d ng ch s nh TANGO(i) à TANGO(i+1).


Vì v y câu tr l i là a.

b. TANGO (i) → TANGO (n-i)


c. TANGO (i+1) → TANGO (n-i)
d. TANGO (n-i) → TANGO (i)
b,c,d là sai.

Q12

Tr l i
b. Nh c th y theo quan m hình h c, ph ng pháp thu l y l i gi i x p x b ng vi c
dùng ng ti p tuy n c a y = f(x).

Mô t
Ph ng pháp thu t toán Newton c mô t nh sau. Nh c ch ra d i ây, nó thu cl i
gi i b ng cách s d ng ng ti p tuy n y=f(x). Vì v y câu tr l i là b.

c1
ng ti p tuy n y = f(x) t i p1( x1, y1) và thu c m x2 là giao c a ng ti p tuy n và
tr c x.
c2
ng ti p tuy n y = f(x) t i p2 (x2, y2) và thu c m x1 là giao c a ng ti p tuy n và
tr c x. Khi b c này c th c hi n l p i l p l i thì ng ti p tuy n chuy n g n t i k t qu .
c3
khác nhau gi a các giá tr x p x g n k nhau thu c trong b c2 c so sánh v i chính
xác c a giá tr h i t c xác nh tr c. Th c hi n l p l i b c 1 và 2 cho t i khi s khác nhau
này nh h n giá tr h i t c xác nh tr c.

Bi u th c ng ti p tuy n t i p1 là y-f(x1) = f'(x1)(x-x1), m x2 là giao c a ng ti p tuy n và


tr c x s d ng bi u th c sau:
f (x i )
x i +1 = x 1 −
f ′( x i ) (i = 0, 1, 2, ...)

a. M c d u m t hàm f(x) không th c l y vi phân, nh ng v n có th thu c m t l i gi i


px.
u này là sai vì ph ng pháp này s d ng vi phân nh gi i thích trên.

c. Cung c p hai giá tr kh i u khác nhau.


u này c ng sai vì ch m t k t qu c a ra t m t giá tr ban u.
Tr l i bài t p 227

d. V i b t kì giá tr ban u nào bao gi c ng thu c m t giá tr x p x .


Trong tr ng h p f (x n) =0, h i t s không bao gi di n ra, qua ó không thu c
giá tr x p x .
228 Tr l i bài t p

Tr l i cho Quy n 3 Ch ng 3 (Thi t k trong)


Danh sách áp án
______________________________________________________________
áp án
Q 1: b Q 2: a,e Q 3: a Q 4: e Q 5: d

Tr l i và mô t

Q1

Tr l i
b. Thi t k d li u v t lý

Mô t
Trong câu h i này c n tìm công vi c th c hi n thích h p nh t trong thi t k trong, nh b ph n c a
ho t ng phát tri n h th ng trong s các l a ch n sau.
a. Thi t k mã b. Thi t k d li u v t lý c. Thi t k ch ng trình theo c u trúc
d. nh ngh a các yêu c u e. Thi t k d li u Logic

Thi t k trong, không gi ng nh thi t k ngoài, xác nh cách th c hi n h th ng t quan mc a


nhà phát tri n.
Các ch c n ng c a h th ng c chia theo module (các ch ng trình) và giao di n gi a các
module (các ch ng trình) c nh ngh a rõ ràng.
Thi t k trong d a trên k t qu c a thi t k ngoài, k t qu thi t k trong c s d ng trong b c
ti p theo, thi t k ch ng trình.
Các ho t ng c a thi t k trong bao g m
- Phân tích ch c n ng
- Thi t k c u trúc
- Thi t k d li u v t lý
- Thi t k vào ra
- Xem xét thi t k trong
Vì v y câu tr l i là b. Thi t k d li u v t lý
Tr l i bài t p 229

Q2

Tr l i
a. cl ng dung l ng và th i gian truy nh p e. Xác nh cách b trí b n ghi

Mô t
Trong câu h i này c n xác nh hai tác v c th c hi n trong thi t k d li u v t lý trong giai n
thi t k trong.
a. c l ng dung l ng và th i gian truy nh p b. Xác nh các y u t d li u
c. Phân tích các m i quan h d li u d. T o các c t t p
e. Xác nh cách b trí b n ghi

Thi t k d li u v t lý bao g m các ho t ng nh gi i h n dung l ng t p, thi t k l u tr c s


li u, v.v
Trong s các l a ch n trên, a và e c th c hi n trong thi t k trong.
Các l a ch n khác ( b, c và d) c th c hi n trong thi t k ngoài.

Q3

Tr l i
a DFD

Mô t
Trong câu h i này c n xác nh bi u c s d ng trong phân tích c u trúc di n t các ch c
ng và lu ng d li u b ng cách s d ng các ký hi u a ra lu ng d li u, x lý (các ch c n ng),
kho d li u và ngu n ngoài (ngu n d li u c sinh ra và g i i).
a. DFD b. ERD c. S NS d. Bi u chuy n tr ng thái
e. Bi u ò Warnier

a DFD
Chu n DFD cho bi u lu ng d li u: và bi u này mô t trong câu h i. à ây là câu tr l i
b Bi u E-R
Bi u này c s d ng trong mô hình d li u a ra các th c th và m i quan h gi a
chúng.
cS NS
Bi u này c s d ng trong l p trình c u trúc.
d Bi u chuy n tr ng thái
Bi u này di n t các tr ng thái và các giao d ch gi a các tr ng thái.
e Bi u Warnier
230 Tr l i bài t p

Bi u này c ng c s d ng trong thi t k module.

Q4

Tr l i
e. M i quan h gi a các b c vào/ra và x lí có th c bi u di n rõ ràng.

Mô t
Trong câu h i này c n xác nh mô t thích h p v HIPO, m t trong các ph ng pháp thi t k c u
trúc.
a. Bi u các n i dung và bi u lu ng d li u c dùng.
b. Thông tin u khi n c truy n qua gi a các kh i x lí c mô t cùng v i các m i tên
trong bi u n i dung.
c. Bi u n i dung ch ra ch c n ng toàn th c a ch ng trình, và các s c a vào
trong các kh i x lí ch ra trình t x lí.
d. Các kí hi u trong l u c dùng ch ra cái gì c ch n và cái gì c l p l i.
e. M i quan h gi a các b c vào/ra và x lí có th c bi u di n rõ ràng.

Chu n HIPO cho bi u phân c p c ng cái vào v i x lý cái ra


Ph n pb là b ng hi n th n i dung mà hi n th các module trong c p b c gi ng
nhau t i bi u t ch c. Ph n ng cái vào x lý cái ra là bi u a ra t t c các
quy trình, u vào và u ra.
Vì v y a,b,c và d u úng.
Câu tr l i là e.

Q5

Tr l i
d. hoàn thành ti n trình ang di n ra, màn hình ph i c thi t k ng n c n ng i
dùng b d vi c a d li u vào, hay tr l i màn hình tr c ó.

Mô t
Trong câu h i này c n xác nh xem xét không thích h p v thi t k màn hình trong
thi t k trong và thi t k ngoài.
a. Vi c chuy n màn hình nên c thi t k v i vi c xem xét không ch vi c l a t ng b c
ng vi c dùng m t menu, mà còn v i truy nh p tr c ti p vào màn hình mong mu n cho
ng i dùng ã thành th o.
b. T ng kho n m c mà d li u c a vào trên màn hình ph i c bao trong ngo c
vuông, nh n m nh r ng nó là tr ng a vào d li u.
c. Cách b trí màn hình ph i c thi t k theo cách các kho n m c c n tham chi u c thu
p t trái sang ph i, và t trên xu ng d i.
d. hoàn thành ti n trình ang di n ra, màn hình ph i c thi t k ng n c n ng i
Tr l i bài t p 231

dùng b d vi c a d li u vào, hay tr l i màn hình tr c ó.


e. B trí màn hình ph i c chu n hoá; các qui t c v v trí cho hi n th tiêu và thông báo
ph i c thi t l p.
Trong các l a ch n trên, d là không thích h p vì nó ch thu hút t i s thu n ti n c a h
th ng mà không thu n ti n cho ng i dùng ho c gi m ho t ng. Thi t k màn hình
nên c th c hi n b ng cách chú ý t i y u t giao di n con ng i.
232 Tr l i bài t p

Tr l i cho Quy n 3 Ch ng 4 (Thi t k ch ng trình)


Danh sách áp án
______________________________________________________________
áp án
Q 1: e Q 2: c Q 3: c Q 4: d Q 5: c
Q 6: a Q 7: d Q 8: b

Tr l i và mô t

Q1

Tr l i
e. Nên a vào các chú thích úng làm cho d hi u logic bên trong mô un.

Mô t
Trong câu h i này c n xác nh nh n xét không thích h p trong phân ho ch module.
a. S các mô un c p d i mà m t mô un có th g i t i ph i c gi i h n.
b. Mô un ph i c thi t k sao cho nó ch a m t s úng các b c.
c. Trong thi t k c u trúc c p b c mô un này g i t i mô un kia, ph i ý t i vi c gi chi u
sâu trong gi i h n xác nh.
d. Giao di n gi a các mô un ph i c làm n gi n hoá.
e. Nên a vào các chú thích úng làm cho d hi u logic bên trong mô un.
t c a, b, c và d là xem xét thi t k module.
e là th c hành mã úng nh ng không liên quan t i phân ho ch module.
Vì v y, câu tr l i là e.

Q2

Tr l i
Ch c n ng
Vào d li u Ch n s Tính giá tr trung bình Hi n th k t qu
c Ngu n Ngu n Bi n i ch a

Mô t
Trong câu h i này, k t h p úng các c m ch c n ng c a ch ng trình d a trên phân ho ch
STS. Ch ng trình này c d li u, ch n d li u s và a ra giá tr trung bình.
Tr l i bài t p 233

Ch c n ng
Vào d li u Ch n s Tính giá tr trung bình Hi n th k t qu
a ch a B ch a Ngu n Bi n i
b ch a Ngu n Ngu n Bi n i
c Ngu n Ngu n Bi n i ch a
d Ngu n Bi n i Bi n i ch a
e Bi n i B ch a ch a Ngu n

Trong ph ng pháp phân ho ch STS (ho c phân tích), m t ch ng trình c chia thành ba ph n
nh sau
1) Ngu n (Ch c n ng x lý u vào)
2) Bi n i (Ch c n ng x lý d li u)
3) B ch a (Ch c n ng x lý u ra)
Trong ph ng pháp này, m vào tr u t ng hóa l n nh t, n i d li u không th c xem xét
lâu h n d li u u vào và m ra tr u t ng l n nh t, n i d li u b t u mang hình nh d li u
u ra.
Ch ng trình trong câu h i c d li , ch n d li u s và hi n th giá tr trung bình . H n n a
tính d li c ng c th c hi n. u này c ng tính th c t trung bìnhcó th c a ra nh
sau.

Ch n s Tính trung bình Hi n th k t qu


c d li u

Lu ng d li u vào Lu ng d li u ra
m vào m ra tr u
tr u t ng ng l n
n nh t nh t

Ngu n Bi n i ch a
234 Tr l i bài t p

Q3

Tr l i
c. Ph ng pháp phân ho ch giao tác

Mô t
Trong câu h i này c n xác nh tên ph ng pháp phân tích c dùng cho s chia theo ch ng
trình c p nh t t p.
C p nh t t p

p nh t tr ti n p nh t công p nh t kh u
b n nh t tr

a. Ph ng pháp phân ho ch STS b. Ph ng pháp Jackson


c. Ph ng pháp phân ho ch giao tác d. Ph ng pháp Warnier

Phân tích là ti n trình chia ch c n ng thành module thành các m u ít ph c t p nh t. Có ba lo i


ph ng pháp phân tích ng lu ng d li .
1) Phân tích b ch a/Bi n i/Ngu n
2) Phân tích giao tác
3) Phân tích ch c n ng
Có các ph ng pháp phân tích ng c u trúc d li sau:
1) Ph ng pháp Jackson
2) Ph ng pháp Warnier

Trong tr ng h p trên, khi m i ph n sau khi phân tích di n t m t giao tác khác nhau, câu tr l i là
c. Phân tích giao tác.

Q4

Tr l i
d. Ph ng pháp phân ho ch giao tác

Mô t
Trong câu h i này c n tìm ph ng pháp s d ng chuy n bi u lu ng d li u c t o ra b i
phân tích c u trúc thành bi u c u trúc c s d ng cho thi t k c u trúc?
a. Ph ng pháp KJ b. Ph ng pháp OMT c. Ph ng pháp Jackson d. Ph ng pháp
phân ho ch giao tác
Câu tr l i là d.
Tr l i bài t p 235

a là ti p c n khoa h c gi i quy t v n , do Jiro Kawakita Nh t B n phát tri n


b là m t trong các ph ng pháp h ng it ng.
c là ph ng pháp phân ho ch h ng c u trúc d li u.

Q5

Tr l i
c. Ph ng pháp Jackson

Mô t
Trong câu h i này c n xác nh k thu t phân ho ch module t p trung vào c u trúc d li u.
a. Ph ng pháp phân ho ch ch c n ng chung
b. Ph ng pháp phân ho ch ngu n/bi n i/b ch a (ph ng pháp phân ho ch STS)
c. Ph ng pháp Jackson
d. Ph ng pháp phân ho ch giao tác (ph ng pháp phân ho ch TR)
t c a, b và d là k thu t phân ho ch h ng lu ng d li u.
Vì v y câu tr l i là c, ph ng pháp Jackson ho c JSP (Jackson Structured
Programming.)

Q6

Tr l i
a. Bi u c u trúc c a d li u vào và ra c v v i chú ý chính d n vào c u trúc d li u.
Bi u c u trúc ch ng trình c chu n b d a trên bi u c u trúc d li u vào/ra.

Mô t
Trong câu h i này c n xác nh mô t úng nh t v ph ng pháp Warnier cs
ng t o th t k ch ng trình theo c u trúc.
a. Bi u c u trúc c a d li u vào và ra c v v i chú ý chính d n vào c u trúc d li u.
Bi u c u trúc ch ng trình c chu n b d a trên bi u c u trúc d li u vào/ra.
b. Các ch c n ng trong lu ng d li u c g p nhóm vào trong các lo i ngu n, bi n i và
ch a v i chú ý chính c d n vào lu ng d li u c n gi i quy t.
c. Ph n m m c coi nh m t tuy n t p các d li u và qui trình. Tính c l p mô un c
ng lên b ng cách bao b c nh ng d li u và qui trình này.
d. V i chú ý chính c d n vào c u trúc u khi n c a ch ng trình, logic ch ng trình
c thi t k d a trên lu ng u khi n, bi u l m i quan h g i nhau.
Vì ph ng pháp Warnier là ph ng pháp phân ho ch h ng c u trúc d li u, nên câu
tr l i là a.
236 Tr l i bài t p

Q7

Tr l i
d. N i n i dung

Mô t
Trong câu h i này c n xác nh ki u n i module m nh nh t trong b n l a ch n sau:
a. N i công c ng b. N i d u
c. N i d li u d. N i n i dung
i module
t trong nh ng m c ích c a thi t k module là t i thi u hóa n i module v i các
module khác. Nói cách khác là t o s c l p có th . Có 7 lo i n i module. T lo i có
c l p ít nh t t i lo i có s c l p cao nh t nh sau:

Không n i tr c ti p Module không dùng chung d li u v i các module t nh t


khác.
i d li u (c) Hai module ch dùng chung thông tin qua ph n t d
li u ng nh t.
i d u (b) Hai module tham chi u cùng m t c u trúc d li u
không toàn c u.
i u khi n t module i th ng qua ph n t ki m soát t i
module khác
i ngoài t nhóm các module tham chi u c u trúc d li u
toàn c u truy c p gi i h n (t p toàn c u).
i công công (a) Nhóm các module tham chi u c u trúc d li u toàn
u.
i n i dung (d) M t module tham chi u tr c ti p vào trong các i nh t
module khác ho c m nh
nh t

Q8

Tr l i
b. a=3, b=7

Mô t
Trong câu h i này c n xác nh c p ch ng trình sau a ra k t qu bao nhiêu
Main program Subprogram sub (x, y)
a=3 ; x=x+y ;
b=2 ; y=x+y ;
sub (a, b) ; return ;

x( i chung) c g i b i giá tr và y c g i b i tham chi u.

Trong ch ng trình chính, gán a =3 và b=2.


Tr l i bài t p 237

Sau ó ch ng trình con c th c hi n.


Vì x c g i b i giá tr và y c g i b i tham chi u khi g i ch ng trình con, nên giá
tr c a a c duy t và a ch c a b c duy t.
Vì v y, khi g i ch ng trình con, a không thay i, b tr thành 7.
(x=x+y=3+2=5, y=x+y=5+2=7)

t qu , a =3 (không thay i) và b=7. à Câu tr l i là b.


a. a=3, b=2 b. a=3, b=7 c. a=5, b=2 d. a=5, b=7
238 Tr l i bài t p

Tr l i cho Quy n 3 Ch ng 5 (Th c hi n ch ng trình)


Danh sách áp án
______________________________________________________________
áp án
Q 1: c Q 2: d Q 3: b Q 4: d Q 5: a
Q 6: a Q 7: b

Tr l i và mô t

Q1

Tr l i
c. Ki m th n v → Ki m th tích h p → Ki m th h th ng

Mô t
Trong câu h i này c n xác nh tr t t ki m th thích h p nh t.
a. Ki m th h th ng → ki m th tích h p → ki m th nv
b. Ki m th h th ng → ki m th n v → ki m th tích h p
c. Ki m th n v → ki m th tích h p → ki m th h th ng
d. Ki m th n v → ki m th h th ng → ki m th tích h p

Th t c a ki m th nh sau. à Câu tr l i là c.

Ki mUnit
th tests
nv

KiIntegration
m th tíchtests
h p

Ki System
m th h tests
th ng

Ki Operation
m th v ntests
hành
Tr l i bài t p 239

Q2

Tr l i
d. Ki m th h p tr ng

Mô t
Trong câu h i này c n tìm thu t ng thích h p nh t cho ki m th c ti n hành v i s chú ý nh t
c dành cho c u trúc bên trong c a ch ng trình và thu t toán.
a. Ki m th h th ng b. Ki m th trên xu ng
c. Ki m th h p en d. Ki m th h p tr ng
e. Ki m th d i lên
Các tr ng h p ki m th cho ki m th h p tr ng c thi t k b ng cách a ra xem xét c bi t
i c u trúc các module trong và lu ng u khi n và logic.
Vì v y, câu tr l i là d.

Q3

Tr l i
b. Ki m th h p en

Mô t
Trong câu h i này c n tìm k thu t chu n b ki m th d li u và ki m th các ch c n ng c a
ch ng trình v i s chú ý nh t c dành cho các m i quan h gi a d li u u vào và k t qu
u ra.
a. Ki m th trên xu ng b. Ki m th h p en
c. Ki m th d i lên d. Ki m th h p tr ng
Trong ki m th h p en, module c xem nh h p en. Sau ó, d li u ki m th c thi t k
ch chú ý t i các giao di n ( u ra và u vào) c a m i module.
Vì v y, câu tr l i là b.

p box
en
u vào

Output

Black
u ra
Input

(module ho c các
(A module or others)
cái khác)

Các chi tidetails


<Internal t bên are
trong
not
không
taken c xem xét
into consideration>

Q4

Tr l i
d. Ki m ch ng r ng không có v n gì v i giao di n gi a các mô un, là các c u ph n c a
ch ng trình
240 Tr l i bài t p

Mô t
Trong câu h i này c n tìm mô t thích h p nh t v ki m th tích h p c ti n hành trong ti n trình
ki m th phát tri n h th ng, ngay sau khi m t n v ki m th (ki m th module) c hoàn
thành.
Trong ki m th tích h p, các ki m th c ti n hành m i ch ng trình c a ra b ng cách
liên k t các module. Các ho t ng c a các ch ng trình và các giao di n gi a các module c
ki m tra.

a. Ki m ch ng r ng h th ng có th th c hi n không có l i nào cho t t c các ch c n ng


c xác nh trong tài li u thi t k ngoài
b. Ki m ch ng r ng t p các m c tiêu v th i gian x lí và m c tiêu th i gian áp ng ã
c tt i
c. Ki m ch ng r ng không có v n gì trong các ki u và s thi t b vào và ra và thi t b
truy n thông c ghép n i
d. Ki m ch ng r ng không có v n gì v i giao di n gi a các mô un, là các c u ph n c a
ch ng trình
e. Ki m ch ng r ng vi c cho ch y nhi u vi c và ghép n i ng th i các thi t b cu i có th
c th c hi n nh ã c xác nh
a. Mô t ki m th h th ng
b. Mô t ki m th h th ng, c bi t là ki m th th c hi n
c. Mô t ki m th v n hành
d. Mô t ki m th tích h p à ây là câu tr l i
e. mô t ki m th v n hành, c bi t là ki m th t i công vi c

Q5

Tr l i
a. Ki m th c ti n hành b ng cách móc n i các mô un theo tr t t mô un th p t i cao.
Các khi n trình c c n t i làm cái thay th cho các mô un m c cao ch a hoàn t t.

Mô t
Trong câu h i này c n xác nh gi i thích thích h p h n v ki m th d i lên.
a. Ki m th c ti n hành b ng cách móc n i các mô un theo tr t t mô un th p t i cao.
Các khi n trình c c n t i làm cái thay th cho các mô un m c cao ch a hoàn t t.
b. T ng mô un riêng l c ki m th . Khi t t c các mô un u ã c ki m th , thì
chúng c móc n i và ki m th .
c. Ki m th c ti n hành b ng vi c móc n i các mô un theo th t t mô un cao xu ng
mô un th p. Cu ng c c n t i nh cái thay th cho các mô un c p th p ch a hoàn t t.
d. Các ki m th c ti n hành theo tr t t ki m th n v , tích h p, h th ng và v n hành.
Trong ki m th d i lên, các module c tích h p b ng cách di chuy n lên c p thi t
ch ng trình. à Câu tr l i là a.
b. Mô t ki m th big bang.
c. Mô t ki m th trên xu ng.
d. a ra th t c a ki m th (nh c a ra trong câu 1)
Tr l i bài t p 241

Q6

Tr l i
a. Các tr ng h p ki m th c chu n b tr c, và d li u ki m th có th áp ng các yêu
u c xác nh trong tr ng h p ki m th c chu n b .

Mô t
Trong câu h i này c n tìm mô t thích h p h n v d li u ki m th cs d ng ki m tra
ch ng trình.
a. Các tr ng h p ki m th c chu n b tr c, và d li u ki m th có th áp ng các yêu
u c xác nh trong tr ng h p ki m th c chu n b .
b. Ch d li u ki m th có th c x lí úng m i c chu n b nh các ti n trình ki m
th .
c. Nh d li u c dùng cho ki m th , quãng 20% kh i l ng d li u c n x lí trong các
thao tác th c t m i c chu n b .
d. D li u ki m th b bác b nh l i trong giai n a vào không c n ph i c cung c p.
a. úng à ây là câu tr l i
b,d Các tr ng h p ki m th có th a ra c hai u ki n úng và sai mà m i
u ki n t o quy t nh c th c hi n

Q7

Tr l i
b. Snapshot

Mô t
Trong câu h i này c n xác nh tên k thu t g l i vi t ra n i dung các bi n ho c thanh ghi m i
n m t câu l nh c bi t c th c hi n.
a. Walk-through b. Snapshot
c. B sinh d li u ki m th d. Khi n trình
a Walk-through là m t lo i ph ng pháp xem xét
b Snapshot là sap chép t nh các chuy n ng c bi t t i m t th i m c bi t. Nó ch a các giá
tr bi n, giá tr thanh ghi và v.v... à ây là câu tr l i
c K thu t này t ng sinh d li u ki m th
d K thu t này thay th module g i c s d ng trong ki m th d i lên
242 i chi u thu t ng Anh - Vi t

ng i chi u thu t ng Anh - Vi t

[A]
abstract data type Ki u d li u tr u t ng
approximation algorithm Thu t toán x p x
array type Ki u m ng
ascending order th t t ng
ASP ASP
assembler h p d ch

[B]
balanced tree Cây cân b ng
basic data structure u trúc d li u c s
basic data type Ki u d li u c s
basic exchange method Ph ng pháp tráo i c s
basic insertion method Ph ng pháp chèn c s
basic selection method Ph ng pháp l a c s
bi-directional list Danh sách hai chi u
big bang test Ki m th Big-bang
binary search method Ph ng pháp duy t nh phân
binary search tree Cây tìm ki m nh phân
binary tree Cây nh phân
bisection method Ph ng pháp phân ôi
black box test Ki m th h p en
bottom-up programming p trình d i lên
bottom-up test Ki m th d i lên
Boyer-Moore method Ph ng pháp Boyer-Moore
branch Nhánh
breadth-first search method Ph ng pháp duy t chi u r ng tr c
B-tree B-cây
bubble chart b t
bubble sort px pn ib t

[C]
cell Ô
chain method Ph ng pháp dây chuy n
character string compression Nén xâu kí t
character string processing lí xâu kí t
character string search Duy t xâu kí t
character type Ki u kí t
child Con
class library Th vi n l p
coding rules (standards) Nh ng qui t c vi t mã (chu n)
coincidental strength b n trùng h p ng u nhiên
collation algorithm Thu t toán x p b
combination line ng t h p
combination test Ki m th t h p
common coupling i chung
i chi u thu t ng Anh Vi t 243

common function partitioning method Ph ng pháp phân ho ch ch c n ng th ng


communicative strength b n trao i
compiler biên d ch
computational complexity ph c t p tính toán
content coupling i n i dung
control coupling i u khi n

[D]
DASD DASD
data check method Ph ng pháp ki m tra d li u
data coupling i d li u
depth-first search method Ph ng pháp duy t chi u sâu tr c
dequeue y ra d li u t hàng i
descending order p theo th t gi m
design review Ki m m thi t k
development tool Công c phát tri n
DFD Bi u lu ng d li u
dialog box p tho i
Dijkstra search method Ph ng pháp duy t c a Dijkstra
direct access storage device Thi t b nh truy nh p tr c ti p
direct organization file p t ch c tr c ti p
directed graph th có h ng
directory Danh m c
divide-and-conquer method Ph ng pháp chia và tr
document Tài li u
driver Khi n trình
dump routine Trình x ra
dynamic programming method Ph ng pháp qui ho ch ng

[E]
eight-queen question Câu h i tám h u
encapsulation Bao b c
enqueue u gi d li u vào hàng i
enumeration type Ki u li t kê
ESDS
event-driven program Ch ng trình c u khi n theo bi n c
exhaustive search method Ph ng pháp duy t vét c n
external coupling i ngoài
external sorting p x p ngoài

[F]
FIFO FIFO
figure drawing hình
file dump t p
file processing lí t p
file updating p nh t t p
first-in first-out
FIFO
fixed length record n ghi chi u dài c nh
flowchart u
244 i chi u thu t ng Anh Vi t

functional programming p trình hàm

[G]
gap h ng
garbage Rác
graph th
greedy algorithm method Ph ng pháp thu t toán tham lam
group control Ki m soát nhóm
GUI Giao di n ng i dùng ho

[H]
hash m
hash method Ph ng pháp b m
heap ng
HIPO phân c p c ng v i cái vào x lí cái ra
home record n ghi nhà

[I]
IDE Môi tr ng phát tri n tích h p
incremental test Ki m th t ng d n
index Ch s
index area Vùng ch s
indexed sequential file p tu n t có ch s
information hiding Che gi u thông tin
informational strength b n thông tin
integer type Ki u nguyên
integration test Ki m th tích h p
interfaces between modules Giao di n gi a các mô un
interpreter thông d ch

[J]
Jackson method Ph ng pháp Jackson

[K]
knapsack problem Bài toán ba lô
KSDS KSDS

[L]
language processor x lí ngôn ng
last-in first-out Vào sau ra tr c
LIFO
leaf Lá
LIFO Vào-sau-ra-tr c
linear list Danh sách tuy n tính
linear search Duy t tuy n tính
linear search method Ph ng pháp duy t tuy n tính
list structure u trúc danh sách
logic programming p trình logic
logical strength b n logic
logical type Ki u logic
i chi u thu t ng Anh Vi t 245

[M]
maximum abstraction input point m vào tr u t ng t i a
maximum abstraction output point m a ra tr u t ng t i a
MDI Giao di n a tài li u
member Thành viên
merge sort px pg p
module Mô un
module coupling i mô un
module independence Tính c l p c a mô un
module logical design Thi t k logic mô un
module partitioning Phân ho ch mô un
module strength b n mô un
Monte Carlo method Ph ng pháp Monte Carlo
multiway tree Cây a nhánh
multi-window ac as

[N]
N-ary tree Cây N ngôi
Newton's method Ph ng pháp Newton
node Nút
nonincremental test Ki m th không t ng d n
NULL NULL
numerical integration Tích phân s

[O]
object-oriented programming p trình h ng s v t
OCR
c kí t quang h c
one-dimensional array ng m t chi u
operation test Ki m th v n hành
overflow area Vùng tràn

[P]
parent Cha m
partial type Ki u b ph n
partitioned organization file p t ch c có phân ho ch
peer-review Ki m m l i
perfect binary tree Cây nh phân hoàn ch nh
physical data design Thi t k d li u v t lí
pivot Th
pointer type Ki u con tr
POP t ra
preprocessor ti n x lí
primarity test problem Bài toán ki m th s nguyên t
prime data area Vùng d li u chính
probability algorithm Thu t toán xác su t
probability algorithm with bounded errors Thu t toán xác su t v i sai s b ch n
problem-oriented data structure u trúc d li u h ng v n
procedural programming p trình th t c
246 i chi u thu t ng Anh Vi t

procedural strength b n th t c
process chart u ti n trình
program design document Tài li u thi t k ch ng trình
programming paradigm Mô th c l p trình
programming style Phong cách l p trình
PUSH n vào

[Q]
QC
quality control Ki m tra ch t l ng
queue Hàng i
quick sort p x p nhanh

[R]
real number type Ki u s th c
record type Ki u b n ghi
recursive qui
recursive algorithm Thu t toán qui
recursive call i qui
reduction method Ph ng pháp rút g n
regression test Ki m th rà l i
reuse Dùng l i
ring list Danh sách vòng
root c
RRDS RRDS

[S]
sandwich test Ki m th bánh mì k p th t
SDI Giao di n m t tài li u
segment n
sentinel search method Ph ng pháp duy t lính canh
sequential method Ph ng pháp tu n t
sequential organization file p t ch c tu n t
Shaker sort p x p sàng l c
Shell sort p x p bóc v
short-cut key Phím t t
shortest path problem Bài toán ng i ng n nh t
simple type Ki u n
Simpson's method Ph ng pháp Simpson
spacing chart không gian
SSP SSP
stable marriage problem Bài toán hôn nhân n nh
stable matching i sánh n nh
stack Ch ng
stack pointer Con tr ch ng
stamp coupling id u
state transition diagram Bi u chuy n tr ng thái
structured chart có c u trúc
structured design Thi t k có c u trúc
structured design method Th ng pháp thi t k có c u trúc
i chi u thu t ng Anh Vi t 247

structured programming p trình có c u trúc


structured type Ki u có c u trúc
STS partitioning method Ph ng pháp phân ho ch STS
stub Cu ng
subordinate module Mô un c p d i
subprogram library Th vi n ch ng trình con
subscript Ch s
synonym ng ngh a
synonym record n ghi ng ngh a
system test Ki m th h th ng

[T]
table ng
table search Duy t b ng
test case design manual Tài li u thi t k tr ng h p ki m th
test data generation tool Công c sinh d li u ki m th
three-dimensional array ng ba chi u
time strength b n th i gian
top-down programming p trình trên xu ng
top-down test Ki m th trên xu ng
total test Ki m th toàn di n
TR partitioning method Ph ng pháp phân ho ch TR
tracer dò v t
trapezoidal rule Qui t c hình thang
tree structure u trúc cây
two-dimensional array ng hai chi u

[U]
undefined length record n ghi chi u dài không xác nh
undirected graph th vô h ng
uni-directional list Danh sách m t chi u
unit test Ki m th nv

[V]
validity Tính h p th c
variable length record n ghi chi u dài bi n thiên
virtual storage organization file p t ch c l u gi o
VSAM file p VSAM

[W]
Warnier method Ph ng pháp Warnier
waterfall model Mô hình thác
web programming p trình Web
weighted graph th có tr ng s
white box test Ki m th h p tr ng
window as
248 i chi u thu t ng Vi t - Anh

ng i chi u thu t ng Vi t - Anh

ESDS
QC
A
n vào PUSH
ASP ASP
B
Bài toán ba lô knapsack problem
Bài toán ng i ng n nh t shortest path problem
Bài toán hôn nhân n nh stable marriage problem
Bài toán ki m th s nguyên t primarity test problem
m hash
n ghi chi u dài bi n thiên variable length record
n ghi chi u dài c nh fixed length record
n ghi chi u dài không xác undefined length record
nh
n ghi ng ngh a synonym record
n ghi nhà home record
ng table
Bao b c encapsulation
t ra POP
B-cây B-tree
Bi u chuy n tr ng thái state transition diagram
Bi u lu ng d li u DFD
biên d ch compiler
dò v t tracer
c kí t quang h c OCR
h p d ch assembler
thông d ch interpreter
ti n x lí preprocessor
x lí ngôn ng language processor
C
p nh t t p file updating
Câu h i tám h u eight-queen question
u trúc cây tree structure
u trúc danh sách list structure
u trúc d li u c s basic data structure
u trúc d li u h ng v n problem-oriented data structure
Cây cân b ng balanced tree
Cây N ngôi N-ary tree
Cây nh phân binary tree
Cây nh phân hoàn ch nh perfect binary tree
Cây nhi u nhánh multiway tree
Cây tìm ki m nh phân binary search tree
Cha m parent
Che gi u thông tin information hiding
Ch s index
Ch s subscript
i chi u thu t ng Vi t - Anh 249

Ch ng trình c u khi n event-driven program


theo bi n c
Con child
Con tr ng n x p stack pointer
Công c phát tri n development tool
Công c sinh d li u ki m th test data generation tool
as window
Cu ng stub
D
ac as multi-window
Danh sách hai chi u bi-directional list
Danh sách m t chi u uni-directional list
Danh sách tuy n tính linear list
Danh sách vòng ring list
DASD DASD
qui recursive
m a ra tr u t ng t i a maximum abstraction output
point
m vào tr u t ng t i a maximum abstraction input point
b n logic logical strength
b n mô un module strength
b n th i gian time strength
b n thông tin informational strength
b n th t c procedural strength
b n trao i communicative strength
b n trùng h p ng u nhiên coincidental strength
ph c t p tính toán computational complexity
th graph
th có h ng directed graph
th có tr ng s weighted graph
th vô h ng undirected graph
n segment
i sánh n nh stable matching
ng heap
ng ngh a synonym
Dùng l i reuse
ng t h p combination line
Duy t b ng table search
Duy t tuy n tính linear search
Duy t xâu kí t character string search
F
FIFO FIFO
FIFO first-in first-out
G
Giao di n a tài li u MDI
giao di n gi a các mô un interfaces between modules
Giao di n m t tài li u SDI
Giao di n ng i dùng ho GUI
c root
i qui recursive call
250 i chi u thu t ng Vi t - Anh

Hàng i queue
H
phân c p c ng v i cái vào x HIPO
lí cái ra
p tho i dialog box
K
Khi n trình driver
Ki m m l i peer-review
Ki m m thi t k design review
Ki m soát nhóm group control
Ki m th bánh mì k p th t sandwich test
Ki m th Big-bang big bang test
Ki m th nv unit test
Ki m th d i lên bottom-up test
Ki m th h th ng system test
Ki m th h p en black box test
Ki m th h p tr ng white box test
Ki m th không t ng d n nonincremental test
Ki m th rà l i regression test
Ki m th t ng d n incremental test
Ki m th tích h p integration test
Ki m th t h p combination test
Ki m th toàn di n total test
Ki m th trên xu ng top-down test
Ki m th v n hành operation test
Ki m tra ch t l ng quality control
Ki u b n ghi record type
Ki u b ph n partial type
Ki u có c u trúc structured type
Ki u con tr pointer type
Ki u n simple type
Ki u d li u c s basic data type
Ki u d li u tr u t ng abstract data type
Ki u kí t character type
Ki u li t kê enumeration type
Ki u logic logical type
Ki u m ng array type
Ki u nguyên integer type
Ki u s th c real number type
KSDS KSDS
L
Lá leaf
p trình có c u trúc structured programming
p trình d i lên bottom-up programming
p trình hàm functional programming
p trình h ng s v t object-oriented programming
p trình logic logic programming
p trình th t c procedural programming
p trình trên xu ng top-down programming
p trình Web web programming
i chi u thu t ng Vi t - Anh 251

y ra d li u t hàng i dequeue
LIFO last-in first-out
h ng gap
u flowchart
u ti n trình process chart
u gi d li u vào hàng i enqueue
M
ng ba chi u three-dimensional array
ng hai chi u two-dimensional array
ng m t chi u one-dimensional array
Mô un module
Mô un c p d i subordinate module
Mô hình thác waterfall model
Mô th c l p trình programming paradigm
Môi tr ng phát tri n tích h p IDE
t danh m c directory
N
Nén xâu kí t character string compression
Ng n x p stack
Nhánh branch
Nh ng qui t c vi t mã (chu n) coding rules (standards)
i công c ng common coupling
id u stamp coupling
i u khi n control coupling
i d li u data coupling
i mô un module coupling
i ngoài external coupling
i n i dung content coupling
NULL NULL
Nút node
O
Ô cell
P
Phân ho ch mô un module partitioning
Phím t t short-cut key
Phong cách l p trình programming style
Ph ng pháp b m hash method
Ph ng pháp Boyer-Moore Boyer-Moore method
Ph ng pháp chèn c s basic insertion method
Ph ng pháp chia và tr divide-and-conquer method
Ph ng pháp dây chuy n chain method
Ph ng pháp duy t chi u r ng breadth-first search method
tr c
Ph ng pháp duy t chi u sâu depth-first search method
tr c
Ph ng pháp duy t c a Dijkstra Dijkstra search method
Ph ng pháp duy t lính canh sentinel search method
Ph ng pháp duy t nh phân binary search method
Ph ng pháp duy t tuy n tính linear search method
Ph ng pháp duy t vét c n exhaustive search method
252 i chi u thu t ng Vi t - Anh

Ph ng pháp Jackson Jackson method


Ph ng pháp ki m tra d li u data check method
Ph ng pháp l a c s basic selection method
Ph ng pháp Monte Carlo Monte Carlo method
Ph ng pháp Newton Newton's method
Ph ng pháp phân ôi bisection method
Ph ng pháp phân ho ch ch c common function partitioning
ng th ng method
Ph ng pháp phân ho ch STS STS partitioning method
Ph ng pháp phân ho ch TR TR partitioning method
Ph ng pháp qui ho ch ng dynamic programming method
Ph ng pháp rút g n reduction method
Ph ng pháp Simpson Simpson's method
Ph ng pháp thi t k có c u trúc structured design method
Ph ng pháp thu t toán tham greedy algorithm method
lam
Ph ng pháp tráo i c s basic exchange method
Ph ng pháp tu n t sequential method
Ph ng pháp Warnier Warnier method
Q
Qui t c hình thang trapezoidal rule
R
Rác garbage
RRDS RRDS
S
p theo th t gi m descending order
p x p bóc v Shell sort
px pg p merge sort
p x p ngoài external sorting
p x p nhanh quick sort
px pn ib t bubble sort
p x p sàng l c Shaker sort
b t bubble chart
có c u trúc structured chart
không gian spacing chart
SSP SSP
T
Tài li u document
Tài li u thi t k ch ng trình program design document
Tài li u thi t k tr ng h p ki m test case design manual
th
p t ch c có phân ho ch partitioned organization file
p t ch c l u gi o virtual storage organization file
p t ch c tr c ti p direct organization file
p t ch c tu n t sequential organization file
p tu n t có ch s indexed sequential file
p VSAM VSAM file
Thành viên member
Thi t b nh truy nh p tr c ti p direct access storage device
Thi t k có c u trúc structured design
i chi u thu t ng Vi t - Anh 253

Thi t k d li u v t lí physical data design


Thi t k logic mô un module logical design
Th pivot
Th t t ng d n ascending order
Th vi n ch ng trình con subprogram library
Th vi n l p class library
Thu t toán qui recursive algorithm
Thu t toán i sánh collation algorithm
Thu t toán xác su t probability algorithm
Thu t toán xác su t v i sai s b probability algorithm with
ch n bounded errors
Thu t toán x p x approximation algorithm
Tích phân s numerical integration
Tính c l p c a mô un module independence
Tính h p l validity
Trình x ra dump routine
V
Vào-sau-ra-tr c LIFO
hình figure drawing
Vùng ch s index area
Vùng d li u chính prime data area
Vùng tràn overflow area
X
t p file dump
lí t p file processing
lí xâu kí t character string processing
254 Tra c u thu t ng

Tra c u thu t ng

n vào 11, 251 Ch s 4


bài toán ba lô 83, 84 Ch ng trình c u khi n theo bi n c
bài toán ba lô 82 124
Bài toán ng i ng n nh t 67 con 12
bài toán hôn nhân n nh 80, 81 con tr ng n x p 11
Bài toán hôn nhân n nh 78 công c phát tri n 188
bài toán ki m th s nguyên t 85 Công c sinh d li u ki m th 202
Bài toán ki m th s nguyên t 85 as 125
m 17 Cu ng 193
n ghi chi u dài bi n thiên 115 ac as 130
n ghi chi u dài c nh 115 Danh sách hai chi u 10
n ghi chi u dài không xác nh 115 Danh sách m t chi u 10
n ghi ng ngh a 17 danh sách tuy n tính 9
n ghi nhà 17 Danh sách vòng 10
ns 209 DASD 117, 118
ng 4 qui 44
bao b c d li u 7 DFD 109, 110, 138
t ra 11 m a ra tr u t ng t i a 152
B-cây 14, 15 m vào tr u t ng t i a 152
bi u chuy n tr ng thái 111 b n logic 162
Bi u chuy n tr ng thái 110 b n mô un 160
Bi u lu ng d li u 109, 110 b n th i gian 163
biên d ch 187 b n th i gian 163
dò v t 202 b n thông tin 162, 165, 171
c kí t quang h c 99 b n th t c 163
h p d ch 187 b n th t c 163
thông d ch 187 b n trao i 164
ti n x lí 188 b n trùng h p ng u nhiên 161
x lí ngôn ng 187 b n trùng h p ng u nhiên 161
p nh t t p 58 ph c t p tính toán 87
câu h i tám h u 49, 50 ph c t p tính toán 36, 38
u trúc cây 12, 14 ph c t p tính toán 36
u trúc cây 12 th 67
u trúc cây 13 th có h ng 67
u trúc danh sách 8 th có tr ng s 67
u trúc d li u c s 3 th vô h ng 67
u trúc d li u h ng v n 8 n 176
Cây cân b ng 14 n 176
cây cân b ng t t 14 i sánh n nh 79
cây N ngôi 13 ng 14, 16
Cây nh phân 13 ng ngh a 18
cây nh phân hoàn ch nh 13 ng ngh a 17
Cây nh phân hoàn ch nh 13 dùng l i 104
cây nhi u nhánh 13 ng t h p 196
Cây tìm ki m nh phân 14 duy t b ng 30
Cha m 12 duy t tuy n tính 87
che gi u thông tin 7 duy t tuy n tính 28
Tra c u thu t ng 255

Duy t xâu kí t 51 Ki u li t kê 3
ESDS 118 Ki u logic 3
FIFO 11 Ki u m ng 4
Giao di n a tài li u 125 Ki u nguyên 3
giao di n gi a các mô un 150, 153, 176 Ki u s th c 3
Giao di n m t tài li u 125 KSDS 118
Giao di n ng i dùng ho 123 lá 15
c 12 Lá 12
i qui 49 p trình có c u trúc 185
GUI 123, 126, 127, 128 p trình d i lên 195
hàng i 12 p trình hàm 25
Hàng i 11 p trình h ng s v t 25
phân c p c ng v i cái vào x lí cái ra p trình logic 25
108 p trình th t c 25
th ng vào-sau-ra-tr c 11 p trình trên xu ng 194
HIPO 109, 110 p trình Web 190
p tho i 125 y ra d li u t hàng i 12
khi n trình 193 LIFO 11
ki m m l i 187 h ng 42
ki m m thi t k 100, 140, 141 p 208
ki m soát nhóm 56, 57, 58 p c s d li u 212
Ki m soát nhóm 55 p mi n v n 209
ki m th bánh mì k p th t 194 u 102
Ki m th Big-bang 196 u ti n trình 109
ki m th nv 147 u ti n trình 102
Ki m th d i lên 195 u ti n trình 109
ki m th h th ng 198, 204 u ti n trình 110
ki m th h th ng 191 u gi d li u vào hàng i 12
ki m th h p en 177 ng ba chi u 5
ki m th h p tr ng 176 ng hai chi u 4, 6
Ki m th không t ng d n 196 ng m t chi u 4
Ki m th rà l i 199 MDI 125
Ki m th t ng d n 194 mô un 145, 148, 149, 159, 161, 165
ki m th tích h p 192, 198, 204 mô un c p d i 149
ki m th tích h p 147 Mô hình thác 96
Ki m th t h p 196 Mô th c l p trình 185
ki m th toàn di n 197 Môi tr ng phát tri n tích h p 188
ki m th trên xu ng 177 t danh m c 118
ki m th v n hành 191 nén xâu kí t 54
ki m tra ch t l ng 202 Ng n x p 10
ki u b n ghi 4 nhánh 12
Ki u b n ghi 6 Nhánh 12
Ki u b ph n 3 nh ng qui t c vi t mã (chu n) 186
ki u có c u trúc 4 i công c ng 169
ki u có c u trúc 4 i công c ng 166
ki u con tr 4 id u 169, 170
Ki u con tr 3 id u 168
Ki u n 3 i u khi n 168
Ki u d li u c s 3 i d li u 170
Ki u kí t 3 i d li u 169
256 Tra c u thu t ng

i mô un 160 ph ng pháp tu n t 18
i ngoài 167 Ph ng pháp Warnier 149, 156, 157, 182
i ngoài 167 pop 11
i n i dung 166 POP 11
NULL 10 PUSH 11
Nút 12 quan h 210
Nút 12 qui t c hình thang 74, 75
ô8 Qui t c hình thang 74
OCR 121, 122 rác 9
phân ho ch mô un 97 RRDS 118
Phím t t 129 p theo th t gi m 32
Phong cách l p trình 186 p x p bóc v 42
Ph ng pháp 208 p x p d li u theo th t t ng 44
ph ng pháp b m 117 px pg p 47
Ph ng pháp Boyer-Moore 52 px pg p 47
ph ng pháp chèn c s 39, 40, 42 p x p ngoài 47
ph ng pháp chia và tr 44 p x p nhanh 44
ph ng pháp dây chuy n 18 px pn ib t 34
Ph ng pháp duy t chi u r ng tr c 68 p x p sàng l c 41
Ph ng pháp duy t chi u sâu tr c 67 SDI 125
Ph ng pháp duy t c a Dijkstra 70 b t 104
Ph ng pháp duy t lính canh 30 b t 103
ph ng pháp duy t nh phân 32, 33 có c u trúc 109, 110
ph ng pháp duy t tuy n tính 32 cách 132
Ph ng pháp duy t vét c n 30 không gian 99
Ph ng pháp duy t vét c n 30 STS partitioning method 237
Ph ng pháp Jackson 149, 154, 155, 182, c l p mô un 148, 183
183 Tài li u 98, 99, 140
Ph ng pháp ki m tra d li u 123 Tài li u 108
ph ng pháp l a c s 37, 38 tài li u thi t k ch ng trình 145, 147, 178
ph ng pháp Monte Carlo 86 tài li u thi t k ch ng trình 144
ph ng pháp Newton 72, 73, 82 tài li u thi t k tr ng h p ki m th 192
ph ng pháp phân ôi 71, 72 p t ch c có phân ho ch 118
Ph ng pháp phân ôi 71 p t ch c ghi nh o 117
Ph ng pháp phân ho ch ch c n ng th ng p t ch c l u gi o 118
151 p t ch c tr c ti p 118
Ph ng pháp phân ho ch STS 149, 159, p t ch c tr c ti p 117
182, 183 p t ch c tu n t 118
Ph ng pháp phân ho ch TR149, 153, 159, p t ch c tu n t 117
183 p tu n t có ch s 113
Ph ng pháp qui ho ch ng 89 p tu n t có ch s 117
ph ng pháp rút g n 89 p VSAM 117
ph ng pháp Simpson 77 thành viên 118
Ph ng pháp Simpson 76 thi t b nh truy nh p tr c ti p 117, 118
ph ng pháp thi t k có c u trúc 146 thi t k có c u trúc 109
ph ng pháp thi t k có c u trúc 144 thi t k d li u v t lí 98
ph ng pháp thu t toán tham lam 89 thi t k logic mô un 174
Ph ng pháp thu t toán tham lam 89 Th 44
ph ng pháp tráo i c s 35, 36, 37, 39 th t t ng 34
ph ng pháp tráo i c s 34 Th vi n ch ng trình con 136
Tra c u thu t ng 257

Th vi n l p 136 Truy nh p công 208


Thu t toán qui 49 truy nh p cb ov 208
thu t toán i sánh 78 Truy nh p t 208
thu t toán i sánh 78 vào-sau-ra-tr c 11
Thu t toán xác su t 85 hình 63
thu t toán xác su t v i sai s b ch n 85 vùng ch s 118
thu t toán x p x tiêu bi u 82 vùng d li u chính 118
Thu c tính 208 vùng tràn 118
Tích phân s 74 vùng truy nh p 208
tính c l p c a mô un 160, 171 t p 202
tính h p l 88 lí t p 55
tr ng thái 211 lí xâu kí t 51
Trình x ra 201

You might also like