21.08.2013 Views

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

48 Chapter 4 ■ Requirements engineering<br />

4.3 Appendix A gives specifications <strong>for</strong> several systems. For each specification identify any<br />

problems with the specification, such as ambiguities, inconsistencies and vagueness.<br />

4.4 Group exercise. One way of understanding more clearly the difficulties of carrying out<br />

requirements elicitation is to carry out a role-playing exercise. <strong>Students</strong> can split up<br />

into groups of four people, in which two act as users (or clients), while the other two<br />

act as software analysts.<br />

The users spend ten minutes in deciding together what they want. Meanwhile the<br />

analysts spend the ten minutes deciding how they are going to go about eliciting the<br />

requirements from the users.<br />

The users and analysts then spend 15 minutes together, during which the analysts<br />

try to elicit requirements. At the end of this period an attempt is made to get all parties<br />

to sign the requirements specification.<br />

After the role play is complete, everyone discusses what has been learned from<br />

the exercise.<br />

Possible scenarios are the systems already specified in Appendix A.<br />

4.5 Requirements specifications are sometimes very long – they can be as long as a<br />

book. Suggest a software tool that could be used (in addition to a word processor) to<br />

assist in writing, checking, browsing and maintaining a specification. Consider, <strong>for</strong><br />

example, using a web browser and including hyperlinks in a specification to promote<br />

cross-referencing.<br />

4.6 Who should be consulted when collecting the requirements of a computer-based system<br />

to replace an existing in<strong>for</strong>mation system?<br />

4.7 Who should be consulted when collecting the requirements <strong>for</strong> a process control system<br />

or an embedded system? (It is not immediately obvious who the users of these<br />

systems will be.)<br />

4.8 Define the terms completeness and consistency in a specification. How can we<br />

achieve them?<br />

4.9 What are the skills required to collect, analyze and record software requirements?<br />

4.10 Explain the difficulties in using natural language <strong>for</strong> describing requirements.<br />

4.11 Why is requirements engineering so important and why is it so difficult?<br />

Answers to self-test questions<br />

4.1 If something is ambiguous it cannot be clearly understandable. So ambiguity<br />

has to be removed to help achieve an understandable specification.<br />

4.2 Check balance. The user offers up their card. The system prompts <strong>for</strong> the<br />

PIN. The user enters the PIN. The system checks the PIN. If the card and<br />

PIN are valid, the system prompts the user <strong>for</strong> their choice of function. The<br />

user selects check balance. The system displays the current balance.

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

Saved successfully!

Ooh no, something went wrong!