Hi! I've just passed a university subject which made me do a medium console-based game in Java. I had to do the design first with UML and then code the game.
I just found useful the Domain model (the first aproach of what's the point of the program) and the Class Diagram (what you really look when you are about to code), there was a lot of very heavy diagrams (Sistem sequence diagram) that I found that was larger and harder to draw a diagram than coding directly and well-commented because there were simple loops over a collection searching for a match.
What do you think about UML? do you think it's necessary to do all the diagrams (including all classes, attributes,methods...)of an application and then code?, or do you think the design model is just to not to code directly but have an idea about the classes that would have your application and the main methods?
I think UML is a good for documenting while you develop your software. Sometimes you don't know what you need to do until it's done and UML provides a set of models which, if used appropriately, document your system in an easily readable fashion.
Criticizing things without knowing where they are used and how they impact the software world is a bit uncalled for...
Yes, ok, UML is not without value. I'm just still bitter from the Rational Process training seminars foisted upon us back when I was in a large corporation
Yes, UML is a handy tool.
And yes, it's way overhyped (like most things in IT, sadly) by people using hypes to sell tools, books, and services.
It won't solve your problems for you, it is not a magic bullet. People won't suddenly transform from code monkeys to first rate developers of the class of a Martin Fowler or James Gossling when you give them a UML tool.
In fact they'll likely fall down another rung or two unless you also provide training to use those tools and actually understand what you're doing when using them (most training doesn't teach the second, only going through the motions of clicking and dragging together some diagrams without any understanding of what the diagram means).
At the moment I use a simple flowchart for the program I am working on. It has been especially helpful when I have gone back to make modifications or updates. Would UML be a better way to diagram my program and if so, is there any free software out there?
UML pretty much replaced flowcharts as the de-facto standard to visualise software design.
There's some free software, but it's not good enough to be useful in my opinion.
When given a codebase to understand, automatically generated overviews such as UML diagrams and maybe Doxygen views might help and seldom hinder.
When given a task and a clean slate, then you have to be somewhat aware of when to put down the charts and start writing code. As for automatic code generation from diagrams: I'd prefer not to as to get to that stage I would have to put far too much into the diagram.
No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.