Transcript lec9.ppt
Build Plan
Development
or integration
strategies
Decide
the order in which
components of the system will be
developed
Dillon: CSE470: SYSTEM INTEGRATION
1
Uses Graph
Play Game
Deal
Collect
Cards
Play Hand
Get Hand
Value
Dillon: CSE470: SYSTEM INTEGRATION
Determine
Winner
Compare
Hands
Announce
Winner
2
Common build strategies
Big Bang
» All coding precedes all integration
Bottom Up
» Start at low-level utility modules
Top Down
» Start at high-level control modules
Incremental/Sandwich
» Integrate control modules top down and utility
modules bottom up
Dillon: CSE470: SYSTEM INTEGRATION
3
Big Bang Integration
Advantages
» No need to write stubs or drivers
Disadvantages
» Difficult to identify units causing errors
» Critical modules receive no extra testing
» Major design flaws are discovered very late
» No flexibility in scheduling
Dillon: CSE470: SYSTEM INTEGRATION
4
Bottom Up Integration
Implement a module
Implement a test driver
» often a quick prototype
Execute tests
Implement and test all modules called
by the driver (prototype), one at a time
Dillon: CSE470: SYSTEM INTEGRATION
5
Bottom Up Integration (cont.)
Replace the test driver (prototype) with
its implementation
Implement a test driver for the new
module
Repeat until all modules are integrated
Dillon: CSE470: SYSTEM INTEGRATION
6
Bottom Up Integration
Advantages
» no need to write
stubs
» low level utilities
are well tested
» high-level (often
simple) drivers are
not as well tested
Dillon: CSE470: SYSTEM INTEGRATION
Disadvantages
» not all low level
utilities are
important
» emphasis on low
level functionality
»major design
flaws are discovered late
7
Top Down Integration
Implement highest level component
Create stubs for called component
Test the component with the stubs
Implement and test stubs one by one
» use stubs for any called components
Repeat until all stubs are implemented
Dillon: CSE470: SYSTEM INTEGRATION
8
Top Down Integration
Advantages
» no need to write
drivers
» high-level drivers
are well tested
» unimportant lowlevel utilities are
not as well tested
Dillon: CSE470: SYSTEM INTEGRATION
Disadvantages
» important lowlevel utilities are
not as well tested
» simple high-level
drivers may not
need the extra
testing
9
Incremental Top Down Integration
Identify most important path through the
uses graph
» implement and test the highest module in
the path
– creating drivers and stubs as necessary
» select the next module on that path
» repeat until the path is done
Dillon: CSE470: SYSTEM INTEGRATION
10
Incremental Top Down
Integration (cont.)
Select next most important path and
follow the same process
Repeat until all paths have been
implemented
Paths do not have to start at the root or
end with leaves
Dillon: CSE470: SYSTEM INTEGRATION
11
Incremental Top Down Integration
Advantages
» test the most important functionality first
» easy to isolate errors
» find major design flaws early
» have an incomplete but “working” system
early
– good for morale, visibility, early assessment
» minimizes the need for drivers and stubs
Dillon: CSE470: SYSTEM INTEGRATION
12
Developing an incremental
build plan
Identify most important paths through
the uses graph
» most used functionality; centrality
» complex component that plays a key role
Save “frills” for later paths
Produce something that works early
» add features incrementally for easier
testing and debugging
Dillon: CSE470: SYSTEM INTEGRATION
13