3

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.

  • 3
  • When it comes to Use Cases, the trap to avoid is to fall into thinking that use case modeling is this strict, formal thing; it's not big up-front design. It's meant to be a lightweight way of capturing high-level requirements; a way to help you and your team wrap your head around what various stakeholders value about the system, so that you can start building it around those things. Take a look at this - there's a download link at the bottom - but don't focus on the process, but rather on the principles and big ideas. – Filip Milovanović Aug 13 at 10:34
  • P.S. The whitepaper is by Ivar Jacobson & co., and I don't think you can get a better source on the topic then this, because Ivar Jacobson basically invented use cases. – Filip Milovanović Aug 13 at 10:34
  • @FilipMilovanović Bittner/Spence about UCs is much better. My opinion. – qwerty_so Aug 13 at 13:22
  • @qwerty_so - I think it's ultimately too elaborate; it's some ~300 pages, and I'm not sure it needs to be. I like the Jacobson et al. whitepaper because it's fairly concise, and it (rightly) doesn't spend too much time overspecifying what use cases actually are and how they should look; instead, it puts the approach in context (tells you why bother with use cases at all, what's the goal, and how to apply the technique to build software incrementally). – Filip Milovanović Aug 13 at 17:01
3

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.

2

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

0

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.

New contributor
Daneesha is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.