Arrrgg... sequence diagrams ... so hard to get motivated..

I am a little behind with my college work… :persecutioncomplex: an assignment due in a couple of weeks and I have to learn about sequence diagrams in UML… but I would rather be designing a game engine ( Java OpenGL and LWJGL/Android).

Does any one here actually use sequence diagrams?

While procrastinating I Saw this YouTube clip about deferred lighting [/drools like homer]

http://www.youtube.com/watch?v=Elp6hyjzal0 :point:

I only used them in school :slight_smile: Ugh, those were not my favorite assignments. I see UML as a good learning tool when you don’t have a strong grasp on OO programming yet and I also see some minor documentation benefits in it, but to actually use it in the design phase of an application… hell no. Applications are living and breathing things, the last thing I want to do is to be maintaining piles of UML diagrams whenever there is a change in design/architecture.

I am using uml without caring about the syntax if I think about a fancy way to programm sth. Especially if you are just programming for fun it’s good to have a basic structure but you won’t create whole uml-diagram that contains everything. That would just take a lot of time and wouldn’t help much because I change to much during programming.
One time I used a nearly complete, if you write a more complex event-system it’s quite usefull.
But that’s just me :slight_smile:

Blissfully never even so much as had to look at a UML diagram in my life. Am successful developer of systems large and small for last 20 years.

Cas :slight_smile:

I’m not even sure there is a meaningful UML standard. I always get confused when I try to use UML since it’s so fuzzily defined. Class diagrams have been of some use, although I doubt I use UML with those precisely.

Edit: and sequence diagrams? I think I used those a couple of times for thinking out / communicating about communication protocols.

Sequence diagrams are actually one of the more useful bits of UML when you have complex back and forth protocols with multiple participants and so forth, like an authentication protocol or matchmaking service. They’re really nothing more than “swim lane” charts from business process descriptions, probably predating UML.

Speaking of reuse, the basic class diagrams most people think of when when they hear “UML” are glorified E/R diagrams from relational databases, decent enough for nutshell descriptions of your object schema, but nothing I’d want to hang actual logic off of. I found UML’s predecessor, OMT, to be a lot more useful for class diagrams (if you can find a book now long out of print called “OMT Insights”, pick it up, it’s really interesting).

What’s really tits-on-a-bull useless are UML use case diagrams. Stick figures. Really.

@sproingie have to agree with you on UML case diagrams. My reaction to seeing them for the first time was "lol what the ??? , stick figures are you serious "

So far UML seams to be a way of communicating to people who don’t program, which is fine in the right context. Some diagrams I have found useful in my own design process, but not as formal and long winded as my course seems to make it. I think I prefer to just rough out some ideas and then get on with code and not produce a fully documented design. Thanks for the discussion, it helps me get through it to see other people are less enthusiastic than me about UML

MDA via UML is the programming tool of the future for 20 years now and it probably will be for another 15.

Rational Rose tried hard, but the open source world now commands the future of MDA.

Class, Activity, Sequence, and other diagrams must generate and reverse engineer code correctly every time to work right.

I used Object Domain years ago and it could generate the skeleton code fine, but reverse engineering the code still has issues even today.

Someday it will be great. Scratch + MDA = A complete visualization of the code in a way that syntax and generated code can’t fail in the diagrams or program flows. You will still need and old person like me with an IDE to do the low level code, but it will be very rare and easier to integrate.

No, it won’t. If there is one constant in programming is that no matter how much the tools evolve, it never gets any easier.

You can already see it today - take a look at SOA scale development platforms. You basically click and drag together whole enterprise applications and your application is generated for you, it should be so beautiful. But its not; building applications becomes one huge and costly “find the wrongly configured checkbox” hunt. Code at least, you can debug.

I used to work on a UML/MDA tool called OptimalJ. It was fantastically complex and developers did not love it, mostly because it was the mother of all code generators. We bet the future of our development facility on Java+UML+MDA, and lost.

Our architect edition was amazing though - you could use it to define your own transformations of UML models into other UML models, define new specialized model types, and transform models into any code structure you wished. I really enjoyed working on that. But it never caught on, which is a real pity.

@Grunnt: UML is very tightly specified at a language level and even at a serialization level (XMI). However, the specification does not address all the needs of MDA (or it didn’t in 2007, when they pulled the plug on OptimalJ), so it has a way to go.

@MatthewNichols: Comunicating with non-programmers is the most critical part of programming. They’re the people the programs are for, and the idea of UML (and MDA takes it to the next level) is to involve the non-technical people, i.e. the ones who understand the purpose of the program, in the process of designing the application and specifying the functionality. But that implies that UML needs to be a proper language, so it becomes too technical once more… It’s a bit self-defeating, taken to the extreme.

Thanks to everyone who replied to this thread. I got 92% for my assignment so the motivation worked. ;D

UML was a fad. They aren’t used much today. Diagrams are still used, but nothing that formal. I’m surprised they are still being taught. Some of the education might be useful or interesting.

Well the next assignment covers;

  • Design by Contract
  • Assertions
  • Software architectures
  • Frameworks
  • Product lines
  • Patterns for application layering
  • Singletons and Factories
  • Unit testing

Anything here still being used today? :persecutioncomplex:
I’m just hoping that when I finish my degree not everything will be completely out dated and pointless :’( I’ve only got this course this year and two next year (Relational databases:theroy and practice, Fundamentals of interaction design)and I’m done.

Yes. Change the first bullet point to ‘Agile’ and add ‘Design Patterns’ to the list & you’ve got a close representation of our sweatshop here.

Agile was covered in a previous assignment ;D

Good :wink: at least it hasn’t been pointless after all.