MEDCONF 2019 Software - die große Unbekannte in der Geräteentwicklung - DR. NADINE STECH MÜNCHEN, 24.10.2019

Die Seite wird erstellt Amalia Winter
 
WEITER LESEN
MEDCONF 2019 Software - die große Unbekannte in der Geräteentwicklung - DR. NADINE STECH MÜNCHEN, 24.10.2019
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
MEDCONF 2019 Software - die große Unbekannte in der Geräteentwicklung - DR. NADINE STECH MÜNCHEN, 24.10.2019
WER SIND WIR UND WO KOMMEN WIR HER?

© seleon gmbh | Heilbronn | Dessau | www.seleon.de | www.regulatory-affairs.com
MEDCONF 2019 Software - die große Unbekannte in der Geräteentwicklung - DR. NADINE STECH MÜNCHEN, 24.10.2019
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
MEDCONF 2019 Software - die große Unbekannte in der Geräteentwicklung - DR. NADINE STECH MÜNCHEN, 24.10.2019
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