INT3110: Phân tích thiết kế hướng đối tượng
Bài tập lớn #2

Đặc tả thiết kế - Trò chơi Oẳn-Tù-Tì

Hãy viết bản thảo đầu tiên cho Đặc tả thiết kế (Design Specification) cho ứng dụng trò chơi Oẳn tù tì.
Đặc tả cần bao gồm các nội dung sau:
  • Các thẻ CRC cho các lớp. Không cần nộp các thẻ thực, chỉ cần chụp một ảnh với các thẻ mà các bạn đã dùng khi thiết kế. Sao cho với mỗi thẻ có thể nhìn thấy được tên lớp, danh sách các trách nhiệm của lớp đó và các collaborator của lớp đó.
  • Các sơ đồ lớp. Có thể đặt các sơ đồ lớp bên trong các sơ đồ package UML. Các sơ đồ cần thể hiện mối quan hệ giữa các lớp với các connector thích hợp. Tại giai đoạn này, các bạn không cần phải thể hiện các thuộc tính và phương thức trong các sơ đồ lớp, không cần ghi nhãn cho các connector.Tuy nhiên, các bạn cần ghi rõ lực lượng tham gia các mối quan hệ.
  • Sơ đồ tuần tự mô tả sự tương tác giữa các đối tượng trong thời gian chạy cho các hoạt động quan trọng của ứng dụng.

    Ở giai đoạn này, các bạn có thể không nên có quá 10-12 lớp và interface. Nên dùng một công cụ vẽ UML để vẽ các sơ đồ. Có thể dùng phần mềm Violet để dễ dàng chèn sơ đồ vào trong trang html. Các bạn cũng có thể dùng bất cứ công cụ UML nào khác.

    Gợi ý thiết kế

    Một số điểm để xem xét khi thiết kế ứng dụng:
  • Cách người chơi nhập lựa chọn (lá, đấm, kéo) sẽ thay đổi. Các phiên bản đầu tiên của chương trình sẽ dùng giao diện dòng lệnh, các phiên bản sau sẽ dùng giao diện đồ họa.
  • Các bạn sẽ tìm hiểu một số thuật toán cho việc máy tính chọn cách đi.

    Hãy để ý để thiết kế của mình có thể hỗ trợ những thay đổi trong tương lai.

    Cập nhật Đặc tả chức năng

    Khi làm bài tập này, các bạn có lẽ sẽ muốn sửa đặc tả chức năng đã viết ở Bài tập 1, chẳng hạn thêm hoặc sửa yêu cầu hoặc use case, v.v.. Khi sửa Đặc tả chức năng, hãy sửa thẳng vào bản cũ (do Git quản lý phiên bản), Git sẽ lưu lại lịch sử các thay đổi của bạn.

    Nộp bài

    Mỗi nhóm cần tạo một tài liệu HTML chứa đặc tả thiết kế.
    Tài liệu này đặt tại repository có tên ooad_asg đã dùng cho Bài tập 1 (đăng ký tại danh sách lớp link từ website môn học). Các thành viên trong nhóm cớ thể cùng tham gia vẽ sơ đồ và viết tài liệu. Đánh giá đóng góp sẽ dựa trên các commit của từng thành viên trong nhóm.