THIẾT kế PHẦN mềm hđt

4 146 4
THIẾT kế PHẦN mềm hđt

Đang tải... (xem toàn văn)

Thông tin tài liệu

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA: Công nghệ Thơng tin BỘ MƠN: Cơng nghệ phần mềm - ĐÁP ÁN CUỐI KỲ HK NĂM HỌC 17-18 MÔN HỌC: THIẾT KẾ PHẦN MỀM HĐT MÃ MÔN HỌC: OOSD330879 Đề số 01 Đáp án có 04 trang - Câu 01: (3đ) Ghi chú: - CÓ chức “Tải ứng dụng” -0.5đ - CÓ tác nhân “Hệ thống” -1.0đ - KHƠNG CĨ tác nhân “Người dùng hảo hạng” -1.5đ (không tách thành loại người dùng mà gộp làm dùng quan hệ ) - KHƠNG CĨ tác nhân “Khách” -0.5đ - KHƠNG CĨ mối quan hệ kế thừa “Người dùng hảo hạng” “Người dùng thường” -1.0đ - Thiếu sai usecase mối quan hệ usecase trừ điểm tùy mức độ Đề 02-Trang Ñeà 02-Trang Câu 2: (7đ) 2.1 Lập lược đồ lớp cho chương trình (2đ): (có thể bỏ bớt thuộc tính khơng phải kiểu lớp property) + Phương thức thuộc tính tĩnh khơng gạch dưới, -0.25đ + Thiếu mối quan hệ Aggregation, -0.5đ; thiếu -1.0đ + Thiếu sai quan hệ kế thừa, -0.25đ + Thiếu lớp trừ điểm tùy mức độ 2.2 Các mẫu thiết kế áp dụng (2đ): mẫu 0.5đ + Singleton: PManager GManager (0.25đ lớp) + Factory Method (biến thể 2): - Creator: khơng có - ConcreteCreator: khơng có - Product: Game - ConcreteProduct: MemoryGame, SpeedGame, AttentionGame, SolvingGame, Flexibility Game - FactoryMethod(): getGame() + Template Method: - AbstractClass: Player - ConcreteClass: NormalPlayer, PremiumPlayer - TemplateMethod(): playCustomeGame() + Strategy (hoặc State chấp nhận được): Đề 02-Trang - Context: GameExecuter - Strategy: Game - ConcreteStrategy: MemoryGame, SpeedGame, AttentionGame, SolvingGame, Flexibility Game 2.3 Kết in hình (1đ): You are playing memory game Your LPI has been updated! You cannot play this game! You are playing memory game Your LPI has been updated! You are playing attention game Your LPI has been updated! You are playing problem solving game Your LPI has been updated! 2.4 • Câu a (1đ): Lớp LanguageGame có sẵn nên ta khơng thể chỉnh sửa mã nguồn lớp Muốn đưa game vào hệ thống cần sử dụng mẫu Adapter, LanguageGame đóng vai trò Adaptee, Game Target Để thực hóa, cần xây dựng thêm lớp LanguageGameAdapter kế thừa từ lớp Game giữ tham chiếu tới đối tượng thuộc lớp LanguageGame (sử dụng Object Adapter) Khi cài đặt (override) lại phương thức execute(), ta gọi thực phương thức run() đối tượng LanguageGame • Câu b (1đ): Để bổ sung thêm phần hướng dẫn cách chơi tổng hợp nhận xét, ta sử dụng mẫu Decorator để gắn thêm phương thức vào cho Game Để thực hóa, ta tạo lớp GameDecorator kế thừa từ lớp Game, đồng thời giữ tham chiếu tới đối tượng thuộc lớp Khi cài đặt lại phương thức execute() mặc định ta thực gọi phương thức execute() đối tượng Để thêm phần hướng dẫn nhận xét, ta tạo lớp ConcreteDecorator HelpDecorator SummaryDecorator kế thừa từ GameDecorator, cài đặt thêm phương thức hướng dẫn hay nhận xét cần thiết thực lời gọi phương thức cài đặt lại execute() trước/sau gọi execute() lớp cha Lưu ý: đề xuất dùng mẫu Template Method cách điều chỉnh lại phương thức playGame() lớp Player không hợp lý, phương thức hướng dẫn cách chơi nhận xét sau chơi khơng thể thêm vào lớp Player mà phải gắn với Game Lưu ý: Đáp án mang tính chất tham khảo Ngày tháng năm 2018 Duyệt Bộ mơn Đề 02-Trang ... mối quan hệ Aggregation, -0.5đ; thiếu -1.0đ + Thiếu sai quan hệ kế thừa, -0.25đ + Thiếu lớp trừ điểm tùy mức độ 2.2 Các mẫu thiết kế áp dụng (2đ): mẫu 0.5đ + Singleton: PManager GManager (0.25đ... tượng Để thêm phần hướng dẫn nhận xét, ta tạo lớp ConcreteDecorator HelpDecorator SummaryDecorator kế thừa từ GameDecorator, cài đặt thêm phương thức hướng dẫn hay nhận xét cần thiết thực lời... b (1đ): Để bổ sung thêm phần hướng dẫn cách chơi tổng hợp nhận xét, ta sử dụng mẫu Decorator để gắn thêm phương thức vào cho Game Để thực hóa, ta tạo lớp GameDecorator kế thừa từ lớp Game, đồng

Ngày đăng: 25/02/2019, 22:34

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan