Nel modellamento UML, le interfacce sono elementi di modello che definiscono serie di
operazioni che altri elementi, ad esempio le classi, o componenti devono implementare. Un elemento del modello di implementazione
realizza un'interfaccia sostituendo ogni operazione dichiarata dall'interfaccia.
È possibile utilizzare le interfacce nei diagrammi di classe e di componente
per specificare un accordo tra l'interfaccia e il classificatore che la realizza.
Ogni interfaccia
specifica una serie ben definita di operazioni con visibilità pubblica. Le firme dell'operazione indicano ai classificatori di implementazione
il tipo di funzionalità da richiamare, ma non come eseguire tale operazione.
Diversi classificatori possono implementare una singola interfaccia, ognuno fornendo un'implementazione
univoca.
Le interfacce supportano la non visualizzazione di informazioni e la protezione del codice client
tramite dichiarazione pubblica di determinati servizi e funzionalità. Le classi o i componenti che realizzano
le interfacce implementando tale funzionalità semplificano lo sviluppo di applicazioni, perché
gli sviluppatori che scrivono il codice client devono conoscere solo le interfacce e non i dettagli
dell'implementazione. Se si sostituiscono le classi o i componenti che implementano le interfacce,
nel modello non è necessario progettare di nuovo l'applicazione se i nuovi elementi di modello
implementano le stesse interfacce.
È
possibile specificare i seguenti tipi di interfacce:
- Interfacce fornite: tali interfacce descrivono i servizi forniti dalle istanze di un classificatore
(fornitore) ai propri client
- Interfacce richieste: tali interfacce specificano i servizi necessari per consentire
a un classificatore di eseguire le proprie funzioni e di soddisfare le esigenze dei client.
Generalmente un'interfaccia ha un nome che ne riflette il ruolo all'interno di un'applicazione. Una convenzione comune consiste nell'anteporre al nome
dell'interfaccia una barra per indicare che tale interfaccia è un elemento del modello.
Come viene illustrato nelle seguenti figure, l'editor del diagramma visualizza un'interfaccia
nei modi seguenti:
- Simbolo di rettangolo della classe, che contiene la parola chiave «interface». Tale annotazione
viene chiamata anche vista di classe o interna.

Utilizzare la forma della classe per modellare i dettagli
dell'interfaccia. Le aree nella forma della classe visualizzano informazioni su attributi, operazioni
e ricezioni di segnali dell'interfaccia.
- Annotazione di sfera e socket, in cui la dipendenza di implementazione da un classificatore
all'interfaccia fornita viene visualizzata come cerchio (sfera) e la dipendenza di utilizzo da un
classificatore all'interfaccia richiesta viene visualizzata come semicerchio (socket). Tale annotazione
viene chiamata anche vista esterna.
| Interfaccia fornita (forma di cerchio) |
Interfaccia richiesta (forma di socket) |
 |
 |
Utilizzare l'annotazione della sfera e del socket, nota anche come annotazione
lollypop, per indicare unicamente che le interfacce fornite e richieste siano presenti.