D) CÁC CÁCH BIỂU DIỄN CỦA MÔ HÌNH PHÂN TÍCH
b. Sự ghép nối
Sự ghép nối (coupling) chỉ ra độ ghép nối giữa các đơn vị của chương trình. Hệ thống có ghép nối cao sẽ có độ ghép nối mạnh giữa các đơn vị, nói cách khác là các đơn vị phụ thuộc lẫn nhau. Hệ thống nối ghép lỏng lẻo làm cho các đơn vị là độc lập hoặc tương đối độc lập với nhau.
Sự ghép nối của một thành phần với các thành phần khác thể hiện bằng số lượng mối liên kết phụ thuộc giữa nó với các thành phần khác. Các module là được ghép nối chặt chẽ nếu chúng
dùng các biến chung và nếu chúng trao đổi các thông tin điều khiển (ghép nối chung nhau và ghép nối điều khiển). Ghép nối lỏng lẻo đạt được khi các thông tin biểu diễn được giữ trong thành phần này và chỉ giao tiếp với các thành phần khác thông qua danh sách tham số. Việc tối thiểu hóa sự ghép nối không phải lúc nào cũng thực hiện được. Dưới đây là các loại ghép nối được trình bày theo trình tự từ tốt đến xấu:
- Không có liên kết trực tiếp:Các module không có mối liên hệ trực tiếp với nhau, không có sựtrao đổi thông tin. Việc nâng cấp module này không ảnh hưởng tới module khác.
- Ghép nối dữ liệu:Hai module chỉ trao đổi các dữ liệu đơn giản (không có cấu trúc) và
thông qua giao diện. Ví dụ: một module gọi module khác thông qua các tham trị. Trong trường
- Ghép nối nhãn: Các module trao đổi dữ liệu dạng có cấu trúc thông qua giao diện (interface). Ví dụ trường hợp truyền các tham số. Trong trường hợp này, các module có thể thay đổi cấu trúc dữ liệu (thông qua việc khai báo kiểu). Khi thực hiện chương trình, nó có thể lưu các tham chiếu (con trỏ, địa chỉ đối tượng).
- Ghép nối điều khiển: Giao diện cho phép chi phối cách thực hiện bên trong module.
Trong trường hợp này, các module đưa ra các thông tin có liên quan đến module khác, hạn chế việc nâng cấp sửa đổi các module.
- Ghép nối mở rộng: Hai module trao đổi thông tin với nhau bởi các phần tử trung gian
của môi trường bên ngoài ứng dụng. Ví dụ: Hai ứng dụng trong hệ quản trị của trường học là đăng ký học và tính toán kết quả cần trao đổi thông tin qua người sử dụng trung gian (giáo viên, điểm thi). Trong trường hợp này, kênh trao đổi thông tin không được xác định, nó có thể bị bỏ sót trong quá trình nâng cấp.
- Ghép nối chung: Hai module dùng chung các biến toàn cục. Ví dụ như việc trao đổi
thông tin qua các biến toàn cục bằng cấu trúc COMMON trong ngôn ngữ Fortran, biến Public
trong Visual Basic. Càng nhiều biến toàn cục được sử dụng chung, càng khó nâng cấp cấu trúc.
- Ghép nối nội dung: Một module biết và mở rộng nội dung của một module khác (truy
cập vào các biến private, vào cấu trúc logic…). Ví dụ: Sử dụng các giá trị hằng số; khai thác thông tin không được công khai qua dữ liệu của giao diện (một module sử dụng kết quả của việc sắp xếp dữ liệu trong module khác). Trong trường hợp này, khi nội dung của module được triển khai, không thể mở rộnghoặcnâng cấp module.