Allora vai su umbrello o staruml.
Il primo non ricordo come andava con la generazione del codice, e purtroppo non ce l'ho sottomano.
Il secondo generava bene il codice ma mi dava problemi con i costruttori/distruttori (se non specifichi un valore di ritorno, ti mette automaticamente void. Di conseguenza il costruttore, quando genera il codice, ha val di ritorno void) e quando specificavo il namespace (std::string non puoi scriverlo ad esempio, perchè i due punti sono un simbolo del linguaggio di staruml).
Non lo uso molto, quindi probabilmente c'è un modo per risolvere il problema. Prova a dargli un'occhiata