ChatGPT chưa thể sinh hình ảnh, bản vẽ thiết kế hay biểu đồ. Tuy nhiên ChatGPT có thể sinh mã để kết xuất ra bản vẽ (diagram) và biểu đồ (chart). Bài viết dưới đây sẽ hướng dẫn bạn cách làm.

Đặt vấn đề

Bạn Ngô Hoàng Hùng là sinh viên lớp Java Spring Boot đang làm đồ án web site quản lý nhà hàng bia và đồ án. Bố mẹ bạn ý đang sở hữu một nhà hàng bia ở Hải Phòng.

Đồ án tại Techmaster sẽ có yêu cầu sinh viên phải tiến hành khâu lấy yêu cầu, tóm tắt nghiệp vụ và thiết kế UML. Trong đồ án tốt nghiệp của Hùng có một chức năng tích điểm thưởng (loyalty point) mỗi khi khách hàng mua hàng.

Yêu cầu ChatGPT sinh bản vẽ thiết kế UML

Hỏi:
“Can you generate UML user case of loyalty points workflow in restaurant. In loyalty workflow, customer make order, his loyal point is accumulated. When loyalty point is over such a level, in the next order, customer will be discounted or give a gift such as free beer or snack.”

GPT:
Sure, here’s a sample UML Use Case Diagram for a loyalty points workflow:

@startuml
title Loyalty Points Workflow

Actor Customer

Customer -> (Earn Loyalty Points)
Customer -> (View Loyalty Points)
Customer -> (Redeem Loyalty Points)

(Earn Loyalty Points) --> (View Loyalty Points)
(View Loyalty Points) --> (Redeem Loyalty Points)

@enduml

In this diagram, the actor “Customer” interacts with three use cases: “Earn Loyalty Points,” “View Loyalty Points,” and “Redeem Loyalty Points.” The customer can earn loyalty points through purchases or other actions, view their current loyalty points balance, and redeem their points for rewards or discounts. The arrows show the relationships between the use cases, indicating the flow of the customer’s interactions with the loyalty points system.

Dùng https://app.diagrams.net/ để vẽ UML

Chọn Menu: Arrange > Insert > Advanced > PlantUML…
Chèn PlantUML

Kết quả
UML user case

Yêu cầu GPT vẽ sequence diagram

Kết quả GPT trả về

@startuml
title Loyalty Workflow in Restaurant

participant Customer
participant Waiter
participant System

Customer -> Waiter: Place Order
Waiter -> System: Record Order
System -> System: Calculate Loyalty Points
System -> System: Check Loyalty Points

alt Loyalty Points Over Threshold
  System -> System: Apply Discount or Gift
  System -> Waiter: Notify Customer of Discount or Gift
  Waiter -> Customer: Confirm Discount or Gift
else Loyalty Points Below Threshold
  System -> System: No Discount or Gift
end

Waiter -> Customer: Confirm Order and Payment
Customer -> Waiter: Make Payment

@enduml

Copy code vào diagrams.net
sequence diagram

Vậy Hùng chả phải làm đồ án mà là ChatGPT làm đồ án hộ Hùng?

Thực tế là ChatGPT đã giúp Hùng làm được rất nhiều phần trong đồ án. Tuy nhiên công việc của Hùng trong đồ án này là:

  1. Nghĩ ra ý tưởng cho đồ án của mình.
  2. Thu thập yêu cầu phản hồi từ người dùng.
  3. Biết cách ra lệnh cho ChatGPT: cần chia nhỏ các bước theo kiểu Top Down: từ tổng quát đến chi tiết.
  4. Xem xét, cân nhắc chọn lựa kết quả ChatGPT trả về. Chọn làm chức năng nào trước và sau.
  5. Tổng hợp, tích hợp các đoạn code ChatGPT vào dự án. Chắc chắn không phải là chạy được ngay mà còn phải chỉnh sửa rất nhiều.
  6. Thiết kế giao diện, trải nghiệm người dùng (cái này AI chưa làm tới)
  7. Khi dự án đã thành hình, nếu có yêu cầu phát sinh thì Hùng sẽ phải chia nhỏ yêu cầu ra để có thể hỏi được ChatGPT còn không Hùng sẽ phải tự code.

Tóm lại Hùng có thể coi ChatGPT như một người thầy, một người bạn code có kinh nghiệm hơn, đặc biệt họ có thể trả lời Hùng bất kỳ lúc nào Hùng có câu hỏi.

Hùng vẫn băn khoăn làm sao để em có thể đặt câu hỏi tốt cho ChatGPT?

Thực tế các đoạn câu hỏi cho ChatGPT trong bài này là do một lập trình viên có 28 năm kinh nghiệm, tiếng Anh IELTS 7 viết. Rõ ràng có chiều sâu kinh nghiệm thì sẽ đặt được câu hỏi rõ ý đủ để ChatGPT trả về kết quả tốt nhất.

Có thực sự cần 28 năm kinh nghiệm hay IELTS 7 để ra lệnh cho ChatGPT không?
Không ! Chỉ cần bạn có đọc viết được tiếng Anh tốt, đúng ngữ pháp có một lượng từ vựng chuyên ngành phần CNTT khoảng 120 từ và học lập trình bài bản khoảng 7 tháng là bạn có thể làm việc với ChatGPT rồi. Nhưng ngược lại, nếu bạn hoàn toàn chưa biết gì về lập trình, bạn hãy thử ra lệnh cho ChatGPT xem sao, có gì chia sẻ lại để tôi cập nhật.

Việc đặt câu hỏi tốt cho ChatGPT cũng như chọn keyword đúng cho Google thôi. Thực ra là khó hơn vì chúng ta phải viết đủ ý, rõ nghĩa, nhưng không có gì là không học được, rèn luyện được. Chúc các bạn thành công. Nhớ đăng ký một khoá học lập trình ở Techmaster nhé. Hiện nay Techmaster đã bổ xung nhiều tiết học hướng dẫn dùng ChatGPT để phát triển phần mềm nhanh gấp 4-5 lần so với cách cổ điển.