15.04.2018 Views

programming-for-dummies

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

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

112<br />

Software Engineering Methods<br />

Despite the rationale behind the waterfall method, it hasn’t consistently produced<br />

large, reliable programs on schedule. The biggest flaw with the waterfall<br />

method is its rigidity. If one phase gets stalled <strong>for</strong> any reason, the entire<br />

project grinds to a halt. If programmers misinterpret the customer’s requirements<br />

between two different steps (such as the analysis and design phase),<br />

the error can continue down through each succeeding phase, resulting in a<br />

final program that’s flawed (at best) or completely unusable (at worst).<br />

Evolving a program with extreme <strong>programming</strong><br />

In response to the over-structured waterfall method, programmers have gone<br />

to the opposite side with extreme <strong>programming</strong> (often abbreviated as XP).<br />

The whole idea behind extreme <strong>programming</strong> (or agile <strong>programming</strong>) is to<br />

recognize that all four phases (analysis, design, implementation, and testing)<br />

are not distinct, isolated steps but integrated steps that flow back and <strong>for</strong>th<br />

throughout the life of a project.<br />

Phases<br />

Instead of the analysis, design, implementation, and testing phases defined<br />

by the waterfall method, extreme <strong>programming</strong> defines four different, mutually<br />

overlapping phases:<br />

✦ Coding<br />

✦ Testing<br />

✦ Listening<br />

✦ Designing<br />

Which approach is better? The answer: Both<br />

and neither:<br />

Although you may not want to be as regimented<br />

and rigid as the waterfall model,<br />

you may appreciate its structure and<br />

emphasis on defining every phase be<strong>for</strong>e<br />

moving on to the next step.<br />

Extreme or waterfall?<br />

If you’re the type of person who needs<br />

more structure, extreme <strong>programming</strong> may<br />

be too chaotic.<br />

Whichever method — or combination of<br />

methods — you choose, the ultimate goal of<br />

any software engineering method is to provide<br />

a systematic way to create large, reliable programs<br />

on a consistent basis and as quickly as<br />

possible.

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

Saved successfully!

Ooh no, something went wrong!