Het punt is als volgt, we zijn het afgelopen jaar bezig geweest met het programmeren van een RTS (C# & Irrlicht), het is overigens geen technisch wonder een het is helaas niet zo uitgepakt als we van te voren in gedachten hadden (toch een vorm van studentiekoze luiheid

).
Het is de bedoeling dat school hier een beoordeling aan vast gaat knopen middels een assessement.
Helaas is onze vorige assessor opgestapt in verband met een nieuwe baan en hebben we er een UML- en requirementsgeile dude van de afdeling webtechnologie (vandaar dat ik het verband met een webapplicatie leg) er voor in de plaats gekregen.
Dit betekent dat we een hoop moeten veranderen in onze, toch wel enigszins, fluffy omschreven requirements, maar ik vraag me af hoe we echt harde requirements moeten opstellen.
Om maar een voorbeeld te noemen, onze 'map' is in feite niets anders dan een xml bestand. Dit xml bestand wordt gegenereerd door onze map editor en ziet er ongeveer als volgt uit:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| <Tile ID="1022" GroundType="0" HeightMap="1" />
<Tile ID="1023" GroundType="0" HeightMap="1" />
</Tiles>
- <MapOptions Forced="false" Override="false">
- <BuildList>
<BuildItem Type="1" Enabled="true" Researched="true" Researchable="true" />
- <BuildItem Type="2" Enabled="true" Researched="true" Researchable="true">
<BuildingGroupRestriction PGID="2" Enabled="false" Researched="false" Researchable="false" />
</BuildItem>
<BuildItem Type="102" Enabled="true" Researched="true" Researchable="true" />
<BuildItem Type="104" Enabled="true" Researched="true" Researchable="true" />
</BuildList>
</MapOptions>
- <PlayersInformation>
- <Players>
- <Player ID="1" AIAggression="0">
- <InGroups>
<MemberOf inGroup="1" />
</InGroups>
- <Units>
<Unit Tile="1" Type="1" Health="20" />
<Unit Tile="2" Type="1" Health="20" />
<Unit Tile="3" Type="1" Health="20" />
</Units>
- <Buildings>
<Building Tile="0" Type="104" Health="20" />
<Building Tile="5" Type="102" Health="20" />
</Buildings>
</Player>
- <Player ID="2" AIAggression="0">
- <InGroups>
<MemberOf inGroup="2" />
</InGroups>
- <Units>
<Unit Tile="1022" Type="1" Health="20" />
<Unit Tile="1021" Type="1" Health="20" />
<Unit Tile="1020" Type="1" Health="20" />
</Units>
- <Buildings>
<Building Tile="1023" Type="104" Health="20" />
<Building Tile="1017" Type="102" Health="20" />
</Buildings>
</Player>
</Players>
- <Groups>
<Group GID="0" />
<Group GID="1" />
<Group GID="2" />
</Groups>
</PlayersInformation>
- <World>
- <Trees>
<Tree ID="0" Tile="237" Model="tree5.3ds" />
</Trees>
</World>
</Map> |
Of het 'good practice' is om de zaken zo aan te pakken laat ik graag even buiten beschouwing (hoewel tips altijd welkom zijn

). Maar dit is gewoon een gevolg van een stukje evolutie, toen we begonnen hadden we dit niet direct voor ogen, wel iets soortgelijks, maar niet wat het nu is geworden. Dankzij de map hebben we A* makkelijk kunnen implementeren etc etc.
Hoe neem je zoiets in godsnaam dergelijke zaken op in een functionele requirement?
Is het uberhaupt wel nuttig zulke zaken ver uit te specificeren?!
Hoe maak je zulke specificaties in godsnaam meetbaar, specifiek etc (SMART)?
Nog wat anders, we hebben natuurlijk ook een (primitieve) AI. Nu is het natuurlijk leuk als deze ook nog wat doet, zoals het bouwen van huisjes en het zoeken van resources.
Goed, daar kun je dus de business requirement aan verbinden dat: de vijandelijke unit automagisch opzoek gaat naar resources [hout] wanneer het aantal resources [hout] gelijk is of lager is dan 100.
Lijkt me, an sich, een goede requirement. Maar je specificeert alleen nog je 'wat' je moet doen, maar niet het 'hoe'. Nu kan ik natuurlijk vanaf het laden van de map tot het punt dat de tegenstander merkt dat zijn hout bijna op is technisch beschrijven, maar dat lijkt me niet echt wenselijk.
Hoe zou je zelf die requirements opstellen? Hoe ziet zo'n GDD eruit, wij hebben een soort van vision document gebruikt, met daarin storyline, units, gebouwen, resources en interactie beschreven, is dat dan in principe genoeg?
[
Voor 12% gewijzigd door
Verwijderd op 21-01-2008 18:13
]