This will be the last post of 2013. I wish you all a happy new year.
I see that many people have trouble when it comes to use case diagrams. Many people think they know what a Use Case Diagram means or what kind of information it is meant to present, but actually half of their knowledge or expectation about use case diagrams might be wrong.
|A simple use case diagram|
Here in this post I will try to explain briefly the primary purposes of Use Case Diagrams, their structure and their benefits.
1- Primary Purpose
The primary purpose of the UML use case diagrams is to visually associate actors with the use cases (i.e., services, processes, functions) provided by a system thereby documenting functional (behavioral) decomposition of a system and how these functions are used. When you analyze a system to gather its functionality you need to draw use case diagrams.
Use cases describe how the system is used and what it does for its stakeholders.
A Use Case Model is composed of 3 basic elements: Use Cases, Actors and Relations.
They represent the functionality of the system. They are used to gather the functional requirements of the system. They also include the use case scenarios for a specific functionality which in tern can bu used as an input for the test team and the development team. These are stories about how the actors use the system to do something.
Note: Level of detail of this use case scenario depends on the project life cycle step that you are preparing the use case diagrams and related use cases.
Actors are the entities that interact with the system or use the system. They are outside the system.
They represent the relationships among the use cases and the actors of the system.
Finally, for those who believe that use case diagrams are not needed and are useless, here is a brief list of the benefits they provide:
-They gather requirements of a system
-They give you an overview of the system
-They provide a functional decomposition
-They identify external and internal actors
-They show the interaction between the use cases and the actors
-They show the various relations between use cases (include, extend etc.)
-They provide valuable information for the development and test teams
-They act as a cross-team (system, development,test etc.) common understanding platform
You could think of other benefits as well.
Hope this helps someone.