Formal modeling of complex systems is a non-trivial task, especially if a formal method does not facilitate separate development of the components of a system. This paper describes a methodology of building communicating Xmachines from existing stand-alone X-machine models and presents the theory that drives this methodology. A X-machine is a formal method that resembles a finite state machine but can model non-trivial data structures. This is accomplished by incorporating a typed memory tuple into the model as well as transitions labeled with functions that operate on inputs and memory values. A set of X-machines can exchange messages with each other, thus building a communicating system model. However, existing communicating X-machines theories imply that the components of a communicating system should be built from scratch. We suggest that modeling of complex systems can be split into two separate and distinct activities: (a) the modeling of stand-alone X-machine components and (b) ...