KriCode: broncoderichtlijnen voor kritische ingebedde systemen

Sinds de invoering van programmeerbare hardwareplatformen voor de realisatie van embedded systemen, neemt het belang van embedded software zeer sterk toe: de manier waarop embedded software wordt ontworpen en geïmplementeerd heeft een heel grote impact op de kwaliteit van het resulterende product.
Eenvoudige toegang tot de hardware, lage geheugenvereisten en efficiënte run-time performantie, maken dat C nog steeds de “de facto” programmeertaal is in de embedded software industrie.

Maar er zijn ook een aantal gekende nadelen: de beperkte run-time checking, een syntax die “domme” programmeerfouten doorlaat en meer dan 200 passages in de ISO C standaard waarin het gedrag niet eenduidig gedefinieerd is.

Om aan deze nadelen tegemoet te komen, ontwikkelde men broncoderichtlijnen (o.a. MISRA-C). Broncode die (liefst zoveel mogelijk) conform is met deze standaarden worden door de embedded software industrie als zeer kwaliteitsvol aanzien (m.b.t. veiligheid, robuustheid en platformonafhankelijkheid).

Om de naleving van deze richtlijnen na te gaan wordt gebruik gemaakt van statische code analyse werktuigen. Jammer genoeg kunnen niet alle regels automatisch afgedwongen worden en is een manuele aanpassing van de code meestal noodzakelijk. Dit heeft natuurlijk zijn impact het totale ontwerpproces.

Doel

  • Uitvoeren van een vergelijkende studie van de beschikbare tools voor “compliance checking” met de broncodestandaarden (focus op MISRA-C). Hierdoor zal de keuze van de meest geschikte code analyse tool voor de bedrijven eenvoudiger worden.
  • De generatie (manueel of automatisch) van betrouwbare en veilige broncode moet reeds van in het begin van het ontwerpproces in rekening gebracht worden. Dit heeft natuurlijk zijn impact op het verloop van het ontwerpproces. Daarom zullen we de ontwerpprocessen en methodes die bij de leden van de gebruikersgroep toegepast worden onderzoeken. De resultaten van dit onderzoek worden in een “Lessons Learned” handboek verzameld.
  • Uitvoering van een aantal case studies.
  • Ontwikkeling van up-to-date studie- en demonstratiemateriaal om de verworven kennis zo breed mogelijk te verspreiden.

Concept

Vergelijkende test van statische code analyse tools. Exploratie van software ontwerpmethoden voor kritische ingebedde software.

Tools

Static code analyse tools

Meer info op www.teralabs.org

Contact

MDO@kdg.be
03/613.13.84

  • Duur onderzoek: oktober 2009 - september 2011

  • Projectpartners: LMS International, EIA Electronics, Verhaert New Products & Services, Fifthplay, Ferranti Computer Systems, Televic, Altreonic, DSP Valley, Alcatel-Lucent Bell, E.D.&A., Atos Worldline, IMEC, FMTC, Philips Brugge, KHBO

  • KdG-medewerkers: Marijn Temmerman, Kris Bellemans, Hugo Van Hove