Software configuratiebeheer is in een commerciële context grotendeels synoniem met versiebeheer. In defensieprogramma's is versiebeheer slechts het minimale onderdeel van uw SCM-verplichtingen. De echte discipline omvat het formeel vastleggen van basislijnen, een functionerend wijzigingsbeheercomité (Change Control Board), gedocumenteerde engineering change proposals, configuratiestatus-rapportages en configuratieaudits die een vertegenwoordiger van de overheid moet kunnen bijwonen en verifiëren. Wie een van deze elementen mist, riskeert contractbevindingen, planningvertragingen bij systeemintegratie en mislukte audits die leveringen blokkeren. Deze handleiding behandelt elk element achtereenvolgens — wat het inhoudt, hoe het correct te implementeren en waar programma's doorgaans falen.
Wat configuratiebeheer betekent in defensieprogramma's
Configuratiebeheer in de defensiecontext is een managementdiscipline die is gedefinieerd door MIL-STD-973 en zijn civiele equivalenten (EIA-649, ISO 10007). Het omvat vier kernfuncties: configuratie-identificatie (wat zijn de beheerde items en hun attributen?), configuratiebeheersing (hoe worden wijzigingen beoordeeld en goedgekeurd?), configuratiestatusregistratie (wat is de huidige goedgekeurde status van elk item?) en configuratieverificatie en -audit (klopt het product met de goedgekeurde basislijn?).
De reikwijdte gaat ver voorbij broncode. Configuratie-items (CI's) van een defensiesysteem omvatten hardware-assemblages, printplaten, firmware-images, software-executables, technische handleidingen, testprocedures, interface control documents en zelfs ondersteunende uitrusting. Elk CI wordt formeel aangewezen met een unieke identificator, een verantwoordelijke engineeringsdiscipline en een gedocumenteerde ouder-kindrelatie binnen de CI-boom op systeemniveau. Het wijzigen van attributen van een CI — de prestatiespecificatie, de interfacedefinitie, het onderdeelnummer — activeert het configuratiebeheersingsproces.
Voor softwareteams is de praktische implicatie dat SCM niet uitsluitend eigendom is van de softwaregroep. De agile uitdagingen bij defensiesoftware die ontstaan door gelijktijdige hardware- en softwareontwikkeling zijn in de kern een configuratiebeheerprobleem: wanneer hardware-CI's hun interfacespecificaties wijzigen, moeten software-CI's hiervan op de hoogte worden gesteld via een formeel proces, niet via een informeel Slack-bericht. Het interface control document (ICD) is een beheerd item; wijzigingen daarin vereisen een goedgekeurd Engineering Change Proposal voordat enige implementatie begint.
Deze breedte is de reden waarom defensieprogramma's een speciaal Configuratiebeheer Kantoor (CMO) onderhouden, bemand door specialisten, in plaats van SCM-verantwoordelijkheden toe te wijzen aan een ontwikkelaar als een nevenfunctie. Het CMO beheert de Configuratiebeheerdatabase, bereidt het CCB voor en voorzit het, bewaakt alle open ECP's en bereidt configuratieaudits voor. In programma's met minder dan 50 personen kan het CMO uit één persoon bestaan — maar het moet een persoon zijn met toegewijde tijd, niet een commissie zonder duidelijke eigenaar.
Soorten basislijnen en hun levenscyclus
MIL-STD-973 definieert drie formele typen basislijnen die mijlpalen markeren in de levenscyclus van systeemontwikkeling. Elke basislijn is een beheerde momentopname van de goedgekeurde technische documentatie voor het systeem of een CI op een bepaald punt in het programma.
| Basislijn | Vastgesteld bij | Beheert | Kernddocumenten |
|---|---|---|---|
| Functionele basislijn (FBL) | Acceptatie PDR | Wat het systeem moet doen | SSS, Interface Requirements Specification |
| Toegewezen basislijn (ABL) | Acceptatie CDR | Aan elk CI toegewezen eisen | Software Requirements Specification, ICD's, ontwikkelspecificatie per CI |
| Productbasislijn (PBL) | Physical Configuration Audit | Het als-gebouwde product klaar voor levering | Bouwspecificatie, Software Version Description, BOM |
Functionele basislijn. De FBL wordt vastgesteld wanneer de overheid de functionele specificatie op systeemniveau accepteert bij de PDR. Ze legt vast wat het systeem moet doen — prestatie-, functionele en interface-eisen — zonder voor te schrijven hoe. Zodra de FBL is gesloten, vereisen wijzigingen daarin een ECP klasse I en instemming van de overheid. Softwareteams ondervinden FBL-wijzigingen het pijnlijkst tijdens Functional Configuration Audits, wanneer eisen waarvan ze nooit formeel op de hoogte zijn gesteld, op de auditlijst verschijnen.
Toegewezen basislijn. De ABL sluit bij de CDR en beheert hoe systeemeisen worden verdeeld over de CI's. De Software Requirements Specification (SRS) van elk software-CI herleidbaar naar de ABL. Als een systeemeis vervolgens wordt herverdeeld — stel dat een tijdsvereiste verschuift van een hardware-CI naar een software-CI — is die herverdeling een klasse I-wijziging die CCB-goedkeuring vereist en revisie van de SRS vóór het softwareteam ook maar één regel code wijzigt. Programma's die informele herverdeling toestaan via informele gesprekken, eindigen met een SRS die de werkelijke implementatie weerspiegelt in plaats van de goedgekeurde eisen, wat bij elke FCA mislukt.
Productbasislijn. De PBL is het hoogtepunt van het ontwikkelingsproces, vastgesteld nadat de Physical Configuration Audit bevestigt dat het geleverde product overeenkomt met de gedocumenteerde configuratie. De PBL omvat de bouwspecificatie (exacte bronversie, compiler, toolketen en bouwparameters die nodig zijn om het eindproduct te reproduceren), de Software Version Description en de als-gebouwde stuklijst. Zodra de PBL is vastgesteld, gaat het product over naar onderhoudsconfiguratiebeheersing — alle wijzigingen, hoe klein ook, vereisen formele ECP's via het CCB.
Structuur en werking van het wijzigingsbeheercomité
Het CCB is het besluitvormend orgaan dat voorgestelde wijzigingen aan beheerde basislijnen beoordeelt. Het is geen reviewraad of technische adviesgroep — het is een formele autoriteit met een gedocumenteerd charter, gedefinieerd lidmaatschap en bindende stemregels. Een CCB dat informeel opereert, dat besluiten neemt in ad-hoc e-mailthreads in plaats van in formele vergaderingen met vastgelegde notulen, is geen CCB in de zin van MIL-STD-973 en zal een overheidsaudit niet doorstaan.
Charter. Het CCB-charter is een beheerd document (zelf beheerd onder SCM) dat definieert: de bevoegdheid en reikwijdte van het CCB; vaste leden en plaatsvervangers; quorumvereisten (doorgaans een meerderheid van stemgerechtigde leden); stemregels voor routinewijzigingen, controversiële wijzigingen en noodprocedures; het ECP-indieningsformaat en de vereiste ondersteunende informatie; beslistermijnen (bijv. routinewijzigingen beslist binnen 10 werkdagen na indiening); en het escalatiepad wanneer het CCB geen besluit kan bereiken.
Samenstelling voor een middelgroot programma. Een CCB voor een defensie-softwareprogramma van 30–100 personen omvat doorgaans:
- Voorzitter: Hoofdingenieur of Programmamanager — beslissende stem, waarborgt naleving van het charter
- Secretaris: Configuratiebeheermedewerker — bereidt agenda's voor, legt notulen vast, beheert CMDB
- Stemgerechtigde leden: Leider systeemengineering, leider software, leider hardware, leider testen, ILS/logistiek vertegenwoordiger
- Niet-stemgerechtigde deelnemers: ECP-indiener, betrokken subsysteemleiders, kosten-/planningsanalist
- Overheidsvertegenwoordiger: COTR of PM — vereist voor klasse I-wijzigingen, kan aanwezig zijn of schriftelijke instemming verlenen
Vergadercadans. De meeste programma's houden wekelijkse CCB-vergaderingen voor routinewijzigingen, met een vaste agenda die omvat: status van eerder goedgekeurde ECP's; nieuwe ECP's ingediend sinds de laatste vergadering (korte eerste beoordeling); volledige presentaties en stemmen over ECP's die klaar zijn voor besluitvorming; en ratificatie van noodwijzigingen. Noodwijzigingen worden buiten de vergadering goedgekeurd door de CCB-voorzitter (en overheidsvertegenwoordiger voor klasse I) en geratificeerd op de eerstvolgende geplande CCB-vergadering — het ratificatierecord sluit de noodmachtiging af.
Notulen en registraties. Conceptnotulen moeten binnen 48 uur na de vergadering worden verspreid en binnen vijf werkdagen worden afgerond. Notulen leggen vast: aanwezigen, quorumstatus, beoordeelde ECP's met beslissing en stemtelling, actiepunten met eigenaren en vervaldatums, en eventuele afwijkende standpunten over controversiële besluiten. Notulen zijn beheerde documenten die worden opgeslagen in de CMDB. De consistentie van de CM-secretaris bij het opstellen en archiveren van notulen is een van de meest bepalende factoren voor de mate van voorbereiding van een programma op een configuratieaudit.
Engineering change proposals: klasse I versus klasse II
Een Engineering Change Proposal (ECP) is het formele middel voor het voorstellen, beoordelen en goedkeuren van wijzigingen aan een beheerde basislijn. Elke wijziging aan een configuratiebeheerst item die de FBL, ABL of PBL zou beïnvloeden, moet worden gedocumenteerd in een ECP vóór de implementatie begint — niet daarna.
Klasse I versus klasse II. Het onderscheid bepaalt wie de wijziging goedkeurt en hoeveel proces dit vereist:
- Klasse I: Beïnvloedt een formeel beheerde basislijn, een contractuele verbintenis, een goedgekeurde interface (ICD), een veiligheidskritische eis of de vorm/pasvorm/functie van een leverbaar item. Vereist CCB-goedkeuring plus instemming van de overheid. Implementatie is geblokkeerd totdat goedkeuring is verkregen. Typische voorbeelden: toevoegen van een nieuwe capability aan de SRS, wijzigen van een ICD-dataveld, aanpassen van een veiligheidseis, verwijderen van een testprocedure uit het goedgekeurde testplan.
- Klasse II: Interne technische wijziging die geen enkele beheerde basislijn, contractueel leverbaar of goedgekeurde interface beïnvloedt. Goedgekeurd door het interne CCB van de aannemer zonder betrokkenheid van de opdrachtgever. Vastgelegd voor audittrail maar niet onderworpen aan overheidsbeoordeling. Typische voorbeelden: refactoring van interne modulestructuur, wijzigen van een niet-interface datastructuur, bijwerken van interne coderingsnormen in een stijlgids die geen CDRL is.
De grens tussen klasse I en klasse II is een veelvoorkomende bron van meningsverschillen. Het CMP moet deze grens definiëren met uitgewerkte voorbeelden. Een veelvoorkomende valkuil is dat engineers zelfstandig besluiten dat hun wijziging klasse II is terwijl het klasse I betreft — het wijzigen van het interne gegevensformaat van een bericht dat een CI-grens overschrijdt, is een klasse I-wijziging, ook al lijkt de externe interface (het ICD) ongewijzigd, omdat het berichtformaat een impliciete interface is.
Impact assessment. Elk ECP vereist een gestructureerde impactbeoordeling voordat erover gestemd kan worden. De beoordeling omvat: technisch risico (wat kan er misgaan met de voorgestelde wijziging?); planningimpact (hoeveel dagen voegt dit toe aan de planning, inclusief testregressie?); kostenimpact (wat zijn de geschatte arbeids- en materiaalkosten?); veiligheidsimpact (beïnvloedt deze wijziging een veiligheidskritieke functie of aanname in de veiligheidsstudie?); en interfaceimpact (welke andere CI's moeten eventueel overeenkomstige wijzigingen aanbrengen?). Voor klasse I-wijzigingen wordt de impactbeoordeling gezamenlijk opgesteld door de initiërende engineer, de kosten-/planningsanalist en de systeemengineer. Voor wijzigingen met een veiligheidsimpact beoordeelt de veiligheidsingenieur de beoordeling en ondertekent deze vóór indiening bij het CCB.
De levenscyclus van een ECP: initiatiefnemer stelt ECP op → CM-secretaris kent nummer toe en registreert in CMDB → CCB beoordeelt tijdens vergadering → CCB stemt (goedkeuren / afwijzen / uitstellen) → overheidsinstemming verkregen voor klasse I → ECP-status bijgewerkt naar 'Goedgekeurd voor implementatie' in CMDB → engineer implementeert wijziging → versiebeheertoewijzing gelabeld met ECP-nummer → testbewijs gekoppeld aan ECP in CMDB → ECP gesloten. Deze volledige audittrail — van initiëring tot implementatie en testbewijs — is wat overheidsauditors zoeken tijdens FCA en PCA. Zie ook onze handleiding over SBOM-handhaving in defensie-pipelines, die raakvlakken heeft met ECP-beheer voor wijzigingen in de softwaretoeleveringsketen.
Toolchain voor software configuratiebeheer
De SCM-toolchain voor een defensieprogramma moet voldoen aan drie beperkingen die niet gelden in commerciële ontwikkeling: de tools moeten goedkeurbaar zijn onder de Authority to Operate (ATO) van het programma; ze moeten de formele herleidbaarheid ondersteunen die vereist is door MIL-STD-973 en eventuele toepasselijke luchtwaardigheidsstandaarden; en — voor de meeste defensieprogramma's — ze moeten werken in een air-gapped of gedeeltelijk air-gapped netwerkomgeving.
Versiebeheer. Git is de de facto standaard in niet-geclassificeerde en geclassificeerde defensieprogramma's. Voor geclassificeerde programma's worden zelfgehoste Git-servers (GitLab Self-Managed, Bitbucket Data Center of Gitea) ingezet binnen de geaccrediteerde enclave. Branch protection-regels handhaven reviewvereisten; ondertekende commits bieden onweerlegbaarheid voor de audittrail. Conventies voor repository- en branchnamen moeten zijn gedocumenteerd in het CMP en worden afgedwongen via server-side hooks. Voor programma's met DO-178C-verplichtingen is het versiebeheersysteem een kandidaat voor Tool Qualification — het TQP moet de specifieke serverversie, configuratie en de baselinelabeloperatie omvatten die de Software Version Description voedt. Voor de bredere context van het uitvoeren van CI/CD in deze omgevingen, zie ons artikel over CI/CD voor air-gapped defensie.
Eisbeheer. IBM Engineering Requirements Management DOORS (klassiek en Next Generation) blijft het meest gebruikte eisbeheer-instrument in defensieprogramma's, met name die welke worden bestuurd door MIL-STD-973 en DO-178C. Jama Software en PTC Windchill Requirements zijn veelgebruikte alternatieven. Het eisbeheer-instrument moet bidirectionele herleidbaarheid ondersteunen (eis → testgeval → testresultaat) en moet de herleidbaarheidmatrixartefacten kunnen genereren die door het SDP/SCMP worden vereist als CDRL's. Het instrument zelf moet worden gebruikt onder configuratiebeheersing: de eisendatabase is een configuratie-item, wijzigingen in het instrument zijn beheerst en de uitvoer van het instrument moet reproduceerbaar zijn vanuit een gelabelde basislijn.
Configuratiebeheerdatabase. De CMDB bewaakt CI-status, basislijngekoppelingen, ECP-registraties, waiver/deviatie-records en configuratiestatusgegevens. In grote programma's is de CMDB vaak IBM Engineering Lifecycle Management (ELM) of een geconfigureerde Jira-instantie met een CM-plugin. Kleinere programma's gebruiken soms een gedisciplineerde combinatie van Confluence en Jira. Ongeacht de keuze moet de CMDB binnen de geaccrediteerde grens vallen, toegangscontroles hebben die ongeautoriseerde wijziging van goedgekeurde records voorkomen en het periodieke Configuratiestatus-rapport genereren dat een CDRL is in de meeste programma's.
Air-gapped SCM-serveropstelling. De zelfgehoste Git-server en CMDB worden geïmplementeerd op STIG-geharde RHEL-instanties binnen de geclassificeerde enclave. Geen verbinding met openbare repository-hostingdiensten. Pakketupdates voor de serversoftware volgen de mediaoverdrachtprocedure van het programma. De TLS-certificaten van de server worden uitgegeven door de interne PKI van het programma. Back-ups worden opgeslagen in de enclave met behulp van versleutelde opslag met gedocumenteerde herstelprocedures. Toegang tot de versiebeheersserver wordt geregeld door de toegangscontrolelijst van het programma, met rolgebaseerde machtigingen die lees-, schrijf- en beheertoegang scheiden.
Configuratieaudits: FCA en PCA
Configuratieaudits zijn formele beoordelingen die worden uitgevoerd door of met overheidsdeelname om te verifiëren dat een CI of systeem voldoet aan zijn gespecificeerde eisen (FCA) en dat het product nauwkeurig is gedocumenteerd (PCA). Het zijn geen optionele controlepunten — het zijn contractmijlpalen die leveringen en betalingen gatebepaald reguleren.
Functional Configuration Audit (FCA). De FCA verifieert dat het software-CI heeft voldaan aan al zijn toegewezen eisen. Het overheidsauditteam beoordeelt: de goedgekeurde SRS (ABL-document) met alle eisen; de testprocedures die elke eis testen; de testresultaten die succesvolle uitvoering aantonen; de herleidbaarheidmatrix die eisen koppelt aan tests en resultaten; en de open discrepantierapportage met alle bekende afwijkingen en hun oplossingstatus. Een veelvoorkomende auditbevinding zijn eisen zonder bijbehorende test — 'weeseisen' die engineeringteams van plan waren te testen maar nooit formeel hebben gedekt. Even gebruikelijk zijn testprocedures die beweren een eis te satisfiëren maar in werkelijkheid iets aangrenzends testen — auditors lezen testprocedures letterlijk af tegen de eistekst. FCA-voorbereiding vereist het genereren van de herleidbaarheidmatrix vanuit het eisbeheertool 60+ dagen van tevoren, het beoordelen op hiaten en het sluiten of documenteren van die hiaten vóór de audit.
Physical Configuration Audit (PCA). De PCA verifieert dat het te leveren of te veldimplementeren product exact overeenkomt met de gedocumenteerde configuratie. De kerndemonstratie is bouwreproduceerbaarheid: de aannemer moet aantonen dat hij, uitgaande van de beheerde bronbasislijn die is geïdentificeerd in de Software Version Description, een binair bestand kan reproduceren dat byte-voor-byte identiek is aan het leverbaar. Dit vereist een complete bouwomgevingsspecificatie — niet alleen de compilerversie, maar elk hulpmiddel in de bouwketen, elke bouwvlag, elke omgevingsvariabele die de uitvoer beïnvloedt. Programma's die gebruik maken van niet-gedocumenteerde bouwomgevingsafhankelijkheden ontdekken dit probleem bij de PCA; de oplossing is het bijhouden van de bouwomgeving als een configuratiebeheerste containerimage waarvan de exacte inhoud deel uitmaakt van de PBL-documentatie.
# Build environment specification — PBL artifact
build_environment:
base_image: rhel9.4-build:2026.06.15
compiler: gcc-13.3.1
linker: binutils-2.41
make: gnu-make-4.4.1
java: openjdk-21.0.3
maven: apache-maven-3.9.8
flags:
CFLAGS: "-O2 -fstack-protector-strong -D_FORTIFY_SOURCE=2"
LDFLAGS: "-Wl,-z,relro,-z,now"
# Baseline label (tagged in version control)
source_baseline: csci-001-v3.2.1
svd_revision: D
# Verification hash (SHA-256 of deliverable binary)
deliverable_hash: e3b4c7a1f9d25843...
Controlelijst voor PCA-voorbereiding: bevestig dat de versiebeheertag die overeenkomt met de SVD bestaat en is ondertekend; genereer de stuklijst vanuit de CMDB en vergelijk deze met het werkelijke pakket in de bouwomgeving; verifieer dat alle goedgekeurde waivers en deviaties zijn gedocumenteerd en ondertekend; en bevestig dat de openstaande-itemlijst overeenkomt met de sectie bekende afwijkingen van de SVD. Elke discrepantie tussen het CMDB-record en het fysieke product is een auditbevinding die moet worden opgelost voordat de PCA kan worden gesloten.
Integratie van MIL-STD-973 en DO-178C
Programma's die luchtvaartsoftware produceren, moeten voldoen aan zowel MIL-STD-973 (de SCM-standaard voor defensieaanschaffing) als DO-178C sectie 7 (Software Configuration Management voor certificering van luchtvaartsoftware). De twee zijn complementair maar hebben duidelijk verschillende accenten en leverbare producten.
Configuration Management Plan versus Software Configuration Management Plan. MIL-STD-973 vereist een CMP op systeemniveau als CDRL. DO-178C vereist een apart Software Configuration Management Plan (SCMP) als Software Life Cycle Data-item. Het SCMP moet beschrijven hoe alle Software Life Cycle Data (SLCD) onder configuratiebeheersing wordt geplaatst, hoe wijzigingen worden beheerd, hoe basislijnen worden vastgesteld en hoe het probleemrapportage- en wijzigingsbeheerproces werkt. Het SCMP wordt beoordeeld door de DER (Designated Engineering Representative) of de certificeringsautoriteit als onderdeel van de softwareplanningsbeoordeling. Het CMP op systeemniveau en het SCMP moeten consistent en kruisreferentieel zijn, maar het zijn afzonderlijke documenten voor afzonderlijke doelgroepen.
CDRL's voor configuratiebeheer. Een typisch set van CM-gerelateerde CDRL's voor een defensieprogramma omvat:
- DI-CMAN-80858A — Configuration Management Plan: Hoofddocument voor het SCM-proces
- DI-CMAN-81259 — Configuration Status Accounting Report: Periodieke CI-statussamenvatting
- DI-CMAN-81000 — Engineering Change Proposal: Leverbaar per wijziging
- DI-MCCR-80013A — Software Version Description: Leverbaar per release
- DI-CMAN-81121 — Interface Control Document: Leverbaar per interface
Tool qualification voor SCM-tools. DO-178C en de begeleidende standaard DO-330 vereisen dat Development Tools — tools waarvan de uitvoer deel uitmaakt van de luchtvaartsoftware of waarvan het falen ondetecteerbare fouten kan introduceren — worden gekwalificeerd. Een versiebeheersysteem waarvan de gelabelde basislijn de SVD-levering voedt, is een kandidaat voor TD3-kwalificatie onder DO-330. Kwalificatie-bewijs omvat Tool Operational Requirements (TOR), een Tool Qualification Plan, testregistraties die aantonen dat het instrument binaire inhoud correct opslaat en ophaalt, en een probleemrapportageproces voor het instrument zelf. Programma's ontdekken deze vereiste laat, nadat ze hun versiebeheersysteem al hebben geselecteerd en ingezet, omdat de DO-178C-vereiste vaak wordt gelezen als uitsluitend van toepassing op compilers en codegeneratoren. Het starten van het Tool Qualification Plan voor het SCM-instrument tegelijk met het SCMP — tijdens softwareplanning — voorkomt de versnelde kwalificatiepoging op het laatste moment die certificering vertraagt.
Probleemrapportage en wijzigingsbeheer. DO-178C sectie 7.3 vereist een gedocumenteerd probleemrapportageproces voor alle Software Life Cycle Data onder CM-beheer. Elke afwijking — niet alleen codefouten, maar ook fouten in eisen, testprocedures, ontwerpdocumenten en analyserapporten — moet worden ingevoerd in het probleemrapportagesysteem en worden gevolgd tot afsluiting. De probleemrapportagegegevens voeden de FCA (met openstaande afwijkingen en hun afhandeling) en de PCA (ter bevestiging dat de bekende afwijkingenlijst in de SVD nauwkeurig en volledig is). Het integreren van het probleemrapportagesysteem met de ECP-workflow zorgt ervoor dat problemen die een basislijnwijziging vereisen automatisch een ECP genereren, in plaats van in een afzonderlijk foutregistratiesysteem te blijven leven dat auditors niet kunnen correleren aan de beheerde basislijn.
Programma's die investeren in deze integratie — een eisbeheer-instrument dat herleidbaarheid doorgeeft aan een testbeheertool, die resultaten doorgeeft aan een CMDB die gekoppeld is aan de ECP-workflow — hebben aantoonbaar kortere FCA- en PCA-cycli en minder post-auditbevindingen dan programma's die deze registraties bijhouden in losgekoppelde spreadsheets. De investering is aanzienlijk, maar het alternatief — het reconstrueren van auditbewijs onder tijdsdruk terwijl overheidsvertegenwoordigers wachten — is kostbaarder en schaadt de programmaverhoudingen meer.