Diagramming Standards?
-
I've done very little formal diagramming, so I'm wondering what the standards are these days. I'm particularly talking about program structure, class structure and database structure, but I'd love to hear about any others you use too. For reference, the only diagramming I've done was back in high school IPT: Nassi Schneiderman Diagrams (Structograms)[^] and Conceptual Schema diagrams[^].
Don't forget to rate my post if it helped! ;) "He has no enemies, but is intensely disliked by his friends." "His mother should have thrown him away, and kept the stork." "There's nothing wrong with you that reincarnation won't cure." "He loves nature, in spite of what it did to him."
-
I've done very little formal diagramming, so I'm wondering what the standards are these days. I'm particularly talking about program structure, class structure and database structure, but I'd love to hear about any others you use too. For reference, the only diagramming I've done was back in high school IPT: Nassi Schneiderman Diagrams (Structograms)[^] and Conceptual Schema diagrams[^].
Don't forget to rate my post if it helped! ;) "He has no enemies, but is intensely disliked by his friends." "His mother should have thrown him away, and kept the stork." "There's nothing wrong with you that reincarnation won't cure." "He loves nature, in spite of what it did to him."
-
I've done very little formal diagramming, so I'm wondering what the standards are these days. I'm particularly talking about program structure, class structure and database structure, but I'd love to hear about any others you use too. For reference, the only diagramming I've done was back in high school IPT: Nassi Schneiderman Diagrams (Structograms)[^] and Conceptual Schema diagrams[^].
Don't forget to rate my post if it helped! ;) "He has no enemies, but is intensely disliked by his friends." "His mother should have thrown him away, and kept the stork." "There's nothing wrong with you that reincarnation won't cure." "He loves nature, in spite of what it did to him."
As mentioned before, UML is the standard for software design and architecture. SysML is a bit more general and not restricted to software lifecycle management. These are being standardized by the OMG (object management group, not 'oh my god ;) ). UML and SysML are in fact a whole bundle of diagram types and elements, some of which may even look familiar to what you know. However, using them correctly isn't exactly easy, and a constant source of discussion even between experts. If you wish to properly learn to use them, the best way is probably to visit a course: being able to discuss ambiguous areas with real persons is invaluable! Personally I mostly stick to class diagrams, because the UML tool I have can directly generate code from them and even synchronize changes in the code with the model. I also occasionally use sequence diagrams to describe the workflow of a particular function or algorithm that involves several objects. I've also found state machines or state diagrams helpful when modeling embedded software components. if you're involved in the early phase of project lifecycles you might also want to look at Use Case diagrams or Requirement diagrams. The latter are rather new and actually part of SysML, not UML, but can be used in conjunction with Use Case diagrams nonetheless. Personally I do not know of any good online source that would be good for a beginner to learn UML. I've learned it in a course about the Unified Process (back then it was the Rational Unified Process, but it's now open source), which uses all of these diagrams. Maybe there's some useful info around in that area. I suggest you look up these keywords on wikipedia or elsewhere: UML, SysML, class diagram, sequence diagram, state machine or state diagram, Use Case diagram, Requirements diagram, Unified Process.
-
Never heard of those. UML, Unified Modeling Language, is basically the standard for most of that.
Those diagramming standards are probably 20 years old? Older perhaps?
Don't forget to rate my post if it helped! ;) "He has no enemies, but is intensely disliked by his friends." "His mother should have thrown him away, and kept the stork." "There's nothing wrong with you that reincarnation won't cure." "He loves nature, in spite of what it did to him."
-
As mentioned before, UML is the standard for software design and architecture. SysML is a bit more general and not restricted to software lifecycle management. These are being standardized by the OMG (object management group, not 'oh my god ;) ). UML and SysML are in fact a whole bundle of diagram types and elements, some of which may even look familiar to what you know. However, using them correctly isn't exactly easy, and a constant source of discussion even between experts. If you wish to properly learn to use them, the best way is probably to visit a course: being able to discuss ambiguous areas with real persons is invaluable! Personally I mostly stick to class diagrams, because the UML tool I have can directly generate code from them and even synchronize changes in the code with the model. I also occasionally use sequence diagrams to describe the workflow of a particular function or algorithm that involves several objects. I've also found state machines or state diagrams helpful when modeling embedded software components. if you're involved in the early phase of project lifecycles you might also want to look at Use Case diagrams or Requirement diagrams. The latter are rather new and actually part of SysML, not UML, but can be used in conjunction with Use Case diagrams nonetheless. Personally I do not know of any good online source that would be good for a beginner to learn UML. I've learned it in a course about the Unified Process (back then it was the Rational Unified Process, but it's now open source), which uses all of these diagrams. Maybe there's some useful info around in that area. I suggest you look up these keywords on wikipedia or elsewhere: UML, SysML, class diagram, sequence diagram, state machine or state diagram, Use Case diagram, Requirements diagram, Unified Process.
Thank you very much. I suppose I'll just have my own little home-brewed flowcharts until I need something on that scale. I suspect I'll learn about that in university though. Thanks for taking the time to write such a detailed and practical reply!
Don't forget to rate my post if it helped! ;) "He has no enemies, but is intensely disliked by his friends." "His mother should have thrown him away, and kept the stork." "There's nothing wrong with you that reincarnation won't cure." "He loves nature, in spite of what it did to him."
-
Thank you very much. I suppose I'll just have my own little home-brewed flowcharts until I need something on that scale. I suspect I'll learn about that in university though. Thanks for taking the time to write such a detailed and practical reply!
Don't forget to rate my post if it helped! ;) "He has no enemies, but is intensely disliked by his friends." "His mother should have thrown him away, and kept the stork." "There's nothing wrong with you that reincarnation won't cure." "He loves nature, in spite of what it did to him."
That's just as well. I often like to ask experienced programmers how they do it, and the answer I've often got was 'pencil and paper' ;) The reason is simple: there's always some tidbit of information you want to add and don't know how to using a specific type of diagram, so the easiest way is just to do it in the way you're most comfortable with. As I said, my main reason for using class diagrams is that it generates code as well. but I still use pencil and paper quite a lot.
-
Thank you very much. I suppose I'll just have my own little home-brewed flowcharts until I need something on that scale. I suspect I'll learn about that in university though. Thanks for taking the time to write such a detailed and practical reply!
Don't forget to rate my post if it helped! ;) "He has no enemies, but is intensely disliked by his friends." "His mother should have thrown him away, and kept the stork." "There's nothing wrong with you that reincarnation won't cure." "He loves nature, in spite of what it did to him."
Start using UML, it's very simple and the key point is it is a very common method for system modelling and understandable by computer professionals and laymen alike. If you use something like UMLet[^], my personal choice and it's free, you'll find it very easy to draw diagrams and will soon get the hang of it.
Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
-
Those diagramming standards are probably 20 years old? Older perhaps?
Don't forget to rate my post if it helped! ;) "He has no enemies, but is intensely disliked by his friends." "His mother should have thrown him away, and kept the stork." "There's nothing wrong with you that reincarnation won't cure." "He loves nature, in spite of what it did to him."
UML has evolved since it was first defined. It is a very powerful tool.
Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett