Skip to main content

Actor in Use Case diagram [Resolved]

I am learning about Use Case diagrams and UML. In a Use Case can actors be an external 3rd party system?

For example, in an ATM a user is an actor, but the SWIFT network system it communicates with is an external system.

I cannot think of a better example, sorry.

Question Credit: plagiarism
Question Reference
Asked August 24, 2019
Tags: , use-case
Posted Under: Programming
3 Answers

Yes, actors CAN be human users or external systems.

But not all the external systems SHOULD be actors. In this regard, it's worth to quote a (non binding) note of the UML standard:

An Actor does not necessarily represent a specific physical entity but instead a particular role of some entity that is relevant to the specification of its associated UseCases.

In plain text this means that in your example, SWIFT could be a good candidate for an actor: the ATM has to interact with SWIFT to ensure the money is withdrawn from the holder's bank. This interaction would most probably be mentioned in the use case requirements (regardless of how the ATM software would be implemented).

In reality, SWIFT is only a network used to reach the cardholder's bank. So IMHO, this secondary actor should better be called Cardholder's bank instead of SWIFT for a higher accuracy and a more general solution.

For the sake of completeness, let's take another example: a third party DBMS could also be considered as an external system. But this one should in principle not be considered as an actor, if the DBMS is a design decision that is not relevant for the use case (i.e. it would not add any observable result of value for the stakeholders of the system under consideration). So an external system can also be an implementation detail left out of the UC diagram.

credit: Christophe
Answered August 24, 2019

Yes, actors do not have to be human. External systems are perfectly valid as actors, if your system interacts with that external system.

credit: Tali
Answered August 24, 2019

Yes, an external third party system can be an actor. It depends on what role the system plays and how it is related to the use case.

If the system is performing some function similar to that of an external entity, if it's just an observer and not inclusive of the use case, if it's an entity that interacts with the use case then it is an actor.

What I'm trying to say is that if it can be separated out and interacts with the use case then it is an actor.

credit: Daneesha
Answered August 24, 2019
Your Answer