16.04.2014 Views

Designing a persistent online strategy game - Department of ...

Designing a persistent online strategy game - Department of ...

Designing a persistent online strategy game - Department of ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

18 Chapter 3. Requirements engineering with non-functional requirements<br />

3.3.3 Evaluation procedure<br />

When a s<strong>of</strong>tgoal interdependencies graph has been established it is time to determine<br />

whether or not the top requirements are satisfied. This is done by taking a proposal for a<br />

design, or feature, and using the evaluation procedure to see how that design would affect<br />

the rest <strong>of</strong> the system. These decisions are generally “leaf” nodes in the graph. What is<br />

done is that the node gets a label applied to it and the procedure could then be seen as<br />

an algorithm that “calculates” what consequences this has. The label describes to what<br />

extent a node has been satisficed, typically the label should be denied or satisficed though<br />

there are more labels which will be introduced later. When a label has been applied to a<br />

leaf-node the interdependency towards its parent then determines how the label should<br />

be propagated upwards. If for example the “Validation[GoldAccount.highSpending]”<br />

s<strong>of</strong>tgoal (as seen in Figure 3.6) would be labelled satisficed the MAKE contribution<br />

towards its parent would result in the parent also being satisficed (though there could be<br />

a conflict if the s<strong>of</strong>tgoal “FlexibleUserInterface...” also would be satisficed). This process<br />

then continues until all nodes upwards are calculated. This is not enough however as<br />

uncertainties and conflicts might appear in the graph. To handle this four basic labels<br />

are introduced. These labels are (the graphical representations to be used in the s<strong>of</strong>tgoal<br />

interdependencies graphs are shown in Figure 3.7):<br />

– Satisficed (S) - denotes a goal or link that is satisficeable and not deniable.<br />

– Denied (D) - denotes a goal or link that is deniable and not satisficeable.<br />

– Conflicting (C) - denotes a goal or link that is both satisficeable and deniable.<br />

– Undetermined (U) - denotes a goal or link that is neither satisficable nor deniable.<br />

There is however also the possibility that a s<strong>of</strong>tgoal might have some support, but not<br />

enough, for it to be either satisficed or denied. If only the previously mentioned labels<br />

were used that would result in the s<strong>of</strong>tgoal being undetermined, but it would be better<br />

if the developer could step in and determine if the s<strong>of</strong>tgoal actually was satisficed or<br />

not. Therefore two more labels are introduced:<br />

– Weak positive (W+) - represents positive, but inconclusive support<br />

– Weak negative (W-) - represents negative, but inconclusive support<br />

These labels should however be replaced by one <strong>of</strong> the four basic labels by the developer<br />

and thus not be present in the graph when the procedure is finished (they should not<br />

contribute to the parent label either). In case <strong>of</strong> the “conflicting label” the developer<br />

can also step in and determine the label that should contribute to its parent.<br />

There is also the issue <strong>of</strong> how the labels should be propagated through the graph. When<br />

a satisficed label should be propagated through MAKE or BREAK contributions it is<br />

pretty straight forward, but if the label is denied or undecided or if the contribution is<br />

<strong>of</strong> another type it becomes more difficult. Table 3.1 shows how different labels should<br />

be propagated through various types <strong>of</strong> contributions.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!