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.

318 Chapter 24 ■ Incremental development<br />

Component<br />

1<br />

Figure 24.3 Bottom-up implementation<br />

Test<br />

bed<br />

Component<br />

under<br />

test<br />

■ there is no visible, working system until a very late stage, system testing, is complete.<br />

True there are tested components and subsystems, but there is normally nothing<br />

that can be demonstrated to the client as even providing a limited vision of what the<br />

system will eventually do.<br />

■ not all systems have a bottom.<br />

24.6 ● Middle-out implementation<br />

Component<br />

2<br />

Middle-out development starts with an architectural design <strong>for</strong> the software. It then<br />

chooses some central component as the starting point <strong>for</strong> testing. A driver and stubs are<br />

written and the component is tested. Then some adjoining component is added to the<br />

system and testing carried out. The system emerges from its centre.<br />

This approach could be useful in developing a large software system that involves a<br />

number of developers. In such a development, the work needs to be divided among a<br />

number of people who work concurrently. Hopefully the architecture can be cleanly<br />

divided into weakly coupled subsystems, which are initially developed independently.<br />

These subsystems need to be surrounded by drivers and stubs, developing in a middleout<br />

fashion.<br />

This approach suffers from all the combined drawbacks of bottom-up and top-down<br />

development.<br />

SELF-TEST QUESTION<br />

24.1 Suggest a drawback of middle-out development

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

Saved successfully!

Ooh no, something went wrong!