Re: ArgoUML CPP and Datatypes

Luis Sergio Oliveira <[email protected]>
Newsgroups gmane.comp.lang.uml.argouml.user
Message-ID <[email protected]>
Hello Matt,

we are working on providing support for something called UML profiles.
This will enable the removal of everything Java specific into the UML 
profile for Java that
will be available optionally to be added to a model, and the same thing 
applies to C++.

Unfortunately we still don't have a UML profile for C++ with all the std 
types that you may use out of the box.
It is mainly focused on providing the tags and stereotypes needed to 
model the specificities of C++ in UML
(see "ArgoUML users' manual Appendix C. The C++ module" 
<http://argouml-stats.tigris.org/documentation/manual-0.24/apd.html>
and issue #3771 <http://argouml.tigris.org/issues/show_bug.cgi?id=3771>).

The UML profile for C++ which is compatible with ArgoUML 0.24 may be 
retrieved from
<http://argouml-cpp.tigris.org/source/browse/*checkout*/argouml-cpp/trunk/doc/CppUMLProfile.zargo?rev=81>.

Follows a recipe on how to use it in 0.24 to support the basic C++ 
modelling and on how to enhance this profile
by adding types that you might want to reuse in other models.

01 - Download the file of the UML profile for C++ using the link above.
02 - Using ArgoUML 0.24 
<http://argouml-downloads.tigris.org/argouml-0.24/> open this file and 
"File" / "Export XMI..."
03 - Now, this XMI will be the basis of your C++ models, so, you may 
start a new model, say model_foo01, and, before doing other things
       make an "Import XMI" of the profile you saved in step 02.
04 - Now, you proceed with modelling work in model_foo01. Here you can 
define a "std" package containing types such as "string".
05 - When you want to augment the profile, just open CppUMLProfile.zargo 
and add in a "std" package whatever you want to be
      available by default in your new models, like for instance a type 
named "string".
06 - If you start a new model of a new shiny application, you may export 
again the CppUMLProfile.zargo as XMI, create the new
       model_bar01 and import from this. It would have already the types 
which were included in CppUMLProfile.zargo.

Limitations:
* the profile isn't shared amongst your models, so, model_foo01 won't 
benefit from enhancements you make in model_bar01
* out-of-the-box there is no std namespace and associated types
* 0.24 has no support for templates and, although this is a highly 
desired feature, we haven't found time and energy to make
   huge advances in its implementation so far (see issue #1446 
<http://argouml.tigris.org/issues/show_bug.cgi?id=1446>)
* reverse engineering for C++ is at a pre-alpha stage
* don't forget - use more memory than your Java VM gives by default -> 
at least -Xmx256M is advisable (see 
http://argouml.tigris.org/faqs/users.html#xmx)

On the bright side, we're heading to support profiles in 0.26 (a great 
implementation is already available in trunk
see some notes by Marcos Aurélio 
<http://argouml.tigris.org/gsoc2007/profiles/proposal0/index.html>) and
I'm working to have the C++ module defining the UML profile for C++ in a 
way that will take advantage of this
support. If you have some work in the meantime on your copy of the UML 
profile for C++ which you want to share
and to make sure it will work in ArgoUML C++ 0.26 send an email to here 
with it attached or create an enhancement
proposal in the argouml-cpp sub-project 
<http://argouml-cpp.tigris.org/servlets/ProjectIssues> so that I may 
look at it and
try to include it.

Regards,

Luis Sergio Oliveira

EvilMonkey wrote:
> Hi all. I've been looking for a free (and good) UML design tool for Linux for
> a while now. 
>
> I'm starting a C++ project and ArgoUML with the CPP extension might be what
> I need. I've been searching for a while now and I can't find an answer to my
> question: is there a way to NOT TO have the Java datatypes by default? More,
> is there any way to get some datatypes for C++ such as std and others?
>
> Thanks a lot for your help.
>
> Matt
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.