Concept:
Software Integration
The term "integration" refers to a software development activity in which
separate software components are combined into a whole. Integration is done at several
levels and stages of the implementation:
- Integrating the work of a team working in the same implementation subsystem, before
releasing the subsystem to system integrators.
- Integrating subsystems into a complete system.
The Rational Unified Process approach to integration is that the software is integrated
incrementally. Incremental integration means that code is written and
tested in small pieces, and combined into a working whole, by adding one piece at a time.
The contrasting approach to incremental integration is phased integration.
Phased integration relies on integrating multiple (new and changed) components at a time.
The major drawback of phased integration is that it introduces multiple variables and
makes it harder to locate errors. This is due primarily to the fact that an error could be
in any one of the new components, in the interaction between the new components at the
core of the system, or in the interaction between the new components.
The benefits of incremental integration are
that:
- Faults are easy to locate. When a new problem occurs during incremental integration, the
new or changed component, or its interaction with the previously integrated components,
are the obvious place to look for a fault. Incremental integration also makes it more
likely that defects are discovered one-at-a-time, which makes it easier to identify
faults.
- The components are tested more fully. Components are integrated as they are developed,
and then tested. This means that the components are exercised more times, than if
integration is done in one step.
- Something is running earlier. Developers see early results from their work, which is
better for their morale, instead of waiting with everything until the end. It also makes
it possible to get early feedback.
It is important to understand that integration occurs (at least once) within
each and every iteration. An iteration plan defines which use cases to design,
and thus which classes to implement. The focus of the integration strategy is to determine
the order in which classes are implemented, and combined.
| |

|