1. Trang chủ
  2. » Công Nghệ Thông Tin

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

6 361 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đáp Án Môn: Tk Phần Mềm HĐT
Trường học Trường Đại Học Sư Phạm Kỹ Thuật TP. HCM
Chuyên ngành Công Nghệ Phần Mềm
Thể loại Đáp án
Năm xuất bản 2011-2012
Thành phố TP. HCM
Định dạng
Số trang 6
Dung lượng 314,73 KB

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

Nội dung

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

Trang 1

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

Trang 2

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»

Trang 3

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:

Trang 4

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

Hum an

+ 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)

M onster

+ attack(Player) : void + present() : Item

«property»

+ lvl() : int + spd() : int

Wolf

+ attack(Player) : void + present() : Item

Giant

+ attack(Player) : void + present() : Item

#player

Trang 5

+ 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:

+ Singleton: PManager

+ Decorator:

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

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)

o AbstractClass: Quest

Trang 6

o ConcreteClass: ConcreteQuest

o TemplateMethod(): performQuest()

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

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

TỪ KHÓA LIÊN QUAN

w