System Integration no matter the approach; modular, big bang, regressive, controlled or adhoc can often be one of the most critical phases of a project. This is often amplified when the final product consists of many software modules brought together in unison through a number of non-trivial interfaces. In our current world today we have many different interfaces, ranging from VME, PCI and PC104 buses, to ethernet, fibre, ATM, serial, wireless, bluetooth and other possible proprietary buses that will provide the final product with the technological edge to make it "tomorrow's must have item".
In such a changing dynamic world, the fundamental concepts we gleened from our forefathers who punched holes in cards to write programs has remained true. If you don't know what your sending and receiving over an interface, then other than through pure luck, or an extended integration phase composed of 'tiger teams' and an infinite budget, don't expect the problem solved quickly. In today's market, the once simplistic embedded processor with a few interrupts now has every interface conceived to man compressed into a single microchip no bigger than your thumbnail. Without a strategy to attack this problem, the harsh reality is that your project is doomed to fail. So lets take a look at how we can we solve this problem.