I think we (the software engineering industry) can all speak from experience that it can be hard to explain some of our own ideas to other people. We’ve all had that killer app idea that had the potential to become as big as Facebook or Google, yet we find ourselves at a crossroads when trying to explain the functionality of it to our peers and friends. Yet, in 1992, our good pal, Ivar Jacobson, introduced the idea of use cases to help everybody explain what the heck is going on in any system.
Use cases can be used for many different fields, yet it is widely used in the software industry, and it was one of the main components of the Unified Software Process. When describing the definition of a use case, we need to understand the different parts that can interact with each other in our diagram. The first one, and I believe the easiest to understand, is the system part. A system can be a lot of things, it could be a web app, a mobile app, a business process, a logistics solution, etc.
The next part of a use case, is the actor. Actors don’t have to be human, they just have to use the system in our diagram. This can be a little tricky, because it’s not always clear who interacts with the system and who doesn’t, so it’s key to have that established to avoid errors. An actor can be labeled as primary or secondary, the difference lies within how the actor “acts”. A primary actor will initiate the system, so for example, any user that uses an app is considered primary. Secondary actors react to what the primary actor is doing, and in our diagram, they are shown to the right of the system, while primary actors go to the start, or left part.
The third part of use cases is, well, they’re called use cases, which is a little redundant, but they are basically actions that our system makes to solve any given task. So for example, a weather app gives you the ability to check the weather depending on any given city. That is considered to be a use case. They’re the functionality within our system that makes our system useful to the user. You want to be very especific with your use cases, and want to place them in the logical order that one would typically follow.
Finally, we have relationships, which, as one might guess, define who interacts with who within our system. This final part is very important, as it gives sense to our system, and will make our idea very clear. Relationships usually go from an actor to a use case and vice versa.
So there you have it. Use cases are a very cool concept, and a very useful one when developing any system. They provide clarity when it can be hard to explain using just words, and defines the boundaries of a project and the relation it has within itself. I wanted to mention that I made this blog based on Lucidchart’s video on Youtube about use cases, which was very clean and easy to understand, so I will leave that link in here.
Main Image by Bethany Drouin from Pixabay
You can check out some of my latest work on my website: grupoargon.co
Peace!








