Unified Modeling Language (UML)
UML is a well accepted modeling language consisting of a number of diagrams that visualize either structure or behavior of software.
Use case diagram
A use case diagram visualizes the interaction between a user and a software system. It can be used to determine requirements together with users. First the most common flow of events (basic flow) will be described. Then relevant alternative flows will be described.
A disadvantage of use cases is that they’re not visual, they are drawn up in natural language. I like to combine use cases with story boarding, this way a description becomes more specific and triggers a better dialogue with users.
With a class diagram, entities and their methods and interrelationships can be modeled.
Activity diagrams are a lot similar to flowcharts. A workflow can be visualized, a sequence of actions, decisions and concurrency.
Sequence diagrams are useful to model interaction between processes (or objects), especially sequentiality and timing can be visualized well. I like to use this type of diagram to document interfaces and message exchanges.
State machine diagram
A State machine diagram is a behavior model representing which states an entity can be in and which conditions trigger state changes.