MEDCONF 2019 Software - die große Unbekannte in der Geräteentwicklung - DR. NADINE STECH MÜNCHEN, 24.10.2019
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
MEDCONF 2019 Software – die große Unbekannte in der Geräteentwicklung DR. NADINE STECH MÜNCHEN, 24.10.2019 © seleon gmbh | Heilbronn | Dessau | www.seleon.de | www.regulatory-affairs.com
WER SIND WIR UND WO KOMMEN WIR HER? © seleon gmbh | Heilbronn | Dessau | www.seleon.de | www.regulatory-affairs.com
SOFTWARE - DIE GROßE UNBEKANNTE Warum ist mit Software soviel Aufwand verbunden? Was steckt dahinter? Was sind Einflussfaktoren, die man beachten muss? • Grundlagen – Komplexität und Logik • Typische Diagrammtypen • Normenlandschaft und Risikobetrachtung • Softwareentwicklungsschritte • Best Practice • Zusammenfassung © seleon gmbh | Heilbronn | Dessau | www.seleon.de
GRUNDLAGEN DER SW-ENTWICKLUNG KOMPLEXITÄT Software als Black Box: Inputs / Outputs (IO) Inputs Outputs Software/Logik Sensoren Aktuatoren Tasten auditive/ visuelle Ausgabe Eingabefelder Screenänderung etc. etc. © seleon gmbh | Heilbronn | Dessau | www.seleon.de
GRUNDLAGEN DER SW-ENTWICKLUNG KOMPLEXITÄT Software als Black Box: Inputs / Outputs (IO) Inputs Outputs Software/Logik Sensoren S1 - Sx Motoransteuerung M1 © seleon gmbh | Heilbronn | Dessau | www.seleon.de
GRUNDLAGEN DER SW-ENTWICKLUNG KOMPLEXITÄT Logik: Annahme S1, S2 binär; 4 Motorzustände (1-4, z.B. an, aus, geprüft/bereit, in Aktion) M1 S1 S2 1 (aus) 0 0 2 (an) 0 1 3 (geprüft/bereit) 1 0 4 (fahren/in 1 1 Aktion) © seleon gmbh | Heilbronn | Dessau | www.seleon.de
GRUNDLAGEN DER SW-ENTWICKLUNG KOMPLEXITÄT S1 S2 S3 S4 0 0 0 0 Binär 0 1 0 1 0 1 2 2 Sensoren: 2 = 4 Zustände 1 0 1 0 0 1 0 3 Sensoren: 23 = 8 Zustände 1 0 1 0 1 1 1 0 0 1 0 0 4 Sensoren: 24 = 16 Zustände 1 0 0 1 1 0 1 5 Sensoren: 25 = 32 Zustände 1 0 1 0 1 0 1 0 1 1 1 6 Sensoren: 26 = 64 Zustände 1 0 0 0 x Sensoren: 2 Zustände 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 © seleon gmbh | Heilbronn | Dessau | www.seleon.de
GRUNDLAGEN DER SW-ENTWICKLUNG KOMPLEXITÄT Temperatur 12 Temperatur in Celcius Binär 10 8 x Sensoren: 2 Zustände 6 4 Die Welt ist nicht nur binär: 2 0 Z.B. Temperatursensor, Positionssensor, Drucksensor 1 3 5 7 9 11 13 15 17 19 Zeit in Minuten Annahme: Jeder Sensor hat 5 Zustände (Wertbereiche) M1 S1 2 Sensoren: 52 = 25 Zustände Schnell fahren 0≤x
GRUNDLAGEN DER SW-ENTWICKLUNG KOMPLEXITÄT/LOGIK 2 Sensoren: 52 = 25 Zustände Zuordnung der Zustände zur Aktuatorenansteuerung S1 x ≥ 8 1 2 3 4 5 6≤x
GRUNDLAGEN DER SW-ENTWICKLUNG LOGIK 2 Sensoren: 52 = 25 Zustände Zuordnung der Zustände zur Aktuatorenansteuerung S1 x ≥ 8 Erste Zeile M1=0 M1=1 IF (S1≥8 AND S2≥0 AND S2
GRUNDLAGEN DER SW-ENTWICKLUNG LOGIK 2 Sensoren: 52 = 25 Zustände Zuordnung der Zustände zur Aktuatorenansteuerung S1 x ≥ 8 Gelber Bereich M1=0 M1=1 IF (S1≥8 AND S2≥0 AND S2
GRUNDLAGEN DER SW-ENTWICKLUNG LOGIK Einige Programmgrundlagen Bedingungen: IF … ELSE … END IF Verknüpfungen: AND, OR, XOR, +, -, *, / Schleifen: WHILE, FOR Vergleichsoperatoren: >=,
GRUNDLAGEN DER SW-ENTWICKLUNG LOGIK Motor 1 soll fünfmal 10 Schritte IF (S1==1 AND S2==1) fahren, wenn Sensor 1 und Sensor 2 den Wert 1 haben. FOR (i=1; i
SOFTWARE - DIE GROßE UNBEKANNTE Warum ist mit Software soviel Aufwand verbunden? Was steckt dahinter? Was sind Einflussfaktoren, die man beachten muss? • Grundlagen – Komplexität und Logik • Typische Diagrammtypen • Normenlandschaft und Risikobetrachtung • Softwareentwicklungsschritte • Best Practice • Zusammenfassung © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWAREDIAGRAMME USE CASE uc [package] SysArchitektur [SysArchitektur] Abgrenzung SW System System und Umwelt Login Akteure definieren Actor2 Anwendungsfälle definiert Überblick, was Data Access Data Entry SW machen soll «extend» Actor1_child © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWAREDIAGRAMME ACTIVITY DIAGRAM/ FLOW DIAGRAM flow chart Flow Chart stm [StateMachine] Self-Test [StateMachine1] stm [package] SysArchitektur [SysArchitektur] Self-Test Mode OP Mode «FC_Begin» Begin Initial EntryPoint ExitPoint Design Start Restore Mode Error Mode Implementation Self-Test Operations Schrittweiser SW-Ablauf Testing Bedingungen/ Abhängigkeiten «FC_Decision» Errors? SW-Ablauf, welche Schritte benötigt Storage1 Final werden FinalReport1 «FC_End» End © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWAREDIAGRAMME SEQUENCE DIAGRAMM seq [package] SysArchitektur [SysArchitektur] Detaillierte Abläufe und User UI Controller Abhängigkeiten Zusammenspiel der verschiedenen Enter User Login() Akteure Check if User Trained() SW Detaillierung Retrieve Data from Database() User Trained() Msg Login Accepted() Display additional functionality() Request Access to Data() Request Data() Retrieve Data from Memory() Transmit Data() Display Data() © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWARE - DIE GROßE UNBEKANNTE Warum ist mit Software soviel Aufwand verbunden? Was steckt dahinter? Was sind Einflussfaktoren, die man beachten muss? • Grundlagen – Komplexität und Logik • Typische Diagrammtypen • Normenlandschaft und Risikobetrachtung • Softwareentwicklungsschritte • Best Practice • Zusammenfassung © seleon gmbh | Heilbronn | Dessau | www.seleon.de
NORMENLANDSCHAFT ÜBERSICHT • IEC 62304: Medical Software – Software Life Cycle Processes • IEC 62366-1: Medical devices — Part 1: Application of usability engineering to medical devices • ISO 14971: Medical devices — Application of risk management to medical devices • IEC 60601-1: Medical electrical equipment – Part 1: General requirements for basic safety and essential performance • IEC 82304-1: Health software - Part 1: General requirements for product safety • FDA: General Principles of Software Validation; Final Guidance for Industry and FDA Staff • FDA: Content of Premarket Submissions for Management of Cybersecurity in Medical Devices; Guidance for Industry and Food and Drug Administration Staff • FDA: Postmarket Management of Cybersecurity in Medical Devices; Guidance for Industry and Food and Drug Administration Staff © seleon gmbh | Heilbronn | Dessau | www.seleon.de
NORMENLANDSCHAFT IEC 62304 • General Requirements – Risk management, safety classification • Software Development Process • Software Maintenance Process • Software Risk Management Process • Software Configuration Management Process • Software Problem Resolution Process © seleon gmbh | Heilbronn | Dessau | www.seleon.de
NORMENLANDSCHAFT RISIKOMANAGEMENT • Entwicklungs- und Dokumentationsaufwand hängt mit der Risikoklassifizierung zusammen • System: Safety Classification: Klasse I, IIa, IIb und III • Software: Safety Classification/Level of Concern: • IEC 62304: Klasse A, B und C • FDA: Minor, Moderate, Major Klasse A: keine Gefährdungssituation, Versagen kein unvertretbares Risiko Klasse B: Gefährdungssituation, möglicher Schaden keine schwere Verletzung Klasse C: Gefährdungssituation, möglicher Schaden Tod oder schwere Verletzung © seleon gmbh | Heilbronn | Dessau | www.seleon.de
NORMENLANDSCHAFT FDA CYBERSECURITY Cybersecurity Framework Core Functions • Identify – Schnittstellen (Internet, Netzwerk, USB), Schwachstellen für Angriffe • Protect – Zugangsbeschränkung, vertrauenswürdiger Inhalt • Detect – Überpüfung und Aufzeichnung • Respond – Anwender informieren, kritische Funktionalität gewährleisten • Recover – Wiederherstellung des Zustandes Dokumentation • Risikoanalyse, Mitigation und Designbetrachtungen Cybersecurity Risiken und Maßnahmen • Traceability-Matrix • Plan, wie Software aktuell gehalten werden kann (Updates, Patches) • Beschreibung, wie Integrität vor Auslieferung sichergestellt wird • Bedienungsanleitung und produktspezifische Nutzungsumgebung (Antivirus- Software, Firewall) © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWARE - DIE GROßE UNBEKANNTE Warum ist mit Software soviel Aufwand verbunden? Was steckt dahinter? Was sind Einflussfaktoren, die man beachten muss? • Grundlagen – Komplexität und Logik • Typische Diagrammtypen • Normenlandschaft und Risikobetrachtung • Softwareentwicklungsschritte • Best Practice • Zusammenfassung © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWAREENTWICKLUNGSSCHRITTE ÜBERSICHT IEC 62304: Medical Software – Software Life Cycle Processes © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWAREENTWICKLUNGSCHRITTE 5.1 SOFTWARE DEVELOPMENT PLANNING • Rahmenbedingung der SW-Entwicklung per Prozess vorgegeben • Was ist projektspezifisch zu beachten? • Welche Referenzdokumente sind vorhanden? • Welche Dokumente müssen erstellt werden? • Teamzusammenstellung und Rollenverteilung • Einsatz welcher Werkzeuge? • Planung der SW-Entwicklungsaktivitäten © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWAREENTWICKLUNGSSCHRITTE 5.2 SOFTWARE REQUIREMENTS ANALYSIS Was soll die Software tun? stm [package] SysArchitektur [SysArchitektur] Nichttechnische Anforderungen, Systemanforderungen, User Initial Needs Start In softwarespezifische, technische Anforderungen umwandeln uc [package] SysArchitektur [SysArchitektur] Funktionalität System Self-Test Ein-/Ausgaben Actor2 Login Schnittstellen Operations Alarme und Warnungen Cybersecurity Data Access Data Entry «extend» Actor1_child etc. Final © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SW-ENTWICKLUNG 5.3 SOFTWARE ARCHITECTURAL DESIGN Technische Anforderungen strukturieren bdd [package] TestView [SW-System] • Wie SW organisieren? «block,sw system» SW-System Klassendiagramm, Funktionsblöcke, Komponenten, etc. • Schnittstellen zwischen SW-Komponenten und Komponenten außerhalb der SW «block,sw-item» SW-Item 1 «block,sw-item» SW-Item 2 «block,sw-item» SW-Item 3 «block,soup» SOUP (Hardware und Software) • Software of Unknown Provenance (SOUP) «block,sw-item» Einbindung – geforderte SW-Item 4 Funktionalität/Leistung «block,sw-item» SW-Item 5 Beispielsweise: • Motortreiber und Motoransteuerung separieren • Sicherheitsaspekte/Redundanz • Schichtenarchitektur oder andere Design Pattern anwenden © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWAREENTWICKLUNGSSCHRITTE 5.4 SOFTWARE DETAILED DESIGN • Herunterbrechen der SW-Architektur seq [package] SysArchitektur [SysArchitektur] User UI Controller in die kleinste funktionale Einheit • Detaillierung von Abläufen und Logik Enter User Login() Check if User Trained() M1 S1 S2 1 (aus) 0 0 Retrieve Data from Database() User Trained() 2 (an) 0 1 Msg Login Accepted() 3 1 0 Display additional functionality() (geprüft/bereit) Request Access to Data() Request Data() 4 (in Aktion) 1 1 Retrieve Data from Memory() Transmit Data() Display Data() © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWAREENTWICKLUNGSSCHRITTE 5.5 SW UNIT IMPLEMENTATION AND VERIFICATION seq [package] SysArchitektur [SysArchitektur] • Eigentliche Implementierung User UI Controller • Sicherstellen, dass richtig umgesetzt: • Unit Tests Detailed Design • Code Reviews Enter User Login() Check if User Trained() • Static Code Analysis • Etc. User Trained() Retrieve Data from Database() Msg Login Accepted() M1 S1 S2 IF (S1==1 AND S2==1) Display additional functionality() 1 (aus) 0 0 FOR (i=1; i
SOFTWAREENTWICKLUNGSSCHRITTE 5.6 SOFTWARE INTEGRATION AND INTEGRATION TESTING • Integrationsplan mit Kriterien: bdd [package] TestView [SW-System] «block,sw system» • Erfüllt geforderte Funktionalität SW-System • Festgelegte Timings • Festgelegte Funktion mit Schnittstellen • Abnorme Bedingungen Missbrauch «block,sw-item» «block,sw-item» «block,sw-item» «block,soup» • Etc. SW-Item 1 SW-Item 2 SW-Item 3 SOUP • Integration der SW-Units zu SW-Items «block,sw-item» SW-Item 4 • Integration der SW-Items zum SW-System «block,sw-item» • Sicherstellen, dass richtig umgesetzt: SW-Item 5 • Integrationstests Architecture • Code Reviews © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWAREENTWICKLUNGSSCHRITTE 5.7 SOFTWARE SYSTEM TEST • Sicherstellen, dass richtig umgesetzt: stm [package] SysArchitektur [SysArchitektur] • System Tests SW Requirements (automatisiert or Initial manuell) • Code Reviews • Etc. Start uc [package] SysArchitektur [SysArchitektur] System Self-Test Login Actor2 Operations Data Access Data Entry «extend» Actor1_child Final © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWAREENTWICKLUNGSSCHRITTE 5.8 SOFTWARE RELEASE • Freigabedokumentation • Build-Dokumentation • Revision History • Known Anomalies • Maintenance Plan • Etc. © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWARE - DIE GROßE UNBEKANNTE Warum ist mit Software soviel Aufwand verbunden? Was steckt dahinter? Was sind Einflussfaktoren, die man beachten muss? • Grundlagen – Komplexität und Logik • Typische Diagrammtypen • Normenlandschaft und Risikobetrachtung • Softwareentwicklungsschritte • Best Practice • Zusammenfassung © seleon gmbh | Heilbronn | Dessau | www.seleon.de
BEST PRACTICE PLANUNG - ALLGEMEIN Wie kalkuliere ich meine Aufwände und Projektlaufzeiten bei großen und komplexen Medizingeräteentwicklungen treffsicher? • Planung • Überblick: Welche Teilgruppen und Features habe ich? • Was muss in HW realisiert werden? Was muss in SW realisiert werden? • Was kann in HW ODER in SW realisiert werden? • Abhängigkeiten? Entwicklungszeiten und Lieferzeiten in HW? • Was ist „essential“ und was ist „nice-to-have“ für das Produkt? • Technische Experten (SW, FW) müssen mitplanen • Rahmenbedingungen (Ressourcen und Zeitplan) • Welche Ressourcen mit welchen Kenntnissen stehen zur Verfügung? • Welcher Zeitplan muss erreicht werden? Braucht man mehr Ressourcen? © seleon gmbh | Heilbronn | Dessau | www.seleon.de
BEST PRACTICE PLANUNG - SOFTWARE Wie kalkuliere ich meine Aufwände und Projektlaufzeiten bei großen und komplexen Medizingeräteentwicklungen treffsicher? Software • Gesamtübersicht über Scope und Features für das Projekt (und was noch zusätzlich dazukommen könnte) • Kalkulationstemplate mit dem Erfahrungsschatz erfahrener Entwickler entwickeln: • z.B. nach Funktionalität und Zeitaufwänden (einfach, mittel, schwer) • Kalkulationstemplate sollte alle SW-Entwicklungsschritte abbilden • oft Fokus auf „Entwicklung“ • Integration und Dokumentation wird vernachlässigt/unterschätzt • Checkliste erstellen, was evtl. auch zu berücksichtigen ist • Cybersecurity, Risikomanagement, Usability etc. • für jedes Projekt angewandt © seleon gmbh | Heilbronn | Dessau | www.seleon.de
BEST PRACTICE ENTWICKLUNG - ALLGEMEIN Wie bekomme ich einen zeitsynchronen Entwicklungsprozess mit Hardware, Firmware und Software hin? • Tracking der Tasks für schnelle Eskalation (Jira, Burn-down-Diagram etc.) • Überblick der Tasks (Jira, Kanban-Board, etc.) • Abhängigkeiten sauber definiert und getrackt Firmware braucht HW und SW • Entkoppelung, wo möglich: • Evaluierungsboards einsetzen, um FW und HW zu entkoppeln • „Gegenschnittstellen-SW“, um SW und FW zu entkoppeln • Plattform für Entscheidungen und Diskussionen, jederzeit abrufbar (Confluence) • Requirements-Engineering und Traceability (Polarion) © seleon gmbh | Heilbronn | Dessau | www.seleon.de
BEST PRACTICE ENTWICKLUNG - SOFTWARE Was sind die speziellen Herausforderungen in immer softwarelastigeren Medizinprodukten? • Überblick: Festlegung, was ist „essential“ und was ist „nice-to-have“ für das Produkt? • Schnittstelle HW FW SW und mögliche Entkopplung • Scope Creep (“Das habe ich mir anders vorgestellt”) • Diagramme am Anfang einsetzen (Systemumfeld, Ablauf, etc.) auch mit Nicht- SWlern • SW Requirements finalisieren, Änderungen müssen neu berücksichtigt werden • SW-Mock-Ups einsetzen • Konzepte/Architektur und sich daraus ergebende Konsequenzen frühzeitig besprechen • Unterschätzung des Integrations- und Dokumentationsaufwands • Unterschätzung der Entwicklungsteamdynamik (Kenntnisse, Geschwindigkeit, etc.) • Unterschätzung der SW-Architektur für das Projekt © seleon gmbh | Heilbronn | Dessau | www.seleon.de
SOFTWARE - DIE GROßE UNBEKANNTE Warum ist mit Software soviel Aufwand verbunden? Was steckt dahinter? Was sind Einflussfaktoren, die man beachten muss? • Grundlagen – Komplexität und Logik • Typische Diagrammtypen • Normenlandschaft und Risikobetrachtung • Softwareentwicklungsschritte • Best Practice • Zusammenfassung © seleon gmbh | Heilbronn | Dessau | www.seleon.de
ZUSAMMENFASSUNG • Grundlegende Softwarelogik und wie Komplexität entsteht • Typische Diagrammtypen: • Use Case (Was soll es tun?) • Activity Diagram (Wie soll es ablaufen?) • Sequence Diagram (Detaillierter Ablauf) • Normen, die man beachten muss (Entwicklung, Life Cycle, Risiko und Cybersecurity) • Softwareentwicklungsschritte (nach IEC 62304): Spezifikation, Implementierung, Verifizierung auf den verschiedenen Ebenen • Best Practice Vorschläge © seleon gmbh | Heilbronn | Dessau | www.seleon.de
VIELEN DANK FÜR IHRE AUFMERKSAMKEIT FRAGEN? Dr. Nadine Stech Teamleiterin Firmware Tel: +49 7131 2774-272 nadine.stech@seleon.de seleon gmbh | Im Zukunftspark 1 | 74076 Heilbronn www.seleon.de | www.regulatory-affairs.org © seleon gmbh | Heilbronn | Dessau | www.seleon.de
www.seleon.de
Sie können auch lesen