Een veelbelovende Nederlandse technologie om softwarecomponenten naadloos op elkaar aan te sluiten, wordt opensource. Philips en TNO-ESI, een onderzoeksgroep die zich richt op embedded systems, zijn dit overeengekomen.
De partijen gaan de broncode van de softwaretool Comma (Component Modellering en Analyse) die fouten bij de koppeling van componenten voorkomt, vrij beschikbaar stellen. Comma wordt binnenkort ‘geschonken’ aan de Eclipse Foundation, een wereldwijde gemeenschap voor samenwerking en innovatie op gebied van opensourcesoftware. Momenteel is de tooling beschikbaar via een licentieovereenkomst.
Volgens Jozef Hooman, senior onderzoeker bij ESI (Embedded Systems Innovation, onderdeel van TNO) en hoogleraar aan de Radboud Universiteit Nijmegen, krijgt de Comma-tool als opensourcesoftware een groter bereik, wat goed is voor de industrie. Grote behoefte bestaat aan naadloze koppeling van componenten door goed gespecificeerde software-interfaces. De software in industriële systemen neemt in complexiteit namelijk toe.
Timing
In Comma zijn de interfaces van een component te formuleren, inclusief relaties daartussen en eisen aan de timing. Elke interface wordt beschreven door de berichten die uitgewisseld worden, een toestandsmachine die de toegestane interacties en eventuele timing specificeert. Vanuit een Comma-specificatie kunnen verschillende zaken worden gegenereerd, zoals code voor interactie technologie (middleware), documentatie, monitoring en testen.
Jozef Hooman: ‘Comma specificeert de interactie van een softwarecomponent met zijn omgeving als een soort contract. Je benoemt de interactie en de timing. Het is net als het kopen van een auto. Je maakt afspraken over de aflevering van de auto, de betaling, de volgorde van die acties en de levertijd. Zo’n contract is essentieel om softwarecomponenten goed te kunnen laten samenwerken. Met Comma leggen we dit formeel vast en genereren we ook de mogelijkheden om te testen en te monitoren of een component het contract nakomt. Bij Philips is Comma geïntegreerd in het softwareontwikkelingsproces.’