I'm working as a support engineer, having access to the source code, and I'd like to use this opportunity to document the source code, but I stumble on a first question: how do I even start?
For single-threaded applications, this is simple: using a tree structure (
main() function calls some subfunctions, calling subsubfunctions, ...) can be done quite straightforwardly using standard UML diagrams.
For multi-threaded applications, this becomes more difficult: I could make a tree structure for the threads, and a tree structure for the function calls, but I'm afraid that the linking between both trees might create a very messy document (while the whole idea of documentation is to clarify).
Is there a standard way to document source code for multithreaded applications?
I had a look at UML Diagrams of Multi-Threaded Applications but I don't like sequence diagrams for elaborating subfunctions, calling subsubfunctions, ...