Orvosi eszközök gyártmányfejlesztése PEMS beágyazott szoftverének fejlesztése
Dolgos Márton Budapest, 2013-10-31
Bemutatkozás Dolgos Márton Okleveles villamosmérnök (2008) Bay Zoltán Alkalmazott Kutatási Közalapítvány - Junior kutató (2006) B.Braun Medical Kft., Fejlesztő csoport - Hardver fejlesztő gyakornok (2006-2008) - Fejlesztőmérnök (2008-2011) - Fejlesztőmérnök, témavezető (2011- )
Kérdés esetén elérhetőség:
[email protected]
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 2
Tartalom
PEMS fogalma PEMS fejlesztési ciklus - SW helye SW Risk Management SW Development SW Maintenance SW Configuration Management SW Problem Resolution
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 3
Orvostechnikai eszköz menedzsment szabványok ISO14971 ISO13485
IEC 62304:2006 Figure C.1 BEFOLYÁSOL
BEFOLYÁSOL
KÖVETEL
Kijelöli az orvostechnikai eszköz fejlesztés alapjait
Orvostechnikai eszköz folyamat szabvány IEC 62304
BEFOLYÁSOL
Orvostechnikai eszköz szoftver
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
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 4
Orvostechnikai eszköz termék szabványok IEC 60601-1
Specifikus iránymutatást ad a biztonságos orvostechnikai eszköz készítéséhez
PEMS és PESS fogalma (Komplexitás)
Programmable electrical medical system PEMS Programozható gyógyászati villamos rendszer (PEMS)
Programmable electronic subsystem PESS Programozható elektronikus alrendszer (PESS)
• Olyan gyógyászati villamos készülék vagy gyógyászati villamos rendszer, amely egy vagy több programozható elektronikus alrendszert tartalmaz
• Olyan rendszer, amely egy vagy több központi feldolgozó egységen alapul, beleértve a szoftvert és az interfészeket is.
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 5
Komplex rendszer A PEMS nagyobb alrendszerekre bontódik le, amelyek sorra olyan alrendszerekből épülnek fel, amelyek PESS-t tartalmaznak
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 6
PEMS Fejlesztési ciklus - V model ( MSZ EN IEC 60601-1-4)
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 7
Orvostechnikai eszköz menedzsment szabványok ISO14971 ISO13485
IEC 62304:2006 Figure C.1 BEFOLYÁSOL
BEFOLYÁSOL
KÖVETEL
Kijelöli az orvostechnikai eszköz fejlesztés alapjait
Orvostechnikai eszköz folyamat szabvány IEC 62304
BEFOLYÁSOL
Orvostechnikai eszköz szoftver
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
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 8
Orvostechnikai eszköz termék szabványok IEC 60601-1
Specifikus iránymutatást ad a biztonságos orvostechnikai eszköz készítéséhez
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.
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page
Orvostechnikai eszköz menedzsment szabványok ISO14971 ISO13485
IEC 62304:2006 Figure C.1 BEFOLYÁSOL
BEFOLYÁSOL
KÖVETEL
Kijelöli az orvostechnikai eszköz fejlesztés alapjait
Orvostechnikai eszköz folyamat szabvány IEC 62304
BEFOLYÁSOL
Orvostechnikai eszköz szoftver
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
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 10
Orvostechnikai eszköz termék szabványok IEC 60601-1
Specifikus iránymutatást ad a biztonságos orvostechnikai eszköz készítéséhez
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 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”). 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).
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 12
Szoftverfejlesztési FOLYAMATOK és AKTIVITÁSOK áttekintése
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 13
PÉLDA: 62304 aktivitások az inkrementális vagy fejlődéses modellben
Mapping 62304’s activities… 5.1 SW 5.1Development 5.1 SWSW Development Development Planning Planning Planning 5.1 SW Development Planning 5.2 SW 5.2 SW 5.2 SW Requirements Requirements Requirements Analysis Analysis Analysis
5.3 SW 5.3Architectural SW 5.3 SW Architectural Design Design Architectural
Design
5.4 SW 5.4 SW Detailed Design
5.6 SW Integration 5.6 SW and Integr. Testing
5.5SW SW Unit 5.5 Unit Implement. & Verif
Detailed Design
Implement. & Verification
Integration and Integr. Testing
5.7 SW 5.7 SW System System Testing Testing
5.8 SW SW 5.8 Release 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 Release
5.1 SW Development Planning - 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
More stories …
For Each Story
5.7 SW System Testing | A.Csík | Medical device software | Page 19 BA, R&DBA-HU Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 14
5.6 SW Integration and Integration Testing 5.7 SW System Testing & Regression Testing
More Increments …
For Each Increment
5.6 SW Integration and Integration Testing 5.7 SW System Testing & Regression Testing 5.8 SW Release
More Releases …
5.1 SW Development Planning - 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ó. BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 15
Egy szoftver rendszer (62304) helye a PEMS-ben
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 16
Definíciók (2) Szoftver elem (Software Item) Szoftver elem bármilyen azonosítható számítógép program rész lehet. 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. BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 17
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.
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 18
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 BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 19
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 nem lehet hatékonyan végezni csak úgy, 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. 2. A szoftvertől megkövetelt védőintézkedéseket definiálni és implementálni kell. 3. A szoftvertől megkövetelt védőintézkedéseket ellenőrizni kell. 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. * Az előadásban szereplő szövegek részben a szabvány értelmezésének (ANNEX A és B) magyarnyelvű szabad fordításai. BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 20
Kockázat mátrix (Ismétlés RM)
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 21
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á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.
A biztonsági osztálynak megfelelő aktivitások/feladatok vonatkoznak az adott szoftver elemre.
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 22
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.
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 23
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 BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 24
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
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 25
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
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 26
Szoftver rendszer fejlesztési életciklus modell - IEC 62304
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 27
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. Egyedileg azonosítottak. Nyomon követhetőek a forrásukig. Kockázat-irányítási aktivitás A biztonsággal kapcsolatos követelmények (szoftveres védőintézkedések) definiálása, ellenőrzése. BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 28
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. BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 29
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. 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 csökkenthető.
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 30
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
Vezérlő [B]
(Rendszer architektúra)
User Input
Vezérlő HW SW
Buzzer
Ellenőrző [C]
OS (SOUP) Részletes terv 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(); } }
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 31
Pumpa
Szoftver rendszer fejlesztési életciklus modell - IEC 62304
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 32
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, QAC, 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. BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 33
PÉLDA: Szoftver egység ellenőrzési és integrációs eszköz architektúra QA-C
AutoTester (&Trace32,...)
Jenkins
SVN
Lint (single)
Build Server
Sonar
AutoTester (single)
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 34
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 35
Szoftver rendszer fejlesztési életciklus modell - IEC 62304
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 36
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. BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 37
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.
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 38
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 39
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ó. A 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).
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 40
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.
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 41
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 42
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;
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 43
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.
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 44
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 BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 45
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
=
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 46
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).
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 47
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 BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 48
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.
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 49
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 BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 50
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
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 51
Köszönöm a figyelmet! Kérdések?
BA, R&D Machines, Location Budapest | M. Dolgos, BBMH | Orvosi eszközök gyártmányfejlesztése | Page 52