Che cos'è un documento di controllo dell'interfaccia?
Un documento di controllo dell'interfaccia (ICD) è una descrizione formalizzata dei metodi e delle strutture coinvolti nel fornire input e ricevere output da un sistema specifico. Il sistema descritto dal documento di controllo dell'interfaccia può essere una libreria software o un componente hardware. Il documento non deve seguire un singolo formato ma può essere una raccolta di paragrafi, grafici o anche solo disegni tecnici dell'hardware dell'interfaccia. Quando si fa riferimento specificamente al software, un documento di controllo dell'interfaccia può assomigliare e rendere astratta l'interfaccia di programmazione (API), che descrive i metodi o le funzioni pubbliche che possono essere utilizzati per inserire informazioni nella libreria e descrive anche l'output che ne deriverà. Un documento di controllo dell'interfaccia generalmente descrive come integrare il sistema in un sistema più grande o come collegarlo a un sistema parallelo; non descrive alcun funzionamento interno del sistema, che potrebbe essere spiegato in un tipo separato di documento.
Lo scopo di un documento di controllo dell'interfaccia è fornire agli sviluppatori di hardware o software una documentazione che può essere utilizzata durante la creazione di un sistema o software che trasferirà i dati da e verso il sistema descritto dall'ICD. Questo di solito significa definire funzioni esatte o componenti hardware in modo che le loro firme siano note e che vengano fornite le tolleranze dei parametri per l'uso. Nell'ingegneria del software, ciò può significare conoscere il nome di una particolare funzione, quale tipo di variabili sono accettate come parametri e, possibilmente, quali limiti funzionali sono posti sui valori che vengono passati. Per un componente hardware, queste informazioni possono includere quali funzioni controllano i pin di un connettore seriale, eventuali interruzioni hardware utilizzate e la velocità di lavoro del dispositivo.
Una cosa che un documento di controllo dell'interfaccia non descrive in modo specifico è il modo in cui il sistema traduce l'input in output o come viene prodotto l'output, in generale. Ciò consente agli sviluppatori di avere una visione ristretta del sistema durante la creazione di un'interfaccia, ma richiede anche che gli sviluppatori del sistema che i dettagli dell'ICD aderiscano rigorosamente alle linee guida spiegate nel documento stesso. Una comodità per gli autori di un documento di controllo dell'interfaccia e per gli sviluppatori del sistema è che l'implementazione interna del sistema non è descritta nel documento e, quindi, può essere liberamente modificata senza influire sullo sviluppo esterno di interfacce basate sull'ICD.
In alcune situazioni, un documento di controllo dell'interfaccia può consentire il collaudo di sistemi senza dover effettivamente utilizzare un'interfaccia completa. Questo può essere fatto simulando i vari tipi di output che un sistema può generare come descritto nell'ICD e quindi passando quell'output attraverso l'interfaccia sviluppata esternamente. I sistemi che sono interessati solo alla gestione di un lato del sistema - come l'output, nel caso di hardware come un dispositivo di visualizzazione - possono garantire che l'interfaccia funzioni all'interno delle specifiche senza richiedere input nel mondo reale.