Turvakriittisen projektin menetelmät ja työkalut 1. Vaatimushallinta Vaatimushallintaan kohdistuu turvaluokitelluissa projekteissa paljon odotuksia. Etenkin jäljitettävyys vaatimuksiin, testaukseen ja muutoksiin on keskeisessä asemassa. Samoin integrointi eri työkaluihin on hyvin tärkeää. Luotettavuus-, turvallisuusvaatimus- ja jäljitettävyysnäkökulmasta IBM Rational DOORS on paljon käytetty ja suositeltava työkalu turvallisuuskriittisten projektien vaatimushallintaan. 2. Turvakriittiset vaatimukset ja niiden oikeat valinnat Kaikki pakolliset on valittava, mutta samalla kannattaa välttää ylivalintaa, koska se on kallista. Tähän on olemassa hyvä työkalu: RiskCAT for IEC61508 (tuote löytyy myös muille standardeille). Ohjelma sisältää virallisen standardin ja standardin kaikki vaatimukset on indeksoitu, jolloin on helppo poimia eri työvaiheisiin kuuluvat pakolliset, vahvasti suositellut ja suositellut jne. vaatimukset.
3. Systeemi- ja arkkitehtuurisuunnittelu Annex A in IEC61508-3 Suunnitteluvaiheessa semi-formaali menetelmä, kuten SYSML/UML tukee hyvin alkuvaiheen osa-alueita, kuten systeemisuunnittelua, ohjelmiston modulaarisuutta, jäljitettävyyttä vaatimuksista malliin ja mallista vaatimuksiin ja pitää nämä aina ajan tasalla. Tärkeä vaihe on kaikkien vaatimusten analyysi ennen ohjelmointityön aloittamista. 4. Turvakriittisen ohjelmiston suunnitteluvaihe Myös ohjelmistosuunnittelussa semi-formaali menetelmä kuten UML auttaa ja täsmentää jäljitettävyyttä, dokumentaatiota, modulaarisuutta jne. Rhapsody mm. vie koodiin kommentiksi vaatimukset, jotka ko. funktion pitää toteuttaa. Rhapsodyn avulla voi generoida koodirungon, jolloin varsinaiset toiminnot kirjoitetaan perinteisesti tai sitten generoidaan valmis sulautettu koodi. Rhapsodyssä on mm. simulointi jolloin voidaan nopeasti simuloida onko kaikki toiminnot mukana ja miten järjestelmä toimii. Mallinnustyökaluilla tuetaan graafisia esitystapoja: Esim. UML standardoitu yleiskäyttöinen mallinnuskieli visuaalisten mallien avulla voidaan kuvata järjestelmän rakenne ja käyttäytyminen tukee ohjelmiston elinkaaren alusta loppuun linkittää vaatimukset, suunnittelun koodin ja testauksen generoi koodirungon, tai haluttaessa valmiin koodin turvavaatimusten mukaisesti kattaa koko elinkaaren jäljitettävyyden ylläpitää automaattisesti dokumentaatiota koko elinkaaren yli. ylläpitää arkkitehtuuria, suunnittelua, koodia helppo siirrettävyys erilaisille alustoille Esimerkkinä: IBM Rational Rhapsody Tarvittaessa UML- mallia voi viedä mallipohjaiseen testaukseen asti. IBM Rational Rhapsodyn testausmoduuli TestConductor on myös TÜV hyväksytty työkalu. Lisäksi Rhapsodystä löytyy mm. Safety profiilit koodigenerointiin ja FTA vikapuuanalyysin tuki.
5. Projektin toteutusvaihe Toteutusvaiheen tärkeimmät työkalut ovat hyväksytty kääntäjä, monipuolinen debuggeri ja staattinen koodianalyysiohjelmisto tukemaan koodausstandardien noudattamista ja virheiden minimointia. 6. Ohjelmistokehityksen työkalut Kääntäjät ARM prosessoriarkkitehtuuri ARMilla prosessori IP:n valmistajana on parhain ja aikaisin näkymä myös kääntäjäteknologiaan. ARMin kääntäjä tukee IEC61508 ja ISO26262 safety projekteja TÜV sertifioituna kääntäjänä. ARM Compiler Qualification Kit käyttää ARM kääntäjäversiota 5.04. Kääntäjäpaketille on saatavissa pitkäaikainen ylläpito ja tukiohjelma. Debuggerit - Lauterbach Lauterbach työkaluketju toimii kaikkien prosessoriarkkitehtuurien kanssa. Mikäli tehdään kahdennettu järjestelmä, Lauterbach voidaan kytkeä molempiin ja synkronoida toiminnot. Lauterbachin avulla voidaan reaaliaikaisuuden kärsimättä syöttää virhedataa esim. toiseen prosessoriin ja samalla varmistaa järjestelmän vaatimusten mukainen toiminta virhetilanteessa sekä reduntanttisuus. Kattava ja monipuolinen multicore tuki. Toimii kaikkien kääntäjien ja käyttöjärjestelmien kanssa. Monipuolisten keskeytysten avulla voidaan simuloida I/O kanavat ja vikatilanteet reaaliaikaisesti. Lauterbach debuggeri Real-Time tracen tuomat lisäominaisuudet Voit suorittaa / askeltaa koodia sekä eteenpäin että taaksepäin, ja tarkastella muistin, muuttujien, rekistereiden jne. sisältöä askellettaessa ajassa taaksepäin. Trace pohjainen koodikattavuus aina assembler tasolle asti. Koodikattavuus on täysin reaaliaikainen ilman instrumentointia. Reaaliaikainen kattavuusanalyysi tukee turvallisen koodin kehittämistä turvastandardien kuten ISO 26262, DO-178C, IEC 61508 ja IEC 62304 vaatimusten mukaisesti.
Staattinen koodianalyysi ja koodausstandardit Annex A in IEC61508-3 (Software Verification) Staattista koodianalyysiä suositellaan mm. IEC 61508 standardissa. Koodikatselmointien tueksi tulee käyttää sertifioituja työvälineitä, jotka tarkistavat formaalisti koodia. Lisäksi suosittellaan käyttämään soveltuvia koodauskäytäntöjä ja ohjelmointikielen alijoukkoa. MISRA on yleisesti käytetty säännöstö ja C- kielen alijoukko. Programming Research QAC/QAC++ ja QA Verify PRQA:n staattiset koodianalyysiohjelmistot ovat laajimmin käytetty erityisesti autoteollisuudessa ja ohjelmistot ovat TÜV SAAR sertifioituja turvallisuuskriittisiin projekteihin IEC 61508, ISO 26262, EN 50128, IEC 60880 ja IEC 62304. QAC:n koodausstandardi tuet eri Misra versioille MISRA C:2004, C:2012 ja C++:2008 ovat markkinoiden tarkimmat. Grammatech - CodeSonar CodeSonar on myös TÜV sertifioitu työväline (IEC 61508, ISO 26262, EN 50128) ja sen lisäksi tarjoaa markkinoiden parhaimmat tarkistimet etenkin tietoturva-aukkojen löytämiseksi. Yksikkö- ja integrointitestaus Annex A in IEC61508-3 (Software Verification) IEC 61508:2010 standardi asettaa vaatimuksia koodin dynaamiselle analyysille ja testaukselle mukaan lukien toiminnallisen ja white box testauksen. Testikattavuusvaatimus riippuu projektin SIL tasosta.
Vaatimukset funktioiden kattavuustestaukselle Useimmat näistä vaatimuksista ovat hyvin työläitä täyttää, siksi testausta tukevan, hyväksytyn työkalun käyttäminen nopeuttaa kehitysprojektia. Yksikkötestaus, etenkin safety projekteissa, kannattaa automatisoida TÜVin työkaluluokkaan T2 hyväksytyllä työkalulla. Cantatalla voidaan ajaa kaikki testit myös targetissa, ja kun käytetään JTAG (tai trace) debuggeria kommunikointikanavana voidaan target in the loop testaus tehdä kohdemoduulin resursseja rasittamatta täysin reaaliaikaisesti. Cantata ++ The Unit Testing Tool for C/C++ Cantata on TÜV SAAR:in sertifioima yksikkötestauksen ohjelmisto aina vaativimpaan turvatasoon saakka (SIL4) seuraaville standardeille: IEC 61508, IEC 62304, IEC 60880, EN 50128, ISO 26262. Sertifiointi paketti tulee ilman lisäkustannusta, ja paketti kostuu: - Cantata versio 6.2 sertifikaatista - yksityiskohtaisesta Safety manuaalista - tärkeimpien turvastandardien kattavista ohjeista - automatisoiduista testeistä, joilla osoitetaan ohjelmiston oikea toimita sulautetussa targetissa Leevi Lehtinen Country Manager Puh: +358 40 546 1469 leevi.lehtinen@nohau.se Martti Viljainen Technical Account Manager Puh: +358 40 546 0142 martti.viljainen@nohau.fi