Different
integration approaches:
Ø Big-Bang Approach
Ø Incremental Approach
Big-Bang
Approach
After all components are unit tested, proceed abruptly
to integration testing where all components are
assembled at the same time. A primitive approach
that is not very useful except for small and trivial
system.
Ø
Excessive use of test harness or scaffolding software
Ø No localization of error, thus debugging
is much harder
Ø Concentrated usage of limited resources
Ø No flexibility in scheduling
Incremental
Approach
Proceed with integration testing as soon as a reasonable
amount of components are unit tested. Incremental
approach consists of top-down, bottom-up and sandwich
fashion. Approach is useful for large complex system
that requires much planning and testing.
Ø
Localize errors incrementally, thus enhancing debugging
process
Ø Partial aggregation of components often
constitute important subsystems that can have autonomy
i.e. successfully integrated subsystem can be delivered
to customers according to a incremental delivery
schedule
Ø Flexibility in scheduling as integration
can begin before all components are unit tested
Intelligent
carpark system integration approach
Approach chosen: Incremental approach, bottom-up
fashion
Bottom-up
Procedure:
1. Low-level modules tested in builds
2. Driver needed for each build
3. Interface between and within builds are tested
4. Combine builds moving upward in structure
Step
1: Low-level modules tested in builds
The low level modules are grouped into builds according
to their functions. The associated components have
been unit tested using black box testing. When sufficient
components are tested they can be incrementally
integrated. The two main functions of Figure 1 shown
below are compute carpark rates and find path to
carpark slot.

Step 2: Driver needed for each build
Driver modules are written to test each and every
build. These driver are replaced one at a time,
following "depth first" rule. Figure 2
below show how the CarparkRates build and the PathToCarparkSlots
build replaces their drivers with working modules.

Step 3: Interface between and within builds are
tested
The interface modules are to be tested at this stage.
The ParkingSystem 1/2 are both tested and then integrated
to work as the interface between the lower levels
builds. Figure 3 below shows the integration of
the interface modules.

Step
4: Combine builds moving upward in structure
Successive builds are made until the entire software
system has been integrated. Actions to combine builds
are repeated as we move up the hierarchy of our
software design. Figure 4 below shows a simplified
diagram of the final integration testing for the
CarparkRates and PathToCarparkSlots builds.

Rationales
behind choosing bottom-up Incremental Approach
The Incremental Approach is chosen as it allows
us the flexibility of scheduling our work. When
certain software components are being unit tested,
integration testing may be proceeded with them first.
Since there will be builds of modules that constitute
to important subsystem that can have autonomy, there
is no point in waiting for all components to be
unit tested.
The bottom-up
fashion has a main disadvantage of not having an
operational skeleton of the software during early
stages of integration testing. In this way, the
hierarchical structure of the software cannot be
assessed until later. However, in our lab project,
we are not required to do integration testing for
a system with great complexity. By choosing the
bottom-up fashion of the Incremental Approach, it
allows us the maximum efficiency and flexibility.
|