Trong lĩnh vực thiết kế và mô hình hóa phần mềm, Ngôn ngữ mô hình hóa thống nhất (UML) đóng vai trò là một công cụ mạnh mẽ để trực quan hóa và tài liệu hóa cấu trúc và hành vi của các hệ thống. Một trong những khái niệm quan trọng trong UML làđa dạng, định nghĩa các ràng buộc về số lượng đối tượng có thể tham gia vào một mối quan hệ. Bài viết này đi sâu vào khái niệm đa dạng, ý nghĩa của nó và cách nó được áp dụng trong các sơ đồ UML.
Đa dạng là gì?
Đa dạng trong UML là một ràng buộc xác định số lượng đối tượng có thể tham gia vào một đầu của mối quan hệ. Nó trả lời các câu hỏi như “Một người có thể sở hữu bao nhiêu xe ô tô?” hay “Có bao nhiêu người có thể điều khiển một chiếc xe nhất định?” Bằng cách xác định đa dạng, bạn thiết lập các quy tắc về cách các đối tượng trong mỗi lớp có thể liên kết với nhau, cung cấp một cách rõ ràng và súc tích để biểu diễn các mối quan hệ này.
Biểu diễn đa dạng
Đa dạng thường được biểu diễn dưới dạng một khoảng xác định số lượng tối thiểu và tối đa các đối tượng được phép tham gia vào một mối quan hệ. Định dạng để biểu diễn đa dạng là:
- Số lượng chính xác: Một con số duy nhất chỉ ra số lượng chính xác của các đối tượng.
- Khoảng: Một cặp số được phân cách bởi hai dấu chấm (..) chỉ ra số lượng tối thiểu và tối đa.
- Dấu sao (*): Chỉ ra số lượng đối tượng không giới hạn.
Ví dụ:
1: Chính xác một đối tượng.0..1: Không hoặc một đối tượng.1..*: Ít nhất một đối tượng, không giới hạn trên.*: Bất kỳ số lượng đối tượng nào, kể cả không.

Áp dụng đa dạng trong các mối quan hệ
Khi mô hình hóa các mối quan hệ giữa các lớp, đa dạng được gán cho mỗi đầu của mối quan hệ. Ví dụ, hãy xem xét mối quan hệ giữa lớpNgười lớp và lớpXe lớp:
- Câu hỏi 1: Một người có thể sở hữu bao nhiêu xe hơi?
- Câu hỏi 2: Có bao nhiêu người có thể điều khiển một chiếc xe nhất định?
Các câu trả lời cho những câu hỏi này được đặt bên cạnh các lớp tương ứng trong mối quan hệ. Nếu một người có thể sở hữu từ không đến nhiều xe hơi, độ nhiều gần lớpxe hơisẽ là0..*. Ngược lại, nếu một chiếc xe có thể được điều khiển bởi một đến nhiều người, độ nhiều gần lớpngườisẽ là1..*.
Ví dụ: Lô hàng và Sản phẩm
Để minh họa, hãy xem xét một tình huống trong đó mộtlô hàngphải chứa ít nhất mộtsản phẩmnhưng có thể chứa bao nhiêu sản phẩm tùy ý. Độ nhiều cho đầusản phẩmcủa mối quan hệ sẽ là1..*, cho thấy rằng một lô hàng phải có ít nhất một sản phẩm nhưng có thể có nhiều.
Ký hiệu và biểu tượng
Trong sơ đồ UML, độ nhiều được biểu diễn bằng các ký hiệu cụ thể:
- Dấu sao (*): Đại diện cho một số lượng đối tượng không giới hạn.
- Khoảng (
min..max): Xác định số lượng tối thiểu và tối đa của các đối tượng. - Số lượng chính xác: Chỉ ra số lượng chính xác của các đối tượng.
Các ký hiệu này giúp xác định rõ ràng các ràng buộc và quy tắc điều chỉnh mối quan hệ giữa các lớp.
Ví dụ 1: Người và Xe hơi
Trong ví dụ này, một Người có thể sở hữu từ không đến nhiều Xe hơi, và một Xe hơi có thể được điều khiển bởi từ một đến nhiều Người.

Ví dụ 2: Lô hàng và Sản phẩm
Trong ví dụ này, một Lô hàng phải chứa ít nhất một Sản phẩm nhưng có thể chứa số lượng sản phẩm cần thiết.

Ví dụ 3: Thư viện và Sách
Trong ví dụ này, một Thư viện có thể có nhiều Sách, và một Sách có thể được tìm thấy trong một Thư viện.

Ví dụ 4: Giáo viên và học sinh
Trong ví dụ này, một giáo viên có thể giảng dạy nhiều học sinh, và một học sinh có thể được giảng dạy bởi một giáo viên.

Ví dụ 5: Đơn hàng và mặt hàng
Trong ví dụ này, một đơn hàng có thể chứa một hoặc nhiều mặt hàng, và một mặt hàng có thể là một phần của không hoặc nhiều đơn hàng.

Ví dụ 6: Công ty và nhân viên
Trong ví dụ này, một công ty có thể có nhiều nhân viên, và một nhân viên làm việc cho một công ty.

Các ví dụ này minh họa cách multiplicity được sử dụng để xác định số lượng đối tượng tham gia vào một mối quan hệ, cung cấp một cách rõ ràng và súc tích để biểu diễn các mối quan hệ giữacác lớp trong UMLsơ đồ.
Kết luận
Multiplicity là một khái niệm cơ bản trong UML, cung cấp một cách có cấu trúc để xác định số lượng đối tượng tham gia vào một mối quan hệ. Bằng cách xác định multiplicity, các nhà thiết kế có thể đảm bảo rằng các mối quan hệ giữa các lớp được xác định rõ ràng và dễ hiểu, dẫn đến các thiết kế hệ thống bền vững và dễ bảo trì hơn. Dù bạn đang mô hình hóa các mối quan hệ đơn giản hay các mối quan hệ phức tạp, việc hiểu và áp dụng multiplicity là điều cần thiết cho việc mô hình hóa UML hiệu quả.
Tài nguyên
- Vẽ sơ đồ quan hệ thực thể trong Visual Paradigm
- Visual Paradigm. (n.d.). Vẽ sơ đồ quan hệ thực thể trong Visual Paradigm 4.
- Sơ đồ quan hệ thực thể – Multiplicities
- Stack Overflow. (n.d.). Sơ đồ quan hệ thực thể – Multiplicities 5.
- Sơ đồ quan hệ thực thể
- GitHub. (n.d.). Sơ đồ quan hệ thực thể 6.
- Xác định multiplicity trên một hình dạng UML
- Hỗ trợ Microsoft. (n.d.). Xác định multiplicity trên một hình dạng UML 7.
- Sơ đồ quan hệ thực thể (ERD) là gì?
- Visual Paradigm. (n.d.). Sơ đồ quan hệ thực thể (ERD) là gì? 8.
- Thêm bảng vào sơ đồ ER của Visual Paradigm
- Stack Overflow. (n.d.). Thêm bảng vào sơ đồ ER của Visual Paradigm 9.
- Làm thế nào để thêm một tính đa dạng vào sơ đồ lớp trong Visual Paradigm?
- TheNewsIndependent. (2020, ngày 29 tháng 12). Làm thế nào để thêm một tính đa dạng vào sơ đồ lớp trong Visual Paradigm? 10.
- Giáo trình dành cho người mới bắt đầu về sơ đồ Entiti-Relationship (ER)
- Blog của Visual Paradigm. (2023, ngày 21 tháng 9). Giáo trình dành cho người mới bắt đầu về sơ đồ Entiti-Relationship (ER) 11.
- Tính đa dạng so với tính cardinality
- Stack Overflow. (n.d.). Tính đa dạng so với tính cardinality 12.