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ả - Nguyễn Thanh Bình
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 cái gì
không mô tả nó phải làm như thế nào
mô tả những tính chất của vấn đề
đặt ra
không mô tả những tính chất của giải
pháp cho vấn đề đó
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "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ả - 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
Tóm tắt nội dung tài liệu: 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ả - Nguyễn Thanh Bình
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 sao ph i ñ c t ? Phân lo i các k thu t ñ c t Các k thu t ñ c t 2 1 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 cái gì không mô t nó ph i làm nh ư th nào mô t nh ng tính ch t c a v n ñ ñ t ra không mô t nh ng tính ch t c a gi i pháp cho v n ñ ñ ó 3 Khá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 4 2 T 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 H p th c hóa s n ph m làm ra ph i th c hi n chính xác nh ng gì mong mu n Trao ñ i gi a ng ư i s d ng và ngư i phát tri n gi a nh ng ng ư i phát tri n Tái s d ng 5 Phân lo i các k thu t ñ c t ð c t phi hình th c (informal) ngôn ng t nhiên t do ngôn ng t nhiên có c u trúc cá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, các kí hi u toán h c và các kí hi u ñ h a ð c t hình th c (formal) kí hi u toán h c • ngôn ng ñ c t • ngôn ng l p trình 6 3 ð c t hình th c hay không hình th c ? ð c t hình th c chính xác (toá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 m d o thi u s chính xác nh p nh ng 7 ng d ng ñ c t hình th c ng d ng trong các giai ño n s m c a ti n trình phát tri n h n ch l i trong phát tri n ph n m m ng d ng ch y u trong phát tri n các h th ng “quan tr ng” (critical systems) h th ng ñi u khi n h th ng nhúng h th ng th i gian th c 8 4 Chi phí phát tri n khi s d ng ñ c t hình th c 9 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 và sau Ki u tr u t ư ng ð c t Z 10 5 Máy tr ng thái h u h n (state machine) mô t các lu ng ñi u khi n bi u di n d ng ñ th bao g m t p h p các tr ng thái S (các nút c a ñ th ) t p h p các d li u vào I (các nhãn c a các cung) t 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 m t tr ng thái khác 11 Máy tr ng thái h u h n ð t máy xu ng ð i ð t máy xu ng Ví d 1 Nh c máy Âm m i quay s Th i gian ñ i k t B m s thúc S sai Thông báo Quay s quay s sai S ñ úng K t n i Máy b n K t n i ñư c ð chuông Thuê bao ñư c g i nh c máy 12 ðàm tho i 6 Máy tr ng thái h u h n Ví d 2 H th ng c n mô t bao g m m t nhà s n xu t, m t nhà tiêu th và m t kho hàng ch ch a ñư c nhi u nh t 2 s n ph m Nhà s n xu t có 2 tr ng thái • P1: không s n xu t • P2: ñang s n xu t Nhà tiêu th có 2 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ó 3 tr ng thái • ch a 0 s n ph m • ch a 1 s n ph m • ch a 2 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 các thành ph n S n xu t L y t kho P1 P2 C1 C2 G i vào kho Tiêu th G i vào kho G i vào kho 0 1 2 L y t kho L y t kho 14 7 Máy tr ng thái h u h n Gi i pháp 1 không mô t ñư c s ho t ñ ng h th ng c n mô t s ho t ñ ng k t h p các 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 các thành ph n G i vào kho G i vào kho S n xu t S n xu t S n xu t L y t kho 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 S n xu t G i vào kho G i vào kho 16 8 Máy tr ng thái h u h n Gi i pháp 2 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 khi ñ c t nh ng h th ng không ñ ng b o các 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 các h th ng không ñ ng b v i nh ng ho t ñ ng ñ ng th i mô t lu ng ñi u khi 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 9 M ng Petri G m các ph n t m t t p h p h u h n các nút () m t t p h p h u h n các chuy n ti p () m t t p h p h u h n các cung (→) • các cung n i các nút v i các 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 các nút c a nó Vi c ñánh d u các nút ñư c ti n hành theo nguyên t c sau: m i chuy n ti p có các nút vào và các nút ra n u t t c các nút vào c a m t chuy n ti p có ít nh t m 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 l 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 p 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 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 khi 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 rg yellow gy 25 green M ng Petri Ví d 1: mô t ho t ñ ng c a 2 ñ èn giao thông red1 red2 yr1 yr2 rg1 yellow1 yellow2 rg2 gy1 gy2 26 green1 green2 13 M ng Petri Ví d 1: mô t ho t ñ ng an toàn c a 2 ñ èn giao thông red1 red2 safe yr1 yr2 rg1 yellow1 yellow2 rg2 gy1 gy2 27 green1 green2 M ng Petri Ví d 1: mô t ho t ñ ng an toàn và h p lý c a 2 ñ èn giao thông red1 red2 safe2 yr1 yr2 rg1 yellow1 rg2 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 con d y thì cư i thanh niên có v có ch ng ly hôn 29 ch t ch t M ng Petri Ví d 3: vi t th ư và ñ c th ư begin receive_mail mail_box rest rest type_mail read_mail send_mail ready 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ư ? 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 2 2 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 2 P7 P6 t5 t6 P8 P9 2 2 t7 t8 32 16 M ng Petri Ví d 5 H th ng c n mô t bao g m m t nhà s n xu t, m t nhà tiêu th và m t kho hàng ch ch a ñư c nhi u nh t 2 s n ph m Nhà s n xu t có 2 tr ng thái • P1: không s n xu t • P2: ñang s n xu t Nhà tiêu th có 2 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ó 3 tr ng thái • ch a 0 s n ph m • ch a 1 s n ph m • ch a 2 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 P2 C1 C2 G i vào kho Tiêu th G i vào kho G i vào kho 0 1 2 L y t kho L y t kho 34 17 M ng Petri Ví d 5: mô t k t h p các thành ph n S n xu t P1 G i vào kho P2 G i vào kho L y t kho 2 0 1 L y t kho C1 C2 Tiêu th 35 ði u ki n tr ư c và sau (pre/post condition) ñư c dùng ñ ñ c t các hàm ho c mô-ñun ñ c t các tính ch t c a d li u tr ư c và sau khi th c hi n hàm 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 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 các ñi u ki n 36 18 ði u ki n tr ư c và 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 ∀i, 1 ≤ i ≤ n, a[i] ≤ a[i+1] post result = ( ∃i, 1 ≤ i ≤ n, a[i] = e) 37 ði u ki n tr ư c và sau Bài t p: ñ c t các hàm 1. S p x p m t danh sách các s nguyên 2. ð o ng ư c các ph n t c a m t danh sách 3. ð m s ph n t có giá tr e trong m t danh sách các s nguyên 38 19 Ki u tr u t ư ng (abstract types) Mô t d li u và các thao tác trên 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 các ki u tr u t ư ng ñã t n t i ñư c s d ng • dùng t khóa imports các thao tác trên 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 : →→→ 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 “_” 40 20 Ki 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 “_” 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 các thao tác trên ki u ch ñư c ñ nh ngh ĩa mà không ch ra ng ngh ĩa c a nó • t c là ý ngh ĩa c a thao tác s d ng các tiên ñ ñ ñ nh ngh ĩa ng ngh ĩa c a các thao tác • dùng t khóa axioms ñ nh ngh ĩa các 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 v: Vector; i, j, k: Integer; e: Element 44 22 Ki u tr u t ư ng Bài t p ð c t ki u tr u t ư ng cây nh phân ð c t ki u tr u t ư ng t p h p 45 23
File đính kèm:
- bai_giang_nhap_mon_cong_nghe_phan_mem_chuong_4_cac_ky_thuat.pdf