15.04.2018 Views

programming-for-dummies

Create successful ePaper yourself

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

Software Engineering Methods 109<br />

Figure 5-1:<br />

The<br />

waterfall<br />

method<br />

divides a<br />

project into<br />

four distinct<br />

and<br />

mutually<br />

exclusive<br />

steps.<br />

Analysis<br />

Design<br />

Implementation<br />

Testing<br />

Book I<br />

Chapter 5<br />

Managing Large<br />

Projects with<br />

Software<br />

Engineering<br />

Analysis<br />

The first step is to analyze the project to determine exactly what the program’s<br />

supposed to do. (Surprisingly, many people, companies, and government<br />

agencies skip this first step all the time.)<br />

During this analysis step, the customer (the person or group that wants the<br />

program) defines exactly what they want the program to do, which are the<br />

requirements. The programmers read these requirements and ask the customer<br />

<strong>for</strong> clarification until they “think” they understand exactly what the<br />

customer wants. At this point, the analysis step is done, and the customer<br />

can no longer ask <strong>for</strong> any more changes.<br />

When a customer’s requirements are written down, they’re often called the<br />

program specifications or just the specifications.<br />

One common problem is that the customer may ask <strong>for</strong> a new feature that he<br />

didn’t ask <strong>for</strong> initially. By shutting down the analysis step, the waterfall method<br />

prevents the customer from coming back two days be<strong>for</strong>e the project is done<br />

and asking, “Can’t you add just one more feature? It’ll only set the project back<br />

another 3 months and require rewriting 90 percent of the program from<br />

scratch. And by the way, we aren’t going to pay you <strong>for</strong> the delay either.”<br />

The most common problem during the analysis phase is that the programmers<br />

never clearly understand what the customer wants:<br />

✦ Sometimes the customer clearly defines what he wants, and the programmers<br />

misinterpret it.<br />

✦ Sometimes the customer doesn’t really know what he wants, so he keeps<br />

changing his mind, making it impossible <strong>for</strong> the programmers to define<br />

everything the program’s supposed to do.

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

Saved successfully!

Ooh no, something went wrong!