User flows and Wire flows
Most projects I have worked on have been heavily dependent on back end processes and user tasks. Some tasks can be further extrapolated by different use cases so it's useful to document each case as a user flow. More recently, when working on native apps, I have found low fidelity wireflows a great way to show both the flow and the state of the page.