HACKER Q&A
📣 muzani

Software Architecture Tools?


For context, the codebase I'm working on is a big ball of mud. Normally, I can map code in my head. But a lot of it is unintuitive, and there are pockets of repeated and hacky code. Boundaries are strictly written in some places, and non-existent in others. There's tons of global objects just stored in memory somewhere. A lot of stuff is labeled "item_" and in some generic folder.

So I'd like to draw the architecture to clearly visualize what the architecture currently is, and what it should be. I'd also like to "zoom" a level, e.g. identify the purpose of a layer, then the implementation of it, and implementations and relations around certain subclasses.

I think something like draw.io does the trick, but I figure there are better tools out there. A mind mapping tool could also work, but I haven't found any that I'm more comfortable with over pen and paper.


  👤 efortis Accepted Answer ✓
Keynote, PowerPoint, or Visio work well for data flow diagrams, flowcharts, and alike. For example, here's mine: https://blog.uidrafter.com/architecture-of-a-desktop-alike-s...

If you need more UML-like stuff check out https://plantuml.com

Also, if you get stuck (sometimes it's pointless to diagram the arch as is), try to describe the architecture in sentences and pseudo-code.