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.

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

at one time and unaccomplished at another time. An example <strong>of</strong> this could be that a<br />

system might have great response time when just a few users are using it, but become<br />

slow if many users interact with it at the same time. Yet another problem is that NFRs<br />

are relative, that is, they can be accomplished to different degrees (for example an<br />

accurate system or a very accurate system). Because <strong>of</strong> these kinds <strong>of</strong> difficulties with<br />

determining whether a NFR is accomplished or not, the notion <strong>of</strong> s<strong>of</strong>tgoals is introduced<br />

in the NFR framework. S<strong>of</strong>tgoals, as opposed to ordinary goals, do not have to have<br />

any specific criteria as to whether or not it is satisfied. Instead they can be evaluated<br />

qualitatively. Therefore the word “satisficing”, meaning that something is satisfactory<br />

to a sufficient degree, is used instead <strong>of</strong> “satisfying”.<br />

The NFR framework presents three types <strong>of</strong> s<strong>of</strong>tgoals [41, 8]. Each <strong>of</strong> which has an<br />

associated type and a number <strong>of</strong> topics (one or more). The type describes what the goal<br />

is about and the topics define what it actually implies. For example: a s<strong>of</strong>tgoal to have<br />

good performance for a system would be <strong>of</strong> the type “performance” and have the topic<br />

“system” (generally the declaration would be as follows: “Performance[System]”). The<br />

three different s<strong>of</strong>tgoals, all <strong>of</strong> which appear in the s<strong>of</strong>tgoal interdependency graphs, are:<br />

– Non-functional requirements s<strong>of</strong>tgoals These describe the general NFRs and<br />

the types thus range over all the types that non-functional requirements can be<br />

(for example, accuracy, performance, security and so on). These work as global<br />

constraints on the system as they can have an impact on the entire system rather<br />

than just small parts. Later the NFR s<strong>of</strong>tgoals must be satisficed by the operationalizing<br />

goals.<br />

– Operationalizing s<strong>of</strong>tgoals The operationalizing s<strong>of</strong>tgoals declare solutions as<br />

to how to satisfice the NFR s<strong>of</strong>tgoals. For example: to satisfice a NFR s<strong>of</strong>tgoal<br />

stating that an operation cannot take longer than a certain amount <strong>of</strong> time, an<br />

operationalizing s<strong>of</strong>tgoal might state that the operation should be cancelled if the<br />

time limit has been exceeded (this might not be a good solution, but nonetheless<br />

it would satisfice the NFR s<strong>of</strong>tgoal). These s<strong>of</strong>tgoals also have types and topics in<br />

the same way that NFR s<strong>of</strong>tgoals has.<br />

– Claim s<strong>of</strong>tgoals These s<strong>of</strong>tgoals are always <strong>of</strong> the type “Claims” and their topics<br />

are “statements” in the form <strong>of</strong> declaring arguments. They can be both formal and<br />

informal and an informal claim with an argument for choosing a certain solution<br />

might for example look like this: Claim[“data storage performance is more vital<br />

than time performance”]. Thus they represent design rationale as they serve as<br />

argumentation for different solutions.<br />

All <strong>of</strong> these s<strong>of</strong>tgoals can, and really are encouraged to, in turn be refined by forming<br />

subtypes that specifies special cases <strong>of</strong> the original s<strong>of</strong>tgoal. The refinement <strong>of</strong> s<strong>of</strong>tgoals<br />

is called decomposition. More specifically: NFR decomposition, operationalization<br />

decomposition and argumentation decomposition (for NFR s<strong>of</strong>tgoals, operationalizing<br />

s<strong>of</strong>tgoals and claim s<strong>of</strong>tgoals respectively). The s<strong>of</strong>tgoals are represented by different<br />

figures in the s<strong>of</strong>tgoal interdependencies graphs, these figures along with examples are<br />

shown in Figure 3.1, 3.2 and 3.3.<br />

The difference between the different s<strong>of</strong>tgoal representations is, as can be seen in the<br />

figures, that NFR s<strong>of</strong>tgoal is a regular cloud, operationalizing s<strong>of</strong>tgoals is a cloud drawn<br />

with a thicker line and claim s<strong>of</strong>tgoals are drawn with a dashed line.

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

Saved successfully!

Ooh no, something went wrong!