In pratica
In pratica, un caso d'uso rappresenta un insieme di comportamenti di un sistema preso in considerazione e la relazione con gli attori coinvolti in quel contesto. Quindi in linea di principio sono attori esterni, umani o sistemi.
Le interazioni interne che si verificano all'interno del sistema sono in genere modellate con altre rappresentazioni, come un diagramma di sequenza , un diagramma di comunicazione o un diagramma di attività.
In teoria
Lo standard UML è più flessibile nelle sue specifiche:
When a use case applies to a subject, it specifies a set of behaviors
performed by that subject, which yields an observable result that is
of value for actors or other stakeholders of the subject.
Le parole in corsivo sono rifinite con le seguenti spiegazioni:
A subject of a use case could be a system or any other element
that may have behavior, such as a component or class.
An actor models a type of role played by an entity that
interacts with the subjects of its associated use cases (e.g., by
exchanging signals and data). Actors may represent roles played by
human users, external hardware, or other systems.
Si noti che la parola "può" deve essere intesa nel senso di RFC 2119 (cioè una possibilità, non una limitazione esauriente).
Quindi in teoria hai molto bene un diagramma del caso d'uso con il soggetto che è un componente del tuo sistema, e l'attore è un altro componente che interagisce con esso. Ci sono sempre pochissime situazioni in cui questa rappresentazione è preferita all'altro tipo di diagrammi comportamentali sopra menzionati. Potrebbe avere senso, ad esempio:
- se rappresenti un motore di gioco, che interagisce sia con i giocatori esterni che con i componenti interni che agiscono da giocatori e interagendo con il motore di gioco allo stesso modo di un giocatore umano.
- un sistema multi-agente composto da componenti "agenti" interagenti relativamente indipendenti, se si voleva dare un panoramica dell'intento degli agenti che interagiscono all'interno del sistema, prima di scavare in interazioni più precise.