Structure diagrams emphasize the things that must be present in the system being modeled. Since structure diagrams represent the structure, they are used extensively in documenting the software architecture of software systems.
· Class diagram: describes the structure of a system by showing the system's classes, their attributes, and the relationships among the classes.
· Component diagram: describes how a software system is split up into components and shows the dependencies among these components.
· structure diagram: describes the internal structure of a class and the collaborations that this structure makes possible.
· Deployment diagram: describes the hardware used in system implementations and the execution environments and artifacts deployed on the hardware.
· Object diagram: shows a complete or partial view of the structure of an example modeled system at a specific time.
· Package diagram: describes how a system is split up into logical groupings by showing the dependencies among these groupings.
· Profile diagram: operates at the metamodel level to show stereotypes as classes with the stereotype, and profiles as packages with the <<profile>> stereotype. The extension relation (solid line with closed, filled arrowhead) indicates what metamodel element a given stereotype is extending.
Behavior diagrams emphasize what must happen in the system being modeled. Since behavior diagrams illustrate the behavior of a system, they are used extensively to describe the functionality of software systems.
· Activity diagram: describes the business and operational step-by-step workflows of components in a system. An activity diagram shows the overall flow of control.
· UML state machine diagram: describes the states and state transitions of the system.
· Use Case Diagram: describes the functionality provided by a system in terms of actors, their goals represented as use cases, and any dependencies among those use cases.