Live data from Hacker News

All You Need to Know About UML Diagrams

tallyfy.com

21–30 of 36 posts

Re: All You Need to Know About UML Diagrams

#23
post #20
post #14

Earlier quoted context omitted.

There are two types of useful UML: The first is what I call whiteboard UML - it looks like any UML course except you draw it on a whiteboard, snap a picture on your phone and start implementing it. A couple weeks latter you realize that the design has diverged from the whiteboard so you delete the pictures. The whiteboard was useful for those two weeks to get the discussion started. The second is maintained, preferab…

When UML was more popular at the height of the OO(AD) frenzy, there was a tool from Peter Coad's company called TogetherJ. IIRC it could do round-tripping between UML and Java code. I think I tried the tool out but not that feature. TogetherSoft was later acquired by Borland, as I remember.

In IntelliJ you can refactor from UML views.

Re: All You Need to Know About UML Diagrams

#25
post #4
post #3

neat, the pictures could be better doh

You are right, pictures should be better focused and more unified in style. Can you recommend any software?

You can do an impressive amount of diagramming with the free yED. It also has some automatic layout tools and so on. It's also cross-platform so everybody can use it. The gallery has some impressive examples in it.

https://www.yworks.com/products/yed

Re: All You Need to Know About UML Diagrams

#26
I have started using PlantUML[1] quite a bit recently in my blogging (one example[2]). I have PlantUML code in Org mode source blocks, and Org Babel then generates the svg/png of the diagram each time I update the code block.

[1]: http://plantuml.com/ [2]: https://scripter.co/org-contribution-flowchart/#flow-chart

Re: All You Need to Know About UML Diagrams

#27
Creating a bunch of UML diagrams up front is usually the sign of a broken software development process. However, there's a lot of great work that went into the various diagramming grammars that turn out to be really useful in different cases. I've found that spinning up UML-like diagrams for certain subsystems on a whiteboard, or quickly in yEd or similar tool helps immensely with:

a) creating a "thing" to facilitate communication and understanding

b) capturing a design after it's done as part of a deployment/hand-over package

c) a useful toolkit for reverse engineering a system that you had dumped on you

etc.

basically, any sort of ad-hoc communication need or information capture process.

Software Engineering coursework will warp your brain into thinking that you need to spend a few years in a spaceship in orbit around Saturn dreaming up millions of UML diagrams that when done, will magically barf out all of the code that makes up some enormous over-engineered enterprise fizzbuzz system.

It takes a long time to overcome that nonsense without throwing away the goodness that exists here -- there's some excellent diagramming techniques that really help with coming up with a common understanding of how a system should work for a team and product owners and used well can bridge huge communication gaps. Many of the diagrams more or less show the same information, but with a slightly different angle that can help communication.

The diagram grammars themselves can get really fussy and particular, but I think when they're used best only certain components of the grammars are used to fill very specific communication needs, the rest is more or less sketched in, and the remaining grammar can be pretty comfortably be left out.

Many times, you can just invent a diagramming grammar that you can the other parties agree to and just "be inspired" by ideas from UML and get most of what you need done. There's also grammars that are not part of UML that would make sense for people to get familiar with. ArchiMate comes to mind as a particularly great example. I don't use it explicitly (the software tooling support for it is garbage, but you can fake it with yED pretty well), but I've used systems inspired by it numerous times to succinctly capture incredibly complex enterprise systems and data flow and tie those things to business processes and needs.

https://en.wikipedia.org/wiki/ArchiMate

Re: All You Need to Know About UML Diagrams

#28
post #27

Creating a bunch of UML diagrams up front is usually the sign of a broken software development process. However, there's a lot of great work that went into the various diagramming grammars that turn out to be really useful in different cases. I've found that spinning up UML-like diagrams for certain subsystems on a whiteboard, or quickly in yEd or similar tool helps immensely with: a) creating a "thing" to facilitate…

> Creating a bunch of UML diagrams up front is usually the sign of a broken software development process.

Wait, what? Why?

Assuming I'm doing them because they help me flesh out an idea, it should be fine, right? You're talking more about being forced to express a concept in UML when it's already adequately described in a non-UML format, right?

Re: All You Need to Know About UML Diagrams

#29
post #27

Creating a bunch of UML diagrams up front is usually the sign of a broken software development process. However, there's a lot of great work that went into the various diagramming grammars that turn out to be really useful in different cases. I've found that spinning up UML-like diagrams for certain subsystems on a whiteboard, or quickly in yEd or similar tool helps immensely with: a) creating a "thing" to facilitate…

> Creating a bunch of UML diagrams up front is usually the sign of a broken software development process. Wait, what? Why? Assuming I'm doing them because they help me flesh out an idea, it should be fine, right? You're talking more about being forced to express a concept in UML when it's already adequately described in a non-UML format, right?

Because you're creating a waterfall that you can only slide down and the development process becomes an exercise in alignment to "the plan".

Re: All You Need to Know About UML Diagrams

#30
post #29

Earlier quoted context omitted.

> Creating a bunch of UML diagrams up front is usually the sign of a broken software development process. Wait, what? Why? Assuming I'm doing them because they help me flesh out an idea, it should be fine, right? You're talking more about being forced to express a concept in UML when it's already adequately described in a non-UML format, right?

Because you're creating a waterfall that you can only slide down and the development process becomes an exercise in alignment to "the plan".

One doesn’t need to be wedded to diagrams one works out up front. Doing a bit of design upfront can be useful in fleshing out ideas. Whether that’s in UML, sequence diagrams, stories, or just some sketches on a whiteboard, or some notes on paper, what one does with them is up to the team. It need not determine everything that follows. You point out all of this yourself upthread.
Post reply on HN