This work was motivated by the increasing variety and complexity of interdependencies among components of large software systems. Most current programming languages and tools were observed not to provide adequate support for identifying and representing such dependencies, while the knowledge of managing them has not yet been systematically codified. The initial results of this research provide positive evidence for supporting the claim that software component integration can usefully be treated as a design problem in its own right, orthogonal to the specification and implementation of the core functional pieces of an application.More specifically, software interconnection dependencies and coordination protocols for managing them can be usefully represented as independent entities, separate from the interdependent components.Furthermore common dependency types and ways of managing them can be systematically organized in a design handbook. Such a handbook, organized as an on-line repository, can assist, or even automate, the process of transforming architectural descriptions of systems into executable implementations by successive specializations.Our experience with building SYNTHESIS, a prototype application development environment based on these principles and using it as a tool for facilitating the reuse of existing components in new applications, has demonstrated both the feasibility and the practical usefulness of this approach. With our future research we plan to expand and refine the contents of our design handbook of dependencies and coordination processes as well as investigate the usefulness of our approach in larger-scale software systems.