\input{header} \begin{tikzpicture}[scale=0.93, transform shape] \begin{component}{20cm}{1}{0}{U1Component} \newcomponent{11}{4}{SomeType} \newcomponent{0}{4}{T1Component} \newcomponent{6}{4}{bind} \newcomponent{2.5}{0}{U1U2Component} \umlassemblyconnector[interface=SomeType, distance=7]{bind}{SomeType} \umlassemblyconnector[interface=T2, distance=7, arm2=1cm]{T1Component}{bind} \umlassemblyconnector[distance=7, geometry=|-]{U1U2Component}{bind} \umlassemblyconnector[interface=T1, distance=7, anchor1=120, anchor2=-90]{U1U2Component}{T1Component} \umlprovidedinterface[interface=U2, distance=3.5, padding=0.9cm]{U1U2Component} \umlrequiredinterface[interface=T3, distance=3, padding=0.9cm]{U1U2Component} \umlrequiredinterface[interface=T3, distance=2, padding=0.9cm]{SomeType} % Hack to draw something similar to: % \umlprovidedinterface[interface=U2, distance=3.5, padding=0.9cm]{U1U2Component} % But at a different angle. \node[inner sep=0] (U1U2Component-west-port) at (U1U2Component.west) {}; \draw (U1U2Component)+(-3cm,1.5cm) node[inner sep=0, text width=1em, circle, draw, fill=white, name=U1U2Component-west-interface] {}; \node[above] at (U1U2Component-west-interface.north) {U1}; \umlrelation[style={tikzuml connector style}]{U1U2Component-west-port}{U1U2Component-west-interface} \draw (U1U2Component-west-interface)+(-1cm,0) node[name=U1U2Component-west-padding] {}; \end{component} \umlprovidedinterface[interface=U1, distance=9.5, with port, padding=0cm]{U1Component} \umlrequiredinterface[interface=T3, distance=9.5, with port, padding=0cm]{U1Component} \umldep{SomeType-east-interface}{U1Component-east-port} \umldep{U1U2Component-east-interface}{U1Component-east-port} \umldep{U1Component-west-port}{U1U2Component-west-interface} \end{tikzpicture} \input{footer}