

Thiết kế tình huống điển hình, thực hành và ví dụ
- 26-06-2025
- Toanngo92
- 0 Comments
Mục lục
📄 Tình huống thực tế
- Bạn sẽ được cung cấp bản in giấy hoặc bản điện tử của tình huống
- Hãy dành thời gian suy nghĩ cách tiếp cận việc phân tích và thiết kế hệ thống
- Trong nghiên cứu tình huống này, bạn cần thực hiện: ✅ Tạo nguyên mẫu giấy (paper prototype)
✅ Vẽ sơ đồ use-case
✅ Vẽ sơ đồ class diagram
✅ Vẽ sơ đồ activity diagram
🪜 Bước Một: Hiểu tình huống
- Bước đầu tiên là đọc kỹ tình huống
- Yêu cầu làm rõ nếu bạn chưa hiểu
- Giải quyết các điểm mơ hồ
- Sau đó, bạn có thể bắt đầu bằng:
- Phân tích ngôn ngữ tự nhiên (NLA)
- Xác định các use-case
Cả hai việc trên nên được làm trước khi chuyển sang giai đoạn thiết kế.
👥 Bước Một (tiếp): Phân tích người dùng và nền tảng
Lưu ý rằng có ba nhóm người dùng và giao diện khác nhau:
Người dùng | Nền tảng sử dụng |
---|---|
Khách hàng | Điện thoại |
Nhân viên quản trị | Máy tính để bàn |
Tài xế | Đồng hồ thông minh |
→ Mỗi nhóm cần một cách tiếp cận thiết kế giao diện khác nhau
📄 Bước Một (tiếp): Paper Prototype
- Bạn sẽ được cung cấp mẫu giấy để thiết kế nguyên mẫu
- Dùng chúng để phác thảo giao diện và cách hoạt động của hệ thống theo tưởng tượng của bạn
- Hợp tác cùng bạn bè trong lớp:
- Giúp nhau kiểm thử và đánh giá
- Tham gia các mô phỏng kiểu “Wizard of Oz”
- Hãy lắng nghe phản hồi của người khác
→ Và diễn giải những gì họ nói thành cải tiến cho thiết kế
🧩 Bước Hai: Sơ đồ lớp
- Sau khi xác định use case và lớp ứng viên:
- Đánh giá kỹ từng lớp có nên giữ hay không
- Loại bỏ:
- Các lớp trùng lặp
- Các lớp đồng nghĩa
- Các lớp không thể triển khai thực tế
- Lập bản luận cứ giữ hay loại bỏ từng lớp ứng viên
→ Sau đó, xây dựng sơ đồ lớp chính thức
🔁 Bước Ba: Sơ đồ hoạt động mức cao (Hiện tại)
- Xem xét cách hệ thống hiện tại đang hoạt động
- Thiết kế sơ đồ hoạt động mức cao cho các quy trình: ✅ Đặt chỗ (Make a reservation)
✅ Xem đặt chỗ (View a reservation)
✅ Hủy đặt chỗ (Cancel a reservation)
→ Đây là sơ đồ mô tả quy trình thực tế đang diễn ra
🧠 Bước Bốn: Sơ đồ hoạt động mức thấp (Tương lai)
- Sau khi đã mô hình hóa quy trình hiện tại, bạn cần:
- Thiết kế sơ đồ hoạt động chi tiết hơn (low-level) cho hệ thống sẽ triển khai
- Xem xét làm sao để hệ thống tự động hóa các bước từng do con người làm
- Cải thiện luồng logic trong quy trình
→ Sau đó, vẽ các sơ đồ hoàn chỉnh
🧾 TÌNH HUỐNG: HỆ THỐNG ĐẶT LỊCH HẸN CẮT TÓC TRỰC TUYẾN
🧩 Mô tả ngắn:
Một chuỗi tiệm cắt tóc muốn phát triển hệ thống đặt lịch trực tuyến đa nền tảng. Hệ thống sẽ phục vụ:
- Khách hàng: Đặt lịch, xem lịch, hủy lịch từ điện thoại
- Nhân viên tiệm: Quản lý lịch hẹn, phân bổ thợ từ máy tính
- Thợ cắt tóc: Xem lịch hẹn trên đồng hồ thông minh
✅ Cách xử lý theo các bước hướng dẫn
🔹 Bước Một: Hiểu tình huống
- Đọc kỹ yêu cầu, xác định rõ:
- Người dùng chính: Khách hàng, Nhân viên, Thợ
- Thiết bị sử dụng: Điện thoại, PC, Smartwatch
- Làm rõ các điểm mơ hồ:
- Lịch hẹn có thời gian cố định hay chọn linh hoạt?
- Một thợ có thể nhận bao nhiêu khách/ngày?
- Sử dụng Phân tích ngôn ngữ tự nhiên (NLA):
- Danh từ → lớp:
Appointment
,Customer
,Staff
,Stylist
,Service
,TimeSlot
- Động từ → hành động: đặt, hủy, xác nhận, xem, phân công
- Danh từ → lớp:
🔹 Bước Một (tiếp): Paper Prototype
Tạo 3 nguyên mẫu giao diện riêng:
Đối tượng | Giao diện sơ bộ phác thảo |
---|---|
Khách hàng | Form đặt lịch, danh sách lịch, nút hủy |
Nhân viên quản trị | Giao diện quản lý ngày giờ, danh sách lịch đã đặt |
Thợ | Màn hình hiển thị lịch làm việc trong ngày (giản lược, ít nút) |
🔹 Bước Hai: Sơ đồ lớp
Sau khi lọc danh sách lớp ứng viên, giữ lại các lớp chính:
Appointment
: mã hẹn, ngày giờ, dịch vụ, trạng tháiCustomer
: họ tên, số điện thoại, emailStylist
: tên, lịch làm việcService
: tên dịch vụ, thời lượngStaff
: xác nhận lịch, phân công
→ Vẽ sơ đồ lớp và thể hiện các quan hệ:
Customer
đặtAppointment
Appointment
sử dụngService
Staff
quản lýAppointment
Stylist
được gán choAppointment
🔹 Bước Ba: Sơ đồ hoạt động mức cao (hiện tại)
Hiện tại quy trình thủ công là:
- Khách gọi điện → nhân viên ghi vào sổ
- Nhân viên phân công thợ
- Khách đến đúng giờ
→ Vẽ sơ đồ hoạt động cho:
MakeAppointment
CancelAppointment
AssignStylist
🔹 Bước Bốn: Sơ đồ hoạt động mức thấp (tự động hóa tương lai)
Ví dụ: MakeAppointment:
- Khách đăng nhập ứng dụng
- Chọn ngày, giờ, dịch vụ
- Hệ thống kiểm tra stylist trống
- Gán stylist
- Xác nhận & gửi thông báo
→ Vẽ lại sơ đồ hoạt động chi tiết thể hiện:
- Kiểm tra trùng lịch
- Xử lý lỗi (stylist bận, hết slot…)
🔹 Sơ đồ trình tự minh họa
Use-case: Customer books appointment
Customer → AppointmentService: createAppointment()
AppointmentService → StylistManager: findAvailableStylist()
StylistManager → Database: query()
Database → StylistManager: stylistData
StylistManager → AppointmentService: availableStylist
AppointmentService → Appointment: save()
Appointment → Customer: confirm()