Orvosi eszközök gyártmányfejlesztése PEMS beágyazott szoftverének fejlesztése
Kurtán Balázs
[email protected] 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
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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.
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
5
Komplex rendszer A PEMS nagyobb alrendszerekre bontódik le, amelyek sorra olyan alrendszerekből épülnek fel, amelyek PESS-t tartalmaznak
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
6
PEMS Fejlesztési ciklus - V model ( MSZ EN IEC 60601-1-4)
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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.
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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
Connection between 60601 and 62304
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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).
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
12
Szoftverfejlesztési FOLYAMATOK és AKTIVITÁSOK áttekintése
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
13
PÉLDA: Logikai kapcsolat a folyamatok között (SOPs/Ops) Usability Eng.
Active Medical Device
Dev. Plan
System Engineering
Software Development
SDP (1)(2)(3) Risk Mgmt
SW Config. Man.
SW Maint. & Prob. Res
SW Dev.
(3)SOUP (OTS) Item Valid.
(1)SW Risk Man.
Medical SW Test DHF= Design History File (2)SW Tool Valid. Tool Test B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
14 14
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
5.4 SW 5.4 SW Detailed Design
Detailed Design
Design
5.6 SW Integration 5.6 SW and Integr. Testing
5.5SW SW Unit 5.5 Unit Implement. & Verif
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.6 SW Integration and Integration Testing
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 & Regression Testing
5.7 SW System Testing BA-HU | A.Csík | Medical device software | Page 19
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
15
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ó. B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
16
Egy szoftver rendszer (62304) helye a PEMS-ben
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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. B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
18
SW System 1 (SW Item is!)
SW elem és unit
ZW 1 (SW Item is!)
XY 1 (SW Item is!)
…
ZW 1 (SW Item is!)
…
XY n (SW Item is!) nem bontható tovább
Unit 1 (SW Item is!)
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
Unit 2 (SW Item is!)
19
Unit n (SW Item is!)
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
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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 B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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. RCMSRS 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.
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
22
Kockázat mátrix (Ismétlés RM) Példa Éles sarok (megvághat és zúzódást okozhat) •
•
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
23
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
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.
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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.
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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 B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
28
Szoftver rendszer fejlesztési életciklus modell - IEC 62304
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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. 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. B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejleszté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
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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. B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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) B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
33 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ő.
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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
Vezérlő [B] (part [C])
(Rendszer architektúra)
User Input
Vezérlő HW SW
Buzzer
Ellenőrző [C]
OS (SOUP) [C] 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…
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
Implementáció void Vezerlo() { while(1) SetPumpSpeed(ReadSetting()); } void Ellenorzo() { while(1) { if(GetPumpSpeed() != ReadSetting()) BuzzerEnable(); else BuzzerDisable(); } } 35
Pumpa
Szoftver rendszer fejlesztési életciklus modell - IEC 62304
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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, 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. B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
37
PÉLDA: Szoftver egység ellenőrzési és integrációs eszköz architektúra QA-C
AutoTester (&Trace32,...)
Jenkins
SVN
Lint (single) B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
Build Server
Sonar
AutoTester (single) 38
Példa: unit test, static code analysis
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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 B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
40
Szoftver rendszer fejlesztési életciklus modell - IEC 62304
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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. B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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.
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
43
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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).
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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.
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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
Vezérlő [B] (part [C])
Ellenőrző [C]
OS (SOUP) [C] 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…
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
(Rendszer architektúra)
User Input
Vezérlő HW SW
Pumpa
Buzzer
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;
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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.
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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 B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
=
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).
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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 B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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.
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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 B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
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
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
57
Példa: JIRA
http://blogs.atlassian.com/wp-content/uploads/pt2e.png http://ayehu.com/wp-content/uploads/2014/11/JIRA-Workflow.jpg
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
58
Köszönöm a figyelmet!
http://hr.blr.com/images/news/medical -questions.jpg
B. Braun Medical Ltd. | Balázs Kurtán | PEMS beágyazott szoftverének fejlesztése
59