BOUML : An UML toolbox running under Linux, MacOS X and Windows to specify and generate code in C++, Java, Php, Python, Idl and MySQL