Hvad er et interfacekontroldokument?
Et grænsefladekontrolledokument (ICD) er en formaliseret beskrivelse af de metoder og strukturer, der er involveret i at levere input til og modtage output fra et specifikt system. Systemet, der er beskrevet af interfacekontroldokumentet, kan være et softwarebibliotek eller et stykke hardware. Dokumentet behøver ikke at følge et enkelt format, men kan være en samling af afsnit, diagrammer eller endda kun tekniske tegninger af interfacehardwaren. Når der specifikt henvises til software, kan et grænsefladekontrolledokument ligner en abstrakt programmeringsgrænseflade (API), der beskriver de offentlige metoder eller funktioner, der kan bruges til at indtaste oplysninger i biblioteket og også beskrive den output, der vil resultere. Et interfacekontroldokument beskriver generelt, hvordan man integrerer systemet i et større system eller tilslutter det til et parallelt system; det beskriver ikke nogen af systemets interne funktionsmåder, der muligvis er stavet i en separat type dokument.
Formålet med et grænsefladekontroldokument er at give udviklere af hardware eller software en vis dokumentation, der kan bruges, når man opretter et system eller software, der overfører data til og fra det system, ICD'en beskriver. Dette betyder normalt, at man definerer nøjagtige funktioner eller hardwarekomponenter på en sådan måde, at deres underskrifter er kendte, og tolerancerne for parametrene til brug er angivet. I software engineering kan dette betyde at man kender navnet på en bestemt funktion, hvilken type variabler der accepteres som parametre og muligvis hvilke funktionsgrænser der er placeret på de værdier, der er passeret. For et stykke hardware kan denne information omfatte, hvilke funktioner stifterne på en seriel konnektorkontrol, eventuelle hardwareafbrydelser, der bruges, og enhedens arbejdshastighed.
Én ting, som et interfacekontroldokument ikke specifikt beskriver, er, hvordan systemet oversætter input til output, eller hvordan output genereres generelt. Dette gør det muligt for udviklere at se et snævert fokuseret billede af systemet, når de opretter en grænseflade, men det kræver også, at udviklerne af systemet, som ICD-detaljerne overholder, strengt til de retningslinjer, der er beskrevet i selve dokumentet. En bekvemmelighed for forfatterne af et grænsefladekontroldokument og systemudviklerne er, at den interne implementering af systemet ikke er beskrevet i dokumentet og således kan ændres frit uden at påvirke den udvendige udvikling af grænseflader, der er afhængige af ICD.
I nogle situationer kan et grænsefladekontrolledokument give mulighed for testning af systemer uden faktisk at skulle bruge en afsluttet grænseflade. Dette kan gøres ved at simulere de forskellige typer output, som et system kan generere som beskrevet i ICD, og derefter sende dette output gennem det eksternt udviklede interface. Systemer, der kun er interesseret i at håndtere den ene side af systemet - f.eks. Output, i tilfælde af hardware såsom en displayenhed - kan sikre, at interface fungerer inden for specifikationer uden at kræve input fra den virkelige verden.