24/05/2018, 21:45

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

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ể ...

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”.

PhienBanHangThanhToan 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

  • 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 PhienBanHangThanhToan 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ó 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.
  • 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ụ
A là một bộ phận logic của B DongBanHang - PhienBanHang

ChuyenBay - TuyenBay

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

ChuyenBayNonStop - ChuyenBay

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

KhachBay – MayBay

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

ChuyenBay - LichBay

A là một mô tả của B MoTaMatHang - MatHang

MoTaChuyenBay - ChuyenBay

A là một mục trong một giao dịch DongBanHang – PhienBanHang
A là thành viên của B NguoiBan - CuaHang

PhiCong – DoiBay

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

PhiCong – MayBay

A trao đổi với B KhachHang - NguoiBan

KhachBay – HangDatCho

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

DatCho – HuyCho

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

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

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.

0