The dynamic nature of the application domain can be viewed via the four diagrams just described: the two interaction diagrams (sequence and collaboration), the state diagram, and the activity diagram. When should you use which one?
Collaboration diagram: Use this diagram when the application includes complex branching dialogs that aren't rendered well in the sequence diagram. (I rarely produce collaboration diagrams, instead opting for the more familiar and more orderly sequence diagram.) Collaboration diagrams are also good for multithreaded scenarios.
State diagram: This diagram is useful only for a class that exhibits interesting and complex dynamic behavior. In real-time applications (e.g., embedded systems), the ratio of state diagrams to classes will be higher than in non-real-time applications. However, the exact number will depend on the nature of the application. Most applications do not need state diagrams. (The entity classes are usually uninteresting regarding state. Usually if I produce state diagrams, they are for control and boundary classes.)
The sequence diagram is the most commonly used; the other three are used only as needed.
3.139.240.119