Unified Modeling Language; Good, Bad and tools?

Hello All

   I just joined a research group that is about to embark on writing a big multi-physics code package. Before the programming gets so big it is unmanageable, I was thinking about best practices and similar things. In that process, I came across something called the "Unified Modeling Language" (UML).

  Can anyone tell me whether UML is a good tool to have to help organize a project and keep things under control? Any experience, thoughts, suggestions?

  Also, looking at a, cross platform, free, tool, that is good for C++. Ideally with reverse engineering and code generation. I came across Bouml, found ArgoUML. The former seems to support forward and reverse C++, the latter doesn't. Also, it seems that Visual Paradigm has a "Community Edition" that is free for non-commercial use. Then there are more on the Wikipedia page. 

 I would like to hear from users what they like and don't like. Looking for reviews here. Let me know your user experiences please.

Thanks
Pilot

Hi
You might also want to look at the cuda driver for nvidia cards, this
enable you to use the GPU processor and your code rathan tha cpu
cycles. For example the BOINC client I use for seti takes advantage of
it.

IDEs there is code:blocks, netbeans, eclipse and I’m sure more…


Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel 2.6.27.42-0.1-default
up 14 days 12:49, 5 users, load average: 0.18, 0.23, 0.15
GPU GeForce 8600 GTS Silent - CUDA Driver Version: 190.18

I am using ArgoUML currently for modelling, i used Umbrello too, but i dont use it any more. As i need to convert my files to multiple formats, and Argo provide this option and Umbrello does not. I did a search for that some time ago. And found that there not much UML modelling softwares available for Linux. For time being i used Dia, which also works well. Both Dia and Ubmrello are available in YaST.

My vote is for code:blocks, if u are using it for C/C++. Netbeans is also great.
Personally i use Kate, which is easy to load and work. I don’t go for softwares with many features. I use which works better and easy to use with specaily load.

Choosing the right software development tools is a big challenge. Most tools save your time in 95% of your work but the rest 5% of your work takes 95% of your time.

I am one of those who tries not to use any tools other than a good editor (that way, eclipse is a “good editor”).

Netbeans will do both UML and C++, however it will only forwards and reverse engineer java code to/from UML, however because this is template driven it is also highly customizable.

I personally prefer Geany as an IDE as the editor works the way I like, but I do use Netbeans for quite a bit.

I always tough of UML as mainly documentation solution. UML diagrams are really good for high level view of code architecture, and if source file organization correspond to code logic, that’s most of what one need for easy project maintenance IMHO(of course the architecture should be good and code implementation readable, alto this things are kinda subjective :slight_smile: ).
Also some form of advance build system, good documentation, no matter that for many programmers “documentation” is a dirty word :slight_smile: are also good and desired features.
And I find for me, that for big(as code and as people involved) projects, code assistance from IDE is something very useful. On Linux I find useful only one IDE for that - KDevelop4(alto last time I check it was in beta).

P.S. Just to be sure I do not cause a confusion - UML as documentation is more like blueprint during development(alto it could find its way to “end user” documentation).

I personally found UML to not be as unified as the name indicates, people keep giving their own spin to it. Still, it’s better than nothing :wink:

I’ve used both Jude and Umbrello and preferred Umbrello myself.
I just noticed support has rather recently ended for Jude - signup required to access the downloads as well. Don’t know if they even have a ‘linux release’ I had it installed under Windows and ran the Jar from a mounted NTFS partition :slight_smile:

As for an IDE, Qt Creator looks good to me. But I don’t know any c++.

Cheers malcolmlewis

  Great advice. We do have a couple developers looking at that. I think it will be really powerful to have all processing units working for the program!!!

Take Care
Pilot

Hello All

  Thanks a lot for the great advice. Lots of suggestions for tools. I will be playing with them all this week. I am sure I will find a good solution. 

Take Care
Mike McW

Agree with silenuz, tried Netbeans and its great for c/c++, UML, PHP and etc. A good and handy tool. All in one.

Hi,

I’ve already tried Netbeans, eclipse, kdevelop3, kdevelop4 and Qt Creator for C++.

Eclipse was much too slow for me. Netbeans looked good, but debugger support wasn’t as good as in kdevelop3/4. Qt Creator is very good and I think it’s much better than kdevelop3 but compared to semantic syntax highlighting with excellent C++ syntax parsing kdevelop4 in my opinion is even a bit better. Only real disadvantage is that it is in beta phase at the moment. So if you want something stable I would suggest to use Qt Creator for C++ programming.

Hope this helps