Integration

Code Complete
Author : Steven C. McConnell.

Prof. Asha N

1
Integration


combine separate software components into
a single system

Prof. Asha N

2
1. Importance of the Integration
Approach




It doesn’t matter that
it would have been
strong enough by the
time it was done; it
needed to be strong
enough at each step
If you construct and
integrate software in
the wrong order, it’s
harder to code,
harder to test, and
harder to debug
The football stadium., at the
University of Washington
Prof. Asha N

3
Contd….


the benefits you can expect from careful integration:













Easier defect diagnosis
Fewer defects
Less scaffolding
Shorter time to first working product
Shorter overall development schedules
Better customer relations
Improved morale
Improved chance of project completion
More reliable schedule estimates
More accurate status reporting
Improved code quality
Less documentation
Prof. Asha N

4
2. Integration Frequency—Phased or
Incremental?


Programs are integrated by means of either
the phased or the incremental approach.


Phased Integration:
1.

2.

3.

Design, code, test, and debug each class. This step is
called “unit development.”
Combine the classes into one whopping-big system.
This is called “system integration.”
Test and debug the whole system. This is called
“system dis-integration.” (Thanks to Meilir Page-Jones
for this witty observation.)

Prof. Asha N

5
Contd….

Prof. Asha N

6
Contd….


Incremental Integration
1.

2.
3.

Develop a small, functional part of the system. It can be
the smallest functional part, the hardest part, a key part,
or some combination. Thoroughly test and debug it. It
will serve as a skeleton on which to hang the muscles,
nerves, and skin that make up the remaining parts of
the system.
Design, code, test, and debug a class.
Integrate the new class with the skeleton. Test and
debug the combination of skeleton and new class. Make
sure the combination works before you add any new
classes. If work remains to be done, repeat the process
starting at step 2.
Prof. Asha N

7
Contd….

Prof. Asha N

8
Contd….


Benefits of Incremental Integration







Errors are easy to locate
The system succeeds early in the project
You get improved progress monitoring
You’ll improve customer relations
The units of the system are tested more fully
You can build the system with a shorter
development schedule

Prof. Asha N

9
3. Incremental Integration Strategies


Top-Down Integration

Prof. Asha N

10
Contd….


Bottom-Up Integration

Prof. Asha N

11
Contd….


Sandwich Integration

Prof. Asha N

12
Contd….


Risk-Oriented Integration

Prof. Asha N

13
Contd….


Feature-Oriented Integration

Prof. Asha N

14
Contd….


T-Shaped Integration

Prof. Asha N

15
4. Daily Build and Smoke Test




a good approach to integrating the software
is the “daily build and smoke test.” Every file
is compiled, linked, and combined into an
executable program every day.
The program is then put through a “smoke
test,” a relatively simple check to see whether
the product “smokes” when it runs.

Prof. Asha N

16
Thank You

Prof. Asha N

17

Integration

  • 1.
    Integration Code Complete Author :Steven C. McConnell. Prof. Asha N 1
  • 2.
    Integration  combine separate softwarecomponents into a single system Prof. Asha N 2
  • 3.
    1. Importance ofthe Integration Approach   It doesn’t matter that it would have been strong enough by the time it was done; it needed to be strong enough at each step If you construct and integrate software in the wrong order, it’s harder to code, harder to test, and harder to debug The football stadium., at the University of Washington Prof. Asha N 3
  • 4.
    Contd….  the benefits youcan expect from careful integration:             Easier defect diagnosis Fewer defects Less scaffolding Shorter time to first working product Shorter overall development schedules Better customer relations Improved morale Improved chance of project completion More reliable schedule estimates More accurate status reporting Improved code quality Less documentation Prof. Asha N 4
  • 5.
    2. Integration Frequency—Phasedor Incremental?  Programs are integrated by means of either the phased or the incremental approach.  Phased Integration: 1. 2. 3. Design, code, test, and debug each class. This step is called “unit development.” Combine the classes into one whopping-big system. This is called “system integration.” Test and debug the whole system. This is called “system dis-integration.” (Thanks to Meilir Page-Jones for this witty observation.) Prof. Asha N 5
  • 6.
  • 7.
    Contd….  Incremental Integration 1. 2. 3. Develop asmall, functional part of the system. It can be the smallest functional part, the hardest part, a key part, or some combination. Thoroughly test and debug it. It will serve as a skeleton on which to hang the muscles, nerves, and skin that make up the remaining parts of the system. Design, code, test, and debug a class. Integrate the new class with the skeleton. Test and debug the combination of skeleton and new class. Make sure the combination works before you add any new classes. If work remains to be done, repeat the process starting at step 2. Prof. Asha N 7
  • 8.
  • 9.
    Contd….  Benefits of IncrementalIntegration       Errors are easy to locate The system succeeds early in the project You get improved progress monitoring You’ll improve customer relations The units of the system are tested more fully You can build the system with a shorter development schedule Prof. Asha N 9
  • 10.
    3. Incremental IntegrationStrategies  Top-Down Integration Prof. Asha N 10
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
    4. Daily Buildand Smoke Test   a good approach to integrating the software is the “daily build and smoke test.” Every file is compiled, linked, and combined into an executable program every day. The program is then put through a “smoke test,” a relatively simple check to see whether the product “smokes” when it runs. Prof. Asha N 16
  • 17.