ĐÁP ÁN MÔN: TK PHẦN MỀM HĐT

6 358 0
Tài liệu đã được kiểm tra trùng lặp
ĐÁP ÁN MÔN: TK PHẦN MỀM HĐT

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

Thông tin tài liệu

thiết kế phần mềm hướng đối tượng

TRƯỜNG ĐẠ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 MÔN: TK PHẦN MỀM HĐT Mã môn học: 1279100 Học kỳ: II. Năm học: 2011-2012 ---------------------------------------------------------------------- Câu 1: (3 điểm) Lập lược đồ Usecase cho hệ thống phần mềm uc Use Case View Nguoi quan ly Nguoi choi Nguoi quan tri Dang nhap Dang ky Khach Mua gold bang tin nhan Mua gold bang the cao Dieu khien nhan vat Di chuyen Tro chuyen Mua ban vat dung Thuc hien nhiem vu Tan cong quai vat Tan cong nguoi choi khac Hoc tuyet chieu Lap doi choi Tham gia doi choi Tang vat dung Thiet ke ban do Tao cua hang Quan ly nguoi dung Roi doi choi Su dung Item Hien thi ban do «extend» «extend» «extend» «extend» «extend» «extend» «extend» «extend» «extend» «extend» Lưu ý: + Client và Server không phải là Actor: nếu xem xét 2 phần này là actor thì phải vẽ thành 2 module riêng biệt, và module này là actor của module kia. Sai trừ 0.5đ + Không tách Khách và người chơi thành 2 tác nhân khác nhau (hoặc thiếu tác nhân Khách): trừ 0.5đ + Trừ điểm tùy theo mức độ nếu đặt tên tác nhân và usecase không đúng quy cách: Usecase bắt đầu bằng động từ, tác nhân phải là danh từ hoặc cụm danh từ. + Vẽ sai ký hiệu các mối quan hệ <<include>>, <<extend>>: trừ 0.25đ. + Thiếu các chức năng quan trọng: trừ điểm tùy mức độ. Câu 2: (7 điểm) a) Lập lược đồ lớp cho chương trình: class Logical View Program - Main(string[]) : void PManager - ins: PManager # lstPlayer: Dictionary<string, Player> + getManager() : PManager # PManager() + register(string, Player) : void Item # id: int # name: String «property» + Id() : int + Name() : String Health Mana Player # items: Dictionary<Item, int> = new Dictionary< . + attack(Player) : void + attack(Monster) : void + earnItem(Item, int) : void + useItem(Item, int) : int «property» # exp() : long # gold() : long # lvl() : int Human + attack(Player) : void + attack(Monster) : void Orge + attack(Player) : void + attack(Monster) : void Undead + attack(Player) : void + attack(Monster) : void SkilledPlayer # player: Player + attack(Player) : void + attack(Monster) : void + performSkill() : void AutoHeal + AutoHeal(Player) + performSkill() : void SpeedBoost + performSkill() : void + SpeedBoost(Player) Monster + attack(Player) : void + present() : Item «property» + lvl() : int + spd() : int Wolf + attack(Player) : void + present() : Item Giant + attack(Player) : void + present() : Item #player + Thiếu mối quan hệ Aggregation, -0.5đ b) Các mẫu thiết kế đã áp dụng: nêu đúng và đủ, 0.5đ/mẫu, chỉ nêu tên đúng được 0.25đ. Nêu sai tên mẫu (dư) trừ điểm tùy mức độ. + Factory Method:  Creator: Monster  ConcreteCreator: Wolf, Giant  Product: Item  ConcreteProduct: Health, Mana  FactoryMethod(): present() + Singleton: PManager + Decorator:  Component: Player  ConcreteComponent: Human, Orge, Undead  Decorator: SkilledPlayer  ConcreteDecorator: AutoHeal, SpeedBoost c)  Ý 1 (1đ): Sử dụng mẫu Composite, thêm lớp Team kế thừa từ Player, đồng thời chứa 1 danh sách các Player thuộc đội đó. Trong lớp Team có cài đặt các phương thức Add(), Remove(). Trong lớp Player phải bổ sung thêm các giao diện Add(), Remove() và override lại (thực chất là phương thức rỗng) trong các lớp con của lớp Player.  Ý 2 (1đ): Sử dụng mẫu Decorator để định nghĩa lại phương thức attack(Human) nhằm phân biệt giữa người chơi không thuộc đội nào và người chơi thuộc đội chơi. Lớp TeamPlayer này có thể kế thừa từ lớp SkilledPlayer vì mẫu Decorator đã có sẵn trong chương trình ban đầu. d)  Ý 1 (1đ): Chương trình sử dụng thêm mẫu TemplateMethod, trong đó: o AbstractClass: Quest o ConcreteClass: ConcreteQuest o TemplateMethod(): performQuest()  Ý 2 (1đ): Đoạn mã client: Player p = new Human(); //hoặc sử dụng Player teo, ti cũng được Quest q = new ConcreteQuest(); p.activeQuest = q; p.doQuest(); - Hết - Ghi chú: Đáp án chỉ mang tính chất tham khảo. Sinh viên nào có nhu cầu phúc khảo có thể liên hệ VP Khoa để làm đơn xin chấm phúc khảo, sau đó liên hệ với CBGD để được xem lại bài và chấm trực tiếp. . KỸ THUẬT TP. HCM KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM ĐÁP ÁN MÔN: TK PHẦN MỀM HĐT Mã môn học: 1279100 Học kỳ: II. Năm học: 2011-2012 ----------------------------------------------------------------------. ---------------------------------------------------------------------- Câu 1: (3 điểm) Lập lược đồ Usecase cho hệ thống phần mềm uc Use Case View Nguoi quan ly Nguoi choi Nguoi quan tri Dang nhap Dang

Ngày đăng: 23/05/2013, 21:56

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

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

Tài liệu liên quan