1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

4 147 4

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 150 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

2.2 Các mẫu thiết kế đã áp dụng 2đ: mỗi mẫu 0.5đ + Singleton: PManager và GManager 0.25đ mỗi lớp + Factory Method biến thể 2: - Creator: khơng cĩ - ConcreteCreator: khơng cĩ - Product: G

Trang 1

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐÁP ÁN CUỐI KỲ HK 2 NĂM HỌC 17-18

KHOA: Cơng nghệ Thơng tin MƠN HỌC: THIẾT KẾ PHẦN MỀM HĐT

BỘ MƠN: Cơng nghệ phần mềm MÃ MƠN HỌC: OOSD330879

- Đề số 01 Đáp án cĩ 04 trang

-Câu 01: (3đ)

Ghi chú:

- CĨ chức năng “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 ra thành 2 loại người dùng mà gộp làm 1 rồi dùng các quan hệ <<include>> hoặc <<extend>>)

- KHƠNG CĨ tác nhân “Khách” -0.5đ

- KHƠNG CĨ mối quan hệ kế thừa giữa “Người dùng hảo hạng” và “Người dùng thường” -1.0đ

- Thiếu hoặc sai usecase và mối quan hệ giữa các usecase trừ điểm tùy mức độ

Đề 02-Trang 1

Trang 3

Câu 2: (7đ)

2.1 Lập lược đồ lớp cho chương trình (2đ): (cĩ thể bỏ bớt những thuộc tính khơng phải kiểu lớp và các property)

+ Phương thức và thuộc tính tĩnh khơng gạch dưới, -0.25đ

+ Thiếu 2 mối quan hệ Aggregation, -0.5đ; thiếu cả 4 -1.0đ

+ Thiếu hoặc 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ỗi mẫu 0.5đ

+ Singleton: PManager và GManager (0.25đ mỗi 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 cũng chấp nhận được):

Đề 02-Trang 3

Trang 4

- Context: GameExecuter

- Strategy: Game

- ConcreteStrategy: MemoryGame, SpeedGame, AttentionGame, SolvingGame, Flexibility Game

2.3 Kết quả in ra màn 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 của lớp này Muốn đưa game này vào hệ thống cần sử dụng mẫu Adapter, trong đĩ

LanguageGame đĩng vai trị là Adaptee, cịn Game là Target

Để hiện thực hĩa, cần xây dựng thêm lớp LanguageGameAdapter kế thừa từ lớp Game và giữ 1 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 hiện phương thức run() của đối tượng LanguageGame

Câu b (1đ): Để bổ sung thêm phần hướng dẫn cách chơi và tổng hợp nhận xét, ta cĩ thể sử dụng mẫu Decorator để gắn thêm các phương thức này vào cho mỗi Game

Để hiện thực hĩa, ta tạo 1 lớp GameDecorator kế thừa từ lớp Game, đồng thời giữ tham chiếu tới 1 đối tượng thuộc lớp này Khi cài đặt lại phương thức execute() thì mặc định ta thực hiện gọi phương thức execute() của đối tượng đĩ

Để thêm phần hướng dẫn và nhận xét, ta tạo 2 lớp ConcreteDecorator là HelpDecorator và SummaryDecorator kế thừa từ GameDecorator, cài đặt thêm các phương thức hướng dẫn hay nhận xét cần thiết và thực hiện lời gọi phương thức này khi cài đặt lại execute() trước/sau khi gọi execute() của lớp cha

Lưu ý: đề xuất dùng mẫu Template Method bằng cách điều chỉnh lại phương thức

playGame() trong lớp Player là khơng hợp lý, bởi các phương thức hướng dẫn cách chơi và nhận xét sau khi chơi khơng thể thêm vào lớp Player này mà nĩ phải gắn với các Game

Lưu ý: Đáp án chỉ mang tính chất tham khảo.

Ngày tháng năm 2018

Duyệt của Bộ mơn

Đề 02-Trang 4

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

TỪ KHÓA LIÊN QUAN

w