Background: I primarily code as a hobbyist (with some open-source contributions - I've been coding for over twenty years ) and so haven't really come across any structured tools that could help in planning out how to structure applications, help plan visualize and tweak how different parts of the application should interact etc. Googling seems to result in either books on the topic or very domain specific tools like UI mock-up designers etc. Are there any free & flexible tools to help plan-out application architectures?