Designing a use case diagram, we face a challenge with three actors: Visitor, Client, and Administrator. Each has unique roles, but we must accurately capture their interactions and relationships. Specifically, the Client reserves parking spots, while the Administrator deletes them, and we need to differentiate these capabilities clearly while maintaining diagram clarity.
How can we effectively model these distinct functionalities and ensure a concise and understandable representation?
I attempted to model the interactions between three actors and their unique functionalities in a use case diagram. I expected to find a clear and concise way to represent their relationships and actions, specifically for reserving and deleting parking spots, while maintaining diagram simplicity.
This diagram looses conciseness because it is driven by the user interface and not by the actor's goals.
The fact that a client first looks for car places then sees the details, then reserve a place is a modelling of the user interface or the workflow. This is not the purpose of use-case diagrams, and could be modelled better with other techniques (e.g. activity diagram). use-cases should not have any sequential ordering, and «extend»
should not be used to represent that a functionality is called from another.
Moreover, generalisation should only be used when the specialised use-case could at any moment replace the more general one. It must not be used to decompose functionality into smaller pieces, as you did here.
Use-cases should focus on the key goals of the actors and the relationship between these goals, independently of the future implementation.