As an ArgoUML contributor I'm going to blog my activities here, so that they may draw interest by other developers or help other developers when doing tasks similar to what I've done. AND(!) the grand vision that makes an Argonaut what he is, TO THRIVE IN THE BIG DANGEROUS WORLD, TAKING THE Argo TO A GOOD SHORE ;-))

Friday, October 14, 2005

C++ module documentation


Michiel van der Wulp commited my patch to the documentation which includes the C++ generator documentation. Daniele Tamino created two of the above issues, but, I must check the problems I had with duplicate tagged values. In the ArgoUML GUI the duplicated values are shown and reloaded correctly. Maybe this is only replicable when the tagged values are queried like when the C++ module tries to find it... No, it works correctly, so, the warning and TODO will be replaced with a hint to use multiple times the tag.

The issues are:

  • 3552 – header_incl allows to include only one header
  • 3553 – handle multple return parameters


I have already successfully created the appendix. DocBook is very verbose and for an unexperienced person like me it is awkward to have a slow iteraction to see what errors exist in the file – I'm generating the documentation and this takes very long because the manual is the last to be processed; it also bails on the first error, so, each error cost me a lot! I know that some nice eclipse plugin exists, but, I would like to have the functionality of verifying the syntax in Vim. I guess I must look for this...

Another option is to use a separate validator, like the NetBeans XML module, but, that seams to be a bit overkill! There must be something in the Vim plugin universe ;-) On second thought, I'll give a chance to Netbeans... Yeah, it works like a charm! Just open the argomanual.xml file and validate :-))


New issues: C++ generator limitation, duplicated tags in ArgoUML and inaccuracies in the documentation readme

While working in the documentation of the C++ module I found that there exists a serious limitation in the way some tagged values are used. The problem is with tagged values for things that the modeler might want to introduce multiple times. An example is the header_incl tag which value is set to a file name that will be included in the header. Well, this is something that is typically done several times.

Although ArgoUML allows entering the same tag more than once with different values, its internals get confused and every tag disappears. I think that this qualifies as a bug and I'll try to fix it.

So, without the option to repeat the same tag several times with different values, one as the possibility to either use tag prefixes or assume some separation character in the tagged value value. I think the latest is better and will propose it in a possible fix.

TODO: create issue for ArgoUML allowing creation of duplicated tagged values.

TODO: create issue for C++ module use of some tagged values so that it allows multiple values to be specified.

TODO: submit the documentation readme corrections.


I finished the test for DerivedFromAbstract.cxx translation unit and made a new test that looks for duplicates when reverse is repeated. The ModelerImpl now passes the tests defined in TestCppImport. I will now take some time off from implementing reverse engineering for C++ in ArgoUML and write the C++ module appendix of the ArgoUML user manual (issue #2857).

The ArgoUML documentation is written in the DocBook format. It takes the form of a group of XML files according to the DocBook XML. The cookbook explains very well this and I will try to follow those instructions. As stated above, the C++ module will be documented as an appendix, so, this means that I'll create a new XML file in /cvs/argouml/documentation/manual, which I'll name app_cppmod.xml. I'll try to keep the appendix simple, and mainly put in there the information for the code generation users. Latter I might ask collaboration from Daniele to review and add details regarding his new developments.

Reader Shared items