It is well known that one of my preferred fields in computer enginering world is software enginering. I love read and make UML diagrams, because it is an easier way to understand and make programs than following a methodology properly called "eXtreme Programming" (consists on programming inside out).
Indeed, it's easier understanding a 1-sheet diagram where you see a box with some letters inside and some arrows than "public class TEXT { A b; B a; etc etc;}". Learning process about how a program/project works is done extremely faster. And that is why I prefer reading some UML diagrams than reading code.
However in my PFC, Moodle lacks about a good UML documentation in order to make programmers to work easier. That has disappointed me a bit, because I expected I would apply all my software enginering knowledgement and improve my skill in that field. I made the OpenSyllabus prototype (and learn how to do it) with some file examples of Moodle project.
I will propose to Marc (or Pigui) that in my next work in DFWiki refactoring I want to document in UML all my work (if possible). I feel ready to do it and I've leant some basic PHP, enough to do a good job (and, of course, understood Moodle modules, format course, blocks, thinking about the ID substitution, it should not be too much hard but it requires spending some time...).
My objective about this proposition is having a deeper knowledgement about Software Enginering and working methodology. In order to achieve that, I was preparing my PC to make nice class diagrams and sequence diagrams.
The "Free Software Market" about UML isn't too much good. I've tested some programs and very few ones completed my needs:
- ArgoUML: It lacks of a very intuitive interface and some basic functionalities that I find vital, and it doesn't allow me to do things in the way I want (bad class diagrams, bad sequence diagrams)
- Violet: It is not updated to UML2, so I couldn't do some stuff like fragments in sequence diagrams
- UMLet: It would be really good if it had a simple, but very necessary tool: a ZOOM!
- BoUML: You can't do constructors in sequence diagrams.
So, after some research, I found 2 programs which fit on my needs:
SDedit: Probably the best sequence diagram editor I've ever seen. It is not a WYSIWYG editor like the others, you have to know some easy-to-use code (read the program's help) to make sequence diagrams. You type a simple code, and the diagram is drawn while you're doing that. Once you are used to it, the sequence diagram production speeds up in a considerable way, and the diagrams it makes are really nice.
As it is not a WYSIWYG program, it introduces us to a new philosophy: Dragging&dropping, mouse moves... it's rather slower than simply typing some short lines with keyboard. I leant this concept and idea, and I find it well-builded in empirical demonstrations. I, for instance, I can make sequence diagrams fastly. With a "drawing" (WYSIWYG) editor I spend more time. I can assure you this.
Dia: SDedit is a program that has sense: Sequence diagrams are just this, sequential. They can be builded and all drawn objects can have a fixed position in the diagram and it will be well shown; in class diagrams it's not possible to do that (or it is really harder), because you can position your items and classes in many ways and are all pretty or more understandable.
I was looking for a program to design class diagrams as I design sequence diagrams in SDedit, by code; nevertheless, for the reasons explained above, I have not find any program such that (or I'm so stupid that I am not able to find it), so I had to give up and use a decent WYSIWYG editor. I found Dia for this, it's a great program, similar to Visio, it allows me to do very nice class diagrams in UML. It is far better than all described above, but by default it doesn't allow to create associative classes (it's not a huge problem but it could be good to have them), and last time I tried it, after forcing a bit the program capabilities, I recived a Segmentation Fault, loosing my time. It was not very happy, but I will give him a new try.
David, soy el Javi, si te apetece irte pasando por mi blog, hahaha, es de castellano que nuestro profesor nos hace hacer cosas y voy escribiendo.
Hasta luegoooo.
Hi,
Have you tried Trace Modeler? It's an easy to use and smart UML sequence diagram editor.
It has a simple drag & drop interface and full automatic layout, so it offers the best of both worlds.
In my experience, text isn't the way to go. Big UML tools simply had a crappy user experience, and working with text certainly is an improvement. Initially, Trace Modeler was text-based as well, but I quickly realized that a smart drag & drop interface would be even faster, especially when rearranging diagrams.
Give it a try, and I think you'll be pleasantly surprised. Here's a 30 sec demo of Trace Modeler in action, if you're in a hurry..
Let me know what you think of it, I'm always looking forward to getting feedback!
Best regards,
Yanic
Maybe it is a good program, there are another great UML designers, like MagicDraw or Poseidon. However, they are not OpenSource software, so I'm not interested in (I'm a Free software maniac as a Linux user :)).
Although my preferences, thank you for your comment and contribution, Yanic
Well, Trace Modeler is very fast and runs on Linux so it already has half of what you're looking for ;o)
Good luck with the site!
Yanic