1 2 \input{header} 3 \begin{tikzpicture}[scale=0.93, transform shape] 4 5 \begin{component}{20cm}{1}{0}{U1Component} 6 \newcomponent{11}{4}{SomeType} 7 \newcomponent{0}{4}{T1Component} 8 \newcomponent{6}{4}{bind} 9 \newcomponent{2.5}{0}{U1U2Component} 10 \umlassemblyconnector[interface=SomeType, distance=7]{bind}{SomeType} 11 \umlassemblyconnector[interface=T2, distance=7, arm2=1cm]{T1Component}{bind} 12 \umlassemblyconnector[distance=7, geometry=|-]{U1U2Component}{bind} 13 \umlassemblyconnector[interface=T1, distance=7, anchor1=120, anchor2=-90]{U1U2Component}{T1Component} 14 \umlprovidedinterface[interface=U2, distance=3.5, padding=0.9cm]{U1U2Component} 15 \umlrequiredinterface[interface=T3, distance=3, padding=0.9cm]{U1U2Component} 16 \umlrequiredinterface[interface=T3, distance=2, padding=0.9cm]{SomeType} 17 18 % Hack to draw something similar to: 19 % \umlprovidedinterface[interface=U2, distance=3.5, padding=0.9cm]{U1U2Component} 20 % But at a different angle. 21 \node[inner sep=0] (U1U2Component-west-port) at (U1U2Component.west) {}; 22 \draw (U1U2Component)+(-3cm,1.5cm) node[inner sep=0, text width=1em, circle, draw, fill=white, name=U1U2Component-west-interface] {}; 23 \node[above] at (U1U2Component-west-interface.north) {U1}; 24 \umlrelation[style={tikzuml connector style}]{U1U2Component-west-port}{U1U2Component-west-interface} 25 \draw (U1U2Component-west-interface)+(-1cm,0) node[name=U1U2Component-west-padding] {}; 26 27 \end{component} 28 \umlprovidedinterface[interface=U1, distance=9.5, with port, padding=0cm]{U1Component} 29 \umlrequiredinterface[interface=T3, distance=9.5, with port, padding=0cm]{U1Component} 30 \umldep{SomeType-east-interface}{U1Component-east-port} 31 \umldep{U1U2Component-east-interface}{U1Component-east-port} 32 \umldep{U1Component-west-port}{U1U2Component-west-interface} 33 34 \end{tikzpicture} 35 \input{footer} 36