TÓM TẮT
- 1 Mở Đầu
- 2 1. Cài Đặt StarUML
- 3 2. Tạo Dự Án Và Chọn Loại Diagram
- 4 3. Thêm Và Chỉnh Sửa Lớp (Class)
- 5 4. Thiết Lập Các Mối Quan Hệ
- 6 5. Tùy Chỉnh Hiển Thị, Định Dạng Và Ghi Chú
- 7 6. Tính Năng Nâng Cao
- 8 7. Lưu, Xuất Và Chia Sẻ Diagram
- 9 8. Một Ví Dụ Thực Tế: Thiết Kế Hệ Thống Ngân Hàng
- 10 9. Một Số Mẹo Thực Tiễn Khi Vẽ Class Diagram
- 11 10. Kết Luận
Mở Đầu
Class diagram (sơ đồ lớp) là một trong những loại diagram quan trọng nhất trong UML (Unified Modeling Language). Nó giúp mô tả cấu trúc tĩnh của hệ thống, thể hiện các lớp, thuộc tính, phương thức và mối quan hệ giữa chúng. Khi làm việc trong môi trường phát triển phần mềm, việc tạo ra các class diagram một cách nhanh chóng, chính xác và dễ bảo trì là yếu tố then chốt để truyền đạt ý tưởng thiết kế tới các thành viên trong nhóm và các bên liên quan.
StarUML là một công cụ UML mạnh mẽ, hỗ trợ đa nền tảng, cung cấp giao diện trực quan và nhiều tính năng mở rộng. Bài viết này sẽ hướng dẫn chi tiết cách vẽ class diagram trong StarUML, bao gồm:
- Cài đặt và chuẩn bị môi trường StarUML.
- Tạo dự án và lựa chọn loại diagram.
- Thêm, chỉnh sửa lớp (class) và các thành phần bên trong.
- Thiết lập các mối quan hệ (association, inheritance, aggregation, composition, dependency).
- Tùy chỉnh hiển thị, định dạng và ghi chú.
- Sử dụng các tính năng nâng cao: stereotypes, constraints, templates, và tự động sinh code.
- Lưu, xuất và chia sẻ diagram.
Bài viết sẽ cung cấp các bước thực hành kèm hình ảnh mô phỏng (miêu tả chi tiết) và một số mẹo thực tiễn giúp bạn tối ưu hoá quy trình thiết kế.
1. Cài Đặt StarUML
1.1. Tải và Cài Đặt
- Truy cập trang chủ: https://staruml.io/
- Chọn phiên bản phù hợp với hệ điều hành (Windows, macOS, Linux).
- Tải file cài đặt (.exe, .dmg, .AppImage) và thực hiện cài đặt theo hướng dẫn.
- Sau khi cài xong, mở StarUML lần đầu để kiểm tra môi trường hoạt động.
1.2. Cấu Hình Môi Trường
- Ngôn ngữ giao diện: Vào
Help → Preferences → General → Languagevà chọnVietnamese(nếu có, hoặc để mặc định tiếng Anh). - Thư mục lưu trữ dự án: Thiết lập đường dẫn trong
Preferences → General → Project Directoryđể các dự án tự động lưu vào thư mục mong muốn. - Plugin bổ trợ: StarUML hỗ trợ plugin qua
Extension Manager. Đối với class diagram, các plugin thường dùng là: - UML2.5 (đảm bảo chuẩn UML mới nhất).
- Code Generator (sinh mã nguồn từ diagram).
- Documentation Generator (tạo tài liệu tự động).
Cài đặt plugin bằng cách bấm Install trong Extension Manager và khởi động lại StarUML.
2. Tạo Dự Án Và Chọn Loại Diagram
2.1. Tạo Dự Án Mới
- Mở StarUML →
File → New Project. - Chọn UML 2.x Project (đảm bảo chuẩn UML 2.x).
- Đặt tên dự án, ví dụ:
MyBankSystem.
2.2. Thêm Class Diagram

Có thể bạn quan tâm: Cách Vẽ Chữ Trang Trí Đẹp: Hướng Dẫn Từ Cơ Bản Đến Nâng Cao
- Trong Model Explorer (cột bên trái), click chuột phải vào Model →
Add Diagram → Class Diagram. - Đặt tên cho diagram, ví dụ:
ClassDiagram_Bank.
Bạn sẽ thấy một canvas trắng, sẵn sàng để bắt đầu vẽ.
3. Thêm Và Chỉnh Sửa Lớp (Class)
3.1. Thêm Lớp
- Trên thanh công cụ (Toolbox), chọn biểu tượng Class (hình hình chữ nhật với ba phần).
- Click vào canvas để tạo lớp mới. Một hộp thoại “New Class” xuất hiện, nhập tên lớp, ví dụ:
Account.
3.2. Cấu Trúc Lớp
Mỗi lớp trong class diagram được chia thành ba phần:
- Tên lớp (Class Name) – phần trên cùng.
- Thuộc tính (Attributes) – phần giữa.
- Phương thức (Operations) – phần dưới.
Bạn có thể thêm hoặc xóa các phần bằng cách:
- Thêm thuộc tính: Click chuột phải vào lớp →
Add → Attribute. Nhập định dạng:visibility name : type multiplicity = defaultValue {property}. Ví dụ:-balance : double = 0.0. - Thêm phương thức: Click chuột phải vào lớp →
Add → Operation. Nhập định dạng:visibility name(parameterList) : returnType. Ví dụ:+deposit(amount : double) : void.
3.3. Định Dạng Visibility
+: public-: private#: protected~: package (default)
Sử dụng ký hiệu này để biểu thị mức truy cập.
3.4. Sửa Thuộc Tính và Phương Thức
- Click đúp vào thuộc tính/phương thức để mở cửa sổ chỉnh sửa.
- Bạn có thể thêm stereotype (<
>, < >, v.v.) trong phần Stereotype. - Đánh dấu abstract bằng cách tick
Abstracttrong thuộc tính của lớp. - Đánh dấu static bằng cách tick
Static.
3.5. Đặt Thuộc Tính Nhiều
- Đối với mảng hoặc collection, sử dụng
multiplicity. Ví dụ:orders : Order 0..biểu thị một tài khoản có thể có 0 hoặc nhiều đơn hàng.
4. Thiết Lập Các Mối Quan Hệ
Class diagram hỗ trợ nhiều loại quan hệ. Dưới đây là cách tạo và tùy chỉnh từng loại trong StarUML.
4.1. Association (Liên Kết)

Có thể bạn quan tâm: Cách Vẽ Chữ “t” Trong Microsoft Word: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
- Chọn công cụ Association trên Toolbox (đường thẳng có mũi tên trống ở cả hai đầu).
- Kéo từ lớp này sang lớp kia.
- Đặt tên cho association (tùy chọn) bằng cách click đúp vào đường liên kết → nhập tên, ví dụ:
has. - Thêm multiplicity ở mỗi đầu: click chuột phải →
Add → Multiplicity→ nhập1,0.., v.v.
4.2. Generalization (Kế Thừa)
- Chọn công cụ Generalization (đường thẳng có mũi tên rỗng ở đầu).
- Kéo từ lớp con (subclass) lên lớp cha (superclass).
- StarUML sẽ tự động vẽ mũi tên trống phía trên (tượng trưng cho “is-a”).
4.3. Realization (Thực Thi Interface)
- Tương tự Generalization, nhưng sử dụng công cụ Realization (đường thẳng nét đứt, mũi tên rỗng). Dùng khi một lớp thực thi một interface.
4.4. Aggregation (Tổng Hợp)
- Chọn công cụ Aggregation (đường thẳng có hình thùng (diamond) rỗng ở đầu).
- Kéo từ lớp “toàn thể” (whole) tới lớp “phần tử” (part).
- Đặt multiplicity nếu cần.
Aggregation biểu thị quan hệ “có” (has-a) dạng yếu, phần tử có thể tồn tại độc lập.
4.5. Composition (Thành Phần)
- Chọn công cụ Composition (đường thẳng có hình thùng (diamond) đen đặc).
- Kéo từ lớp “toàn thể” tới lớp “phần tử”.
- Đặt multiplicity.
Composition biểu thị quan hệ “có” mạnh hơn, phần tử không tồn tại nếu toàn thể bị xóa.
4.6. Dependency (Phụ Thuộc)
- Chọn công cụ Dependency (đường thẳng nét đứt có mũi tên mở). Dùng để chỉ ra một lớp phụ thuộc vào lớp khác (ví dụ: một lớp sử dụng một interface).
4.7. Association Class
- Khi một association có thuộc tính riêng, bạn có thể tạo Association Class:
- Vẽ association bình thường.
- Click chuột phải vào association →
Add → Association Class. - Đặt tên và thêm thuộc tính/phương thức như một lớp bình thường.
5. Tùy Chỉnh Hiển Thị, Định Dạng Và Ghi Chú
5.1. Thay Đổi Kiểu Hiển Thị
- Click vào lớp → trong Properties (cột bên phải), bạn có thể:
- Ẩn/hiện Attributes hoặc Operations bằng cách bỏ tick
Show Attributes/Show Operations. - Thay đổi Compartment visibility (hiển thị/ẩn các phần).
5.2. Định Dạng Văn Bản

Có thể bạn quan tâm: Cách Vẽ Chữ Kiểu Bong Bóng Đẹp Và Ấn Tượng: Hướng Dẫn Từng Bước Dành Cho Người Mới Bắt Đầu
- Font, size, color: Chọn lớp →
Properties → Font. Thay đổi để làm nổi bật các lớp quan trọng. - Line style: Đối với các quan hệ, bạn có thể thay đổi kiểu đường (solid, dashed) trong
Properties → Line Style.
5.3. Thêm Ghi Chú (Notes)
- Công cụ Note (hình bìa thư) trên Toolbox.
- Đặt ghi chú cạnh lớp hoặc quan hệ, dùng để ghi chú thiết kế, giả thiết, hoặc các ràng buộc.
5.4. Sử Dụng Stereotype
- Stereotype là cách mở rộng UML bằng các nhãn đặc biệt.
- Để thêm stereotype, click đúp vào lớp →
Properties → Stereotypevà nhập, ví dụ:<<entity>>,<<service>>. - Bạn cũng có thể tạo custom stereotypes thông qua
Extension → Stereotype.
5.5. Constraints (Ràng Buộc)
- Để thêm ràng buộc OCL (Object Constraint Language), click chuột phải vào lớp →
Add → Constraint. - Nhập biểu thức OCL, ví dụ:
{balance >= 0}để đảm bảo số dư không âm.
6. Tính Năng Nâng Cao
6.1. Templates (Mẫu Lớp)
- Khi thiết kế các lớp có cấu trúc tương tự (ví dụ:
Dao<T>), bạn có thể sử dụng Generic Classes. - Thêm lớp → trong
Properties → Templatenhập<T>. - Khi tạo lớp kế thừa, StarUML sẽ tự động hiển thị tham số mẫu.
6.2. Sử Dụng Profiles
- Profiles cho phép mở rộng UML với các thuộc tính riêng của miền nghiệp vụ.
- Vào
File → New → Profileđể tạo profile mới. - Định nghĩa stereotypes, tag definitions, và áp dụng chúng vào class diagram.
6.3. Tự Động Sinh Code
- Cài đặt plugin Code Generator (Java, C#, TypeScript, …).
- Click
Tools → Code Generation → Generate Code. - Chọn ngôn ngữ, cấu hình thư mục output, và StarUML sẽ sinh mã skeleton dựa trên class diagram (các thuộc tính, phương thức, visibility).
6.4. Reverse Engineering (Phân Tích Ngược)
- Nếu đã có mã nguồn, bạn có thể tạo diagram từ code:
File → Import → Source Code.- Chọn ngôn ngữ và thư mục chứa source.
- StarUML sẽ tạo các lớp, thuộc tính, phương thức và quan hệ (nếu có) tự động.
6.5. Version Control Integration

Có thể bạn quan tâm: Cách Vẽ Chữ “i Love You” Độc Đáo Và Đậm Chất Sáng Tạo: Hướng Dẫn Từng Bước Cho Người Mới Bắt Đầu
- StarUML hỗ trợ Git thông qua các plugin.
- Bạn có thể commit, push diagram (.mdj) vào repository để làm việc nhóm.
7. Lưu, Xuất Và Chia Sẻ Diagram
7.1. Lưu Dự Án
File → SavehoặcSave As…để lưu file dự án.mdj.- Đặt tên rõ ràng, ví dụ:
BankSystem_Project.mdj.
7.2. Xuất Định Dạng Hình Ảnh
File → Export Diagram As Image….- Chọn định dạng: PNG, JPEG, SVG, PDF.
- Đặt độ phân giải (DPI) để đảm bảo ảnh in chất lượng.
7.3. Xuất Tài Liệu
Tools → Documentation Generator(nếu đã cài plugin).- Chọn định dạng: HTML, PDF, Markdown.
- Tài liệu sẽ bao gồm mô tả lớp, thuộc tính, phương thức, và hình ảnh diagram.
7.4. Chia Sẻ Với Nhóm
- Đẩy file
.mdjlên GitHub/Bitbucket. - Hoặc xuất ra PDF và gửi qua email.
- Đối với trình bày, dùng PDF hoặc PNG để chèn vào slide.
8. Một Ví Dụ Thực Tế: Thiết Kế Hệ Thống Ngân Hàng
Để minh hoạ quy trình, chúng ta sẽ thiết kế một hệ thống ngân hàng đơn giản gồm các lớp:
Account(lớp trừu tượng)SavingsAccount,CheckingAccount(kế thừaAccount)CustomerTransactionBank
8.1. Bước 1: Tạo Các Lớp Cơ Bản
- Thêm lớp
Account→ đánh dấuAbstract. - Thêm các thuộc tính:
-accountNumber : String,-balance : double. - Thêm các phương thức:
+deposit(amount : double) : void,+withdraw(amount : double) : void,+getBalance() : double.
8.2. Bước 2: Kế Thừa

- Thêm lớp
SavingsAccountvàCheckingAccount. - Dùng Generalization để nối chúng tới
Account. - Thêm thuộc tính riêng:
-interestRate : doublechoSavingsAccount.
8.3. Bước 3: Quan Hệ Customer – Account
- Thêm lớp
Customervới thuộc tính-customerId : String,-name : String. - Dùng Association từ
CustomertớiAccountvới multiplicity1(Customer) →0..(Account). - Đánh dấu association là Composition nếu một tài khoản không tồn tại khi khách hàng bị xóa.
8.4. Bước 4: Transaction
- Thêm lớp
Transactionvới thuộc tính-transactionId : String,-amount : double,-date : Date. - Dùng Association từ
TransactiontớiAccount(mỗi giao dịch thuộc về một tài khoản) và đặt multiplicity(Transaction) →1(Account). - Thêm Dependency từ
AccounttớiTransactionđể biểu thị rằng lớpAccountsử dụngTransactiontrong các phương thức.
8.5. Bước 5: Bank
- Thêm lớp
Bankvới thuộc tính-bankCode : String. - Dùng Aggregation từ
BanktớiCustomer(bank có nhiều khách hàng, khách hàng có thể tồn tại độc lập). - Dùng Composition từ
BanktớiAccountnếu muốn tài khoản luôn thuộc một ngân hàng.
8.6. Bước 6: Ghi Chú Và Ràng Buộc
- Thêm Constraint
{balance >= 0}vào lớpAccount. - Thêm Note giải thích quy tắc tính lãi cho
SavingsAccount.
8.7. Bước 7: Sinh Code
- Chọn Java trong plugin Code Generator.
- Tạo package
com.bank.model. - StarUML sẽ sinh các file
.javavới các trường, getter/setter, và các phương thức trừu tượng.
9. Một Số Mẹo Thực Tiễn Khi Vẽ Class Diagram
- Bắt đầu từ lớp trừu tượng: Xác định các khái niệm chung, sau đó tạo lớp abstract để kế thừa. Điều này giúp diagram sạch sẽ và dễ bảo trì.
- Sử dụng multiplicity: Đừng bỏ qua multiplicity; chúng truyền tải thông tin quan trọng về quan hệ.
- Giữ diagram không quá chật: Nếu diagram trở nên quá phức tạp, hãy tách ra thành các package hoặc sub-diagram.
- Sử dụng package: StarUML hỗ trợ gói (package) để nhóm các lớp liên quan, giúp giảm clutter.
- Kiểm tra consistency: Sử dụng tính năng
Validate Model(trong menuModel) để phát hiện lỗi như lớp không có tên, quan hệ trùng lặp, v.v. - Document early: Thêm note và constraint ngay từ đầu để giảm việc phải quay lại chỉnh sửa sau này.
- Tận dụng shortcuts:
Ctrl + Dđể duplicate một lớp.Ctrl + Gđể nhóm các phần tử.Alt + Dragđể tạo association nhanh.
10. Kết Luận
Việc vẽ class diagram trong StarUML không chỉ là một công việc kỹ thuật mà còn là quá trình suy nghĩ, tổ chức và truyền đạt kiến trúc phần mềm. Với các bước từ cài đặt, tạo lớp, thiết lập quan hệ, tùy chỉnh hiển thị đến các tính năng nâng cao như stereotype, constraint, và tự động sinh code, StarUML cung cấp một môi trường toàn diện cho mọi nhà phát triển và kiến trúc sư phần mềm.
Hãy áp dụng các hướng dẫn chi tiết ở trên vào dự án thực tế của bạn, từ đó:
- Tăng tính nhất quán giữa thiết kế và cài đặt.
- Giảm thiểu lỗi nhờ kiểm tra mô hình tự động.
- Cải thiện giao tiếp trong nhóm phát triển và với các bên liên quan.
Cuối cùng, đừng quên lưu trữ và chia sẻ diagram một cách có hệ thống (Git, tài liệu PDF) để duy trì tính khả thi và mở rộng của dự án trong tương lai.
Chúc bạn thành công trong việc tạo ra những class diagram chất lượng cao với StarUML!
