Generating Java Code from Annotated UML Models