Separation of concerns represents an important principle for managing complexity in the design and architecture of large component-based software systems. The fundamental approach is to develop local solutions for individual concerns first, and combine them later into an overall solution for the complete system. However, comprehensive support for the integration of interdependent, possibly conflicting concerns related to synchronization behavior is still missing. In our work, we propose a sound solution for this complex type of composition, employing well-known UML description techniques as well as a rigorous formal model of component synchronization behavior. Based on this foundation, we describe a constructive synthesis algorithm which reliably detects conflicting concerns or generates a maximal synchronization behavior for software components with multiple interactions. An optimized implementation of the algorithm has been integrated into a CASE tool to illustrate feasibility and scalability of the presented technique to the example of a moderately large case study.