An actor is behaviored classifier which specifies a role played by an external entity that interacts with the subject (e.g., by exchanging signals and data), a human user of the designed system, some other system or hardware using services of the subject.
The term “role“ is used informally as some type, group or particular facet of users that require specific services from the subject modeled with associated use cases. When an external entity interacts with the subject, it plays the role of a specific actor. That single physical entity may play several different roles, and a specific role may be played by single or multiple different instances.
Since an actor is external to the subject, it is typically defined in the same classifier or package that incorporates the subject.
All actors must have names according to the assumed role. Examples of actor names (user roles):
- Customer
- Web Client
- Student
- Passenger
- Payment System
Standard UML notation for actor is “stick man“ icon with the name of the actor above or below of the icon. Actor names should follow the capitalization and punctuation guidelines for classes. The names of abstract actors should be shown in italics.
Student actor
Custom icons that convey the kind of actor may also be used to denote an actor, such as using a separate icon(s) for non-human actors.
Custom icon for Web Client actor
Custom icon for Bank actor
An actor may also be shown as a class rectangle with the standard keyword «actor», having usual notation for class compartments, if needed.
Customer actor as Class
An actor can only have binary associations to use cases, components, and classes.
Business Actor
A business actor (introduced in Rational Unified Process (RUP) to support business modeling) represents a role played by some person or system external to the modeled business and interacting with the business. Note, business actor is not defined in UML standard.
Some typical examples of business actors are:
- Customer
- Supplier
- Patron
- Passenger
- Authority
- Bank
Each business actor represents something outside of the modeled business and should be involved with at least one business use case.
Business actor is represented in RUP by “stick man“ icon with a line crossing its head.
Business actor Passenger
Relationships Between Actors
We can define abstract or concrete actors and specialize them using generalization relationship.
Generalization between actors is rendered as a solid directed line with a large arrowhead (same as for generalization between classes).
Web Client actor is abstract superclass for Administrator, Editor and Customer