Ngôn ngữ mô hình hóa thống nhất (UML) là một ngôn ngữ mô hình hóa trực quan, sử dụng các ký hiệu đồ họa để mô tả và thiết kế các hệ thống phần mềm một cách nhanh chóng và hiệu quả. UML giúp các nhà phát triển, kỹ sư và các bên liên quan hiểu rõ hơn về hệ thống, từ đó giảm thiểu rủi ro và cải thiện chất lượng sản phẩm.
UML không chỉ phù hợp để mô tả cấu trúc tĩnh mà còn thể hiện hành vi động của hệ thống thông tin. Cách tiếp cận mô hình hóa này mang lại cái nhìn toàn diện, giúp nắm bắt yêu cầu của người dùng, hỗ trợ thiết kế, thẩm định và kiểm tra sản phẩm. Các mô hình UML còn là cơ sở để sinh mã tự động trong các ngôn ngữ lập trình hướng đối tượng như C++ và Java, đặc biệt hữu ích trong lập trình hướng đối tượng.
UML sử dụng một hệ thống ký hiệu thống nhất để biểu diễn các phần tử mô hình. Tập hợp các phần tử này tạo thành các sơ đồ UML, bao gồm nhiều loại sơ đồ khác nhau, mỗi loại tập trung vào một khía cạnh cụ thể của hệ thống.
Dưới đây là danh sách các loại sơ đồ UML phổ biến:
- Sơ đồ lớp (Class Diagram)
- Sơ đồ đối tượng (Object Diagram)
- Sơ đồ tình huống sử dụng (Use Case Diagram)
- Sơ đồ trình tự (Sequence Diagram)
- Sơ đồ cộng tác (Collaboration Diagram hay còn gọi là Composite Structure Diagram)
- Sơ đồ trạng thái (State Machine Diagram)
- Sơ đồ thành phần (Component Diagram)
- Sơ đồ hoạt động (Activity Diagram)
- Sơ đồ triển khai (Deployment Diagram)
- Sơ đồ gói (Package Diagram)
- Sơ đồ liên lạc (Communication Diagram)
- Sơ đồ tương tác tổng quan (Interaction Overview Diagram – UML 2.0)
- Sơ đồ thời gian (Timing Diagram – UML 2.0)
Mục Lục
Các Biểu Đồ UML Phổ Biến
Biểu Đồ Use Case (Use Case Diagram)
Biểu đồ Use case mô tả tương tác giữa người dùng (tác nhân) và hệ thống, thể hiện các chức năng mà hệ thống cung cấp. Mỗi Use case đại diện cho một mục tiêu cụ thể mà người dùng muốn đạt được khi tương tác với hệ thống.
-
Hệ thống: Đại diện cho phạm vi và ranh giới của hệ thống đang mô tả.
-
Tác nhân (Actor): Người dùng hoặc hệ thống bên ngoài tương tác với hệ thống. Tác nhân thực hiện các Use case.
Tác nhân được ký hiệu:
hoặc
-
Use case: Thể hiện một chức năng cụ thể của hệ thống, được biểu diễn bằng hình elip.
-
Mối quan hệ giữa các Use case:
-
Association: Mô tả mối quan hệ giữa Actor và Use Case, hoặc giữa các Use Case với nhau.
Ví dụ về quan hệ Association.
-
Include: Một Use Case lớn được chia thành các Use Case nhỏ hơn để dễ dàng quản lý và tái sử dụng.
Ví dụ về quan hệ Include.
-
Extend: Một Use Case bổ sung chức năng cho một Use Case khác trong một điều kiện cụ thể.
Ví dụ về quan hệ Extend.
-
Generalization: Thể hiện quan hệ thừa kế giữa các Actor hoặc Use Case.
Ví dụ về quan hệ Generalization.
-
Biểu Đồ Lớp (Class Diagram)
Biểu đồ lớp mô tả cấu trúc tĩnh của các lớp trong hệ thống. Các lớp đại diện cho các đối tượng và khái niệm trong hệ thống, bao gồm các thuộc tính (dữ liệu) và phương thức (hành vi).
Thành phần của một lớp:
- Tên lớp.
- Các thuộc tính (Attributes): Mô tả dữ liệu mà lớp lưu trữ.
- Các phương thức (Operations): Mô tả hành vi mà lớp có thể thực hiện.
Liên kết giữa các lớp:
-
Liên kết (Association): Mối quan hệ ngữ nghĩa giữa hai hoặc nhiều lớp, thể hiện sự liên kết giữa các thể hiện của chúng.
Bội số quan hệ: Số lượng thể hiện của một lớp liên quan đến một thể hiện của lớp khác.
Ví dụ: Một giáo sư (Professor) có thể dạy nhiều khóa học (Course Offerings). Một khóa học có thể được dạy bởi một hoặc không giáo sư nào.
-
Biểu diễn bội số quan hệ:
Biểu diễn Ý nghĩa Unspecified Không xác định 1 Chính xác 1 0..* 0 hoặc nhiều * 0 hoặc nhiều 1..* 1 hoặc nhiều 0..1 0 hoặc 1 2..4 Khoảng xác định 2, 4..6 Nhiều khoảng rời rạc
-
-
Kết tập (Aggregation): Một dạng đặc biệt của liên kết, mô hình hóa mối quan hệ toàn thể – bộ phận giữa đối tượng toàn thể và các bộ phận của nó.
- Kết tập là mối quan hệ “là một phần” (“is a part-of”).
- Bội số quan hệ được biểu diễn giống như các liên kết khác.
-
Cấu thành (Composition): Một dạng của kết tập với quyền sở hữu mạnh và vòng đời trùng khớp giữa hai lớp.
- Whole sở hữu Part, tạo và hủy Part.
- Part bị bỏ đi khi Whole bị bỏ, Part không thể tồn tại nếu Whole không tồn tại.
Sự khác nhau giữa Association, Aggregation và Composition là mức độ sở hữu và vòng đời giữa các lớp.
-
Tổng quát hóa (Generalization): Mối quan hệ giữa các lớp, trong đó một lớp chia sẻ cấu trúc và/hoặc hành vi với một hoặc nhiều lớp khác.
- Xác định sự phân cấp về mức độ trừu tượng hóa, trong đó lớp con kế thừa từ một hoặc nhiều lớp cha.
- Đơn kế thừa (Single inheritance).
- Đa kế thừa (Multiple inheritance).
- Là mối liên hệ “là một loại” (“is a kind of”).
Lớp trừu tượng (Abstract Class) và lớp cụ thể (Concrete Class) là hai loại lớp khác nhau trong mô hình hóa hướng đối tượng.
- Xác định sự phân cấp về mức độ trừu tượng hóa, trong đó lớp con kế thừa từ một hoặc nhiều lớp cha.
Gói (Package)
Khi mô hình hóa một hệ thống lớn, việc quản lý số lượng lớn các lớp có thể trở nên khó khăn. UML cung cấp khái niệm “gói” để tổ chức các lớp thành các nhóm logic, giúp hệ thống dễ hiểu và quản lý hơn.
Có hai cách để biểu diễn gói trên sơ đồ UML. Cách thứ nhất là hiển thị các thành viên của gói bên trong hình chữ nhật lớn, với tên gói được đặt trong hình chữ nhật nhỏ hơn ở góc trên bên trái. Cách thứ hai là hiển thị các thành viên của gói bên ngoài hình chữ nhật lớn, với một đường thẳng nối từ mỗi thành viên đến một vòng tròn có dấu cộng (+) bên trong, vòng tròn này gắn liền với gói.
Ví dụ:
Trong phần này, chúng ta đã tìm hiểu về biểu đồ UML và hai dạng biểu đồ cơ bản thường được sử dụng trong thiết kế hệ thống.
Công Cụ Vẽ Biểu Đồ UML
-
Công cụ offline:
- Diagram (Bạn có thể tải tại: sentayho.com.vn/)
-
Công cụ online:
Tài Liệu Tham Khảo
Để tìm hiểu thêm về các quy tắc và tiêu chuẩn trong thiết kế biểu đồ UML, bạn có thể tham khảo các tài liệu sau: