Published: 21 March 2014
I've never been a fan of Use Case Diagrams. I always thought they were an example of forcing information into diagram form that is better captured in a simpler structure, just because someone thinks diagrams are always easier to understand. Or because the folks behind UML thought they had to have a diagram for every possible need, no matter that putting some information in diagram form actually makes some things harder to understand.
For systems with lots of functionality and dependent use cases, a Use Case Diagram can be practically un-usable. Especially once you start having a lot of
Includes in the diagram. Luckily, most of the Use Case Diagrams I have seen don't have many actual use cases in them, and have few or no
Includes. For the simple systems, a Use Case Diagram isn't that bad.
But in the end, I think they are a bit of overkill when you balance the usefulness of the results versus the amount of effort. You need diagramming software of some sort at a minimum, and I think there are simpler options.
Take the Use Case Diagram below, which comes from the Use Case Diagram page in this site's wiki:
If you find that easy to understand, you're far better at interpreting and assimilating visual information than I am.
Instead of Use Case Diagrams, I usually put the same type of information in table form. It's intuitive for almost anyone. It's easy to see what actors interact with what use cases, without having to follow lines that may run all over the place. For your Extensions and Includes / Uses, you can add them under the main Use Case name like the table below or you can even create a table with just the use cases and use a
E instead of the
X I used below, with
I's for Includes and
E's for Extends.
For me at least, tables are faster to create, easier for the people I work with to understand, and let you leverage things like Excel's Filter feature to look at specific actors or Use Cases in isolation.
So what do you think? Do you actually work with Use Case Diagrams frequently? Do you find them particularly useful? Or maybe you are like me and use something else for documenting the same information? If so, care to share what you use?