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.

4.5 The requirements specification 41<br />

enriching their jobs. They may resent any attempt to speed up or intensify their work.<br />

They may object to any facilities in the system to monitor their work rate. The management<br />

in the bank, however, will probably be concerned with costs, per<strong>for</strong>mance and<br />

effectiveness. There may very well be a conflict of interest between the cashiers and the<br />

managers. This paints an extreme picture, but illustrates that the users will not necessarily<br />

present a single, uni<strong>for</strong>m view.<br />

Another example of a potential gulf between users and analysts is to do with the level<br />

of expectation of users. Some users have seen science fiction films and come to believe<br />

that computers can do anything – or at least can offer a high level of artificial intelligence.<br />

Others, perhaps, are naive in the opposite direction and believe that computers<br />

can carry out only the most mundane tasks.<br />

To sum up, the role of the analyst is:<br />

■ to elicit and clarify the requirements from the users<br />

■ to help resolve possible differences of view amongst the users and clients.<br />

■ to advise users on what is technically possible and impossible.<br />

■ to document the requirements (see the next section).<br />

■ to negotiate and to gain the agreement of the users and clients to a (final) requirements<br />

specification.<br />

The journey from the users’ initial idea to an agreed requirements specification will<br />

often be long and tortuous.<br />

4.5 ● The requirements specification<br />

The end product of requirements elicitation and analysis is the requirements specification.<br />

It is a vital piece of documentation that is crucial to the success of any software<br />

development project. If we cannot precisely state what the system should do, then how<br />

can we develop the software with any confidence, and how can we hope to check that<br />

the end product meets its needs? The specification is the reference document against<br />

which all subsequent development is assessed.<br />

Three important factors to be considered are:<br />

1. the level of detail<br />

2. to whom the document is addressed<br />

3. the notation used.<br />

The first factor is about the need to restrict the specification as much as possible to<br />

specify what the system should do rather than how it should do it. As we have seen, the<br />

specification should ideally be the users’ view of the system rather than anything about<br />

how the system is to be implemented.<br />

The second factor arises because the specification has to be understood by two different<br />

sets of people – the users and the developers. The people in these two sets have<br />

different backgrounds, expertise and jargon. They share the common aim of clearly

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

Saved successfully!

Ooh no, something went wrong!