Laadukkaiden ja luotettavien ohjelmistojen vaatimukset ja miten ne täytetään? Kari Alho Solution Architect Nohau Solutions, Finland
Sisältö Vaatimusten luokittelua Yleisiä laatustandardeja ISO 9000 + sovitukset ISO 9126 CMMI Toimialakohtaisia standardeja Ilmailu Lääkintälaitteet Turvallisuuteen liittyvä ohjaus Kuinka jäljittää ja todentaa laatu- ja turvallisuusvaatimukset projektissa? 2
Tuotevaatimusten luokittelua Liiketoiminta Käyttäjä Toiminnalliset Yleiset Turvatoiminnot Ei-toiminnalliset Tuote Luotettavuus Käytettävyys Tehokkuus Ylläpidettävyys Siirrettävyys Organisaatio Standardit Ulkoiset Laki Ympäristö Jäljitettävyys vaatimusten välillä sekä määrääviin standardeihin 3
ISO 9000:2008 Prosessifokus Mittaaminen ja jatkuva parantaminen Ei omia yksityiskohtaisia vaatimuksia tai ohjeistusta tuotteen toteuttamiseen Ohjelmistojen laatu toteutuu epäsuorasti 4
ISO 9000 toimialakohtaisia laajennuksia 1/2 TickIT Ohjelmistokehityksen käytäntöjä Yhteys ISO 12207 sw-elinkaaristandardiin Iso-Britannia ja Ruotsi aktiivisia (akkreditointi) Kehitteillä TickITplus: kyypsyystasot, monimallisertifiointi AS9100 Julkaisija International Aerospace Quality Group ISO 9000:2000 + ilmailualan laatu- ja luotettavuusvaatmuksia ISO/TS 16949:2002 Quality management systems -- Particular requirements for the application of ISO 9001:2000 for automotive production and relevant service part organizations Standardi autoteollisuuden komponenttien tuotekehitykseen ja valmistukseen ISO 9001:2000 sekä autoalan laatu- ja prosessivaatimuksia 5
ISO 9000 toimialakohtaisia laajennuksia 2/2 TL 9000 QuEST forum kehittänyt tietoliikennealan toimijoiden (ostajat, toimittajat, palveluntarjoajat) tarpeisiin Sisältää alan lisävaatimuksia sekä mittauskäsikirjan Mittauksia voidaan benchmarkata ISO 13485:2003 Medical devices -- Quality management systems -- Requirements for regulatory purposes Lääkintälaitteiden valmistajien yleinen laatustandardi Painottaa viranomaisvaatimuksia, kuten 21 CFR 820 USAssa Riskienhallinta tuotekehityksessä ja työympäristön valvonta Ei välttämättä riitä ISO 9001:2000 vaatimusten täyttämiseen Ei edellytä jatkuvaa parantamista 6
ISO 9126 Software engineering -- Product quality -- Part 1: Quality model Standardi määrittelee 6 piirrettä, jotka määrittelevät tuotteen laadun: Toiminnallisuus (Functionality) Luotettavuus (Reliability) Käytettävyys (Usability) Tehokkuus (Efficiency) Ylläpidettävyys (Maintainability) Siirrettävyys (Portability) Piirteillä alipiirteitä ja tuotekohtaisia attribuutteja Attribuutit voidaan määrittää tai mitata 7
CMMI Capability Maturity Model Integrated Suosittu prosessikehityksen viitekehikko Kehittäjä Carnegie-Mellon yliopiston Software Engineering Institute (SEI) Edeltäjä CMM oli ensin malli USAn puolustuslaitoksen ohjelmistotoimittajien kypsyyden arviointiin 22 prosessialuetta, joiden kyvykkyyttä voidaan arvioida Tai arvioidaan koko organisaation/projektin kypsyystaso 8
Ilmailuala DO-178B Ilmailualan ohjelmistot täytyy pääsääntöisesti sertifioida DO-178B standardin mukaan tunnetaan Euroopassa nimellä ED-12B Järjestelmät luokitellaan viiteen turvatasoon mahdollisen vian vaikutuksen mukaan Kullekin turvatasolle on joukko vaatimuksia (objectives) Vaikutus Catastrophic Hazardous Major Minor No effect Taso A B C D E 9
DO-178B Sertifiointi Turvaluokituksen edellyttämä joukko dokumentteja ja pöytäkirjoja, joilla näytetään miten vaatimukset on katettu Acronym Title Type PSAC Plan for Software Aspects of Certification Document SDP Software Development Plan Document SVP Software Verification Plan Document SCMP Software Configuration Management Plan Document SQAP Software Quality Assurance Plan Document SRS Software Requirements Standards Document SDS Software Design Standards Document SCS Software Code Standards Document SRD Software Requirements Data Document SDD Software Design Description Document Source Code Executable Object Code SVCP Software Verification Cases and Procedures Document SVR Software Verification Results Records SECI Software Life Cycle Environment Configuration Index Document SCI Software Configuration Index Document Problem Reports Records Software Configuration Management Records Records Software Quality Assurance Records Records SAS Software Accomplishment Summary Document 10
DO-178B Työkalujen kelpuutus Kehitystyökalut Tuottavat koodia joka menee systeemiin mukaan Periaatteessa sama prosessi ja sertifiointi kuin itse avioniikkaohjelmisto Työkalun valmistaja tekee Testaustyökalut Kevyempi prosessi, jossa demonstroidaan työkalun normaali vaatimustenmukaisuus Tool qualification plan Operational requirements Tool accomplishment summary Hyvä valmistaja voi tarjota materiaalia valmiina 11
Lääkintälaitteet FDA ja EU Title 21 Code of Federal Regulations (CFR) Part 820: Quality System Regulation aka GMP Part 11: Electronic Records & Signatures Omat standardit voi periaatteessa valita, mutta mittatikkuna on alalla tunnetut standardit: ISO 13485 Medical devices -- Quality management systems -- Requirements for regulatory purposes ISO 14971 Medical devices -- Application of risk management to medical devices IEC 62304 Medical device software -- Software life cycle processes ISO 13485 ja 14971 on harmonisoitu direktiivin 93/42/EEC mukaiseksi Jäljitettävyys tärkeää projektin kaikissa vaiheissa ja tehtävissä 12
Turvallisuuteen liittyvät ohjausjärjestelmät: IEC 61508 Soveltamisala Erilliset turvajärjestelmät (palohälytin) Muiden systeemien turvatoiminnot (moottorin ylikuumentumissuoja) Määritettävä: Turvallisuusvaatimukset (Safety function requirements) Mitä turvatoiminto tekee? Perustana vaara-analyysi Näiden varmuusvaatimukset (Safety integrity requirements) Miten varmasti turvatoiminto toimii? Perustana riskianalyysi ja sen mukaiset vaateet Ohjelmistojen toteuttamat turvallisuusvaatimukset jaetaan neljään tavoiteltavaan turvatasoon (Safety Integrity Level): 13
Turvatasojen toteuttaminen IEC 61508:n mukaan Ylemmillä turvatasoilla komponenttien testausvaatimukset kasvavat R = Recommended HR = Highly Recommended Testaustekniikka SIL 1 SIL 2 SIL 3 SIL 4 Formaalit menetelmät - R R HR Todennäköisyystestaus - R R HR Staattinen analyysi R HR HR HR Dynaaminen analyysi ja testaus R HR HR HR Kompleksisuusmetriikat R R R R Jäljitettävyys Turvallisuusvaatimus -> toteuttava funktio -> komponentti Riippuvuudet Ylemmän turvatason komponentti ei saa käyttää alempaa SIL 1 SIL 2 SIL 3 SIL 4 Mod A Mod C Mod E Mod G Mod B Mod D Mod F Mod H 14
Kuinka todentaa laatu- ja turvallisuusvaatimukset? Ei näin Näin Noudata standardin mukaista kehitysprosessia Tai Määritä oma prosessi, ja jäljitä siihen standardin mukaiset prosessivaatimukset Määritä oma prosessi mutta älä turhaan viittaa standardiprosessin vaatimuksiin Jäljitä tuotevaatimusten lähteet vaatimuksiin, ja edelleen toteuttaviin moduleihin ja testeihin Kirjoita kattavat tuotevaatimukset, mutta älä turhaan mainitse lähteitä Validoi arkkitehtuuri automaattisella analyysillä Validoi ohjelmistoarkkitehtuuri speksaamalla Automatisoi helpot testit Testaa kaikki tuotevaatimukset manuaalisesti ja allekirjoita raportti Kokoa testaustieto yhteen 15
Prosessivaatimusten hallinta Standardin mukainen kehitysprosessi soveltuu yleensä huonosti suoraan organisaatioon (tai sitä ei ole) -> prosessin räätälöinti tarpeen Prosessivaatimuksia kannattaa hallita samoin menetelmin kuin tuotevaatimuksia Kaksisuuntainen jäljitettävyys Standardi A 1.0 1.1 1.2 Standardi B 1.0 1.1 1.2 Oma kehitysprosessi 1.0 1.1 1.2 1.3 2.0 2.1 16
Kiitos! Kari Alho Solution Architect +358 40 7700 801 kari.alho@nohau.fi nohau Teknobulevardi 3-5 P.O Box 35 FI-01531 Vantaa Finland 17