This is the ArgoUML C++ project. The purpose is to provide the ability to generate C++ from ArgoUML, read C++ source files and generate an UML model and diagrams within ArgoUML, and eventually allow full round-trip engineering for C++.

The C++ generation is provided with all ArgoUML releases since 0.13.2 (March 2003) in the "modules"-file. The supported functionalities are documented in the ArgoUML user manual, User Manual 0.24 Appendix D. The C++ Module.

If you want to work with the project

  1. Join the project.
  2. Join the mailing list for the developers of this project found among the mailing lists of this project
  3. Get acquainted with the current status of the project.
  4. Announce your intentions on the dev mailing list.
  5. Get in contact with one of the registered developer of this project so that you can get your work commited.

Upcoming Milestones

  1. Make the UML Profile for C++ available from within the module, so that it is easier to model C++ in ArgoUML in a structured way. We're working on this!
  2. Work to clean-up the issues list.
  3. Implement support for templates in ArgoUML – without this it is very difficult to "sell" the use of ArgoUML for C++ MDD. We're working on this!
  4. Refactor the C++ generator, so that it isn't one big class (checkstyle complains about it being greater than 2000 lines) and in order to use the UML Profile for C++ instead of having all the dirty details hard-coded. TODO: create an issue.
  5. Ditto for the C++ importer.
  6. Update the ANTLR C++ grammar for java from David's Wigg latest version of the C++ grammar for C++. While at it, fix the problem of not being able to parse the test example that comes with the original grammar. See Luis' blog entry on this.

Objectives of the ArgoUML C++ module

The purpose of the C++ module is explained above. But, here we detail this in order to make it more clear. Specifically, the main target of this module is to enable the Model Driven Development (MDD) of C++ software. The user will model UML which is close to the C++ code that should be generated. He will specify what is a reference, what is a pointer, what assumes a std::string and what should be a char *.

Related resources

This project is an extension of ArgoUML.

This project uses ANTLR and David Wigg's C++ grammar (ported to java) for supporting reverse engineering of C++ code.

This page was last updated $Date$.