Programs are integrated by means of either the phased or the incremental approach.
Until a few years ago, phased integration was the norm. It follows these well-defined steps, or phases:
Design, code, test, and debug each class. This step is called "unit development."
Combine the classes into one whopping-big system ("system integration").
Test and debug the whole system. This is called "system dis-integration." (Thanks to Meilir Page-Jones for this witty observation.)
One problem with phased integration is that when the classes in a system are put together for the first time, new problems inevitably surface and the causes of the problems could be anywhere. Since you have a large number ...