You might want to try Excalidraw.com, which is free & open-source (MIT) collaborative whiteboard app that lets you make hand-drawn like diagrams and easily export them to PNG, SVG, or as a link for others to edit (see below).
On top of that, communication to our server is end-to-end encrypted so even if you collaborate with others, it's fully private ...
There are several such tools, one of the most commonly used being the combination of Doxygen with Graphviz.
Doxygen will analyse your code to create documentation for code written in any of:
IDL (Corba, Microsoft, and UNO/OpenOffice flavors),
Additionally, you can annotate your source code to ...
If you were asking for libraries that you want to integrate in the programs you build, then your question is too vague. Everything is software.
If you want a program that will help you persisting your content, read on.
Note that a tree is a more constrained form of a graph. Software that knows graphs knows trees just as well.
You may want to look at XMind....
From Wikipedia: Graphical Network Simulator-3 is a network software emulator first released in 2008. It allows the combination of virtual and real devices, used to simulate complex networks.
Hope it helps.
You simply can't beat MSC generator. It is cross-platform, full featured and well supported (Zoltan generally replies very quickly to emails requesting support or new features).
It takes its input from a plain text file:
Read the excellent user mnaual and search for "loop".
I'm looking for an inexpensive dependency graph generator as well, but for C++. In my searching I did find a reference to something that might help you if you haven't already found a solution.