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

23 549 0
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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Các k thu t ñ c t (4) Nguy n Thanh Bình Khoa Cơng ngh Thơng tin Trư ng ð i h c Bách khoa ð i h c ðà N ng N i dung Khái ni m ñ c t T i ph i ñ c t ? Phân lo i k thu t ñ c t Các k thu t ñ c t Khái ni m ñ c t ð c t (specification) ñ nh nghĩa m t h th ng, mơ-đun hay m t s n ph m c n ph i làm khơng mơ t ph i làm th mơ t nh ng tính ch t c a v n đ đ t khơng mơ t nh ng tính ch t c a gi i pháp cho v n đ Khái ni m đ c t ð c t ho t ñ ng ñư c ti n hành giai ño n khác 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 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 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 nh ng ngư i l p trình s d ng mơ-đun T i ph i ñ c t ? H p ñ ng s th ng nh t gi a ngư i s d ng ngư i phát tri n s n ph m H p th c hóa s n ph m làm ph i th c hi n xác nh ng mong mu n Trao đ i gi a ngư i s d ng ngư i phát tri n gi a nh ng ngư i phát tri n Tái s d ng Phân lo i k thu t ñ c t ð c t phi hình th c (informal) ngơn ng t nhiên t ngơn ng t nhiên có c u trúc kí hi u đ h a ð c t n a hình th c (semi-informal) tr n l n c ngơn ng t nhiên, kí hi u tốn h c kí hi u đ h a ð c t hình th c (formal) kí hi u tốn h c • ngơn ng đ c t • ngơn ng l p trình ð c t hình th c hay khơng hình th c ? ð c t hình th c xác (tốn h c) h p th c hóa hình th c (cơng c hóa) cơng c trao đ i: khó đ c, khó hi u khó s d ng ð c t khơng hình th c d hi u, d s d ng m md o thi u s xác nh p nh ng ng d ng đ c t hình th c ng d ng giai ño n s m c a ti n trình phát tri n h n ch l i phát tri n ph n m m ng d ng ch y u phát tri n h th ng “quan tr ng” (critical systems) h th ng ñi u n h th ng nhúng h th ng th i gian th c Chi phí phát tri n s d ng đ c t hình th c Các k thu t đ c t Trình bày m t s k thu t Máy tr ng thái h u h n M ng Petri ði u ki n trư c sau Ki u tr u tư ng ð ct Z 10 Máy tr ng thái h u h n (state machine) mơ t lu ng u n bi u di n d ng ñ th bao g m t p h p tr ng thái S (các nút c a ñ th ) t p h p d li u vào I (các nhãn c a cung) t p h p chuy n ti p T : S x I → S (các cung có hư ng c a đ th ) • có m t d li u vào, m t tr ng thái chuy n sang m t tr ng thái khác 11 Máy tr ng thái h u h n ð t máy xu ng Ví d ð i ð t máy xu ng Nh c máy Th i gian ñ i k t thúc Âm m i quay s B ms S sai Quay s Thơng báo quay s sai S K tn i Máy b n K t n i ñư c ð chng Th bao đư c g i nh c máy 12 ðàm tho i Máy tr ng thái h u h n Ví d H th ng c n mô t bao g m m t nhà s n xu t, m t nhà tiêu th m t kho hàng ch ch a ñư c nhi u nh t s n ph m Nhà s n xu t có tr ng thái • P1: khơng s n xu t • P2: s n xu t Nhà tiêu th có tr ng thái • C1: có s n ph m đ tiêu th • C2: khơng có s n ph m đ tiêu th Nhà kho có tr ng thái • ch a s n ph m • ch a s n ph m • ch a s n ph m 13 Máy tr ng thái h u h n Gi i pháp 1: mô t tách r i thành ph n L y t kho S n xu t P2 P1 C2 C1 G i vào kho Tiêu th G i vào kho G i vào kho L y t kho L y t kho 14 Máy tr ng thái h u h n Gi i pháp khơng mơ t đư c s ho t ñ ng h th ng c n mơ t s ho t đ ng k t h p thành ph n c a h th ng 15 Máy tr ng thái h u h n Gi i pháp 2: mô t k t h p thành ph n G i vào kho S n xu t G i vào kho S n xu t L y t kho S n xu t L y t kho Tiêu th Tiêu th Tiêu th L y t kho L y t kho Tiêu th Tiêu th Tiêu th S n xu t S n xu t G i vào kho 16 S n xu t G i vào kho Máy tr ng thái h u h n Gi i pháp mơ t đư c ho t đ ng c a h th ng s tr ng thái l n bi u di n h th ng ph c t p h n ch ñ c t nh ng h th ng khơng đ ng b o thành ph n c a h th ng ho t ñ ng song song ho c c nh tranh 17 M ng Petri (Petri nets) thích h p đ mơ t h th ng khơng đ ng b v i nh ng ho t ñ ng ñ ng th i mơ t lu ng u n c a h th ng ñ xu t t năm 1962 b i Carl Adam Có hai lo i m ng Petri (c ñi n) m ng Petri m r ng 18 M ng Petri G m ph n t m t t p h p h u h n nút ( ) m t t p h p h u h n chuy n ti p ( ) m t t p h p h u h n cung (→) • cung n i nút v i chuy n ti p ho c ngư c l i m i nút có th ch a m t ho c nhi u th ( ) 19 M ng Petri Ví d t2 t1 p2 p1 t3 p4 p3 20 10 M ng Petri M ng Petri ñư c ñ nh nghĩa b i s ñánh d u nút c a Vi c đánh d u nút ñư c ti n hành theo nguyên t c sau: m i chuy n ti p có nút vào nút n u t t c nút vào c a m t chuy n ti p có nh t m t th , chuy n ti p có th vư t qua ñư c, n u chuy n ti p đư c th c hi n t t c nút vào c a chuy n ti p s b l y ñi m t th , m t th s ñư c thêm vào t t c nút c a chuy n ti p n u nhi u chuy n ti p có th vư t qua ch n chuy n ti p ñư c 21 M ng Petri Ví d t1 t2 t1 khơng th vư t qua đư c t2 có th vư t qua đư c t3 ho c t3 ñư c vư t qua ho c t4 ñư c vư t qua 22 t4 11 M ng Petri Ví d t2 t2 t2 ñư c vư t qua 23 M ng Petri Ví d 24 12 M ng Petri Ví d 1: mơ t ho t đ ng c a đèn giao thơng red yr yellow rg gy 25 green M ng Petri Ví d 1: mơ t ho t đ ng c a đèn giao thơng red2 red1 yr1 yr2 yellow1 rg1 gy2 gy1 26 rg2 yellow2 green1 green2 13 M ng Petri Ví d 1: mơ t ho t đ ng an tồn c a đèn giao thơng red2 red1 safe yr1 rg1 yr2 yellow1 yellow2 gy1 27 rg2 gy2 green2 green1 M ng Petri Ví d 1: mơ t ho t đ ng an tồn h p lý c a đèn giao thơng red1 red2 safe2 yr2 yr1 rg1 rg2 yellow1 yellow2 gy1 gy2 safe1 28 green1 green2 14 M ng Petri Ví d 2: mơ t chu kỳ s ng c a m t ngư i tr d y cư i niên có v có ch ng 29 ly ch t ch t M ng Petri Ví d 3: vi t thư ñ c thư begin receive_mail mail_box rest rest type_mail send_mail read_mail ready Mô t trư ng h p ngư i vi t ngư i ñ c ? Mô t trư ng h p h p thư nh n ch ch a nhi u nh t thư ? 30 15 M ng Petri Ví d 4: tình hu ng ngh n (dead-lock) P1 P2 P3 t1 t2 P4 P5 t3 t4 P7 P6 t5 t6 P8 P9 t7 t8 31 M ng Petri Ví d 4: gi i pháp ch ng ngh n P1 P2 P3 t1 t2 P4 P5 t3 t4 2 P7 P6 t5 P8 t6 t7 P9 t8 32 16 M ng Petri Ví d H th ng c n mô t bao g m m t nhà s n xu t, m t nhà tiêu th m t kho hàng ch ch a ñư c nhi u nh t s n ph m Nhà s n xu t có tr ng thái • P1: khơng s n xu t • P2: s n xu t Nhà tiêu th có tr ng thái • C1: có s n ph m đ tiêu th • C2: khơng có s n ph m ñ tiêu th Nhà kho có tr ng thái • ch a s n ph m • ch a s n ph m • ch a s n ph m 33 M ng Petri Ví d 5: mô t tách r i m i thành ph n S n xu t L y t kho P1 C1 P2 Tiêu th G i vào kho G i vào kho G i vào kho L y t kho C2 L y t kho 34 17 M ng Petri Ví d 5: mơ t k t h p thành ph n S n xu t P1 G i vào kho P2 L y t kho L y t kho C1 G i vào kho C2 Tiêu th 35 ði u ki n trư c sau (pre/post condition) ñư c dùng ñ ñ c t hàm ho c mô-ñun ñ c t tính ch t c a d li u trư c sau th c hi n hàm pre-condiition: ñ c t ràng bu c tham s trư c hàm ñư c th c thi post-condition: ñ c t ràng bu c tham s sau hàm ñư c th c thi có th s d ng ngơn ng phi hình th c, hình th c ho c ngơn ng l p trình đ đ c t u ki n 36 18 ði u ki n trư c sau Ví d : đ c t hàm tìm ki m function search ( a : danh sách ph n t ki u K, size : s phân t c a dánh sách, e : ph n t ki u K, result : Boolean ) pre post ∀i, ≤ i ≤ n, a[i] ≤ a[i+1] result = (∃i, ≤ i ≤ n, a[i] = e) 37 ði u ki n trư c sau Bài t p: ñ c t hàm S p x p m t danh sách s nguyên ð o ngư c ph n t c a m t danh sách ð m s ph n t có giá tr e m t danh sách s nguyên 38 19 Ki u tr u tư ng (abstract types) Mô t d li u thao tác d li u m t m c tr u tư ng ñ c l p v i cách cài ñ t d li u b i ngôn ng l p trình ð c t m t ki u tr u tư ng g m: tên c a ki u tr u tư ng • dùng t khóa sort khai báo ki u tr u tư ng ñã t n t i đư c s d ng • dùng t khóa imports thao tác trên ki u tr u tư ng • dùng t khóa operations 39 Ki u tr u tư ng Ví d 1: đ c t ki u tr u tư ng Boolean sort Boolean operations true false ¬_ _∧_ _∨_ : → Boolean : → Boolean : Boolean → Boolean : Boolean x Boolean → Boolean : Boolean x Boolean → Boolean m t thao tác khơng có tham s 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 “_” 40 20 Ki u tr u tư ng Ví d 2: ñ c t ki u tr u tư ng Vector sort Boolean operations true false ¬_ _∧_ _∨_ : → Boolean : → Boolean : Boolean → Boolean : Boolean x Boolean → Boolean : Boolean x Boolean → Boolean m t thao tác khơng có tham s 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 “_” 41 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 42 21 Ki u tr u tư ng Ví d 2: đ c t ki u tr u tư ng Vector thao tác ki u ch ñư c ñ nh nghĩa mà khơng ch ng nghĩa c a • t c ý nghĩa c a thao tác s d ng tiên ñ ñ ñ nh nghĩa ng nghĩa c a thao tác • dùng t khóa axioms ñ nh nghĩa ràng bu c mà m t thao tác đư c đ nh nghĩa • dùng t khóa precondition 43 Ki u tr u tư ng Ví d 2: đ c t ki u tr u tư ng Vector precondition ith(v, i) is-defined-ifonlyif infborder(v) ≤ i ≤ supborder(v) & init(v,i) = true axioms infborder(v) ≤ i ≤ supborder(v) ⇒ ith(change-ith(v, i, e), i) = e infborder(v) ≤ i ≤ supborder(v) & infborder(v) ≤ j ≤ supborder(v) & i ≠ j ⇒ ith(change-ith(v, i, e), j) = ith(v, j) init(vect(i, j), k) = false infborder(v) ≤ i ≤ supborder(v) ⇒ init(change-ith(v, i, e), i) = true infborder(v) ≤ i ≤ supborder(v) & i ≠ j ⇒ init(change-ith(v, i, e), j) = init(v, j) infborder(vect(i, j)) = i infborder(change-ith(v, i, e)) = infborder(v) supborder(vect(i, j)) = j supborder(change-ith(v, i, e)) = supborder(v) with 44 v: Vector; i, j, k: Integer; e: Element 22 Ki u tr u tư ng Bài t p ð c t ki u tr u tư ng nh phân ð c t ki u tr u tư ng t p h p 45 23 ... 15 M ng Petri Ví d 4: tình hu ng ngh n (dead-lock) P1 P2 P3 t1 t2 P4 P5 t3 t4 P7 P6 t5 t6 P8 P9 t7 t8 31 M ng Petri Ví d 4: gi i pháp ch ng ngh n P1 P2 P3 t1 t2 P4 P5 t3 t4 2 P7 P6 t5 P8 t6 t7... supborder(change-ith(v, i, e)) = supborder(v) with 44 v: Vector; i, j, k: Integer; e: Element 22 Ki u tr u tư ng Bài t p ð c t ki u tr u tư ng nh phân ð c t ki u tr u tư ng t p h p 45 23 ... bi u di n d ng ñ th bao g m t p h p tr ng thái S (các nút c a ñ th ) t p h p d li u vào I (các nhãn c a cung) t p h p chuy n ti p T : S x I → S (các cung có hư ng c a đ th ) • có m t d li u vào,

Ngày đăng: 17/10/2014, 07:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan