UML stands for Unified Modeling Language and is used to model the Object-Oriented Analysis of a software system. UML is a way of visualizing and documenting a software system by using a collection of diagrams, which helps engineers, businesspeople, and system architects understand the behavior and structure of the system being designed.
Benefits of using UML:
- Helps develop a quick understanding of a software system.
- UML modeling helps in breaking a complex system into discrete pieces that can be easily understood.
- UML’s graphical notations can be used to communicate design decisions.
- Since UML is independent of any specific platform or language or technology, it is easier to abstract out concepts.
- It becomes easier to hand the system over to a new team.
Types of UML Diagrams: The current UML standards call for 14 different kinds of diagrams. These diagrams are organized into two distinct groups: structural diagrams and behavioral or interaction diagrams. As the names suggest, some UML diagrams analyze and depict the structure of a system or process, whereas others describe the behavior of the system, its actors, and its building components. The different types are broken down as follows:
Structural UML diagrams
- Class diagram
- Object diagram
- Package diagram
- Component diagram
- Composite structure diagram
- Deployment diagram
- Profile diagram
Behavioral UML diagrams
- Use case diagram
- Activity diagram
- Sequence diagram
- State diagram
- Communication diagram
- Interaction overview diagram
- Timing diagram
Rest of the sections, we will be focusing on the following UML diagrams:
Use Case Diagram: Used to describe a set of user scenarios, this diagram, illustrates the functionality provided by the system.
Class Diagram: Used to describe structure and behavior in the use cases, this diagram provides a conceptual model of the system in terms of entities and their relationships.
Activity Diagram: Used to model the functional flow-of-control between two or more class objects.
Sequence Diagram: Used to describe interactions among classes in terms of an exchange of messages over time.