\tikzset{uml box/.style={draw, minimum height=.7cm, text badly centered}, uml small box/.style={draw, text width=.7cm, minimum height=.5cm, text badly centered}, uml class/.style={rectangle split, rectangle split parts=2, draw, minimum width=0, font=\sffamily}, uml directed/.style={thick, -angle 90}, uml aggregation head/.style={shape=diamond, aspect=.5, anchor=north, thick, draw}, uml composition head/.style={shape=diamond, aspect=.5, anchor=north, thick, filldraw}, uml generalization head/.style={shape=isosceles triangle, isosceles triangle apex angle=60, shape border rotate=90, scale=.8, draw, thick, anchor=apex}, uml cardinality start/.style={very near start, auto, font=\sffamily}, uml cardinality end/.style={very near end, auto, font=\sffamily}, uml role start/.style={very near start, auto, font=\footnotesize\sffamily}, uml role end/.style={near end, auto, font=\footnotesize\sffamily}, uml association name/.style={midway, auto, font=\footnotesize\sffamily}, }%