Bài giảng Nhập môn công nghệ phần mềm - Chương 4: Các kỹ thuật đặc tả cung cấp cho người học các kiến thức: Khái niệm đặc tả, tại sao phải đặc tả, phân loại các kỹ thuật đặc tả, các kỹ thuật đặc tả. Mời các bạn cùng tham khảo.
Trang 2Khái ni ệ m ñặ c t ả
ðặ c t ả là ho ạ t ñộ ng ñượ c ti ế n hành trong các giai ñ o ạ n khác nhau c ủ a ti ế n trình ph ầ n
m ề m:
ðặ c t ả yêu c ầ u (requirement specification)
• sựthống nhất giữa những ngưới sửd ng tương lai và những người thiết kế
ðặ c t ả ki ế n trúc h ệ th ố ng (system architect specification)
• sựthống nhất giữa những người thiết kếvà
những người cài ñặt
ðặ c t ả môñun (module specification)
• sựthống nhất giữa những người lập trình cài ñặt mô-ñun và những người lập trình sửd ng mô-ñun
Trang 3T ạ i sao ph ả i ñặ c t ả ?
H ợ p ñồ ng
s ự th ố ng nh ấ t gi ữ a ng ườ i s ử d ụ ng và ngườ i phát tri ể n s ả n ph ẩ m
Trang 6t ậ p h ợ p các chuy ể n ti ế p T : S x I → S (các cung có hướ ng c ủ a ñồ th ị )
• khi có một dữliệu vào, một trạng thái chuyển sang
S ố ñ úng
S ố sai
B ấ m s ố
K ế t n ố ñượ c
Trang 10t1
Trang 11một thẻ, thì chuyển tiếp này là có thểvượt qua ñược,
n u chuyển tiếp này ñược thực hiện thì tất cảcác nút vào của chuyển tiếp sẽbị ấy ñi một thẻ, và một thẻ
sẽ ñược thêm vào tất cảcác nút ra của chuyển tiế
n u nhiều chuyển tiếp là có thể vượt qua thì chọn chuyển tiếp nào cũng ñược
hoặc t3 ñược vượt qua
hoặc t4 ñược vượt qua
Trang 12Ví d ụ
Trang 14Ví d ụ 1: mô t ả ho ạ ñộ ng an toàn và h ợ p lý c ủ a 2 ñ èn giao thông
yellow2
green2
yr2
gy2safe2
safe1
Trang 15Ví d ụ 2: mô t ả chu k ỳ s ố ng c ủ a m ộ t ng ườ i
thanh niêntrẻ con
send_mail
read_mail
Mô tả trường hợp 1 người viết và 2 người ñọc ?
Mô tả trường hợp hộp thư nhận chỉchứa nhiều nhất 3 thư ?
Trang 16Ví d ụ 4: tình hu ố ng ngh ẽ n (dead-lock)
2 2
P6
P4
P3 P1
Ví d ụ 4: gi ả i pháp ch ố ng ngh ẽ
2 2
P6
P4
P3 P1
Trang 18S ả n xu ấ t
P2
C2 C1
pre-condiition: ñặc tảcác ràng buộc trên các tham
sốtrước khi hàm ñược thực thi
post-condition: ñặc tảcác ràng buộc trên các tham
sốsau khi hàm ñược thực thi
Trang 19pre ∀i, 1 ≤i ≤n, a[i] ≤a[i+1]
post result = (∃i, 1 ≤i ≤n, a[i] = e)
3 ðế m s ố ph ầ n t ử có giá tr ị e trong m ộ t danh sách các s ố nguyên
Trang 20true :→Boolean false :→Boolean
¬_ : Boolean →Boolean _ ∧∧∧∧_ : Boolean x Boolean →Boolean _ ∨∨∨∨_ : Boolean x Boolean →Boolean
một thao tác không có tham sốlà một hằng số
một giá trịcủa kiểu trừu tượng ñịnh nghĩa ñược biểu diễn bởi kí tự“_”
Trang 21Ki ể u tr ừ u t ượ ng
Ví d ụ 2: ñặ c t ả ki ể u tr ừ u t ượ ng Vector
sort Boolean operations
true :→Boolean false :→Boolean
¬_ : Boolean →Boolean _ ∧∧∧∧_ : Boolean x Boolean →Boolean _ ∨∨∨∨_ : Boolean x Boolean →Boolean
một thao tác không có tham sốlà một hằng số
một giá trịcủa kiểu trừu tượng ñịnh nghĩa ñược biểu diễn bởi kí tự“_”
42
Ki ể u tr ừ u t ượ ng
Ví d ụ 2: ñặ c t ả ki ể u tr ừ u t ượ ng Vector
sort Vector imports Integer, Element, Boolean operations
vect : Integer x Integer →Vector
init : Vector x Integer →Boolean
ith : Vector x Integer →Element
change-ith : Vector x Integer x Element →Vector
supborder : Vector →Integer
infborder : Vector →Integer
Trang 22infborder(change-ith(v, i, e)) = infborder(v) supborder(vect(i, j)) = j
supborder(change-ith(v, i, e)) = supborder(v)
with
v: Vector; i, j, k: Integer; e: Element