In embedded software development some companies use Rational Rose (state digrams) to specify behavior and perform model checkings. So YES top companies use it but not the kind of top Rails or mobile software company that you usually see in HN. And No it's not used a lot.
I think UML is a nice communication tool for the general purpose development (just the basic syntax of UML). But not more than that, please don't specify an app in UML, is just bullshit.
However, in embedded software development it makes sense to specify the system using UML (like some very important controller software). Why? Because the system is very small (so you can model it) and you need a high certainty that it will perform as it it supposed to (you can perform model checkings and validation).
Otherwise UML is just a nice way to have a common language in the whiteboard.
I think UML is a nice communication tool for the general purpose development (just the basic syntax of UML). But not more than that, please don't specify an app in UML, is just bullshit.
However, in embedded software development it makes sense to specify the system using UML (like some very important controller software). Why? Because the system is very small (so you can model it) and you need a high certainty that it will perform as it it supposed to (you can perform model checkings and validation).
Otherwise UML is just a nice way to have a common language in the whiteboard.