UML is really powerful when modeling software, but there exist multiple types of diagrams and is really helpful to know them to know what to use in each case:
- Structure Diagram: These are the “static” diagrams; they show the different parts of the abstraction of the system but don’t depend on time directly as the behavior diagrams.
- Behavior Diagrams These diagrams show the dynamic behavior of the system, the ones that depend on time or external events.
As you can see in the above diagram, there exists a ton of diagrams that depend on what you need to represent. Remember that you must adequate the diagrams to your requirements and not the other way around.
Also, one thing in consideration is that a lot of times, you may need multiple diagrams for a single system because a single diagram just represents a way to understand the system. Still, if you use various diagrams, you may understand a lot more aspects of it.
Remember that at the end of the day, your diagrams (and the ones you choose for the system) depend on the ability to abstract the information. Also, this ability can help to abstract parts of the system on the way to let you reuse that specific thing and save work later.
Here is a really interesting video on the myths of UML: