Class Diagram – Bản vẽ quan trọng nhất của thiết kế phần mềm.
Trong quá trình xây dựng Class Diagram, chúng ta phải quyết định nhiều yếu tố về thiết kế, tạo ra bản vẽ khó xây dựng nhất. Bản vẽ này cho thấy cấu trúc tĩnh của phần mềm, giống như bản vẽ mặt bằng trong thiết kế xây dựng.
Nhưng đừng lo, trong bài viết này, chúng tôi sẽ giúp bạn hiểu rõ về các thành phần tạo nên bản vẽ, cách xây dựng và sử dụng class diagram để áp dụng trong thiết kế. Trước hết, chúng ta sẽ xem một ví dụ về Class Diagram của ứng dụng ATM để minh họa.
Các thành phần trong bản vẽ Class
Trước tiên, hãy xem một ví dụ về Class Diagram của ATM.
Ví dụ trên là Class Diagram của ứng dụng ATM. Tiếp theo, chúng ta sẽ tìm hiểu kỹ về các thành phần của bản vẽ này và áp dụng trong thiết kế.
Classes (Các lớp)
Class là thành phần chính của bản vẽ Class Diagram. Class mô tả về một nhóm đối tượng có cùng tính chất, hành động trong hệ thống. Ví dụ, lớp “Customer” mô tả về khách hàng. Mỗi Class gồm tên, thuộc tính và phương thức.
Trong đó:
- Class Name: là tên của lớp.
- Attributes: mô tả tính chất của các đối tượng.
- Method: chỉ các hành động mà đối tượng này có thể thực hiện trong hệ thống.
Một số loại Class đặc biệt như Abstract Class (lớp không tạo ra đối tượng) hoặc Interface (lớp chỉ khai báo mà không cài đặt) có thể được tìm hiểu thêm qua tài liệu lập trình hướng đối tượng.
Relationship (Quan hệ)
Relationship thể hiện mối quan hệ giữa các Class. Trong UML 2.0, có các quan hệ thường sử dụng như sau:
- Association
- Aggregation
- Composition
- Generalization
Association
Association là quan hệ giữa hai lớp, thể hiện chúng có liên quan với nhau. Ví dụ: Khách hàng nắm giữ Tài khoản và Tài khoản được sở hữu bởi Khách hàng.
Aggregation
Aggregation là một loại của quan hệ Association, thể hiện quan hệ mạnh hơn. Nó có thể cùng tồn tại với nhau (cùng sinh ra hoặc cùng chết đi).
Composition
Composition là một loại mạnh hơn của Aggregation, thể hiện quan hệ “class này là một phần của class kia”. Điều này dẫn đến cùng tạo ra hoặc cùng chết đi.
Generalization
Generalization là quan hệ thừa kế được sử dụng rộng rãi trong lập trình hướng đối tượng.
Các lớp cụ thể như Short Term, Long Term, Curent a/c, Savings a/c được kế thừa từ các lớp trừu tượng như Account, Term Based, Transaction Based.
Ngoài ra còn một số quan hệ như Dependence, Realization, nhưng chúng ít được sử dụng nên chúng ta không bàn ở đây.
Cách xây dựng bản vẽ Class
Class Diagram là bản vẽ khó xây dựng nhất trong thiết kế phần mềm. Bạn phải hiểu rõ hệ thống và có kinh nghiệm lập trình hướng đối tượng để xây dựng bản vẽ này.
Thực hiện các bước sau để xây dựng Class Diagram.
Bước 1: Tìm các Classes dự kiến
Các Entity Classes là các lớp thực thể tồn tại và hoạt động trong hệ thống. Bạn có thể tìm các lớp dự kiến thông qua các nguồn như:
- Requirement statement: Các yêu cầu.
- Use Cases: Phân tích các Use Case để tìm các lớp dự kiến.
- Previous và Similar System: Tài liệu từ hệ thống tương tự.
- Application Experts: Chuyên gia ứng dụng có thể hỗ trợ.
Ví dụ, trong hệ thống ATM, chúng ta có các lớp như Customers, Accounts, ATM Cards, ATM Transactions, Banks, và ATM.
Lưu ý: Chỉ các thực thể trong hệ thống mới được xem xét, không tính các thực thể bên ngoài hệ thống.
Bước 2: Tìm các thuộc tính và phương thức cho lớp
- Tìm thuộc tính: Phân tích từ các form mẫu có sẵn để tìm ra thuộc tính cho các đối tượng của mỗi lớp.
- Tìm phương thức: Là các hoạt động mà các đối tượng của lớp này có thể thực hiện. Để có phương thức đầy đủ, chúng ta phải phân tích Sequence Diagram sau này.
Bước 3: Xây dựng các quan hệ giữa các lớp và phát hiện các lớp phát sinh
Phân tích quan hệ giữa các lớp và xác định các lớp phát sinh. Ví dụ: Lớp Accounts chia thành Current Accounts và Saving Accounts và có quan hệ thừa kế.
Đặc tả Class
Nhìn vào Class Diagram, chúng ta có thể thấy cấu trúc của hệ thống, nhưng để cài đặt chúng, chúng ta cần đặc tả chi tiết hơn. Đặc tả bao gồm các thuộc tính và phương thức của các lớp.
Việc đặc tả Class có thể mất nhiều thời gian, nhưng đối với phương pháp Agile, việc này sẽ được thực hiện theo từng bước.
Sử dụng bản vẽ Class
Các ứng dụng của Class Diagram như sau:
- Hiểu cấu trúc của hệ thống.
- Thiết kế hệ thống.
- Phân tích chi tiết các chức năng (Sequence Diagram, State Diagram,…).
- Cài đặt (coding).
Kết luận
Chúng ta đã tìm hiểu về Class Diagram, loại Class, quan hệ giữa các lớp và cách xây dựng bản vẽ. Hãy thực hành nhiều để hiểu rõ hơn về bản vẽ quan trọng này.
Trong bài tiếp theo, chúng ta sẽ thực hành xây dựng Class Diagram cho hệ thống eCommerce trong Case Study.
Bạn có thể tìm hiểu thêm về các chủ đề liên quan tại sara.edu.vn.