Presentation is loading. Please wait.

Presentation is loading. Please wait.

DAIMIHenrik Bærbak Christensen1 Mandatory Project Exercise New Requirement.

Similar presentations


Presentation on theme: "DAIMIHenrik Bærbak Christensen1 Mandatory Project Exercise New Requirement."— Presentation transcript:

1 DAIMIHenrik Bærbak Christensen1 Mandatory Project Exercise New Requirement

2 DAIMIHenrik Bærbak Christensen2 Completing the MiniDiablo Game A final requirement to resemble Diablo somewhat at the domain level is Quests... Quests are to RPG games what milestones are to projects –define goals to achieve –define a ladder of progress

3 DAIMIHenrik Bærbak Christensen3 MiniDiablo Specification MiniDiablo specification is augmented with quests: Quest 1: Visit the Blood Moor –that is, once the hero visits this area, the quest is completed and he proceeds to the next quest Quest 2: Kill all enemies in the Den of Evil –that is, once no enemy is left standing in the Den of Evil, the quest is complete Game end: Quest 2 is the last quest.

4 DAIMIHenrik Bærbak Christensen4 Design Exercise (This is not a design course, but...) How can we implement this in SRaTWorld without introducing any new Base classes? or What new meta classes must be introduced to achieve this requirement?

5 DAIMIHenrik Bærbak Christensen5 The SRaTWorld Architecture SRaTWorld consists of three abstractions –Attributes: (key,value) pairs are dumb data –Events: user initiated actions manipulating attributes –Listeners: monitoring value assignments to attributes Idea: –Monitor Hero movement via AttributeListener at any movement we check whether a quest objective is met if so, update the quest –sratworld.meta.quest.QuestListener must be attached to hero’s AttributeMap

6 DAIMIHenrik Bærbak Christensen6 Module View Actor AttributeMap QuestListener observes

7 DAIMIHenrik Bærbak Christensen7 Code View... etc... Note: We can invent new attributes as we go along. The GUI can even make a listener that listens to the “quest” attribute and update the GUI appropriately

8 DAIMIHenrik Bærbak Christensen8 Development

9 DAIMIHenrik Bærbak Christensen9 Emma View... says it all ! The code has been developed non-test- driven! And seeded beyond belief with defects –hopefully most intentionally...

10 DAIMIHenrik Bærbak Christensen10 Exercise 1: Inspection Make a Time-boxed (semi) inspection. –2 person groups join pairwise –Distribute roles “author”, “moderator”, “recorder”, “reviewer” –Preparation (5 minutes) spend 5 minutes reading the QuestListener –Inspection (25 minutes) author paraphrases the code –“I loop over all tiles in the area”, not “for row = 0 to all rows do” moderator –tracks time so all code covered in 25 min –cut design discussions recorder –records [line no, defect type, severity level (minor/major)]

11 DAIMIHenrik Bærbak Christensen11 Exercise 2: Doubles Plan the development of the test harness for the UUT: QuestListener. Specifically you must –Describe and classify the requirements in terms of direct input on the UUT direct output on the UUT indirect input on the UUT indirect output on the UUT –Identify the DOCs: Depended-On Components –Classify DOC doubles as Stub, Spy, Mock, Fake Object as best suits plausible test cases...


Download ppt "DAIMIHenrik Bærbak Christensen1 Mandatory Project Exercise New Requirement."

Similar presentations


Ads by Google