Linea guida: Interfaccia
Le interfacce vengono utilizzate per rappresentare la visualizzazione utente di un sistema e nasconderne l'implementazione. Questa linea guida propone una serie di regole per gestire la specifica delle interfacce.
Relazioni
Descrizione principale

Denominazione delle interfacce Inizio pagina

  • Assegnare un nome all'interfaccia per riflettere il ruolo che ricopre nel sistema.
  • Il nome deve essere breve, di 1-2 parole.
  • Il nome non deve comprendere la parola "interface"; è implicito nel tipo di elemento di modello (ad esempio interface)

Descrizione delle interfacce Inizio pagina

  • La descrizione deve comunicare le responsabilità dell'interfaccia.
  • La descrizione deve contenere alcune frasi, fino a creare un breve paragrafo.
  • La descrizione non deve semplicemente ribadire il nome dell'interfaccia, ma deve anche far emergere il ruolo rivestito dall'interfaccia del sistema.

Definizione di operazioni Inizio pagina

  • I nomi delle operazioni devono riflettere il risultato dell'operazione.
  • Quando un'operazione imposta oppure ottiene informazioni, è superfluo specificare set oppure get nel nome dell'operazione. Assegnare all'operazione lo stesso nome della proprietà dell'elemento del modello che viene impostato o richiamato. Un'operazione così chiamata, senza parametri, richiama la proprietà; un'operazione così chiamata con un parametro imposta la proprietà.

Esempio

name() restituisce il nome dell'oggetto; name(aString) imposta il nome dell'oggetto su aString.

  • La descrizione dell'operazione deve descrivere cosa fa l'operazione, compreso qualsiasi algoritmo di chiavi, e quale valore viene restituito.
  • Assegnare un nome di parametri dell'operazione per indicare quali informazioni vengono passate all'operazione.
  • Identificare il tipo del parametro.

Documentazione delle interfacce Inizio pagina

Il comportamento definito dall'interfaccia viene specificato come un insieme di operazioni. Potrebbe essere necessario fornire ulteriori informazioni:

  • Il modo in cui vengono utilizzate le operazioni, e l'ordine in cui vengono effettuate (illustrate dai diagrammi di sequenza di esempio).
  • Le operazioni, che possono essere osservate dall'esterno, dichiarano un elemento di modello che realizza che l'interfaccia potrebbe essere inclusa (illustrato da una macchina di stato, consultare Linea guida: Diagramma di stato).
  • Piani e script di test che verificano il comportamento di tutti gli elementi di modello che realizza l'interfaccia.

Per raggruppare e gestire queste informazioni, occorre creare n pacchetto per contenere l'interfaccia e tutti i prodotti di lavoro correlati.

Suggerimenti Inizio pagina

Ciascuna interfaccia rappresenta un "punto di unione" nel sistema; un posto in cui il sistema può essere "messo da parte", ed essere ricreato e riprogettato. Le interfacce rappresentano la separazione della specifica dalla progettazione o implementazione. Interfacce strutturate in modo corretto:

  • sono semplici ma complete, fornendo tutte le operazioni necessarie, sufficienti a specificare un singolo servizio
  • sono comprensibili, fornendo sufficienti informazioni per utilizzare e realizzare l'interfacce senza dover esaminare un utilizzo o un'implementazione esistente
  • sono accessibili, fornendo informazioni che conducono l'utente alle proprietà chiave senza essere sopraffatti dai dettagli delle operazioni

Quando si disegna un'interfaccia:

  • utilizzare la notazione "lollipop" ogni qualvolta occorre specificare semplicemente la presenza di un punto di unione nel sistema. Molto spesso ciò è necessario per i sottosistemi ma non per le classi.
  • Utilizzare la notazione di "classe" estesa quando occorre presentare i dettagli del servizio stesso. Molto spesso ciò è necessario per specificare i servizi offerti da un pacchetto o un sottosistema.