Let's image a new simple CRM, where...
These requirements relate to systems and external systems, and I have some doubts about whether these qualify as actor or not:
1st possible use-case diagram:
2nd possible use-case diagram:
My question about the borderline between system and actor can be decomposed as follows:
I believe, that the 1st diagram is wrong, because the system shouldn't be an actor. And it should look like the 2nd diagram. Correct?
The use cases "validate data" and "create new cases" will include in the scenario only steps made by the system (System validates number of columns;System validates data types;System validates mandatory values...). The system shouldn't be an "actor entity", however it's not against the rules to have a uc where the system is the only acting part, right? It's just important, that the uc has a relationship to some another uc which is really valuable for some actor. Correct?
Is it correct to show "external system A" as an actor? Executing the usecase should bring a value to the actor... I am not sure, whether system A makes happy to upload the data :) however systems may have a different point of view on what is a "value"
Thank you for your advices!
Actors are always external to the system:
The system under consideration can never be an actor. When having the system as actor candidate, it often means that the corresponding use-case is not a use-case but some internal details.
Other systems can be actors, if they are independent of the system under consideration and have some autonomy in this regard.
An immediate conclusion, is that the first diagram is incorrect, but the second might provide irrelevant details instead of true use cases. More specifically:
Correct, as explained above
More or less correct: but a system feature that is of no use to anybody, and nobody cares, does not provide observable results valued by actors or stakeholders. It hence does not qualify as use-case. Instead of "upload data" (what the system has to do), think of it in terms of objective for the users (what is the user's objective, e.g. "Obtain information about ...."
It depends. The key questions are: "is it independent and autonomous?" (if it's an upload script written to feed the system, it's not really independent), and "do the users care?" (for example, because the external system offers a service that contributes to use-case adding some business value).