One can argue that visual tools are only useful if you're building with a top-down approach.
Visual tools can help here, because developers take shortcuts and you’re never developing in the perfect case, so you often end up with coupling that shouldn't be there, which creates extra complexity and in general, a "mess".
On the other hand, you can take a "bottom-up" approach to building stuff, in which you're you're building layer upon layer, such that top layers depend on bottom layers, but never the other way around. You do this by designing for each layer a domain specific language for that layer, which layers at the top can use  .
And visual tools don't really help in such a case, but on the other hand visual tools aren't really needed. In my opinion visual tools for software development (and I'm thinking primarily of UML here) are just fixing a symptom instead of the real disease, giving you a wider window for building a mess.
I'm not talking about UML or anything similar or designing or building. I'm talking about visual inspection tool for my code. Something like code-to-UML not the other way around that shows components and their actual interactions (of course UML is not expressive enough to display all situations encountered "in the wild" and it was designed for paper so it should be something else).
Bottom up is really great when you know what you want to achieve, but in some areas, like game development - You don't know what you want to make until you make it. It demands quick iteration and evaluation. In such environment it's great to use top-down.