Hi
I've been following the discussion between Paolo and TrtnJohn and I kind of see where the principle lies, and just to be sure, I'm going to explain what I conclude to be the best practice for defining actors heirarchy:
The following diagram illustrates the latest heirarchy that I envisioned for my actors (which, afterall, may not be as optimal as I think):
The diagram completely illustrates the types of users who'll be intereacting with my system. In order to eliminiate any confusion of the naming, here's a breif explanation of each:
- Mobile Worker: Users of the handheld device
- Backend Worker: Users of the backend, server-side, web application.
- Client: Non-human actor. This "software" actor connects to our database through a web service in order to retreive data specific to a client of the field marketing company.
- System Administrator: A type of backend worker who has elevated privileges to modify system-wide settings
Now based on the discussion in this thread, I conclude that if any of the actors who descent from the
User actor do not define any additional attributes (i.e., details) besides the ones defined in the
User actor, then they are practically redundant.
But if I were to remove the redundant actors, then the use case diagrams, to say the least, will be kind of confusing as one won't know if the type of functionality being modelled is intended to be delivered on the handheld device or the backend application or the client data API.
Can you please shed some light on this specific example of mine.
Thanks!