%\begin{tikzpicture}[scale=0.7,transform shape] \begin{tikzpicture}[scale=1,transform shape] \begin{class}{GeoPicture}{-1,4} \attribute{name : String} \end{class} \begin{class}[text width=2.5cm]{Segment}{4.5,-0.5} \end{class} \begin{abstractclass}{Shape}{-2,0} \attribute{color : Color} \end{abstractclass} \begin{class}{Pentagon}{-3,-3} \inherit{Shape} \end{class} \begin{class}{Triangle}{-6,-3} \inherit{Shape} \end{class} \begin{class}{Hexagon}{0,-3} \inherit{Shape} \end{class} \begin{class}{Square}{3,-3} \inherit{Shape} \end{class} \begin{class}{Circle}{6,-3} \inherit{Shape} \end{class} \begin{enum}[text width=2cm]{Color}{5,3} \attribute{red} \attribute{green} \attribute{blue} \end{enum} \composition{GeoPicture}{shapes}{0..*}{Shape} \unidirectionalAssociation{Shape}{picture}{1}{GeoPicture} \composition{GeoPicture}{segments}{0..*}{Segment} \unidirectionalAssociation{Segment}{picture}{1}{GeoPicture} %\association{Segment}{source}{1}{Shape}{0..*}{outgoings} % \myassociation{Shape}{outgoings}{0..*}{Segment}{1}{source}{0.5,0}{0} \draw [umlcd style, fill=white] (Segment) -- node[near start, above, anchor=210, xshift=-0.3cm, yshift=-0.15cm]{outgoings} node[near start, below, anchor=150, xshift=-0.1cm, yshift=-0.05cm]{0..*} (1.0,0) -- (Shape) node[near end, below, xshift=-0.35cm, yshift=0.3cm]{1} node[near end, above, xshift=0.2cm, yshift=0.15cm]{source}; \draw [umlcd style, fill=white] (Segment) -- node[near start, above, anchor=210, xshift=-0.15cm, yshift=-0.35cm] {0..*} node[near start, above, anchor=150, xshift=-0.7cm, yshift=-0.1cm]{incomings} (1,-1.2) -- (Shape) node[near end, below, xshift=-0.35cm, yshift=0.45cm]{1} node[near end, above, xshift=0.3cm, yshift=-0.1cm]{target}; % \association{Segment}{0..*}{incomings}{Shape}{1}{target} %\myassociation{Shape}{incomings}{0..*}{Segment}{1}{target}{0.5,-1}{1} %\draw [umlcd style, fill=white] (Segment) -- %node[near start, below, anchor=150, xshift=-0.5cm]{target} %node[near start, above, anchor=210, yshift=0.1cm]{1} %(0.5,-1) -- (Shape) %node[near end, above, yshift=0.1cm]{0..*} %node[near end, below, xshift=0.5cm, yshift=0.1cm]{incomings}; \end{tikzpicture}