Tải bản đầy đủ (.pdf) (5 trang)

Mối quan hệ giữa các lớp đối tượng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (105.19 KB, 5 trang )

Mối quan hệ giữa các lớp đối tượng

Mối quan hệ giữa các lớp đối
tượng
Bởi:
Đoàn Văn Ban
Trong bài trước chúng ta đã biết, có thể có bốn mối quan hệ giữa các lớp. Trong pha
phân tích, chúng ta chủ yêu tập trung phát hiện các mối quan hệ kết hợp, kết nhập của
các lớp trong danh sách nêu trên. Trong đó quan hệ kết hợp là quan trọng nhất, nó thể
hiện các mối liên hệ giữa các lớp trong hệ thống.
Trong UML, sự kết hợp (Association) là quan hệ giữa hai lớp, nó xác định cách các đối
tượng của các lớp có thể liên kết với nhau để thực hiện công việc như thế nào. Tương tự
như đối với lớp, thể hiện của lớp là các đối tượng, đối với mối quan hệ kết hợp, thể hiện
của nó là sự liên kết (link) giữa các đối tượng của hai lớp. Nghĩa là các đối tượng của
một lớp cùng chia sẻ với nhau các mối quan hệ.
Các đối tượng có thể có nhiều loại quan hệ và vì thế, các lớp (khái niệm) cũng phải có
tất cả các loại quan hệ đó trong lĩnh vực ứng dụng.
• Quan hệ kết hợp giữa hai lớp là sự kết nối vật lý hay khái niệm giữa các đối
tượng của hai lớp đó.
• Chỉ những đối tượng có mối quan hệ kết hợp với nhau mới có thể cộng tác với
nhau theo các đường liên kết được thiết lập giữa các lớp.
Booch đã mô tả vai trò của mối liên kết giữa các đối tượng như sau:
“Một liên kết chỉ rõ sự kết hợp mà qua đó, một đối tượng được một đối tượng khác phục
vụ hoặc một đối tượng có thể điều khiển đối tượng kia”.
PhienBanHang và ThanhToan là hai lớp đã phân tích ở trên trong HBH là có quan hệ
kết với nhau, mỗi lần thanh toán là để trả tiền cho một lần mua hàng. Quan hệ này được
mô tả như hình 1.

Mối quan hệ kết hợp giữa hai lớp

1/5




Mối quan hệ giữa các lớp đối tượng

Đặt tên cho các quan hệ kết hợp
• Tên của quan hệ kết hợp thường là mệnh đề động từ đơn dễ đọc và có nghĩa
trong ngữ cảnh của mô hình, thể hiện được mối liên hệ giữa các lớp.
• Tên của quan hệ kết hợp thường bắt đầu bằng động từ, hay tính động từ với chữ
đầu được viết hoa.
• Giữa các từ trong tên của quan hệ được nối với nhau bằng ‘-‘.
Tên quan hệ giữa hai lớp PhienBanHang và ThanhToan là Được-trả- tiền-bởi như ở
hình 1.
Vấn đề quan trọng đặt ra là làm thế nào để xác định chính xác các mối quan hệ giữa các
lớp trong hệ thống.

Các phương pháp xác định các mối quan hệ kết hợp
Có hai phương pháp chính để xác định các mối quan hệ giữa các lớp trong hệ thống:
1. Mối quan hệ kết hợp giữa các lớp đối tượng là cần để biết về những thông tin liên
quan
đến các lớp đó. Nghĩa là dựa vào nguyên lý “Cần để biết”.
2. Dựa vào sự phân loại các phạm trù các quan hệ trong hệ thống.
Xác định quan hệ kết hợp theo nguyên lý “ Cần để biết”
Khi phân tích các yêu cầu, ta cần phải tuân theo các nguyên lý sau:
• Quan hệ kết hợp hữu ích thường cho ta sự hiểu biết về một mối quan hệ cần
được duy trì trong một thời khoảng nào đó, được gọi là sự kết hợp “cần để biết”
(Need-to-know) [10].
• Sự liên kết quan trọng giữa hai đối tượng phải thể hiện được vai trò của sự
cộng tác hay sự tương tác giữa các đối tượng đó.
Dựa vào hai nguyên lý trên, trước hết là nguyên lý “Cần để biết” áp dụng vào ca sử dụng
“Mua hàng bằng tiền mặt”, chúng ta thấy có những quan hệ sau:

• HBH Xử-lý PhienBanHang để biết về lần bán hàng hiện thời, biết tổng số tiền
khách hàng phải trả và để in phiếu bán hàng giao cho khách.
• PhienBanHang Được-trả-tiền-bởi ThanhToan để biết xem hàng vừa bán đã
được trả tiền hay chưa, nó cũng liên quan đến số tiền mà khách đưa, hệ thống
phải trả lại tiền dư và vấn đề in phiếu bán hàng.

2/5


Mối quan hệ giữa các lớp đối tượng

• DanhMucMatHang Ghi-lại MoTaMatHang để tìm các thông tin mô tả về các
mặt hàng như: chủng loại, giá cả, chất lượng, v.v. khi biết mã sản phẩm.
Xác định mối quan hệ kết hợp dựa vào việc phân loại các phạm trù quan hệ
Việc tìm các quan hệ kết hợp cũng giống như việc tìm kiếm đối với các lớp, chúng ta có
thể dựa vào danh sách các phạm trù kết hợp để xác định.
Xét hệ thống bán hàng HBH và “Hệ thống đặt vé máy bay”, những phạm trù quan hệ
sau cần xem xét để tìm kiếm các mối quan hệ kết hợp.

Các phạm tr ù k ế t hợp

Các ví dụ
DongBanHang - PhienBanHang

A là một bộ phận logic của B

ChuyenBay - TuyenBay
ThanhToanTienMat – ThanhToan

A là một loại / lớp con / kiểu con của B


ChuyenBayNonStop - ChuyenBay
HBH - CuaHang

A được chứa (vật lý) trong / trên B

KhachBay – MayBay
MoTaMatHang - DanhMucMatHang

A được chứa (logic) trong B

ChuyenBay - LichBay
MoTaMatHang - MatHang

A là một mô tả của B
A là một mục trong một giao dịch

MoTaChuyenBay - ChuyenBay
DongBanHang – PhienBanHang
NguoiBan - CuaHang

A là thành viên của B

PhiCong – DoiBay
>
3/5


Mối quan hệ giữa các lớp đối tượng


NguoiBan - HBH
A sử dụng hoặc quản lý B

PhiCong – MayBay
KhachHang - NguoiBan

A trao đổi với B

KhachBay – HangDatCho
ThanhToan - PhienBanHang

Giao dịch A có quan hệ với giao dịch B

DatCho – HuyCho
HBH - CuaHang

A là sở hữu của B

MayBay – SanBay

Tóm lại, dựa vào việc phân loại các phạm trù kết hợp như trên, dựa vào kinh nghiệm,
kiến thức về hệ thống và dựa vào các kết quả khảo sát hệ thống trong thực tế để liệt kê
tất cả các mối quan hệ kết hợp thực giữa các lớp trong hệ thống. Các lớp trong HBH có
các quan hệ như sau:
DongBanHang - PhienBanHang
HBH - CuaHang
MoTaMatHang – DanhMucMatHang
MoTaMatHang - MatHang
NguoiBan – HBH
ThanhToan – PhienBanHang

KhachHang – HBH
NguoiBan – PhienBanHang
NguoiQL – HBH
PhienBanHang – CuaHang

4/5


Mối quan hệ giữa các lớp đối tượng

MatHang – CuaHang
CuaHang – DanhMucMatHang
DongBanHang – MatHang
DongBanHang – MoTaMatHang
Trong giai đoạn phân tích, quan hệ kết hợp không cần phải mô tả về các dòng dữ liệu,
các biến thể hiện, hoặc các mối kết nối của các đối tượng như trong lời giải cụ thể mà
chỉ cần thể hiện được những mối liên hệ có nghĩa trong thế giới thực. Trong các pha
sau, pha thiết kế và cài đặt, những mối liên hệ này sẽ được cài đặt nhưlà các đường dẫn
thông tin liên kết giữa các lớp thể hiện được khả năng quan sát giữa các đối tượng
trong hệ thống khi nó thực hiện.
Các mối quan hệ khác chúng ta sẽ đề cập đến ở các chương sau.

5/5



×