Marcel Verhoef werkt als software-engineer bij het European Space Research and Technology Centre (Estec) van de Europese ruimtevaartorganisatie Esa in Noordwijk.

24 February 2017

De Europese ruimtevaartorganisatie Esa spant zich op verschillende vlakken in om de softwareontwikkeling voor spacetoepassingen naar een hoger plan te tillen. Marcel Verhoef licht er een paar belangrijke initiatieven uit.

De Europese ruimtevaartorganisatie Esa is verantwoordelijk voor de ontwikkeling en operatie van een groot aantal satelliet- en lanceersystemen. Deze voeren een veelheid aan taken uit: wetenschappelijk onderzoek, aardobservatie, navigatie, telecommunicatie en bemande ruimtevaart. Software speelt een belangrijke rol in al deze toepassingsgebieden, want computers worden gebruikt voor bijna alle kritieke deelsystemen aan boord, zoals standregeling, warmtehuishouding, informatie- en integriteitsmanagement.

De complexiteit van de software komt deels voort uit de intrinsieke complexiteit van de missie zelf, maar deels ook uit de extreme omstandigheden waaronder het systeem langdurig zijn taak moet uitvoeren, soms meerdere decennia lang. De eisen aan betrouwbaarheid en fouttolerantie zijn daarom enorm hoog en in belangrijke mate bepalend voor het ontwerp- en validatieproces. De doorlooptijd van idee tot lancering ligt gemiddeld tussen de vijf en tien jaar.

ECSS overview
Software komt aan bod in de onderdelen E-40 en Q-80 van de ECSS.

ECSS

Satellietsystemen worden continu vanaf aarde bewaakt en bestuurd, bijvoorbeeld vanuit het Esa-commandocentrum Esoc in het Duitse Darmstadt. De kunstmanen zijn echter niet altijd zichtbaar of de afstand naar de aarde zorgt voor een vertraging in de bediening, waardoor een bepaalde mate van autonomie aan boord vereist is in geval van calamiteiten. Een belangrijke taak van de software is dan ook om continu het integriteitsniveau van alle deelsystemen te bepalen en te bewaken, om zodoende de operators alle informatie te geven die zij nodig hebben om het maximale rendement uit het systeem te halen, ook wanneer sommige onderdelen niet beschikbaar zijn.

Deze robuustheid tegen verstoringen is een belangrijke intrinsieke ontwerpeis die ertoe moet bijdragen dat de systeembetrouwbaarheid hoog genoeg is om de doelstellingen van de missie met een grote mate van zekerheid te realiseren. Esa formuleert de systeemeisen, de Europese industrie ontwikkelt en test de software. Samen hebben zij een zeer uitgebreide set van systeemengineeringstandaarden afgesproken in de European Cooperation for Space Standards (ECSS). De ECSS dekt alle management-, ontwerp- en kwaliteitsaspecten af.

Software is een van de deelaspecten die aan bod komt, en wel in ECSS-E-ST-40C (Space Engineering – Software), ECSS-Q-ST-80C (Space Software – Quality Assurance), ECSS-E-HB-40A (Software Engineering Handbook) en ECSS-Q-HB-80-03A (Software Dependability and Safety). Deze standaarden beschrijven het volledige software-engineeringproces, inclusief alle te verrichten verificatie- en validatieactiviteiten om de goede werking van het totale systeem aan te tonen. Gedurende de ontwikkeling wordt de voortgang bewaakt door middel van reviews, die de resultaten van alle activiteiten inhoudelijk beoordelen op volledigheid en juistheid.

Taste_screenshot_01

Savoir

Ook de ruimtevaartsector volgt de trend naar sneller, beter en goedkoper. Budgetten krimpen, doorlooptijden moeten korter, maar ondertussen neemt de systeemcomplexiteit toe. Dit zet de ontwikkelprocessen onder grote druk, en dan met name de test- en integratieactiviteiten, want de kwaliteit mag er niet onder lijden. De grote Europese systeemintegratoren spelen hier onder meer op in door reeds gekwalificeerde bestaande systemen (flight heritage) te hergebruiken (en aan te passen). Maar voor de volgende generatie ruimtemissies, zoals formatievliegen en robots, biedt dit onvoldoende mogelijkheden. Bovendien groeit de markt doordat nieuwe landen toetreden tot Esa. Als gevolg hiervan neemt ook het aantal toeleveranciers per missie toe en is er veel meer coördinatie vereist.

Esa ondersteunt Europese ruimtevaartinnovatie middels r&d-programma’s. Model-based software and systems engineering is daarin een aandachtsgebied, met als doelstelling om de toegenomen druk op de time-to-market het hoofd te bieden door de kwaliteit van de artefacten uit de vroege ontwikkelfase te verbeteren zodat minder effort nodig is tijdens systeemintegratie en -validatie. Recent afgeronde ontwikkelingen zijn het gebruik van ontologieën en formele verificatietechnieken om een consistente catalogus op te bouwen van systeem- en software-eigenschappen, die als basis kan dienen voor hergebruik van requirements en correct-by-construction-softwaresynthese, het gebruik van architectuurbeschrijvingstalen en expliciete foutmodellen om systeembetrouwbaarheid te analyseren met simulatie en model-checking, het verbeteren van de productie van on-board software door integratie van formele methoden en codegeneratie in die delen van het ontwikkelproces waar dat zinvol en effectief is, en het gebruik van time- en space-partitioning kernels om mixed criticality-applicaties te faciliteren op mono- en multicore processoren, ondersteund door formele technieken om voorspelbare reactietijden te realiseren in de aanwezigheid van onzekerheid ten gevolge van cachegeheugens.

Daarnaast werkt Esa samen met de industrie en de nationale ruimtevaartorganisaties, bijvoorbeeld binnen het Space Avionics Open Interface Architecture-initiatief (Savoir). Dit forum heeft onder meer de On-board Software Reference Architecture (Osra) ontwikkeld, die de basis zal vormen van alle toekomstige vluchtsoftware. Deze referentiearchitectuur bestaat uit drie lagen: het executieplatform, de interactielaag en de applicatielaag. Het verbindende element is de Space Component Model-specificatie (SCM), die voorschrijft hoe de services in het framework beschreven moeten worden. Het idee achter deze aanpak is dat de specifieke services daadwerkelijk als uitwisselbare componenten te ontwikkelen zijn, onafhankelijk van elkaar, mogelijk zelfs door verschillende leveranciers.

Taste

Esa is ook een van de drijvende krachten achter The Assert Set of Tools for Engineering (Taste, taste.tools). Deze gereedschapskist vindt zijn oorsprong in het Europese zesdekaderproject Assert en heeft zich ontwikkeld tot een volwaardige oplossing om missiekritieke software te implementeren. De opensource toolketen maakt het mogelijk om betrouwbare embedded systemen te ontwikkelen op basis van heterogene modellen, met volwassen modelleer- en programmeertalen. De focus ligt op langetermijnbeschikbaarheid en een consistente informatie-uitwisseling tussen de modellen waaruit de applicatie is opgebouwd, onder meer via de automatische generatie van vertalers. Taste ondersteunt zo een domeinspecifieke ontwikkelaanpak en laat daarbij toe om voor elk deelprobleem de best passende techniek te kiezen. De naadloze integratie van alle onderdelen zorgt voor een drastische verhoging van de productiviteit.

De drie basiselementen van Taste zijn ASN.1, waarmee alle data-elementen van het systeem eenduidig zijn te noteren, AADL (Architecture Analysis and Design Language), waarmee de logische interfaces en fysieke systeemarchitectuur zijn te beschrijven, en SDL (Specification and Description Language), waarmee het systeemgedrag vast te leggen is. Dit fundament is eenvoudig te integreren met bijvoorbeeld Ada, C, Scade, Simulink, VDM en VHDL. De toolketen genereert alle noodzakelijke glue code volautomatisch en bouwt daarna de applicatie op het gewenste platform. Taste ondersteunt Linux, simulatieomgevingen die voldoen aan de SMP2-standaard en realtime besturingssystemen zoals Ada Ravenscar, Rtems en Xenomai, direct op de targethardware of gevirtualiseerd. Het rijke arsenaal aan logging-, visualisatie- en testfunctionaliteit biedt onder meer de mogelijkheid om testvectoren, interfacedocumenten, databasekoppelingen en testuserinterfaces te genereren, executies op te nemen en terug te spelen en Python-scripts in te zetten.

Taste is al volop in gebruik. Bijvoorbeeld bij de Proba-3-missie, om een payload te ontwikkelen die de corona van de zon observeert en om een robotbesturingssysteem te realiseren. Daarnaast is er met de toolset een Stirling-motorcontroller voor een tien meter grote zonnecollector gebouwd – in slechts enkele maanden tijd.

Edited by Nieke Roos