So here's a question I've been wanting to figure out for ages:
Are there any resources you recommend for learning to make good diagrams? Ie, I love documenting things but I don't have experience in drawing diagrams. I don't know conventions for displaying order of execution, what arrows should indicate (in A->B is A giving information to be? is B requesting information from A? etc).
Are there any good tutorials/classes/whatever on drawing good diagrams? Good at conveying information, but also consistent with what educated people would expect?
Check out interaction diagrams for what you describe. Two parties (A and B) would be represented as two columns, moving down the diagram means moving forward in time. The arrow going from one to the other is a message (either an actual message or a function call or something). So A->B means A is signaling (the text and context describe how) B. If B is requesting information, you'd have two arrows. First B<-A, and then A->B with the response (attempted plain text version):
t A B
0 | |
1 |---->| A sends data to B
2 | |
3 |<----| B requests more information from A
4 |---->| A responds
A and B could be people, processes, classes/objects, servers, whatever. The interaction points are described with the context of the diagram and text. (NB: t is not meant to be explicit here, I've included it to illustrate the passage of time going down the diagram.)
I have this exact same question. I've found some conventions over the years that have been helpful, but haven't found anything comprehensive.
With regards to what the arrows indicate, I've done dotted line arrows are synchronous, with a solid arrowhead meaning request body and an outlined arrowhead being the response. Then used solid black line with a single solid arrowhead for an asynchronous request.
Are there any resources you recommend for learning to make good diagrams? Ie, I love documenting things but I don't have experience in drawing diagrams. I don't know conventions for displaying order of execution, what arrows should indicate (in A->B is A giving information to be? is B requesting information from A? etc).
Are there any good tutorials/classes/whatever on drawing good diagrams? Good at conveying information, but also consistent with what educated people would expect?