Turvakriittisen projektin menetelmät ja työkalut



Samankaltaiset tiedostot
Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmiston testaus ja laatu. Testaustasot

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

IEC sisältö ja rakenne

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Standardi IEC Ohjelmisto

Ohjelmistotestaus -09

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Ohjelmistojen mallintaminen. Luento 11, 7.12.

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Toimilohkojen turvallisuus tulevaisuudessa

Kontrollerin sisäisten komponenttien käytöstä. Vielä vähän asiaa sisäisten lohkojen käytöstä

Onnistunut Vaatimuspohjainen Testaus

2. Ohjelmistotuotantoprosessi

Ohjelmistotekniikka - Luento 2

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Tietojärjestelmän osat

Menetelmäraportti - Konfiguraationhallinta

Tutkittua tietoa. Tutkittua tietoa 1

Tässä tiivistelmässä standardi tarkoittaa standardia SFS-EN

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

Standardin IEC testaustekniikoista. V-malli vai ketterämpi prosessi?

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Uudelleenkäytön jako kahteen

Oleelliset vaikeudet OT:ssa 1/2

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen

Ohjelmointi 1 / syksy /20: IDE

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi

Kontrollipolkujen määrä

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Testaussuunnitelma. Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma. WebPizza

OS AUTOMATION OY. 7DYRLWH

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

UCOT-Sovellusprojekti. Testausraportti

Testaaminen ohjelmiston kehitysprosessin aikana

Σ!3674. Advanced Test Automation for Complex Software-Intensive Systems

Turva-automaation suunnittelu

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

Kattava tietoturva kerralla

Laadukkaiden ja luotettavien ohjelmistojen vaatimukset ja miten ne täytetään?

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

Lyhyt yhteenveto ohjelmistovaatimuksista standardissa ISO

Ohjelmiston toteutussuunnitelma

Ohjelmistoarkkitehtuuriin vaikuttavia tekijöitä. Kari Suihkonen

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Ketterä vaatimustenhallinta

Welding quality management

Ohjelmistotuotantoprojekti

Automaattinen yksikkötestaus

Testaus elinkaaressa. Testaustasot ja vaiheet

Test-Driven Development

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Test-Driven Development

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistotuotanto, prosessit Syksy Ohjelmistotuotantoprosessi. Prosessimalli. Prosessimallien perustehtävät. Prosessimallin vaihejako

Työkalut ohjelmistokehityksen tukena

Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Työkalujen merkitys mittaamisessa

käyttötapaukset mod. testaus

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille

Jouko Nielsen. Ubuntu Linux

Testataanko huomenna?

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Vaivattomasti parasta tietoturvaa

Welding quality management WELDEYE -HITSAUSHALLINTAJÄRJESTELMÄN MODUULI

Käytettävyyden huomiointi ohjelmisto prosessissa testausta lisäämällä

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Teollisuusautomaation standardit. Osio 3:

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistojen suunnittelu

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

tsoft Tarkastusmenettelyt ja katselmukset Johdanto Vesa Tenhunen

Harjoitustyön testaus. Juha Taina

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Software engineering

TESTIRAPORTTI - JÄRJESTELMÄ, ADMIN Virtuaaliyhteisöjen muodostaminen Versio 1.0

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen

Welding Procedure and Qualification Management WELDEYE-HITSAUSHALLINTAJÄRJESTELMÄN MODUULI

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Staattinen testaus. Luento 5 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Testilähtöinen ohjelmistokehitys. Testilähtöinen ohjelmistokehitys. TDD Testilähtöinen ohjelmistokehitys. Testi! Testi

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

2 Ohjelmistoarkkitehtuurien kuvaus

Transkriptio:

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