Bài giảng Công nghệ phần mềm - Chương 4: Các kỹ thuật đặc tả - Nguyễn Thanh Bình

Các kthut ñꢂc tꢃ  
(4)  
Nguyn Thanh Bình  
Khoa Công nghꢁꢂThôngꢂtin  
Trưꢃng ðꢄi hc Bách khoa  
ðꢄi hc ðà Nng  
Ni dung  
Khái nim ñꢂc tꢃ  
Ti sao phi ñꢂc t?  
Phân loi các kthut ñꢂc tꢃ  
Các kthut ñꢂc tꢃ  
2
1
Khái nim ñꢂc tꢃ  
ðꢂc t(specification)  
ñꢇnh nghĩa mt hthng, mô-ñun hay  
mt sn phm cn phi làm cái gì  
không mô tnó phi làm như thnào  
mô tnhng tính cht ca vn ñꢉꢍ  
ñꢂt ra  
không mô tnhng tính cht ca gii  
pháp cho vn ñꢐꢍñó  
3
Khái nim ñꢂc tꢃ  
ðꢂc tlà hot ñꢄng ñưꢑc tin hành trong  
các giai ñon khác nhau ca tin trình phn  
mm:  
ðꢂc tyêu cu (requirement specification)  
sthng nht gia nhng ngưꢓi sdng tương  
lai và nhng ngưꢖi thit kꢋ  
ðꢂc tkin trúc hthng (system architect  
specification)  
sthng nht gia nhng ngưꢖi thit kvà  
nhng ngưꢖi cài ñꢂt  
ðꢂc tꢃꢍmôñunꢍ(module specification)  
sthng nht gia nhng ngưꢖi lp trình cài ñꢂt  
mô-ñun và nhng ngưꢖi lp trình sdng mô-ñun  
4
2
Ti sao phi ñꢂc t?  
Hp ñꢗng  
sthng nht gia ngưꢖi sdng vàꢍngưꢖi  
phát trin sn phm  
Hp thc hóa  
sn phm làm ra phi thc hin chính xác  
nhng gì mong mun  
Trao ñꢚi  
gia ngưꢖi sdng vàꢍngưꢖi phát trin  
gia nhng ngưꢖi phát trin  
Tái sdng  
5
Phân loi các kthut ñꢂc tꢃ  
ðꢂc tphi hình thc (informal)  
ngôn ngtnhiên tdo  
ngôn ngtnhiên có cu trúc  
các kí hiu ñꢗ ha  
ðꢂc tna hình thc (semi-informal)  
trn ln cngôn ngtnhiên, các kí hiu toán hc và  
các kí hiu ñꢗ ha  
ðꢂc thình thc (formal)  
kí hiu toán hc  
ngôn ngꢌꢍñꢂc tꢃ  
ngôn nglp trình  
6
3
ðꢂc thình thc hay không  
hình thc ?  
ðꢂc thình thc  
chính xác (toán hc)  
hp thc hóa hình thc (công chóa)  
công cꢕꢍtraoꢍñꢚi: khóꢍñꢛc, khó hiu  
khó sdng  
ðꢂc tkhông hình thc  
dhiu, dsdng  
mm do  
thiu schính xác  
nhp nhng  
7
ng dng ñꢂc thình thc  
ng dng trong các giai ñon sm ca tin  
trình phát trin  
hn chli trong phát trin phn mm  
ng dng chyu trong phát trin các hꢅ  
thng “quan trng” (critical systems)  
hthng ñiu khin  
hthng nhúng  
hthng thi gian thc  
8
4
Chi phí phát trin khi sꢔ  
dng ñꢂc thình thc  
Các kthut ñꢂc tꢃ  
Trình bày mt skthut  
Máy trng thái hu hn  
Mng Petri  
ðiu kin trưꢓc và sau  
Kiu tru tưꢑng  
ðꢂc tZ  
10  
5
Máy trng thái hu hn  
(state machine)  
mô tcác lung ñiu khin  
biu din dng ñꢗ thꢇ  
bao gm  
tp hp các trng thái S (các nút ca ñꢗ th)  
tp hp các dliu vào I (các nhãn ca các  
cung)  
tp hp các chuyn tip T : S x I S (các  
cung cóꢍhưꢓng ca ñꢗ th)  
khi có mt dliu vào, mt trng thái chuyn sang  
mt trng thái khác  
11  
Máy trng thái hu hn  
ðꢑi  
ðꢂt máy xung  
ðꢂt máy xung  
Ví d1  
Nhc máy  
Âm mi quay  
sꢈ  
Bm sꢈ  
Thi gian ñꢑi kt  
thúc  
Ssai  
Thông báo  
quay ssai  
Quay sꢈ  
Sꢈꢍñúng  
Kt ni  
Kt ni ñưꢑc  
Máy bn  
ðꢚ chuông  
Thuê bao ñưꢑc gi nhc máy  
12  
ðàm thoi  
6
Máy trng thái hu hn  
Ví d2  
Hthng cn mô tbao gm mt nhà sn xut, mt  
nhà tiêu thvà mt kho hàng chcha ñưꢑc nhiu  
nht 2 sn phm  
Nhà sn xut có 2 trng thái  
P1: không sn xut  
P2:ꢍñangꢍsꢃn xut  
Nhà tiêu thcó 2 trng thái  
C1: có sn phm ñꢘ tiêu thꢕ  
C2: không có sn phm ñꢘ tiêu thꢕ  
Nhà kho có 3 trng thái  
cha 0 sn phm  
cha 1 sn phm  
cha 2 sn phm  
13  
Máy trng thái hu hn  
Gii pháp 1: mô ttách ri các thành phn  
Ly tkho  
Sn xut  
P2  
C2  
P1  
C1  
Gi vào kho  
Tiêu thꢕ  
Gi vào kho  
Gi vào kho  
1
2
0
Ly tkho  
Ly tkho  
14  
7
Máy trng thái hu hn  
Gii pháp 1  
không mô tꢃꢍñưc shot ñꢄng hꢅ  
thng  
cn mô tshot ñꢄng kt hp các  
thành phn ca hthng  
15  
Máy trng thái hu hn  
Gii pháp 2: mô tkt hp các thành phn  
<1, P1, C1>  
<0, P1, C1>  
<2, P1, C1>  
Gi vào kho  
Gi vào kho  
Sn xut  
Sn xut  
Sn xut  
Ly tkho  
Ly tkho  
Tiêu thꢕ  
Tiêu thꢕ  
Tiêu thꢕ  
<1, P2, C1>  
<1, P1, C2>  
<2, P2, C1>  
<2, P1, C2>  
<0, P2, C1>  
<0, P1, C2>  
Ly tkho  
Ly tkho  
Tiêu thꢕ  
Tiêu thꢕ  
Tiêu thꢕ  
Sn xut  
Sn xut  
Sn xut  
Gi vào kho  
Gi vào kho  
<1, P2, C2>  
<2, P2, C2>  
<0, P2, C2>  
16  
8
Máy trng thái hu hn  
Gii pháp 2  
mô tꢃꢍñưꢑc hot ñꢄng ca hthng  
strng thái ln  
biu din hthng phc tp  
hn chkhiꢍñꢂc tnhng hthng không  
ñꢗng bꢄ  
o
các thành phn ca hthng hot ñꢄng song  
song hoc cnh tranh  
17  
Mng Petri  
(Petri nets)  
thích hp ñꢘ mô tcác hthng không  
ñꢗng bvi nhng hot ñꢄng ñꢗng thi  
mô tlung ñiu khin ca hthng  
ñꢐ xut tꢢꢍnămꢍ1962 bi Carl Adam  
Có hai loi  
mng Petri (cꢚꢍñiꢘn)  
mng Petri mrng  
18  
9
Mng Petri  
Gm các phn tꢔ  
mt tp hp hu hn các nút ()  
mt tp hp hu hn các chuyn tip ()  
mt tp hp hu hn các cung ()  
các cung ni các nút vi các chuyn tip hoc  
ngưꢑc li  
mi nút có thcha mt hoc nhiu th()  
19  
Mng Petri  
Ví dꢕ  
t2  
t3  
p2  
p3  
t1  
p1  
p4  
20  
10  
Mng Petri  
Mng Petri ñưꢑc ñꢇnh nghĩa bi sꢒꢍñánh du các nút  
ca nó  
Vic ñánh du các nút ñưꢑc tin hành theo nguyên tc  
sau:  
mi chuyn tip có các nút vào và các nút ra  
nu tt ccác nút vào ca mt chuyn tip có ít nht  
mt th, thì chuyn tip này là có thvưꢃt quaꢍñưc,  
nu chuyn tip này ñưꢑc thc hin thì tt ccác nút  
vào ca chuyn tip sbly ñi mt th, và mt thꢞ  
sꢦꢍñưc thêm vào tt ccác nút ra ca chuyn tip  
nu nhiu chuyn tip là có thꢘꢍvưt qua thì chn  
chuyn tip nào cũng ñưꢑc  
21  
Mng Petri  
Ví dꢕ  
t1  
t2  
t1 không thꢊꢂvưꢋt qua ñưꢋc  
t2 có thꢊꢂvưꢋt qua ñưꢋc  
t3  
hoc t3ꢂñưꢋc vưꢋt qua  
hoc t4ꢂñưꢋc vưꢋt qua  
t4  
22  
11  
Mng Petri  
Ví dꢕ  
t2  
t2  
khi t2ꢂñưc vưꢋt qua  
23  
Mng Petri  
Ví dꢕ  
24  
12  
Mng Petri  
d1: mô thot ñꢄng ca ñèn giao thông  
red  
yr  
yellow  
green  
rg  
gy  
25  
Mng Petri  
d1: mô thot ñꢄng ca 2ꢍñèn giao thông  
red2  
red1  
yr1  
yr2  
rg2  
yellow1  
green1  
yellow2  
rg1  
gy2  
gy1  
26  
green2  
13  
Mng Petri  
d1: mô thot ñꢄng an toàn ca 2ꢍñèn giao thông  
red2  
red1  
safe  
yr1  
yr2  
rg1  
yellow2  
rg2  
yellow1  
green1  
gy1  
gy2  
27  
green2  
Mng Petri  
d1: mô thot ñꢄng an toàn và hp lý ca 2ꢍñèn  
giao thông  
red1  
red2  
safe2  
yr1  
yr2  
rg1  
rg2  
yellow1  
green1  
yellow2  
gy2  
gy1  
safe1  
28  
green2  
14  
Mng Petri  
d2: mô tchu ksng ca mt ngưꢖi  
trcon  
dy thì  
cưꢄi  
có vcó chng  
cht  
thanh niên  
ly hôn  
29  
cht  
Mng Petri  
d3: vit thư ꢍñꢛc thư  
begin  
receive_mail  
mail_box  
rest  
rest  
type_mail  
read_mail  
send_mail  
ready  
Mô tꢍꢂtrưng hp 1ꢂngưi vit vàꢂ2ꢂngưꢃi ñꢅc ?  
Mô tꢍꢂtrưng hp hp thư nhn chcha nhiu nht 3ꢂthư?  
30  
15  
Mng Petri  
d4: tình hung nghn (dead-lock)  
P1  
P2  
P3  
t1  
t2  
P4  
P6  
P5  
P7  
t3  
t4  
t5  
t7  
t6  
t8  
P8  
P9  
2
2
31  
Mng Petri  
d4: gii pháp chng nghn  
P1  
P2  
P3  
t1  
t2  
P4  
P6  
P5  
P7  
t3  
t4  
2
2
t5  
t7  
t6  
t8  
P8  
P9  
2
2
32  
16  
Mng Petri  
Ví d5  
Hthng cn mô tbao gm mt nhà sn xut, mt  
nhà tiêu thvà mt kho hàng chcha ñưꢑc nhiu  
nht 2 sn phm  
Nhà sn xut có 2 trng thái  
P1: không sn xut  
P2:ꢍñangꢍsꢃn xut  
Nhà tiêu thcó 2 trng thái  
C1: có sn phm ñꢘ tiêu thꢕ  
C2: không có sn phm ñꢘ tiêu thꢕ  
Nhà kho có 3 trng thái  
cha 0 sn phm  
cha 1 sn phm  
cha 2 sn phm  
33  
Mng Petri  
d5: mô ttách ri mi thành phn  
Sn xut  
Ly tkho  
C1  
C2  
P1  
P2  
Tiêu thꢕ  
Gi vào kho  
Gi vào kho  
Gi vào kho  
1
2
0
Ly tkho  
Ly tkho  
34  
17  
Mng Petri  
d5: mô tkt hp các thành phn  
Sn xut  
P1  
Gi vào kho  
P2  
1
Gi vào kho  
Ly tkho  
2
0
Ly tkho  
C1  
C2  
Tiêu thꢕ  
35  
ðiu kin trưꢓc và sau  
(pre/post condition)  
ñưꢑc dùng ñꢘꢍñꢂc tcác hàm hoc mô-ñun  
ñꢂc tcác tính cht ca dliu trưꢓc và sau khi thc  
hin hàm  
pre-condiition: ñꢂc tcác ràng buc trên các tham  
strưꢓc khi hàm ñưꢑc thc thi  
post-condition: ñꢂc tcác ràng buc trên các tham  
ssau khi hàm ñưꢑc thc thi  
có thsdng ngôn ngphi hình thc, hình thc  
hoc ngôn nglp trình ñꢘꢍñꢂc tcác ñiu kin  
36  
18  
ðiu kin trưꢓc và sau  
Ví d: ñꢂc thàm tìm kim  
function search ( a : danh sách phn tkiu K,  
size : sphân tca dánh sách,  
e : phn tkiu K,  
result : Boolean )  
pre  
i, 1 i n, a[i] a[i+1]  
post  
result = ( i, 1 i n, a[i] = e)  
37  
ðiu kin trưꢓc và sau  
Bài tp:ꢍñꢂc tcác hàm  
1. Sp xp mt danh sách các sꢈꢍnguyên  
2. ðꢃo ngưꢑc các phn tca mt danh  
sách  
3. ðꢋm sphn tcó giá tre trong mt danh  
sách các snguyên  
38  
19  
Kiu tru tưꢑng  
(abstract types)  
Mô tdliu và các thao tác trên dliu ñó mt  
mc tru tưꢑng ñꢄc lp vi cách cài ñꢂt dliu bi  
ngôn nglp trình  
ðꢂc tmt kiu tru tưꢑng gm:  
tên ca kiu tru tưꢑng  
dùng tkhóa sort  
khai báo các kiu tru tưꢑng ñã tn ti ñưꢑc sdng  
dùng tkhóa imports  
các thao tác trên trên kiu tru tưꢑng  
dùng tkhóa operations  
39  
Kiu tru tưꢑng  
d1: ñꢂc tkiu tru tưꢑng Boolean  
sort Boolean  
operations  
true  
false  
¬ _  
: Boolean  
: Boolean  
: Boolean Boolean  
: Boolean x Boolean Boolean  
: Boolean x Boolean Boolean  
_
_
_
_
mt thao tác không có tham slà mt hng sꢔ  
mt giá trca kiu tru tưꢋng ñꢖnh nghĩa ñưꢋc biu din bi kí t“_”  
40  
20  
Tải về để xem bản đầy đủ
pdf 23 trang baolam 27/04/2022 8200
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm - Chương 4: Các kỹ thuật đặc tả - Nguyễn Thanh Bình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_cong_nghe_phan_mem_chuong_3_cac_ky_thuat_dac_ta_ng.pdf