UML / Diagramming
by Jeremy Easoz · in General Discussion · 09/09/2003 (1:27 pm) · 27 replies
Anyone know any good free tools for doing these diagrams?
Its mostly for me, and doesnt have to be robust, just something simple so I dont have to break out photoshop and do it like that hahaha.
Its mostly for me, and doesnt have to be robust, just something simple so I dont have to break out photoshop and do it like that hahaha.
About the author
#2
09/09/2003 (1:34 pm)
Haha yeah, I accidently hit enter after typing in the topic. :P
#3
09/09/2003 (1:44 pm)
Even though I have never used uml modeling tools before. How useful is this stuff? I cant really model the application if I dont have a full understanding of the system? heh
#4
UML provides a standard notation for documenting many of the abstractions involved in a software system. This makes it a useful method of communicating those abstractions between current team members and recording them for team members who may join the project later (or maintenance programmers who get stuck supporting it months or years down the line).
UML gives you a nice toolbox of different types of abstractions. This can sometimes help you think up novel solutions to problems. Deciding which tool is right for job causes you to at least consider some different approaches to the problem instead of just building the first one you thunk up.
For people who think visually (not everyone) just seeing the patterns written down on paper can provide clues to design problems. Having spotted the problem, the tools can help you reorganize the design into something more elegant, flexible, robust, or what have you.
That said, fully documenting a complex software system is prohibitively expensive. Don't expect to use every tool, diagram, and utility on every project, and don't feel guilty for not following "the process." The goal is, or should be, to construct a useful application, not to demonstrate your ability using a CASE tool.
--milo
http://www.starshatter.com
09/09/2003 (2:47 pm)
How useful? Like all tools, it depends on how much experience you have, what you want to get out of the tool, etc. etc. UML isn't very useful at all if you don't know what it is you are trying to build, or if you don't know anything about object-oriented analysis and design.UML provides a standard notation for documenting many of the abstractions involved in a software system. This makes it a useful method of communicating those abstractions between current team members and recording them for team members who may join the project later (or maintenance programmers who get stuck supporting it months or years down the line).
UML gives you a nice toolbox of different types of abstractions. This can sometimes help you think up novel solutions to problems. Deciding which tool is right for job causes you to at least consider some different approaches to the problem instead of just building the first one you thunk up.
For people who think visually (not everyone) just seeing the patterns written down on paper can provide clues to design problems. Having spotted the problem, the tools can help you reorganize the design into something more elegant, flexible, robust, or what have you.
That said, fully documenting a complex software system is prohibitively expensive. Don't expect to use every tool, diagram, and utility on every project, and don't feel guilty for not following "the process." The goal is, or should be, to construct a useful application, not to demonstrate your ability using a CASE tool.
--milo
http://www.starshatter.com
#5
However the toolset available is fairly limiting for game development, i've found using XML (XSD / Schema etc.) for design and implementation to invaluable. All my levels / unit data / weapons and even the 3d files are some kind of XML, and with the serialisation in .Net (and no doubt many other languages) it's a dream to work with.
Downloading a tool like XmlSpy and just running through the tutorials, should give a decent insight to what I mean (that product is somewhat expensive for indie work though).
09/10/2003 (3:42 am)
I used to be an avid fan of UML for detailed design, and it has served me very well in my commercial applications. It's real power shows when you actually use it to build the system rather than just 'design' it. I.e. tools that generate class / database structures from your uml system.However the toolset available is fairly limiting for game development, i've found using XML (XSD / Schema etc.) for design and implementation to invaluable. All my levels / unit data / weapons and even the 3d files are some kind of XML, and with the serialisation in .Net (and no doubt many other languages) it's a dream to work with.
Downloading a tool like XmlSpy and just running through the tutorials, should give a decent insight to what I mean (that product is somewhat expensive for indie work though).
#6
09/10/2003 (10:26 am)
I mostly use Powerpoint to do my design diagrams. Not free, but alot of people have MS Office already... The only UML thing I miss are the actor icons.
#7
09/10/2003 (5:41 pm)
I think that UML and the theory of software design I learned in 'Software Engineering I' at RIT was probably the biggest pile of bullshit I ever have had to hack through in college yet. (It's not over yet though! Woo!)
#8
sounds like a qualified opinion to me
09/10/2003 (9:15 pm)
Quote:I think that UML and the theory of software design I learned in 'Software Engineering I' at RIT was probably the biggest pile of bullshit I ever have had to hack through in college yet. (It's not over yet though! Woo!)
sounds like a qualified opinion to me
#10
09/11/2003 (9:16 am)
UML diagram tools are only usefull when they actually speed up the programming process. Some tools generate all the classes with their properties etc automatically. It saves you some typing, and becuase its all integrated into 1 enviroment you are almost bound to sticking to your initial diagram (some people have the habbit to design a UML diagram and end up with something completely different... a good UML tool can help those people)
#11
It also serves as a nice spec document for the team to use as a firm guideline, since it has a direct correlation to code.
That said, like every other tool out there, it's no panacea and won't do your work for you :)
09/11/2003 (9:44 am)
I'd qualify that further, Ward, as it doesn't necessarily have a direct correlation to an individual's coder speed in the programming process, but rather serves to speed up the general development process, which we all know goes quite a bit beyond just coding. It also serves as a nice spec document for the team to use as a firm guideline, since it has a direct correlation to code.
That said, like every other tool out there, it's no panacea and won't do your work for you :)
#12
09/11/2003 (5:27 pm)
It is sad to see people ditch s/w engineering discipline as "bullshit", or try to "hack it through" instead of "following the disciplines".
#13
09/12/2003 (8:29 am)
No it is sad to see people in 'Software Engineering I' thinking that they know everything and that they have qualified opinions about things they obviously don't fully comprehend.
#14
Back on the topic, those who say a code environment like the Torque code base doesn't require a model must be pretty smart indeed. SW engineering is there to make code that is too complex for us small minds to be usable. UML models typically start at a top layer and decompose in a linked way, thus you can traverse on any given subject area down to a level you need to digest.
But if you prefer to trace functionality up and down the logical paths repeatedly - hey, have at it. A model is just s simpler way to digest something too big to see in one pass..
Anyone know where there are any UML examples of Torque base code?
04/13/2008 (7:59 pm)
Question go back and forth on whether there is value in modeling software. I am interested if anyone has run across any UML models of the Torque libraries? I am looking for it as to develop in any complex code library setup is a stretch of my brain to locate things. A UML model for any part of the Torque code would be helpful and I'm betting the Torque developers have a model somewhere.Back on the topic, those who say a code environment like the Torque code base doesn't require a model must be pretty smart indeed. SW engineering is there to make code that is too complex for us small minds to be usable. UML models typically start at a top layer and decompose in a linked way, thus you can traverse on any given subject area down to a level you need to digest.
But if you prefer to trace functionality up and down the logical paths repeatedly - hey, have at it. A model is just s simpler way to digest something too big to see in one pass..
Anyone know where there are any UML examples of Torque base code?
#15
I hope that those people who were praising UML in those 5 years old posts have now seen the light.
If you have good code design, UML is absolutely reduntant and useless. You only need your code.
I'm not saying this is the case with Torque, so I could understand your desire to look at some sort of simple diagram of some complex (and messy) code.
However I'm sure that you do realize that, if this diagram exists at all, it will never be up to date.
Any UML diagram is usually up to date for about 5 minutes, then the code changes and the diagram becomes useless, if not misleading.
04/14/2008 (5:14 am)
This UML thing is just a huge waste of time when applied to game development...I hope that those people who were praising UML in those 5 years old posts have now seen the light.
If you have good code design, UML is absolutely reduntant and useless. You only need your code.
I'm not saying this is the case with Torque, so I could understand your desire to look at some sort of simple diagram of some complex (and messy) code.
However I'm sure that you do realize that, if this diagram exists at all, it will never be up to date.
Any UML diagram is usually up to date for about 5 minutes, then the code changes and the diagram becomes useless, if not misleading.
#16
@Ward: I wouldn't limit my views to the programming part. The 'bussines logic' in a game might benefit also from structured diagrams. Depends on the game of course.
@Hadoken: most UML tools nowadays have the ability to import the code. Even then, it's mostly a class diagram that gets generated. The classes itself don't change that much I think, but more the content of those classes. So the diagram should be fairly stable.
Even then, it helps a great deal having a visual representation of how the classes are constructed. I find that writing documentation based upon one or more UML diagrams is much easier, and will help you when you get back to your code some weeks or months later.
Cheers,
David
--
Nebulagame development
my Blog
04/14/2008 (5:54 am)
The thing you have to take into account is that UML is very general. Mostly it is destined for development. Game design can benefit in some ways (transition diagrams for example). You can see UML just as a standardised way to structure your thoughts.@Ward: I wouldn't limit my views to the programming part. The 'bussines logic' in a game might benefit also from structured diagrams. Depends on the game of course.
@Hadoken: most UML tools nowadays have the ability to import the code. Even then, it's mostly a class diagram that gets generated. The classes itself don't change that much I think, but more the content of those classes. So the diagram should be fairly stable.
Even then, it helps a great deal having a visual representation of how the classes are constructed. I find that writing documentation based upon one or more UML diagrams is much easier, and will help you when you get back to your code some weeks or months later.
Cheers,
David
--
Nebulagame development
my Blog
#17
04/14/2008 (6:24 am)
So, any new accessible tools out anyone?
#18
Unless you're writing small systems, you need more documentation than just the code.
Once you're getting upwards of millions of lines of code being written by more than just a single developer, you need quick and efficient ways of communicating and indexing the design.
Although the code also documents the design, it's an like a reference book without an index.
Collaboration diagrams generated by a tool like Doxygen makes for great documentation that is always kept up to date.
Sequence diagrams are extremely important as well.
I create sequence diagrams for myself all the time (generally using pen and paper) to help me more rapidly understand the sequence of a complicated event.
I have a journal of over a thousand sequence diagrams for over three million lines of game and game development code. Try keeping all of that in your head and remembering all of it.
UML has been an invaluable asset and it's what allows me to multiply the amount of code I can learn, retain and maintain.
If you embrace tools for what they are and use them correctly, your skill as a developer can improve from being just good to being great.
See the light?
@Matthew - A combination of Doxygen and Pen and Paper, and a scanner has worked best for me. I also use Gimp and a large Wacom tablet to help me convert pen and paper to vector drawings with Gimp so it's easier to manipulate if things change.
I've tried over a hundred different tools from Rational Rose to Visio. They mostly just get in the way.
04/14/2008 (7:52 am)
Quote:This UML thing is just a huge waste of time when applied to game development...
I hope that those people who were praising UML in those 5 years old posts have now seen the light.
If you have good code design, UML is absolutely reduntant and useless. You only need your code.
Unless you're writing small systems, you need more documentation than just the code.
Once you're getting upwards of millions of lines of code being written by more than just a single developer, you need quick and efficient ways of communicating and indexing the design.
Although the code also documents the design, it's an like a reference book without an index.
Collaboration diagrams generated by a tool like Doxygen makes for great documentation that is always kept up to date.
Sequence diagrams are extremely important as well.
I create sequence diagrams for myself all the time (generally using pen and paper) to help me more rapidly understand the sequence of a complicated event.
I have a journal of over a thousand sequence diagrams for over three million lines of game and game development code. Try keeping all of that in your head and remembering all of it.
UML has been an invaluable asset and it's what allows me to multiply the amount of code I can learn, retain and maintain.
If you embrace tools for what they are and use them correctly, your skill as a developer can improve from being just good to being great.
See the light?
@Matthew - A combination of Doxygen and Pen and Paper, and a scanner has worked best for me. I also use Gimp and a large Wacom tablet to help me convert pen and paper to vector drawings with Gimp so it's easier to manipulate if things change.
I've tried over a hundred different tools from Rational Rose to Visio. They mostly just get in the way.
#19
As your projects get larger and more complex, UML diagrams are just an extra complication, it's something you have to keep up to date so that the people working with you don't get confused. And diagrams don't really help people get a much better understading of the code base, you tipically end up with thousands of blocks and millions of connections.
Besides, the beauty of languages such as C++ is that you can structure your code so that it's built on multiple layers, and you don't have to understand each line of code, or what each low level class does, if you don't want to... you can just look at the higher level classes to get an understading of what's going on.
I have to admit that i've never tried any UML tool with Torque, only with larger projects. But I do have a feeling that Torque is big enough for UML to be useless.
But If you've tried it and it works for you, then it's all good :)
04/14/2008 (8:56 am)
I have to disagree... In my experience, UML is only good for reasonably small and simple projects.As your projects get larger and more complex, UML diagrams are just an extra complication, it's something you have to keep up to date so that the people working with you don't get confused. And diagrams don't really help people get a much better understading of the code base, you tipically end up with thousands of blocks and millions of connections.
Besides, the beauty of languages such as C++ is that you can structure your code so that it's built on multiple layers, and you don't have to understand each line of code, or what each low level class does, if you don't want to... you can just look at the higher level classes to get an understading of what's going on.
I have to admit that i've never tried any UML tool with Torque, only with larger projects. But I do have a feeling that Torque is big enough for UML to be useless.
But If you've tried it and it works for you, then it's all good :)
Associate Stefan Beffy Moises
EDIT: Doh, that post was empty initially, hence my comment... ;)
But look out for Poseidon UML, last time I checked there was a free version available...