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
Integrating subsystems into a complete system.
The Rational Unified Process approach to integration is to incrementally integrate the software. Incremental
integration means that code is written and tested in small pieces, and then 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 primarily due 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:
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 places 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 often than if integration is done in one step.
Something is running earlier. Developers see early results from their work instead of waiting for everything
until the end, which is better for their morale. It also makes getting early feedback possible.
It's important to understand that integration occurs at least once within each and every iteration. An iteration
plan defines what use cases to design and what classes to implement. The focus of the integration strategy is to
determine the order in which classes are implemented and combined.