In UML, "use cases" captures requirements (problem) and "class diagram" captures implementation details(solution). Actors are roles who interact with the system you are implementing.
For instance, let's consider the following requirements for a drone delivery system:
DroneDelvry, Inc. is starting a drone delivery service. The company manages a fleet of drone aircraft.
- users can request a drone to pick up items for delivery.
- When a customer schedules a pickup, a backend system assigns a drone and sends the user an estimated delivery time.
- While the delivery is in progress, the customer can track the drone's location, with a continuously updated ETA(Expected Time of Arrival).
Some of the use cases for the "customer" are:
- manage customers accounts (register, update etc.)
- handle delivery(pickup, notifications, etc.)
- track delivery status
- manage deliveries history (for a customer)
Here the "customer" is the Actor
Some of the classes can be defined based on these use cases:
- customer (captures "customer" related details like address, registration details etc.)
- deliveryPickup (delivery pickup request)
- deliveryActive (active deliveries)
- deliveryHistory (deliveries history)
- deliveryPackage (delivery Package details)
- deliveryNotify (notify delivery status to the customer)
In this case, the actor "customer" is used as a class name in the class diagram.
Also attributes and methods can be added to these classes. For example:
deliveryPickup
- pickup //pickup request
- status //pickup done or not
deliveryActive
- pickupDateTime
- status //delivered or not