LinuxQuestions.org
Review your favorite Linux distribution.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


Reply
  Search this Thread
Old 01-29-2010, 08:11 PM   #1
pilotmm
LQ Newbie
 
Registered: Aug 2007
Distribution: openSuse
Posts: 26

Rep: Reputation: 2
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
 
Old 01-30-2010, 07:46 AM   #2
neonsignal
Senior Member
 
Registered: Jan 2005
Location: Melbourne, Australia
Distribution: Debian Bookworm (Fluxbox WM)
Posts: 1,391
Blog Entries: 54

Rep: Reputation: 360Reputation: 360Reputation: 360Reputation: 360
UML provides a way of visualizing object oriented designs (from a number of aspects, both static and dynamic).

It can be applied at all stages of a project (and tools such as IBM's Rational Rose are the industry standard). In such a tool, you can design using UML, add code fragments to the UML and generate a complete system.

Whether such tools are a beneficial way to organize a project depends on the size of the project and how formal it is.

What I can say is that UML's main strengths are in the design and documentation parts of a project. The use-case sets can clarify requirements, and a few class and object diagrams are worth thousands of words of documentation. Even if you do not use a UML tool, it is worthwhile to have a way of drawing UML diagrams.

For smaller projects (say less than a dozen developers), the comprehensive tools have some drawbacks: the project becomes very dependent on the tool (both the training of programmers and the format of the project files); and it requires micro-design of every part of the project (graphical design can be slower than writing a text file). A UML tool is perhaps also more suitable for projects where the requirements can be substantially worked out at the beginning.

If you just use UML for design, then it is sufficient to use a general purpose diagramming package such as Dia, or Inkscape. The beauty of using something like Inkscape is that the SVG diagrams can be easily embedded into the documentation.

My rule of thumb is to use UML diagrams to design/document the parts of the project that are complex (eg use case diagrams for the primary requirements, overall package and class diagrams, object diagrams for any complex data structures, and interaction diagrams for any tricky dynamic sequences), rather than force the entire project into a particular form of design (let alone code generation).

A more significant project decision (than choosing a UML tool) is the software development methodology to be followed, whether the traditional waterfall model, or a more iterative model.

Last edited by neonsignal; 01-30-2010 at 07:53 AM.
 
Old 02-01-2010, 03:22 PM   #3
pilotmm
LQ Newbie
 
Registered: Aug 2007
Distribution: openSuse
Posts: 26

Original Poster
Rep: Reputation: 2
Thanks neonsignal

Appreciate the advice. Your comment on the approach is insightful. That is also something that I have been looking into. Given that the software is for research, it is a strange beast in comparison with traditional software. Yet, I think for the purposes of keeping all the developers on the same page and communicating complex ideas UML will be a good tool.

Take Care
Pilot
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Good linux chinese language language program? darsunt Linux - Software 1 04-10-2009 12:06 PM
LXer: IBM Sun acquisition : Good for Unix. Good for Linux. Bad for HP LXer Syndicated Linux News 0 03-18-2009 11:00 AM
LXer: Modeling and Integration Tools for State Chart XML LXer Syndicated Linux News 0 03-10-2007 08:01 PM
LXer: Tutorial: Bad-Guy Tools for Good Guys LXer Syndicated Linux News 0 01-08-2007 01:21 PM
cdda ripping tools: what tools are good these days? jgombos Linux - Software 3 01-03-2005 11:09 PM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 12:23 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration