UML in Agile Simply Explained
Is UML irrelevant with Agile? When will UML be helpful and when not? What are the difficulties of using UML in Agile?
Introduction
UML is used to simplify written documentation. It is a way to visualize system requirements in diagrams which helps anyone to understand them. Used to model the Object Oriented analysis of a system.
UML benefits
- It is agnostic for any language programming.
- Visuals help anyone to understand the system requirements and design easily.
- Provide standards that can be learned by anyone.
- Great compatibility with OOP.
UML Diagrams Types
There are two types:
- Structure Diagrams: They depict system components like objects, relations, etc... For example "User" object (static state).
- Behavior Diagrams: They depict how system components behave and interact with each other. For example "How can a User set an order" (dynamic state).
When UML would be incredibly useful
UML is tightly associated with the Waterfall model. In this model, system requirements and design must be defined before starting project development. In this model, you can complete modeling your system using UML and then start developing.
When UML might be not fit
In the Agile model, system requirements and design are not defined before starting the project. Instead, they are evolving during the project's progress. As a result, in this model, it is hard to maintain a project using UML.
Difficulties of Using UML in Agile
There are some difficulties to use UML in Agile projects:
- System requirements and design are insufficient before starting the project.
- The big effort to update the UML diagrams continuously during the project progress.
How to Use UML in Agile
If you have the UML after project completion, it might be useful as an aid for supporting the system or depicting the system architecture.