Bài tập 1: Quản lý Sinh viên

Thiết kế sơ đồ lớp UML cho hệ thống quản lý sinh viên với các yêu cầu sau:

  • Lớp Student có các thuộc tính: id, name, age, email.
  • Lớp Course đại diện cho môn học, có các thuộc tính: courseId, courseName, credits.
  • Mỗi sinh viên có thể đăng ký nhiều môn học, và mỗi môn học có thể có nhiều sinh viên.
  • Hệ thống cần có lớp Enrollment để quản lý việc sinh viên đăng ký môn học với thông tin studentId, courseId, grade.
💡 Yêu cầu:
  • Xác định các thuộc tính, phương thức của mỗi lớp.
  • Xác định mối quan hệ giữa các lớp: (1-n, n-n).

Bài tập 2: Quản lý Thư viện

Thiết kế sơ đồ lớp UML cho hệ thống quản lý thư viện với các yêu cầu:

  • Lớp Book có các thuộc tính: ISBN, title, author, publisher.
  • Lớp Member đại diện cho người mượn sách, có các thuộc tính: memberId, name, phone.
  • Lớp Librarian để quản lý thư viện, có các thuộc tính: staffId, name, position.
  • Một thành viên có thể mượn nhiều sách nhưng mỗi cuốn sách chỉ được mượn bởi một người tại một thời điểm.
  • Hệ thống cần có lớp Loan để theo dõi thông tin mượn trả với loanId, memberId, bookId, borrowDate, returnDate.
💡 Yêu cầu:
  • Xác định thuộc tính, phương thức cần thiết.
  • Thiết lập mối quan hệ giữa các lớp.

Bài tập 3: Hệ thống Bán Hàng

Thiết kế sơ đồ lớp UML cho hệ thống bán hàng với các yêu cầu sau:

  • Lớp Product có các thuộc tính: productId, name, price, stockQuantity.
  • Lớp Customer đại diện cho khách hàng với các thuộc tính: customerId, name, address, email.
  • Lớp Order đại diện cho đơn hàng với các thuộc tính: orderId, customerId, orderDate, totalAmount.
  • Lớp OrderDetail quản lý chi tiết đơn hàng với orderId, productId, quantity, subTotal.
  • Mỗi khách hàng có thể đặt nhiều đơn hàng, mỗi đơn hàng có thể chứa nhiều sản phẩm.
💡 Yêu cầu:
  • Xác định mối quan hệ giữa các lớp.
  • Thêm các phương thức phù hợp như calculateTotal(), checkStock(), placeOrder().

Bài tập 4: Quản lý Nhân Viên

Thiết kế sơ đồ lớp UML cho hệ thống quản lý nhân viên trong công ty:

  • Lớp Employee có các thuộc tính: employeeId, name, salary, position.
  • Lớp Department đại diện cho phòng ban với departmentId, departmentName.
  • Mỗi nhân viên thuộc một phòng ban.
  • Lớp Manager kế thừa từ Employee, có thêm thuộc tính bonus.
💡 Yêu cầu:
  • Áp dụng tính kế thừa, mối quan hệ 1-n giữa phòng ban và nhân viên.