Xem mẫu

  1. Thi t k (6) 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 Thi t k ? phân tích bài toán/v n ñ xu t phát t yêu c u mô t m t ho c nhi u gi i pháp ñánh giá các gi i pháp, ch n gi i pháp t t nh t m t m c tr u tư ng nh t ñ nh s d ng các mô hình 3 tính ch t tr l i câu h i “như th nào” mô t ch y u là c u trúc b qua các chi ti t cài ñ t • gi i pháp tr u tư ng ≠ gi i pháp c th 2 1
  2. Các giai ño n thi t k Ho t ñ ng thi t k xu t hi n trong các mô hình phát tri n khác nhau Hai giai ño n thi t k chính Thi t k ki n trúc • phân tích gi i pháp thành các thành ph n • ñ nh nghĩa giao di n gi a các thành ph n • ñ nh nghĩa ph n v n ñ ñư c gi i quy t b i m i thành ph n • có th ñư c th c hi n b i nhi u m c tr u tư ng Thi t k chi ti t • thi t k thu t toán, c u trúc d li u... 3 Các giai ño n thi t k Requirements specification Design activities Architectural Abstract Interface Component Data Algorithm design specificatio design design structure design n design Software Data System Interface Component Algorithm specification structure architecture specification specification specification specification Design products 4 2
  3. Các giai ño n thi t k Architectural design xác ñ nh các h th ng con Abstract specification ñ c t các h th ng con Interface design mô t giao di n các h th ng con Component design phân tích h th ng con thành các thành ph n Data structure design các c u trúc d li u lưu tr d li u c a bài toán Algorithm design thi t k thu t toán cho các hàm/mô-ñun 5 T i sao ph i thi t k ? có m t ki n trúc t t làm ch ñư c c u trúc h th ng “chia ñ tr ” ñ t ñư c các tiêu chu n ch t lư ng tái s d ng / d ke em th / d b o trì... thi t k hư ng ñ n s thay ñ i (design for change) 6 3
  4. Thi t k và s thay ñ i Thay ñ i = tích ch t ñ c trưng c a ph n m m D báo thay ñ i là c n thi t gi m chi phí b o trì D báo thay ñ i là khó khăn s thay ñ i thư ng không ñư c xác ñ nh trư c nhi u y u t thay ñ i cùng lúc th i ñi m thay ñ i là khó có th bi t trư c 7 Thi t k và s thay ñ i Các y u t có th thay ñ i thu t toán c u trúc d li u bi u di n d li u bên ngoài thi t b ngo i vi môi trư ng xã h i yêu c u khách hàng 8 4
  5. Thi t k hư ng mô-ñun Ph n m m là t p h p g m các mô-ñun tương tác v i nhau Mô-ñun hóa ñóng vai trò quan tr ng ñ có ñư c ph n m m ch t lư ng v i chi phí th p M c ñích thi t k h th ng xác ñ nh các mô-ñun có th xác ñ nh tương tác gi a các mô-ñun 9 Các tiêu chu n c a m t phương pháp thi t k Các tiêu chu n ñ ñánh giá m t phương pháp thi t k hư ng mô-ñun tính phân rã (modular decomposability) tính t ng h p (modular composability) tính d hi u (modular understandability) tính liên t c (modular continuity) tính b o v (modular protection) 10 5
  6. Các tiêu chu n c a m t phương pháp thi t k tính phân rã (modular decomposability) phân rã v n ñ thành các v n ñ con nh hơn có th gi i quy t các v n ñ con m t cách ñ cl p các phương pháp thi t k t trên xu ng (to- down design) th a mãn tiêu chu n này 11 Các tiêu chu n c a m t phương pháp thi t k tính t ng h p (modular composability) các mô-ñun d dàng ñư c k t h p v i nhau ñ t o nên các h th ng m i có m i quan h ch t ch v i tính tái s d ng tính t ng h p có th xung ñ t v i tính phân rã • phân rã thành các mô-ñun chuyên bi t thay vì các mô-ñun t ng quát 12 6
  7. Các tiêu chu n c a m t phương pháp thi t k tính d hi u (modular understandability) thi t k các mô-ñun m t cách d hi u tính ch t m i mô-ñun • m i mô-ñun có d hi u ? • các tên s d ng có ý nghĩa ? • cso s d ng thu t toán ph c t p ? Ví d s d ng “goto” chương trình vài nghìn dòng l nh, nhưng không s d ng hàm/th t c 13 Các tiêu chu n c a m t phương pháp thi t k tính liên t c (modular continuity) m t s thay ñ i trong ñ c t yêu c u ch d n ñ n s thay ñ i trong m t (ho c m t s ít) mô-ñun Ví d ☺không s d ng s ho c chu i ký t trong chương trình, ch ñư c s d ng các h ng ñã ñ nh nghĩa s d ng m ng 14 7
  8. Các tiêu chu n c a m t phương pháp thi t k tính b o v (modular protection) ki n trúc ñươc thi t k sao cho n u m t ñi u ki n b t thư ng x y ra, ch m t (ho c m t s ít) mô-ñun b nh hư ng 15 Thi t k ki n trúc Ki n trúc = t p h p các thành ph n/mô-ñun và quan h gi a chúng các thành ph n/mô-ñun • hàm / nhóm các hàm / l p ... quan h • s d ng / g i / th a k ... 16 8
  9. Ch t lư ng c a ki n trúc m i mô-ñun có tính k t c cao (high cohesion) m t mô-ñun là m t ñơn v lô-gíc toàn b mô-ñun cùng ñóng góp th c hi n m t m c tiêu liên k t l ng l o (low coupling) gi a các mô- ñun ít ràng bu c, ph thu c l n nhau d hi u ñ nh nghĩa r ràng các mô-ñun và quan h gi a chúng 17 Các lo i ki n trúc Ba lo i mô hình ki n trúc thư ng ñư c s d ng chia s d li u: mô hình “Repository” chia s d ch v , servers: mô hình “Client- Server” mô hình l p (layered model) 18 9
  10. Mô hình “Repository” Nguyên t c d li u chia s ñư c t p trung trong m t CSDL các h th ng con ñ u truy c p vào CSDL chung Khi m t lư ng d li u l n c n chia s gi a các h th ng con mô hình “Repository” thư ng ñư c s d ng 19 Mô hình “Repository” Ví d ki n trúc m t công c CASE 20 10
  11. Mô hình “Repository” Ưu di m ñơn gi n hi u qu khi chia s lư ng d li u l n s ñ c l p c a các h th ng con H n ch các h th ng con ph i th ng nh t trên mô hình d li u “repository” khó khăn khi phân tán d li u 21 Mô hình “Client-Server” Nguyên t c mô hình phân tán: d li u và x lý ñư c phân tán trên nhi u thành ph n khác nhau H th ng bao g m các servers cung c p các d ch v • có th có nhi u servers các clients yêu c u các d ch v phương th c trao ñ i • m ng hay trên m t máy tính 22 11
  12. Mô hình “Client-Server” Ví d 23 Mô hình “Client-Server” Ưu ñi m s d ng hi u qu m ng d dàng thêm server m i ho c nâng c p server hi n t i phân tán d li u d dàng H n ch m i h th ng con quan lý d li u riêng c a nó • có th d n ñ n dư th a không có ki n trúc t p trung ghi nh n các dich v • khó khăn ñ xác ñ nh d li u hay d ch v s d ng 24 12
  13. Mô hình l p Nguyên t c t ch c h th ng thành t p h p các l p m i l p cung c p t p h p các d ch v ñư c s d ng ñ mô t quan h gi a các h th ng con khi giao di n c a m t l p thay ñ i, ch l p k c n b nh hư ng h tr mô hình phát tri n tăng trư ng 25 Mô hình l p Ví d : h th ng qu n lý phiên b n 26 13
nguon tai.lieu . vn