Orvosi eszközök gyártmányfejlesztése PEMS beágyazott szoftverének fejlesztése. Kurtán Balázs Budapest,

Hasonló dokumentumok
Orvosi eszközök gyártmányfejlesztése PEMS beágyazott szoftverének fejlesztése. Dolgos Márton Budapest,

ORVOSI ESZKÖZÖK GYÁRTMÁNYFEJLESZTÉSE PEMS BEÁGYAZOTT SZOFTERÉNEK FEJLESZTÉSE

Orvosi eszközök gyártmányfejlesztése Aktív orvosi eszköz szoftver verifikálása, validálása (V&V) Dolgos Márton Budapest,

Orvostechnikai eszköz tesztelése DSS Unit test. Taliga Miklós BME-IIT

Orvosi eszközök gyártmányfejlesztése Szoftver Kockázatirányítás. Lukács Viktor Budapest,

ORVOSTECHNIKAI ESZKÖZÖK GYÁRTMÁNYFEJLESZTÉSE AKTÍV ORVOSI ESZKÖZÖK FEJLESZTÉSE - PEMS V&V

Orvostechnikai eszközök gyártmányfejlesztése Aktív orvosi eszközök fejlesztése PEMS V&V. Nagy Katinka

ORVOSI ESZKÖZÖK GYÁRTMÁNYFEJLESZTÉSE KOCKÁZATIRÁNYÍTÁS ÉS SZOFTVER KOCKÁZATIRÁNYÍTÁS

ORVOSI ESZKÖZÖK GYÁRTMÁNYFEJLESZTÉSE AKTÍV ORVOSI ESZKÖZ SZOFTVER VERIFIKÁLÁSA, VALIDÁLÁSA (V&V)

Orvosi eszközök gyártmányfejlesztése Aktív orvosi eszköz szoftver verifikálása, validálása (V&V) Nagy Katinka Budapest,

Verifikáció és validáció Általános bevezető

A fejlesztési szabványok szerepe a szoftverellenőrzésben

KOGGM614 JÁRMŰIPARI KUTATÁS ÉS FEJLESZTÉS FOLYAMATA

MIÉRT KELL TESZTELNI?

ORVOSTECHNIKAI ESZKÖZÖK GYÁRTMÁNYFEJLESZTÉSE

Orvostechnikai eszközök gyártmányfejlesztése Aktív orvosi eszközök fejlesztése PEMS életciklus modell. Komáromi István Budapest,

Járműinformatika A járműinformatikai fejlesztés

V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus

A szoftver tesztelés alapjai

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Orvosi eszközök gyártmányfejlesztése. Információ- és rendszerbiztonság (Cybersecurity) Csík Adrien Budapest,

(Teszt)automatizálás. Bevezető

Életciklus modellek a rendszer és szoftverrendszer-fejlesztésben. SDLC System Development Life Cycle Software Development Life Cycle

ISO/DIS MILYEN VÁLTOZÁSOKRA SZÁMÍTHATUNK?

Szabványok. ISO 9000, ISO 9001, ISO 9004 és más minőségirányítási szabványok SZABVÁNY CÍMEK NEMZETKÖZI EURÓPAI NEMZETI MEGJEGYZÉS

Orvosi eszközök gyártmányfejlesztése Aktív orvosi eszközök verifikálása, validálása (V&V) Kuzma Éva Budapest,

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

Intelligens eszközök fejlesztése az ipari automatizálásban Evosoft Hungary kft., Evosoft Hungary Kft.

TESZTELÉS A SZOFTVER ÉLETCIKLUSÁN ÁT SZOFTVERFEJLESZTÉSI MODELLEK

Szoftverminőségbiztosítás

Gyakorlat és házi feladat tájékoztató

Biztonsági folyamatirányító. rendszerek szoftvere

Modell alapú tesztelés: célok és lehetőségek

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Laborinformációs menedzsment rendszerek. validálása. Molnár Piroska Rikker Tamás (Dr. Vékes Erika NAH)

A TESZTELÉS ALAPJAI MIÉRT SZÜKSÉGES A TESZTELÉS? MI A TESZTELÉS? ÁLTALÁNOS TESZTELÉSI ALAPELVEK

SZOFTVER TESZT AUTOMATIZÁLÁS Eszter Vezdén Budapest, 08 November 2018

Szoftverfejlesztés teszteléssel

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Autóipari beágyazott rendszerek. Kockázatelemzés

Szoftverminőségbiztosítás

A szoftverfejlesztési folyamatok képességének mérése. Kuzma Éva Budapest,

Szoftverminőségbiztosítás

Modell alapú tesztelés mobil környezetben

A szoftverfejlesztés eszközei

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Szoftverminőségbiztosítás

A CMMI alapú szoftverfejlesztési folyamat

Teszt terv Új funkció implementációja meglévı alkalmazásba

IEC Basic Engineering -től a Leszerelésig

Fejlesztés kockázati alapokon 2.

Szoftver karbantartási lépések ellenőrzése

ESZKÖZTÁMOGATÁS A TESZTELÉSBEN

Név: Neptun kód: Pontszám:

Tesztelési szintek Tesztautomatizálás

Információs rendszerek Információsrendszer-fejlesztés

Szoftverminőségbiztosítás

A fejlesztéshez használható eszközök

Az ISO Cél: funkcionális biztonság kizárva az elektromos áramütés, tűz stb. veszélyeztetések

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve

KOGGM614 JÁRMŰIPARI KUTATÁS ÉS FEJLESZTÉS FOLYAMATA

Fejlesztési projektek menedzselése IBM Rational CLM termékekkel. Ker-Soft Kft. Kaszás Orsolya - üzleti tanácsadó

II. rész: a rendszer felülvizsgálati stratégia kidolgozását támogató funkciói. Tóth László, Lenkeyné Biró Gyöngyvér, Kuczogi László

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

TESZTMENEDZSMENT TESZTELŐ SZERVEZET TESZTTERVEZÉS ÉS BECSLÉS

UML (Unified Modelling Language)

S01-7 Komponens alapú szoftverfejlesztés 1

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22

A szoftverellenőrzés szerepe

Modellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő

Szoftver karbantartás

IRÁNYÍTÓ RENDSZER IRÁNYÍTANDÓ FOLYAMAT. Biztonsági funkciók Biztonsági integritás. Normál működés. Hibák elleni védettség Saját (belső) biztonság

Követelmény alapú minőségbiztosítás az államigazgatásban

Orvosi eszközök gyártmányfejlesztése Az aktív orvosi eszközök műszaki követelményei a harmonizált szabványokban

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Verziókövető rendszerek használata a szoftverfejlesztésben

1002D STRUKTÚRÁJÚ, KRITIKUS ÜZEMBIZTONSÁGÚ RENDSZER (SCS 1 ) ELEMZÉSE DISZKRÉT-DISZKRÉT MARKOV MODELLEL

Specifikáció alapú teszttervezési módszerek

Rendszermodellezés: házi feladat bemutatás

ORVOSI ESZKÖZÖK GYÁRTMÁNYFEJLESZTÉSE AZ AKTÍV ORVOSI ESZKÖZÖK MŰSZAKI KÖVETELMÉNYEI A HARMONIZÁLT SZABVÁNYOKBAN

Specifikáció alapú teszttervezési módszerek

Élettartam teszteknél alkalmazott programstruktúra egy váltóvezérlő példáján keresztül

Szoftver újrafelhasználás

A DevOps-kultúra eszközei

Angolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata

Szoftver min ség és menedzsment

8.3. AZ ASIC TESZTELÉSE

Szoftver értékelés és karbantartás

Viczián István IP Systems JUM XIX szeptember 18.

A BIZTONSÁGINTEGRITÁS ÉS A BIZTONSÁGORIENTÁLT ALKALMAZÁSI FELTÉTELEK TELJESÍTÉSE A VASÚTI BIZTOSÍTÓBERENDEZÉSEK TERVEZÉSE ÉS LÉTREHOZÁSA SORÁN

Szabálykezelés a gyakorlatban

A dokumentáció felépítése

Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése

Bevezetés a programozásba

Szoftvertechnológia ellenőrző kérdések 2005

Automatizálás - Digital Twin

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

Szoftvertechnológia 12. előadás. Szoftverfejlesztési módszerek és modellek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

ÚJ ISO/IEC :2018 itsmf Szeminárium Dr. Becser Balázs. Az új családtag a szabványcsaládban IT Szolgáltatásirányítás követelmények

Átírás:

Orvosi eszközök gyártmányfejlesztése PEMS beágyazott szoftverének fejlesztése Kurtán Balázs balazs.kurtan@bbraun.com Budapest, 2016-11-03

Tartalom Bevezetés PEMS fogalma PEMS fejlesztési ciklus SW helye SW Risk Management SW Development SW Maintenance SW Configuration Management SW Problem Resolution 2

Mai téma PEMS = Programmable Electrical Medical System Szabvány: ANSI/AAMI/IEC 62304 Medical Device Software Software life cycle processes Miért van rá szükség? Cél? http://www.pharmpro.com/sites/pharmpro.com/files/fdaletterthumb.jpg 3

KÖVETEL Orvostechnikai eszköz menedzsment szabványok ISO14971 ISO13485 BEFOLYÁSOL Kijelöli az orvostechnikai eszköz fejlesztés alapjait BEFOLYÁSOL IEC 62304:2006 Figure C.1 Orvostechnikai eszköz termék szabványok IEC 60601-1 Orvostechnikai eszköz folyamat szabvány IEC 62304 BEFOLYÁSOL Orvostechnikai eszköz szoftver Specifikus iránymutatást ad a biztonságos orvostechnikai eszköz készítéséhez Részletes irányelvet nyújt hogyan kell biztonságos szoftver rendszert fejleszteni és karbantartani Egyéb információ források IEC/ISO 12207 IEC 61508-3 IEC/ISO 90003 INSPIRÁL Kiegészítő irányelvek, technikák, stb. amik hasznosak lehetnek 4

PEMS és PESS fogalma (Komplexitás) Programmable electrical medical system PEMS Programozható gyógyászati villamos rendszer (PEMS) Olyan gyógyászati villamos készülék vagy gyógyászati villamos rendszer, amely egy vagy több programozható elektronikus alrendszert tartalmaz Programmable electronic subsystem PESS Programozható elektronikus alrendszer (PESS) Olyan rendszer, amely egy vagy több központi feldolgozó egységen alapul, beleértve a szoftvert és az interfészeket is. 5

Komplex rendszer A PEMS nagyobb alrendszerekre bontódik le, amelyek sorra olyan alrendszerekből épülnek fel, amelyek PESS-t tartalmaznak 6

PEMS Fejlesztési ciklus - V model ( MSZ EN IEC 60601-1-4) 7

KÖVETEL Orvostechnikai eszköz menedzsment szabványok ISO14971 ISO13485 BEFOLYÁSOL Kijelöli az orvostechnikai eszköz fejlesztés alapjait BEFOLYÁSOL IEC 62304:2006 Figure C.1 Orvostechnikai eszköz termék szabványok IEC 60601-1 Orvostechnikai eszköz folyamat szabvány IEC 62304 BEFOLYÁSOL Orvostechnikai eszköz szoftver Specifikus iránymutatást ad a biztonságos orvostechnikai eszköz készítéséhez Részletes irányelvet nyújt hogyan kell biztonságos szoftver rendszert fejleszteni és karbantartani Egyéb információ források IEC/ISO 12207 IEC 61508-3 IEC/ISO 90003 INSPIRÁL Kiegészítő irányelvek, technikák, stb. amik hasznosak lehetnek 8

Szoftver fejlesztési szabványok fejlődése történeti visszatekintés, kapcsolat más iparágakkal IT szoftver fejlesztése (ISO 12207) Systems and software engineering Software life cycle processes [1995..2010] Hogyan kell szoftvert fejleszteni? IT funkcionális biztonság (ISO 61508) Functional safety of electrical/electronic/programmable electronic safety-related systems - Part 3: Software requirements [1998..2010] Hogyan kell biztonságkritikus rendszert/szoftvert fejleszteni? Minden biztonságkritikus iparágra vonatkoztatható: erőművek, jármű, stb.

KÖVETEL Orvostechnikai eszköz menedzsment szabványok ISO14971 ISO13485 BEFOLYÁSOL Kijelöli az orvostechnikai eszköz fejlesztés alapjait BEFOLYÁSOL IEC 62304:2006 Figure C.1 Orvostechnikai eszköz termék szabványok IEC 60601-1 Orvostechnikai eszköz folyamat szabvány IEC 62304 BEFOLYÁSOL Orvostechnikai eszköz szoftver Specifikus iránymutatást ad a biztonságos orvostechnikai eszköz készítéséhez Részletes irányelvet nyújt hogyan kell biztonságos szoftver rendszert fejleszteni és karbantartani Egyéb információ források IEC/ISO 12207 IEC 61508-3 IEC/ISO 90003 INSPIRÁL Kiegészítő irányelvek, technikák, stb. amik hasznosak lehetnek 10

Connection between 60601 and 62304 11

IEC 62304 Medical Device Software Software Life-cycle processes Megfelelőség = Az összes definiált folyamat, aktivitás és feladat implementálása, a biztonsági osztálynak megfelelően. Receptkönyv a biztonságos szoftverhez. Nem létezik olyan módszer amivel egy szoftverre nézve 100%-os biztonságosság garantálható. Három elv ami a biztonságot elősegíti: kockázat-irányítás, minőségirányítás és szoftverfejlesztési gyakorlatok, technikák, módszerek (state-of-the-art). Szentháromság A SW életciklus modell nem definiált. Lehet pl. vízesés (szekvenciális), inkrementális vagy fejlődéses (a követelmények is változnak). 12

Szoftverfejlesztési FOLYAMATOK és AKTIVITÁSOK áttekintése 13

PÉLDA: Logikai kapcsolat a folyamatok között (SOPs/Ops) Usability Eng. Active Medical Device Dev. Plan System Engineering SDP (1)(2)(3) Software Development Risk Mgmt SW Dev. SW Maint. & Prob. Res SW Config. Man. (1)SW Risk Man. (2)SW Tool Valid. Tool Test (3)SOUP (OTS) Item Valid. Medical SW Test DHF= Design History File 14 14

More stories More Increments More Releases PÉLDA: 62304 aktivitások az inkrementális vagy fejlődéses modellben Mapping 62304 s activities 5.1 SW 5.1 Development 5.1 SW SW Development Planning Planning 5.1 SW Development Planning 5.2 SW 5.2 SW Requirements Requirements Analysis Analysis 5.3 SW Architectural Design 5.3 SW Architectural 5.3 SW Architectural Design Design 5.4 SW Detailed Design 5.4 SW Detailed Design 5.5 5.5 SW Unit Implement. & Verif Implement. & Verification 5.6 SW Integration 5.6 SW and Integr. Testing Integration and Integr. Testing 5.7 SW System 5.7 SW Testing System Testing 5.8 SW Release into Agile s Incremental/Evolutionary life cycle For Each Project 5.1 SW Development Planning - Project 5.2 SW Requirements Analysis High-Level, Backlog Management 5.3 SW Architectural Design Infrastructure, Spikes For Each Story For Each Increment 5.1 SW Development Planning - Story 5.2 SW Requirements Analysis Story Details 5.3 SW Architectural Design - Emergent 5.4 SW Detailed Design 5.5 SW Unit Implementation and Verification 5.6 SW Integration and Integration Testing 5.7 SW System Testing BA-HU A.Csík Medical device software Page 19 For Each Release 5.1 SW Development Planning - Release 5.1 SW Development Planning - Increment 15 5.6 SW Integration and Integration Testing 5.7 SW System Testing & Regression Testing 5.6 SW Integration and Integration Testing 5.7 SW System Testing & Regression Testing 5.8 SW Release

Definíciók (1) Orvostechnikai eszköz szoftver (Medical Device Software) Orvostechnikai eszközbe fejlesztett szoftver vagy szándékolt alkalmazása alapján szabadon álló szoftver. Software system that has been developed for the purpose of being incorporated into the medical device being developed or that is intended for use as a medical device in its own right. Szoftver termék (Software Product) A szoftver termék számítógép programok, eljárások, lehetséges kapcsolódó dokumentáció és adatok gyűjteménye. Software Product is set of computer programs, procedures and possibly associated documentation and data. Szoftver rendszer (Software System) A szoftver rendszer egymáshoz rendelt szoftver elemek integrált gyűjteménye, teljesíti a termékhez megfogalmazott szoftver követelmények gyűjteményét. Pl. teljes szoftver a termék részeként Software system is an integrated collection of software items organized together to accomplish a set of software requirements of a product. E.g. complete software part of a product. Megj: A PEMS modell komponenséről van szó. 16

Egy szoftver rendszer (62304) helye a PEMS-ben 17

Definíciók (2) Szoftver elem (Software Item) Szoftver elem bármilyen azonosítható számítógép program rész lehet (absztrakt). Software item is any identifiable part of a computer program Megj: Pl. a SW rendszer, egy forrás file, SOUP elemek (OS, stdlib, stb.) Szoftver egység (Software Unit) A szoftver egység az a szoftver elem, amit már nem bontunk le további elemekre. Megjegyzés: Ez felhasználható a szoftver konfiguráció menedzsmentnél és a tesztelésnél. Software unit is a software item that is not subdivided into other items. Note: It can be used for the purpose of software configuration management or testing. Megj: Pl. egy forrás file, egy task, egy objektum. SOUP (Software of Unknown Provenance) Egy már elérhető szoftver elem, amely nem az orvosi eszközbe integrálási céllal lett kifejlesztve (más szóval off-the-shelf, vagy OTS), vagy korábbi fejlesztés eredménye, amelyről nem állnak rendelkezésre a fejlesztési folyamatot kellően bizonyító dokumentumok. Software item that is already developed and generally available and that has not been developed for the purpose of being incorporated into the medical device os software previously developed for which adequate records of development processes are not available. 18

SW elem és unit SW System 1 (SW Item is!) ZW 1 (SW Item is!) ZW 1 (SW Item is!) XY 1 (SW Item is!) XY n (SW Item is!) nem bontható tovább Unit 1 (SW Item is!) Unit 2 (SW Item is!) Unit n (SW Item is!) 19

Definíciók (3) Folyamat (Process) Összefüggő vagy kapcsolódó aktivitások halmaza, melyek bemeneteket kimenetekké konvertálnak. A set of interrelated or interacting activities that transform inputs into outputs. Aktivitás (Activity) Összefüggő vagy kapcsolódó feladatok halmaza. A set of one or more interrelated or interacting tasks. Feladat (Task) Egy darab elvégzendő munka. A single piece of work that needs to be done. Nyomonkövethetőség (Traceability) A feljesztési folyamat két vagy több terméke közötti kapcsolat mértéke. Degree to which a relationship can be established between two or more products of the development process. http://www.baxtek.com/software/scoringag/meattracking.jpg 20

IEC 62304 Medical Device Software Software Life-cycle processes Structure: 1. Scope 2. Normative References 3. Terms and Definitions 4. General Requirements 5. SW Development Process 6. SW Maintenance Process 7. SW Risk Management Process 8. SW Configuration Management Process 9. SW Problem Resolution Process 21

7. Szoftver kockázat-irányítási folyamat (Software Risk Management Process)! A szoftver kockázat-irányítást nem lehet az orvosi eszköz rendszerszintű kockázat-irányításától függetlenül végezni.* A szoftver kockázat-irányítást csak úgy lehet hatékonyan végezni, hogy az egyes aktivitásokat a fejlesztési és karbantartási folyamatok közben végezzük. Megj.: A kapcsolódási pontokat lásd később zölddel. Aktivitások 1. A szoftverhibából eredő veszélyes helyzeteket fel kell tárni. SW Cause? 2. A szoftvertől megkövetelt védőintézkedéseket definiálni és implementálni kell. RCM SRS 3. A szoftvertől megkövetelt védőintézkedéseket ellenőrizni kell. RCM tests 4. A szoftverváltozásokat (beleértve a SOUP-okat is) meg kell vizsgálni a lehetséges szoftverhibákból eredő veszélyes helyzetek és az implementált védőintézkedések hatékonysága tekintetében. SW changes - Risk An. (Újra vissza 1.) * Az előadásban szereplő szövegek részben a szabvány értelmezésének (ANNEX A és B) magyarnyelvű szabad fordításai. 22

Kockázat mátrix (Ismétlés RM) Példa Éles sarok (megvághat és zúzódást okozhat) Probability csökkentés: figyelmeztető címkét teszünk rá Severity csökkentés: lekerekítjük a sarkot, így már nem vág meg csak véraláfutást okozhat 23

Szoftver biztonsági osztályozás (1) A biztonsági osztályozás súlyosság (Severity) alapú: Negligible Software class A Marginal Software class B Severe Software class C Critical Software class C Catastrophic Software class C A biztonsági osztálynak megfelelő aktivitások/feladatok vonatkoznak az adott szoftver elemre. A biztonsági osztály csökkenthető, amennyiben a kockázatbefolyásoló - súlyosságot vagy valószínűséget csökkentő - hardveres védőintézkedésekkel a maradék kockázat elfogadható mértékűvé vált. 24

Szoftver biztonsági osztályozás (2) A biztonsági osztályozás öröklődő szoftver elemek között, de elkülönítéssel csökkenthető egyes alsóbb szintű elemek biztonsági osztályozása. 25

IEC 62304 Medical Device Software Software Life-cycle processes Structure: 1. Scope 2. Normative References 3. Terms and Definitions 4. General Requirements 5. SW Development Process 6. SW Maintenance Process 7. SW Risk Management Process 8. SW Configuration Management Process 9. SW Problem Resolution Process 26

5. Szoftver fejlesztési folyamat (Software Development Process) 5.1 SW development planning 5.2 SW requirements analysis 5.3 SW architectural design 5.4 SW detailed design 5.5 SW UNIT implementation & verification 5.6 SW integration and integration testing 5.7 SW system testing 5.8 SW release 27

5.1 Szoftver fejlesztés tervezés (Software development planning) A folyamat bemenetei lehetnek a rendszer fejlesztési terve, szabványok, munkautasítások. A kimenete pedig a szoftver fejlesztési terv. A fejlesztési tervnek ki kell térnie: az alkalmazandó folyamatokra, módszerekre, a teljesítendő feladatokra (pl. dokumentumok, szoftver verziók), a nyomon-követhetőségre, a konfiguráció- és változásirányítás folyamatára a probléma megoldás folyamatára a szoftver integrációra a szoftver verifikációra (ellenőrzés) a szoftver kockázat-irányítás folyamatára a felhasználandó vagy kifejlesztendő eszközökre 28

Szoftver rendszer fejlesztési életciklus modell - IEC 62304 29

5.2 Szoftver követelmény analízis (Software requirements analysis) A szoftver követelmények alatt szoftver rendszer követelményeket értünk, amelyek leírandók az orvostechnikai eszköz minden szoftver rendszerére. Az aktivitás bemenete a rendszerkövetelmények (beleértve a védőintézkedéseket). Az aktivitás kimenete a szoftver követelmény specifikáció, azaz hogy MIT kell implementálni (akár papíron, akár egy bonyolult adatbázisban, pl. DOORS). A szoftver követelmények fajtái lehetnek: funkcionális, biztonsági, ki-/bemeneti, interfész, riasztást-/figyelmeztetést leíró, adatvédelmi, használhatósági, installációs, karbantartási, stb. A követelményeket ellenőrizni- (verifikálni) és ezt a tényt dokumentálni kell: A rendszer követelményeket implementálják. Nem tartalmaznak önellentmondást. Egyértelműek. Tesztelhetőek. Kockázat-irányítási aktivitás Egyedileg azonosítottak. Nyomon követhetőek a forrásukig. A biztonsággal kapcsolatos követelmények (szoftveres védőintézkedések) definiálása, ellenőrzése. 30

5.2 Szoftver követelmény analízis (Software requirements analysis) Példák: A felügyelő szoftver hibás működés esetén 3 másodpercen belül kapcsolja le az aktuátorok tápegységét ezáltal biztonságos állapotba helyezve a gépet. Kezelés közben a SW állítsa be a felhasználó által kért vízhőmérsékletet 0.5C fok pontossággal. A terápia megkezdésekor a SW állítsa le a vérpumpát és figyelmeztesse a felhasználót annak elindítására. A rendszer aktiválja a zöld lámpát kezelés közben ha a vérpumpa fut. http://projectmanagement-ijourneys.com/wp-content/uploads/2013/12/project-reqirements.gif 31

5.3 Szoftver architektúra tervezés (Software architectural design) A szoftver architektúra tervezés tevékenység során definiáljuk a fő szerkezeti szoftver elemeket, a külsőleg látható tulajdonságaikat és a kapcsolatot közöttük. Ha egy elem viselkedése befolyásolja a többi elemet, akkor ezt a viselkedést be kell mutatni a szoftver architektúrában. Egy elem - amely hatással lehet egyéb elemekre - viselkedésének megértése (és dokumentálása) hiányában, szinte lehetetlen lesz megmutatni, hogy a rendszer biztonságos. Az aktivitás bemenete a szoftver követelmény specifikáció, kimenete az architektúra terv (csak B és C biztonsági osztályú szoftverekre). A tervnek ki kell térnie a SOUP elemre, az azok felé- és azok által támasztott követelményekre. A tervnek láttatnia kell a védőintézkedéseket megvalósító elemek elkülönülését. Az architektúra tervet ellenőrizni- (verifikálni) és ezt a tényt dokumentálni kell: A szoftver követelményeket teljes mértékben implementálja (beleértve a védőintézkedéseket). Megvalósítható, azaz tartalmazza a SW-SW és SW-HW interfészeket és definiálja a SOUP-ok környezetét. Kockázat-irányítási aktivitás Az architektúra tervezés végén áll elő a szoftver elemek teljes listája, amely bemenete a kockázatbefolyásolásnak. A megfelelő biztonsági szoftver architektúra gondos kozkázatmegállapítás eredménye kell, hogy legyen. A szoftver rendszert úgy kell megtervezni, hogy egy SOUP meghibásodása esetén is megfelelő védelmet biztosítson. 32

Néhány szó az OTS szoftverekről (ismétlés az előző előadás anyagából) OTS = Off The Shelf vásárolt ma már egyre nagyobb arányban használt az orvosi eszköz gyártó is az alkalmazásokra koncentrálhat, melyek a speciális eszköz funkciók megvalósításához kell sok funkciója lehet, de az orvosi eszközben esetleg csak néhányat használunk az orvosi eszköz gyártó a felelős minden szoftverért, ami a készülékben van vásárlás előtt meggyőződni, hogy jó lesz az általunk kijelölt alkalmazási célra KOCKÁZAT (RISK) Az általános célra fejlesztett szoftverek nem biztos, hogy jók az orvosi eszközbe Az orvosi eszköz gyártó általánosságban feladja az OTS szoftverfejlesztési életciklus kontrollálását, de egyidejűleg felelőssége megmarad, hogy biztonságos (safe) és hatásos (effective performance) készüléket helyezzen ki a piacra OTS szoftverekre speciális, külön útmutató (FDA Guidance) 33

5.4 Szoftver részletes tervezés (Software detailed design) A szoftver részletes tervezési tevékenysége során finomítjuk/pontosítjuk az architektúra lépés során meghatározott szoftver elemeket és interfészeket, hogy kialakítsuk a szoftver egységeket és azok interfészeit. Az aktivitás bemenete a szoftver architektúra terv, kimenete a részletes terv. (csak C osztályú szoftverekre.) A részletes terv specifikálja, hogy a követelményeket HOGYAN kell implementálni: algoritmusokat, adat reprezentációt, szoftver egységek közti vezérlési folyamatokat. A tervezés történhet papír alapon vagy akár CASE eszközökkel, pl. Matlab/Simulink. A részletes tervet ellenőrizni- (verifikálni) és ezt a tényt dokumentálni kell: Az architektúra tervet implementálja, illetve azzal nincs ellentmondásban. Kockázat-irányítási aktivitás Egy szoftver elem felbontható több elemre úgy, hogy az új elemek közül csak néhány valósítja meg az eredeti elem biztonsági funkcióit. A fennmaradó elemek biztonsági osztályozása így módon csökkenthető. 34

PÉLDA: Egyszerű infúziós pumpa SW követelmények 1. A SW a pumpát a felhasználói beállításnak megfelelően kell hogy forgassa. 2. A SW-nek aktiválnia kell a buzzert, ha a pumpa nem a beállítás szerint forog. (védőintézkedés) SW architektúra (Rendszer architektúra) User Input Buzzer Vezérlő HW SW Pumpa Vezérlő [B] (part [C]) Ellenőrző [C] Részletes terv OS (SOUP) [C] A vezérlő ciklikusan beolvassa a beállítást és továbbítja a pumpának az OS-en keresztül Az ellenőrző ciklikusan beolvassa a beállítást és az aktuális forgási sebességet az OS-en keresztül, valamint eltérés esetén aktiválja a buzzert Implementáció void Vezerlo() { while(1) SetPumpSpeed(ReadSetting()); } void Ellenorzo() { while(1) { if(getpumpspeed()!= ReadSetting()) BuzzerEnable(); else BuzzerDisable(); } } 35

Szoftver rendszer fejlesztési életciklus modell - IEC 62304 36

5.5 Szoftver egység megvalósítás és ellenőrzés (Software unit implementation and verification) Minden szoftver egységet (unit) meg kell valósítani (implementálni), azaz forráskódra kell fordítani a meghatározott részletes tervet (manuálisan vagy kód generálással). A feladat az, hogy kódot kell írni a szoftver egységekhez és ezt ellenőrizni (verifikálni) kell. A kódolás képviseli azt a pontot, ahol a specifikáció lebontása véget ér és a futtatható szoftver előállítása elkezdődik. Az elvárt kódolási stílus eléréséhez kódolási szabályozást kell meghatározni, amely segítségével következetesen elérhető, hogy a kód a kívánatos jellemzőkkel rendelkezzen. Minden unithoz tartozó kódot verifikálni kell. A kód verifikálása során meg kell győződni arról, hogy a funkciók a részletes tervben specifikáltak alapján lettek megírva és a kódolás során a kódolási szabályozást követték. Külön elfogadási kritériumok vonatkoznak a C biztonsági osztályú szoftver elemekre. Az egység ellenőrzés eszközei lehetnek pl.: statikus kódanalizáló eszközök (Lint, QA- C, stb.), unit teszt, manuális kódátvizsgálás. Kockázat-irányítási aktivitás Ebben a lépésben fontos megkülönböztetni a nem biztonságkritikus és a biztonságkritikus kódokat. A biztonságkritikus kódok ellenőrzésénél a cél, hogy a komponens hibaágra fusson és végezze el a szükséges tevékenységeket. A unit tesztelés lényege, hogy ellenőrizze, hogy a kód szándék szerint működik-e, jól meghatározott keretek között Továbbá elengedhetetlen, hogy a védőintézkedések a lehető legteljesebb mértékben legyenek kipróbálva. 37

PÉLDA: Szoftver egység ellenőrzési és integrációs eszköz architektúra QA-C AutoTester (&Trace32,...) Build Server SVN Jenkins Sonar Lint (single) AutoTester (single) 38

Példa: unit test, static code analysis 39

Example of risk based Item/Unit test strategy Unit Verification In Item A In Item B In Item C Review O M M Independent review O O M Rule check M M M Basic Unit test O M M 100% Code coverage O O M Integration level test O O M M=Mandatory O=Optional Class A: No injury or damage to health is possible Class B: Non-SERIOUS INJURY is possible Class C: Death or SERIOUS INJURY is possible 40

Szoftver rendszer fejlesztési életciklus modell - IEC 62304 41

5.6 Szoftver integráció és integrációs teszt (Software integration and integration testing) A szoftver integráció és integrációs teszt tevékenység során meg kell tervezni és végre kell hajtani a szoftver egységek (unitok) integrálását (komponensekbe) rendszerekbe és ellenőrizni (verifikálni) kell, hogy a kapott rendszer a szándékolt cél (az architektúra terv ismeretében) szerint működik. A szoftver integrációs teszt során nagy hangsúlyt kell fektetni az adatok átvitelére, a szoftver elemek belső és külső interfészeinek ellenőrzésére. A külső interfészek ellenőrzése során vizsgáljuk a kapcsolatot más szoftverekkel - ami lehet egy működő rendszer szoftver is - vagy orvostechnikai eszköz hardverrel. A szoftver integrációs teszt szimulációs környezetben, az éppen aktuális cél hardveren vagy a teljes orvostechnikai eszközön is végrehajtható. A szoftver integrációs teszt lehetőleg tartalmazzon white- és black box módszereket. Változtatások során regressziós tesztet kell végezni, demonstrálva a nem módosult részek hibamentességét (pl. automatikusan, akár naponta). Az integrációs teszt jegyzőkönyvnek tartalmaznia kell: az eredményt, elegendő információt a megismételhetőséghez, a tesztelő személyazonosságát. 42

5.6 Szoftver integráció és integrációs teszt - folytatás (Software integration and integration testing) A szoftver integrációs teszt során felmerülő problémák kezelésére a szoftver probléma megoldási folyamatot kell használni. A szoftver integrációs tesztet lehetséges a szoftver rendszer teszttel kombinálni. Kockázat-irányítási aktivitás Sok módszer létezik arra, hogy meggyőződhessünk arról, hogy a védőintézkedések jó eséllyel szándék szerint működnek, de egyik sem elegendő önmagában: - Statikus analízis (kód-, terv átvizsgálás (design reviews), stb.) - Dinamikus tesztelés (funkcionális-, performancia-, stressz-, használat alapú, időzítés-, memória-, stb.) - Modellezés (környezet-, időzítés szimulálás, használat modellezés) Megj.: A példák ábrázolva a következő oldalon. 43

44

5.7 Szoftver rendszer tesztelés (Software system testing) A szoftver rendszer tesztelés során meg kell győződni arról, hogy a szoftver rendszer szándékolt cél szerint működik. A szoftver rendszer akkor tekintendő teszteltnek, ha az összes szoftver követelmény és a szoftver követelmények kombinációja (ha létezik valamilyen függőség) is le van fedve. A szoftver rendszer teszt során felmerülő problémák kezelésére a szoftver probléma megoldási folyamatot kell használni. A szoftver rendszer teszt szimulációs környezetben, az éppen aktuális cél hardveren vagy a teljes orvostechnikai eszközön is végrehajtható. Az rendszer teszt jegyzőkönyvnek tartalmaznia kell: az eredményt, elegendő információt a megismételhetőséghez, a tesztelő személyazonosságát. Változtatások során regressziós tesztet kell végezni, demonstrálva a nem módosult részek hibamentességét (pl. automatikusan, akár naponta). 45

5.7 Szoftver rendszer tesztelés (Software system testing) - folytatás A szoftver rendszer tesztelést ellenőrizni- (verifikálni) és ezt a tényt dokumentálni kell: A felhasznált teszt eljárások megfelelőek. Az elvégzett tesztek teljes mértékben lefedik a követelményeket (beleértve a védőintézkedéseket). A teszt eredmények nyomon követhetőek a követelményekig. Minden teszt sikerrel lett végrehajtva Kockázat-irányítási aktivitás Az orvostechnikai eszköz szoftverének módosításainak analízise - biztonsági szempontból - biztosítja, hogy a változásnak ne legyen nem szándékolt mellékhatása a biztonságra, függetlenül a korábbi biztonsági osztályba (A, B, C) sorolástól. A főbb elvárások a következők: - A szoftverváltozásokat (beleértve a SOUP-okat is) meg kell vizsgálni a lehetséges szoftverhibákból eredő veszélyes helyzetek tekintetében, hogy kiderüljön szükséges-e további védőintézkedések definiálása. - A szoftverváltozások (beleértve a SOUP-okat is) hatását is meg kell vizsgálni, hogy kiderüljön meghiúsítanak-e már korábban implementált védőintézkedéseket. 46

Example of risk based requirement test strategy Req.Class Verification A B C Exploratory O O M Scripted(Req. Based) M M M Independent Review O M M M=Mandatory O=Optional Risk control measures included in reqs Class A: No injury or damage to health is possible Class B: Non-SERIOUS INJURY is possible Class C: Death or SERIOUS INJURY is possible 47

PÉLDA: Egyszerű infúziós pumpa SW követelmények 1. A SW a pumpát a felhasználói beállításnak megfelelően kell hogy forgassa. 2. A SW-nek aktiválnia kell a buzzert, ha a pumpa nem a beállítás szerint forog. (védőintézkedés) SW architektúra (Rendszer architektúra) User Input Buzzer Vezérlő HW SW Pumpa Részletes terv Vezérlő [B] (part [C]) OS (SOUP) [C] Ellenőrző [C] A vezérlő ciklikusan beolvassa a beállítást és továbbítja a pumpának az OS-en keresztül Az ellenőrző ciklikusan beolvassa a beállítást és az aktuális forgási sebességet az OS-en keresztül, valamint eltérés esetén aktiválja a buzzert SW Rendszer Teszt Indítsa el az infúziót. Állítsa be az infúziós rátát 100ml/órára. Várjon egy órát. Ellenőrizze, hogy a pumpa 100ml folyadékot továbbított. Kössön jelgenerátort a pumpa sebességét továbbító jelkábelre és állítson be a kívánt sebességnél nagyobb sebességet. Ellenőrizze, hogy a buzzer megszólalt. 48

5.8 Szoftver kiadás (Software release) A kiadandó orvostechnikai eszköz szoftver verziójával kapcsolatos minden szoftver kiadással kapcsolatos tevékenységet a megfelelő eljárást követve kell végrehajtani és a szoftver kiadást dokumentálni kell. A szoftver verifikációt a követelményekkel szemben végre kell hajtani és az eredményeket ki kell értékelni, mielőtt a szoftvert kiadnák. A szoftver kiadás lépései a következők: Biztosítani kell a verifikáció teljességét; Az ismert fennmaradó rendellenességeket dokumentálni kell; Értékelni kell a fennmaradó rendellenességeket; A kiadott verziót dokumentálni kell; Dokumentálni kell hogyan készült a kiadott szoftver; Biztosítani kell a tevékenységek és feladatok befejezettségét; Archiválni kell a szoftvert; Biztosítani kell a szoftver kiadásának megismételhetőségét; 49

5.8 Szoftver kiadás (Software release) - folytatás Kockázat-irányítási aktivitás Amikor a szoftver tesztelés befejeződött és az eredmények kiértékelésre kerültek, kockázatközpontú szemlélettel annak ellenőrzésére kell fókuszálni, hogy a szoftverben implementált védőintézkedések nyomon követhetőek legyenek a kockázatelemzésbeli definíciótól kezdve az azt ellenőrző tesztjegyzőkönyvig. A konfigurációirányítási terv feladata, hogy azonosítva legyen az együtt tesztelt szoftver- és hardverelem verziók sokasága. A konfigurációirányítási terv szerint a szoftvert előállító (build) környezet és az összes felhasznált eszköz is konfiguráció ellenőrzés alá kell, hogy kerüljenek. 50

IEC 62304 Medical Device Software Software Life-cycle processes Structure: 1. Scope 2. Normative References 3. Terms and Definitions 4. General Requirements 5. SW Development Process 6. SW Maintenance Process 7. SW Risk Management Process 8. SW Configuration Management Process 9. SW Problem Resolution Process 51

6. Szoftver karbantartási folyamat (Software Maintenance Process) Development process Maintenance process 5.1 SW development planning 5.2 SW requirements analysis 5.3 SW architectural design 5.4 SW detailed design 5.5 SW UNIT implementation & verification 5.6 SW integration and integration testing 5.7 SW system testing 5.8 SW release = 6.1 Establish SW maintenance plan 6.2 Problem and modification analysis 5.3 SW architectural design 5.4 SW detailed design 5.5 SW UNIT implementation & verification 5.6 SW integration and integration testing 5.7 SW system testing 5.8 SW release 52

6. Szoftver karbantartási folyamat (Software Maintenance Process) Szoftver karbantartási tervet kell készíteni, melynek: le kell írnia a visszajelzések kezelésének folyamatát, le kell írnia a SOUP-ok változásainak követési folyamatát, tartalmaznia kell kritériumot, hogy mikor tekintendő a visszajelzés problémának, elő kell írnia a kockázat-irányítási, konfiguráció irányítási és probléma megoldási folyamatok használatát, Egy a szoftver fejlesztési folyamatnál kisebb karbantartási folyamat kiépítése megengedett, a visszajelzésekre történő gyors reakció érdekében. Probléma és módosítás analízis aktivitás kiadott szoftver termékre nézve: A visszajelzéseket monitorozni és értékelni kell. A probléma jelentések hatásait meg kell vizsgálni a biztonságra való tekintettel, és szükség esetén módosítási kérelmet kell indítani. A probléma megoldási folyamatot kell használni. A módosítási kérelmeket analizálni kell a szervezetre, a szoftver termékre és interfészeire gyakorolt hatása tekintetében. Majd azokat engedélyeztetni kell. Az engedélyezett módosításokról értesíteni kell a felhasználókat és a felügyelő szerveket (mik a változatlan használat következményei és hogyan lehet beszerezni a módosult szoftver terméket). 53

IEC 62304 Medical Device Software Software Life-cycle processes Structure: 1. Scope 2. Normative References 3. Terms and Definitions 4. General Requirements 5. SW Development Process 6. SW Maintenance Process 7. SW Risk Management Process 8. SW Configuration Management Process 9. SW Problem Resolution Process 54

8. Szoftver konfiguráció-irányítási folyamat (Software Configuration Management Process) Biztosítani kell egy rendszert a konfigurációs elemek (szoftver elemek, SOUP-ok, dokumentumok) és verzióik egyedi azonosíthatóságára. A szoftver rendszerbeli konfigurációs elemek halmazát le kell dokumentálni, és e dokumentáció előéletét meg kell őrizni. A konfigurációs elemeket csak engedélyezett módosítási kérelem alapján szabad módosítani. A módosítás megvalósítása során azonosítani kell a megismétlendő aktivitásokat, ideértve a biztonsági osztályozásbeli változtatást is. A módosításokat ellenőrizni kell a fejlesztési- és probléma megoldási folyamatok szerint. Biztosítani kell a módosítási kérelem, az esetlegesen érintett probléma jelentés és a módosítás engedélyezésének nyomon-követhetőségét. 55

IEC 62304 Medical Device Software Software Life-cycle processes Structure: 1. Scope 2. Normative References 3. Terms and Definitions 4. General Requirements 5. SW Development Process 6. SW Maintenance Process 7. SW Risk Management Process 8. SW Configuration Management Process 9. SW Problem Resolution Process 56

8. Szoftver probléma megoldási folyamat (Software Problem Resolution Process) Aktivitások: Probléma jelentés előkészítés (kategorizálás: típus, hatály, kritikusság) A probléma okának és megoldásának felkutatása A probléma hatásainak vizsgálata, különösen a biztonságra való tekintettel Az értékelések dokumentálása Módosítási kérelem indítása Érintett felek értesítése A (!) probléma megoldása (!) a jóváhagyott módosítási kérelem alapján A módosult szoftver részek (regressziós) tesztelése A probléma megoldottságának ellenőrzése A probléma jelentés - beleértve a megoldást és az ellenőrzést - megőrzése (pl. adatbázisban) Probléma jelentések tendenciáinak analizálása 57

Példa: JIRA http://blogs.atlassian.com/wp-content/uploads/pt2e.png http://ayehu.com/wp-content/uploads/2014/11/jira-workflow.jpg 58

Köszönöm a figyelmet! http://hr.blr.com/images/news/medical-questions.jpg 59