Hva er et grensesnittkontrolldokument?
Et grensesnittkontrolldokument (ICD) er en formalisert beskrivelse av metodene og strukturene som er involvert i å gi innspill til og motta output fra et spesifikt system. Systemet som er beskrevet av grensesnittkontrolldokumentet kan være et programvarebibliotek eller en maskinvare. Dokumentet trenger ikke å følge et enkelt format, men kan være en samling av avsnitt, diagrammer eller til og med bare tekniske tegninger av grensesnittets maskinvare. Når det spesifikt refereres til programvare, kan et grensesnittkontrolldokument ligne og abstrakt programmeringsgrensesnitt (API), som beskriver de offentlige metodene eller funksjonene som kan brukes til å legge inn informasjon i biblioteket og også beskrive utdataene som vil resultere. Et grensesnittkontrolldokument beskriver generelt hvordan man integrerer systemet i et større system eller kobler det til et parallelt system; den beskriver ikke noen av de interne funksjonene i systemet, som kan skrives ut i en egen type dokument.
Hensikten med et grensesnittkontrolldokument er å gi utviklere av maskinvare eller programvare noe dokumentasjon som kan brukes når du oppretter et system eller programvare som skal overføre data til og fra systemet ICD beskriver. Dette betyr vanligvis å definere eksakte funksjoner eller maskinvarekomponenter på en måte som deres signaturer er kjent og toleransene for parametrene for bruk er gitt. I programvareteknikk kan dette bety å vite navnet på en bestemt funksjon, hvilken type variabler som aksepteres som parametere og eventuelt hvilke funksjonsgrenser som er plassert på verdiene som blir passert. For en maskinvare kan denne informasjonen omfatte hvilke funksjoner som pinnene på en seriell tilkoblingskontroll, eventuelle maskinvareavbrudd som brukes og arbeidshastigheten til enheten.
En ting et grensesnittkontrolldokument ikke spesifikt beskriver, er hvordan systemet oversetter input til output, eller hvordan output produseres generelt. Dette gjør det mulig for utviklere å se et smalt fokusert syn på systemet når de oppretter et grensesnitt, men det krever også at utviklerne av systemet som ICD-detaljene følger strengt etter retningslinjene som er beskrevet i selve dokumentet. En bekvemmelighet for forfatterne av et grensesnittkontrolldokument og utviklerne av systemet er at den interne implementeringen av systemet ikke er beskrevet i dokumentet, og dermed kan endres fritt uten å påvirke den ytre utviklingen av grensesnitt som er avhengige av ICD.
I noen situasjoner kan et grensesnittkontrolldokument muliggjøre testing av systemer uten å måtte bruke et fullført grensesnitt. Dette kan gjøres ved å simulere de forskjellige typer utdata som et system kan generere som beskrevet i ICD, og deretter sende den utdata gjennom det eksternt utviklede grensesnittet. Systemer som bare er interessert i å håndtere den ene siden av systemet - for eksempel utdata, i tilfelle maskinvare som for eksempel en skjermenhet - kan sikre at grensesnittet fungerer innenfor spesifikasjoner uten å kreve innspill fra den virkelige verden.