I draw Data-Control flow diagrams for better understanding of some process in code. It looks something like that:
Legend:
- ---> – control flow
- ==> data flow
- Ellipsis – method
- Rectangle – data storage
- Rectangle with rounded corners – class
- If ellipsis is located on the border of a class – it is a public method
Such diagrams help me later to understand place of some piece of code in some process in system.
It is critical not to draw unnecessary details on a diagram and stay focused on the current task, in other case a diagram will be unreadable. For example diagram in this post is near the edge of readability – lots of intersections are signs of it.