intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 8 : Cách đo lường Coupling

Chia sẻ: Muay Thai | Ngày: | Loại File: PDF | Số trang:63

269
lượt xem
9
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Coupling là 1 cách để đo lừơng xem 1 phần tử khi được kết nối thì nó có khả năng “hiểu biết” đến mức nào hay hoàn toàn phụ thuộc vào các phần tử khác. Phần tử có thể là class, subsystem, system…

Chủ đề:
Lưu

Nội dung Text: Chương 8 : Cách đo lường Coupling

  1. CHƯƠNG 8: Design Design Pattern 1
  2. Nội dung dung Coupling là gì?   Cohesion là gì?  Pattern là gì?  GRASP là gì? 2
  3. Coupling Coupling là gì? Coupling là 1 cách để đo lừơng xem 1  phần tử khi được kết nối thì nó có khả năng “hiểu biết” đến mức nào hay hoàn toàn phụ thuộc vào các phần tử khác. Phần tử có thể là class, subsystem, system…  Một phần tử có coupling thấp (low coupling) nghĩa là nó không phụ thuộc nhiều vào các phần tử khác. 3
  4. Coupling Coupling là gì? Một lớp có coupling cao sẽ phụ thuộc  vào nhiều lớp khác. Các lớp này là không nên dùng vì: ◦ Những thay đổi trong các lớp có liên quan sẽ làm cho lớp này cũng bị thay đổi theo ◦ Khó hiểu khi chúng bị cô lập ◦ Khó dùng lại vì nó đòi hỏi sự hiện diện của 1 số lớp mà nó phụ thuộc vào 4
  5. Cohesion Cohesion là gì? Coupling đề cập đến sự tương tác giữa  các đối tượng thì cohesion đề cập đến sự tương tác bên trong 1 đối tượng.  Cohesion là 1 cách đo lường để xem các nhiệm vụ của 1 phần tử có quan hệ chặt chẽ với nhau như thế nào?  Một phần tử có trách nhiệm tương đối cao, và không phải làm quá nhiều việc được xem là có cohesion cao (high cohesion) 5
  6. Cohesion Cohesion là gì? Một lớp có low cohesion khi nó làm nhiều  việc không liên quan nhau hay làm quá nhiều việc. Những lớp này là không nên dùng vì: ◦ Khó hiểu ◦ Khó dùng lại ◦ Khó bảo trì ◦ Dễ bị ảnh hưởng bởi các thay đổi Các lớp có cohesion thấp thường biểu diễn  cho việc trừu tượng ở mức quá lớn, hay nhận những nhiệm vụ mà lẽ ra phải giao lại cho các đối tượng khác thực hiện. 6
  7. Cohesion Cohesion là gì? Method cohesion: là method chỉ đảm nhiệm 1  chức năng hay 1 nhiệm vụ. Thông thường cách đặt tên của nó cũng ngầm nói lên chức năng, ví dụ method chon_nha_cung_cap(),Tinh_tong() Class cohesion: các thuộc tính và method của  lớp phải có mức độ cohesion cao, nghĩa là chúng phải được dùng bởi chính các method trong class hay chỉ chứa các method phục vụ cho mục đích chính của class 7
  8. Các mức độ cohesion Các Very low cohesion: một class phải tự 1. mình làm nhiều việc trong những miền chức năng hoàn toàn khác nhau. Ví dụ: một lớp vừa có có nhiệm vụ tương tác với database quan hệ vừa quản lý các lệnh gọi thủ tục từ xa. Những nhiệm vụ này thuộc 2 vùng chức năng khác nhau, nên lớp này có very low cohesion. 8
  9. Các mức độ cohesion Các Low cohesion: class có nhiệm vụ phải tự mình 2. thực hiện 1 công việc phức tạp trong 1 vùng chức năng. Ví dụ: một lớp có nhiệm vụ tương tác với database quan hệ. Các method của lớp đều có liên quan với nhau nhưng lớp này có quá nhiều method để đảm đương nhiệm vụ Nên chia lớp này thành 1 họ các lớp cùng chia xẻ nhau công việc truy xuất database. 9
  10. Các mức độ cohesion Các High cohesion: lớp có nhiệm vụ vừa phải  (moderate responsibilities) trong cùng 1 vùng chức năng và hợp tác với các lớp khác để hoàn thành nhiệm vụ.  Ví dụ: lớp RDBInterface chỉ có 1 phần nhiệm vụ trong việc tương tác với database. Nó tương tác với hàng tá các lớp khác để khôi phục và lưu trữ dữ liệu. 10
  11. Quy luật Cohesion và Coupling Quy Cohesion kém thì thường sinh ra  coupling kém và ngược lại.  Cohesion và couling được ví như âm và duơng (yin and yang) của software engineering 11
  12. Các lợi ích của high cohesion Các Làm cho việc thiết kế rõ ràng và dễ hiểu  hơn.  Việc bảo trì và mở rộng cũng đơn giản hơn.  Low coupling thường đuợc hỗ trợ. 12
  13. Pattern là gì? la Trong thực tế có rất nhiều lược đồ class  có cấu trúc giống nhau. Pattern được xem như là giải pháp hay cách thức để giải quyết bài toán.  Khái niệm về pattern trong thiết kế phần mềm đuợc vay mượn từ ngành kiến trúc xây dựng nơi mà các pattern trợ giúp rất nhiều cho các kiến trúc sư khi làm việc với các cấu trúc phức tạp 13
  14. Pattern là gì? la Một pattern khi được áp dụng vào1 ngữ  cảnh mới sẽ đưa ra các khuyến cáo (recommendation) làm thế nào để áp dụng và hòa hợp nó vào tình huống mới  “A pattern is a named problem/ solution pair that can be applied in new context, with advice on how to apply it in novel situations and discussion of its trade-offs” 14
  15. GRASP GRASP GRASP (General Responsibility Assignment  Software Patterns) bao gồm nhiều pattern mô tả các nguyên tắc cơ bản trong việc thiết kế đối tượng và gán nhiệm vụ cho đối tượng.  Hiểu và áp dụng các nguyên tắc GRASP trong quá trình tạo lược đồ tương tác là rất quan trọng giúp thiết kế thành công phần mềm hướng đối tượng. 15
  16. GRASP GRASP Mô hình thiết kế có thể chứa hàng trăm  hay hàng ngàn các lớp phần mềm, và 1 ứng dụng có thể yêu cầu hàng trăm hay hàng ngàn các nhiệm vụ cần phải hoàn thành.  Khi thiết kế đối tượng, cần chọn lựa xem nhiệm vụ nên gán cho đối tượng nào là phù hợp hơn. Nếu gán hợp lý, hệ thống sẽ trở nên dễ hiểu, dễ bảo trì và mở rộng. 16
  17. GRASP GRASP Có rất nhiều pattern thuộc loại này  nhưng 5 pattern cơ bản nhất : 1. Information Expert 2. Creator 3. High Cohesion 4. Low Coupling 5. Controller 17
  18. Information Information Expert (or Expert) Solution: Assign a responsibility to the  information expert - the class that has the information necessary to fulfill the responsibility.  Problem: What is a general principle of assigning responsibilities to objects? Gọi tắt pattern này là IE  18
  19. Case study 1: Lớp nào biết tổng trị giá ng tri Nếu có một số lớp cần biết tổng trị giá  của 1 lần bán. Câu hỏi đặt ra là lớp nào có nhiệm vụ cho biết tổng trị giá một lần bán.  Theo IE cần tìm xem có lớp nào chứa thông tin cần thiết để xác định tổng số hay không? Chúng ta nên tìm các lớp trong mô hình domain hay mô hình thiết kế. 19
  20. Case study 1: Lớp nào biết tổng trị giá ng tri Trước hết tìm các lớp thích hợp trong 1. mô hình thiết kế. 2. Nếu không tìm thấy, thì tìm các lớp trong mô hình domain và cố sử dụng các lớp trong mô hình domain để tạo lập các lớp tương ứng trong mô hình thiết kế. 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2