
Ask HN: How important are UML diagrams at your work? - dacilselig
Hi everyone,<p>Currently I'm a University student in North America.  I got into a conversation with a friend of mine, where he said that UML diagrams  don't  serve much purpose when you start working at a company. However I believe that there is a rational behind learning it otherwise we wouldn't.<p>So my question to HN......Do you use UML diagrams at work? And if so, which ones (Sequential, Use Case,Domain model....)?
======
prodigal_erik
I have seen class and sequence diagrams used on a few occasions. The others,
never. My teams at Microsoft years ago were getting into statecharts (state
machines made clearer with a few extra features, e.g., events which happen on
any transition between groups of states) but not the UML notation for them
that has apparently popped up. I have the impression these are more common in
consulting shops which charge by the hour for reams of waterfall design docs
which only roughly describe the actual software written as an afterthought.
Even though the way we typically improvise software design is blatantly
stupid, this stuff doesn't seem to be the solution.

------
pestaa
I'm a unversity student in Europe, and most things we learn make exactly zero
sense. I stopped assuming rationality when it comes to CS education a long
time ago. Yesterday we had to implement adding two numbers over SOAP.

With that said, UML is not really used in small companies much, but when you
feel a diagram would make it easier to understand a concept, chances are
you're going to either draw UML or reinvent it poorly.

~~~
UnoriginalGuy
> Yesterday we had to implement adding two numbers over SOAP.

To be honest this actually sounds like a very useful exercise. I mean SOAP
sucks, but SOAP, XML, and web-APIs are highly relevant to many jobs. Just
being able to do simple things in SOAP (like add numbers) seems like it would
be useful to a lot of students.

PS - I agree that UML is useless.

~~~
pestaa
Well, fortunately I've seen the XML terror coming from SOAP and WSDL, but in
the class we had to use drag & drop wizards to create the service. How
relevant is that.

Probably the intention is good, but the execution is dangerously discouraging
and very _very_ much out of sync with the industry.

------
CyberFonic
I work in industry and teach SE part-time at one of the world's top
universities.

Yes, we teach UML because it is the most widely used modeling language. It
features many profiles for specific domains and there is a range of tools to
choose from.

Embedded systems, avionics, motor vehicle, telecommunications systems are
heavily modeled using UML and related techniques. Industrial control systems
less so, but there are areas where they are being used more and more. In the
commercial applications space, there is much advances to be made.

The use of modeling is a core feature of most engineering disciplines but only
recently becoming a part of software engineering methodologies. A crashed
program is easier to recover from than a bridge that crashes into the water or
a microwave tower that comes crashing down in the first big winds. So the
demand for modeling is going to take a while to become a "must have" in SE.

So if you want to work at the next Facebook then UML is probably not going to
be important. But if you want to work at Boeing then you'll be needing it.

~~~
kat
Just to add to this, I work on an enterprise sized project and we use UML all
the time! Its not Boeing, but its a large code base and things get complicated
fast. We make class diagrams for all of our large features. If there is
complex workflows, we usually make a sequence diagram or some sort of state
diagram, depends on the developer. It helps with estimating and helps flush
out requirements. I can't image working without UML diagrams.

I`ve also done class diagrams for smaller projects when refactoring. It makes
it easier to explain to coworkers what logic needs to go where.

------
guilloche
I do not want to say that UML is totally useless, but honestly, I did not even
meet one single programmer who were using it. UML may be useful for things
other than CS.

------
codeonfire
In normal practice uml diagrams are not created. To put it bluntly, in many
environments it would be a waste. Many people in the business world equate
software development to sending an email or using excel. How do you explain a
complex system or process diagram to them? All they understand is that there
was a meeting so the software should be done in a day or so.

