100 likes | 269 Views
Integration Plan. Integration Plan Importance and Strategies. Why is an Integration Plan Important. States when a module is to be integrated into the final project States when a module is due to be tested by others before it is integrated Is a timeline that can be followed by the entire team
E N D
IntegrationPlan Integration Plan Importance and Strategies
Why is an Integration Plan Important • States when a module is to be integrated into the final project • States when a module is due to be tested by others before it is integrated • Is a timeline that can be followed by the entire team • States the estimated and actual lines of code for each module • States what the filename of the module should be • States the priority of each module • States the requirement that each module satisfies to be sure that all the requirements are covered
Example of an Integration Plan An example of an integration plan can be found at: http://users.csc.calpoly.edu/%7Eteam-jd0/FBG/DevSites/Sean/ImplemMgr/integration_plan.html.
Integration Strategies There are 5 different integration strategies: • Big Bang • Incremental • Bottom - Up • Top - Down • Threads
Big Bang Method: Throw all the modules together into a large bag and shake vigorously ... it usually goes "bang." In other words, integration doesn't begin until all modules are unit tested, then all modules are integrated and tested simultaneously. Advantages Disadvantages • Requires little or no planning. Just hold a "coding party" and keep shoving pizzas under the door. • Defects difficult to isolate. • Crucial design features, e.g. interfaces between modules, aren't tested till late when rework is expensive. • Makes no distinction between critical and peripheral parts of the system. • No flexibility in scheduling. Concentrated use of resources (testers). • Progress is very hard to measure. Many projects "die on the vine" because the modules won't integrate.
Incremental Approach Method: Implement the interfaces first (this was a requirement in our project; coding and compiling the module headers). Code and unit test an individual module. Add the module to the system. Test and debug the system. Repeat until the system is complete. Advantages Disadvantages • Defects can be isolated! • Major interfaces are tested first and most frequently. • Testing resources are evenly distributed. • Easier for management to monitor progress. Project behind schedule less likely to be axed. • Implementers see early results - motivating! • Requires planning.
Top-Down Approach Method: Use the incremental approach. The order of integration proceeds from the top of the structure chart down. Advantages Disadvantages • Users can be shown a partial version early during implementation to get feedback • Easier for users to deal with overdue project if they have a partial system to work with. • Users may actually use the partial (or skeleton) versions as part of a transition from their current system. • Stubs are easier to write than drivers. • May require "stubs" or "fakes" for lower level modules yet to be coded. Fake come in several varieties: • Do nothing (stub). It compiles okay so you can do a build. • Display a trace message. • Test or display input parameters. • Return a constant value. • Accept input from a tester at the terminal. • Be a simple version of the real module. • UMBRELLA approach is sometimes more practical than strict Top-Down.
Bottom -Up Approach Advantages Disadvantages Method: Use the incremental approach. The order of integration proceeds from the bottom of the structure chart toward the top. • Lower level modules receive more testing (often key functionality is located here). • In crunch mode, coding can begin early (at the risk of integration failure). • Drivers are expensive to write and error prone. • No partial system implemented. (lacks control modules)
Threads (or "staged") Approach Method: • Use the incremental approach. The order of integration proceeds as follows: • Determine which subset of modules (a "thread") are needed to perform each function required in the specification. • Allocate the threads to "stages," where each stage demonstrates a significant partial functioning system. • Implement in top-down order. Advantages Disadvantages • High degree of granularity exists in relation to the spec and design, allowing accurate monitoring of progress. • Allows integrators to prioritize the system features to be integrated. • Partial system is available early. • Threads can be implemented in parallel. • Requires a lot of planning.
The End Empty Set all the way