{"id":1100,"date":"2014-06-29T00:19:36","date_gmt":"2014-06-28T22:19:36","guid":{"rendered":"http:\/\/www.capri-soft.de\/blog\/?p=1100"},"modified":"2017-05-30T09:12:59","modified_gmt":"2017-05-30T07:12:59","slug":"allgemeine-grundsaetze-der-software-validierung","status":"publish","type":"post","link":"https:\/\/www.capri-soft.de\/blog\/?p=1100","title":{"rendered":"Allgemeine Grunds\u00e4tze der Software Validierung in der Medizintechnik"},"content":{"rendered":"<h1>Zweck<\/h1>\n<p>Dieses Dokument dient als Leitfaden f\u00fcr die Software Validierung und stellt die Ansichten der FDA (Food and Drug Administration) \u00fcber dieses Thema dar.<br \/>\nDie Anleitung fasst allgemeine Validierungsprinzipien zusammen, die die FDA vorschreibt f\u00fcr die Validierung von Entwurfs-, Entwicklungs- und Produktionssoftware von Medizinger\u00e4ten.<\/p>\n<h1>Rahmen<\/h1>\n<p>Dieser Leitfaden beschreibt, wie sich bestimmte Vorkehrungen f\u00fcr das Qualit\u00e4tssystem von Softwrare medizinischer Ger\u00e4te mit dem momemtanen Ansatz der FDA und Evaluierung von Software-Validierungssystemen treffen lassen.<\/p>\n<p><small>Anmerkung: Das Wort \u00a8System\u00a8 benutzt die FDA oft als Definition f\u00fcr ein B\u00fcndel mehrerer Prozesse.<\/small><\/p>\n<p>Dieses Dokument zeigt Kriterien, die von der FDA f\u00fcr die Validierung von Software akzeptiert werden. Jedoch zeigt es nicht alle Aktivit\u00e4ten und Aufgaben f\u00fcr die Einhaltung des Gesetzes in allen Instanzen.<\/p>\n<p>Wenn Software von jemand anderem als dem Ger\u00e4tehersteller entwickelt wird, kann der Software Entwickler oder Softwarehersteller (bspw. bei Standardsoftware oder zugekauften SW Komponenten) nicht direkt f\u00fcr die gesetzliche Konformit\u00e4t mit den FDA Gesetzen verantwortlich gemacht werden. <\/p>\n<p>Software Validierung ist eine Anforderung der Qualit\u00e4tssystemerichtlinie, welche am 7. Oktober 1996 ver\u00f6ffentlicht wurde (21 Code of Federal Regulation (CFR) Part 820 bzw. 61 Ferderal Register (FR) 52602). Validierungsanforderungen beziehen sich auf&#8230;<\/p>\n<ul>\n<li>&#8230; Software die als Komponente in medizinischen Produkten genutzt wird<\/li>\n<li>&#8230; Software die selbst ein medizinisches Produkt ist<\/li>\n<li>&#8230; Software die bei der Produktion medizinischer Produkte genutzt wird<\/li>\n<li>&#8230; Software die bei der Entwicklung medizinischer Produkte genutzt wird<\/li>\n<li>&#8230; Software die bei der Implementierung des Qualit\u00e4tssystems des Medizinger\u00e4teherstellers genutzt wird\n<ul>\n<li>&#8230; Software die das Device Design History File aufzeichnet<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h1>Terminologie<\/h1>\n<h2>Requirement<\/h2>\n<p>Ein Requirement ist jedes Bed\u00fcrfnis oder jede Erwartung an ein System oder dessen Software.<\/p>\n<p>Es gibt die folgenden Arten von Requirements:<\/p>\n<ul>\n<li>Design Requirements<\/li>\n<li>Functional Requirements<\/li>\n<li>Implementation Requirements<\/li>\n<li>Interface Requirements<\/li>\n<li>Performance Requirements<\/li>\n<li>Physical Requirements<\/li>\n<\/ul>\n<p>Software Requirements werden typischerweise von System Requirements hergeleitet und in funktionalen Begriffen erkl\u00e4rt. Sie werden genau ausgestaltet, definiert und w\u00e4hrend dem Fortschreiten des Entwicklungsprojektes beschrieben.<\/p>\n<h2>Spezifikation<\/h2>\n<p>Eine Spezifikation wird als ein Dokument, welches Requirments erkl\u00e4rt\/darlegt, definiert (Siehe 21 CFR \u00a7820.3(y).).<\/p>\n<p>Zu einer Spezifikation geh\u00f6ren zum Beispiel die folgenden Artefakte<\/p>\n<ul>\n<li>Zeichnungen<\/li>\n<li>Muster<\/li>\n<li>relevante Dokumente<\/li>\n<li>&#8230;<\/li>\n<\/ul>\n<p>In der Spezifikation stehen auch Pr\u00fcfkriterien und -mittel um ein Requirement hinsichtlich seiner Konformit\u00e4t zu \u00fcberpr\u00fcfen.<\/p>\n<p>Es gibt die folgenden Arten von Spezifikationen<\/p>\n<ul>\n<li>System Requirements Specification<\/li>\n<li>Software Requirements Specification<\/li>\n<li>Software Design Specification<\/li>\n<li>Software Test Specification<\/li>\n<li>Software Integration Specification<\/li>\n<\/ul>\n<p>Alle diese Spezifikationsdokumente definieren spezifierte Requirements und dienen als \u00a8Design Output\u00a8, wof\u00fcr verschiedenste Formen der Verifikation notwendig sind.<\/p>\n<h2>Verifizierung und Validierung<\/h2>\n<p>Die Prozesse des Qualit\u00e4tsmanagmentsystems werden in der ISO-Norm ISO 8402:1994 beschrieben, welche die Begriffe Verifikation und Validierung als zwei unterschiedliche und eindeutige Dinge definiert. Demgegen\u00fcber gibt es viele Software Engineering Zeitschriften, Artikel und Fachb\u00fccher, welche die Begriffe \u00a8Validierung\u00a8 und \u00a8Verifikation\u00a8 wie Synonyme behandeln.<\/p>\n<p>Die Definitionen werden hier nach der Norm gew\u00e4hlt.<\/p>\n<h3>Software Verification<\/h3>\n<p>Software Verifikation f\u00fchrt den objektiven Beweis, dass der \u00a8Design Output\u00a8 einer einzelnen Phase im Softwareentwicklungslebenszyklus alle spezifizierten Requirements erf\u00fcllt.<br \/>\nSoftware Verifikation \u00fcberpr\u00fcft die Widerspruchsfreiheit, die Vollst\u00e4ndigkeit und die Korrektheit von Software und ihrer Dokumentation, wie sie entwickelt wird und unterst\u00fctzt anschlie\u00dfend Schlussfolgerungen ob die Software validiert ist.<\/p>\n<p>Software Tests sind eine von mehren Verifikationsm\u00f6glichkeiten, die belegen sollen dass das Softwareentwicklungsergebnis (Design Output) den eingeflossenen Requirements (Design Input) entspricht.<\/p>\n<p>Verfikationsm\u00f6glichkeiten\/Aktivit\u00e4ten zur Verifizierung von Software sind u.a.<\/p>\n<ul>\n<li>Code Analysen<\/li>\n<li>Softaretests\n<ul>\n<li>Code-Durchg\u00e4nge bzw. Debugging<\/li>\n<li>Logging<\/li>\n<li>Unit Tests &#8230;<\/li>\n<\/ul>\n<\/li>\n<li>Dokumentenreviews<\/li>\n<li>und viele weitere Techniken &#8230;<\/li>\n<\/ul>\n<h3>Software Validierung<\/h3>\n<p>Software Validierung ist Teil der Design Validierung f\u00fcr ein fertiges Ger\u00e4t, wird aber nicht separat in der Qualit\u00e4tssystemverordnung aufgef\u00fchrt.<\/p>\n<p>Die FDA erw\u00e4hnt Software Validierung als&#8230;<\/p>\n<p><center><i>\u00a8&#8230; Best\u00e4tigung durch Untersuchungen und Erbringung eines objektiven Beweises, dass die Software Spezifikation konform zu den Benutzeranforderungen und dem vorgesehenem Verwendungszeck ist und das einzelne Requirements, die durch Software implementiert wurden, durchg\u00e4ngig erf\u00fcllt sind.\u00a8<\/i><\/center>In der Praxis k\u00f6nnen Software Validierungsaktivit\u00e4ten, die sicherstellen ob die Software Requirements erf\u00fcllt sind, sowohl w\u00e4hrend der Entwicklung als auch am Ende des Software Development Life Cycles auftreten.<br \/>\nSeit Software f\u00fcr gew\u00f6hnlich ein Teil gr\u00f6\u00dferer Hardwaresysteme ist, wird die Softwarevalidierung den Beweis beinhalten, dass alle Software Requirements korrekt , komplett und nachvollziehbar\/r\u00fcckverfolgbar zu den System Requirements implementiert\/umgesetzt wurden.<br \/>\nDie Schlussfolgerung darauf, dass Software validiert ist, h\u00e4ngt stark von ausf\u00fchrlichen Softwaretests, \u00dcberpr\u00fcfungen, Analysen und anderen Software Verifikationsaktivit\u00e4ten ab, die in den verschiedensten Phasen des Software Development Life Cycles ausgef\u00fchrt werden.<br \/>\nDas Testen der Softwarefunktionalit\u00e4t des Ger\u00e4tes in einer simulierten Benutzungsumgebung und Benutzer-seitiges Testen sind typische Bestandteile des allgemeinen Design Validierungsprogrammes.<\/p>\n<p>Software Verifikation und Validation ist schwer, weil ein Entwickler nicht ewig testen kann. Es ist auch nicht leicht zu wissen, wieviel Beweisf\u00fchrung notwendig ist. Software Validierung beinhaltet die Entwicklung eines gewissen Vertrauensgrades (\u00a8level of confidence\u00a8) in die Erf\u00fcllung der Anforderungen, Benutzererwartungen und automatisierten Softwarefunktionen und -features des Ger\u00e4tes.<br \/>\nMa\u00dfnahmen \u00fcber gefundene Defekte in Spezifikationsdokumenten und Absch\u00e4tzungen \u00fcber verbleibende Defekte, Testabdeckungen und andere Techniken werden alle genutzt um einen angemessenen Vertrauensgrad (\u00a8level of confidence\u00a8) zu entwickeln, bevor das Produkt in den Markt kommt.<br \/>\nDer Vertrauensgrad, der Grad der Softwarevalidierung und -verifikation, sowie der ben\u00f6tigte Testaufwand wird in Abh\u00e4ngigkeit des Sicherheitsrisikos und der Gefahr (Hazard) der automatisierten Funktionen des Ger\u00e4tes variieren.<\/p>\n<p>Zus\u00e4tzliche Leitlinien bez\u00fcglich des Risikomanagements f\u00fcr Software beinhaltet der internationale Standard ISO\/IEC 14971-1 und IEC 60601-1-4 (Referenziert in Anhang A).<\/p>\n<h2>IQ\/OQ\/PQ<\/h2>\n<p>F\u00fcr viele Jahre haben sowohl die FDA, als auch die regulierte Industrie versucht Software Validierung im Kontext der Prozessvalidierungsterminologie zu verstehen und zu definieren. Zum Beispiel beschreiben Industriedokumente und andre FDA Validierungsrichtlinien manchmal die Benutzer-seitige Software Validierung in den Begriffen:<\/p>\n<ul>\n<li>Installationsqualifikation (IQ)<\/li>\n<li>Operationale Qualifikation (OQ)<\/li>\n<li>Performancequalifikation (PQ)<\/li>\n<\/ul>\n<p>Diese Begriffe und zus\u00e4tzliche Informationen bez\u00fcglich der Begriffe IQ,OQ und PQ k\u00f6nnen in den folgenden FDA Richtlinien gefunden werden:<\/p>\n<ul>\n<li>Guideline on General Principles of Process Validation (May 1987)<\/li>\n<li>Glossary of Computerized System ans Software Development Terminology (August 1995)<\/li>\n<\/ul>\n<p>W\u00e4hrend die IQ\/OQ\/PQ Terminologie ihren Zweck sehr gut erf\u00fcllt hat und eine von mehreren g\u00fcltigen M\u00f6glichkeiten f\u00fcr die Organisation von Softwarevalidierungsaufgaben auf der Benutzerseite ist, wird sie von vielen Softwareexperten nicht ausreichend verstanden und wird hier daher nicht weiter behandelt. Jedoch m\u00fcssen sowohl dem FDA Personal, als auch dem Personal des Ger\u00e4teherstellers die tats\u00e4chlichen Unterschiede in der Terminologie bewusst sein, falls Informationenen \u00fcber Software Validierung eingefordert werden.<\/p>\n<h2>Software Entwicklung als Teil des System Designs<\/h2>\n<p>Die Entscheidung Systemfunktionalit\u00e4t durch Software zu implementieren wird typischerweise w\u00e4hrend des System Designs gemacht. Software Requirements sind \u00fcblicherweise von den allgemeinen System Requirements und dessen Design, welches beabsichtigt diverse Teile in Software zu implementieren, hergeleitet.<br \/>\nF\u00fcr ein fertiggestelltes Ger\u00e4t gibt es einen Anwenderbedarf (user needs) und einen Verwendungszweck (intended use) , wobei Benutzer in der Regel die Entscheidung, welche Requirements durch Hardware oder Software realisiert werden, nicht treffen.<br \/>\nFolglich muss Software Validierung im Kontext der Gesamtvalidierung des Systems betrachtet werden.<\/p>\n<p>Ein ausdefiniertes Lastenheft pr\u00e4sentiert den Anwenderbedarf und den Verwendungszweck, f\u00fcr den das Produkt entwickelt wird\/wurde. Das Prim\u00e4rziel von Softwarevalidierung ist zu zeigen, dass fertige Softwareprodukte die dokumentierten Software Requirements und System Requirements erf\u00fcllen.<\/p>\n<p>Die Korrektheit und Komplettheit der System Requirements und Software Requirements wird als Teil des Design Validierungsprozesses des Ger\u00e4tes verstanden. Software Validierung beinhaltet die Konformit\u00e4tsbest\u00e4tigung aller Software Spezifikationen und die Best\u00e4tigung das alle Software Requirements zur\u00fcckfolgbar (Tracability) in die Systemspezifikationen sind.<br \/>\nDas Nachweisen und Belegen der allgemeinen Design Validierung des Gesamtsystems ist ein wichtiger Teil um sicherzustellen, das alle Aspekte des Medizinger\u00e4tes mit den Benutzderbedarfen und dessen Verwendungszweck konform sind.<\/p>\n<h2>Unterschiede von Software zu Hardware<\/h2>\n<p>Obwohl Software und Hardware oft die selben Engineeringaufgaben haben, gibt es gravierende Unterschiede.<br \/>\nHier einige Beispiele:<\/p>\n<ul>\n<li>Die\u00a0h\u00e4ufigsten Softwareprobleme\u00a0sind auf Fehler zur\u00fcckzuf\u00fchren, die w\u00e4hrend des Design und Development Prozesses gemacht wurden, w\u00e4hrend die Qualit\u00e4t eines Hardware Produktes stark von Design, Entwicklung\u00a0<strong>und der\u00a0Produktion<\/strong>\u00a0abh\u00e4ngt, ist die Qualit\u00e4t eines Software Produktes prim\u00e4r von Design und\u00a0Entwicklung mit wenig Bedenken bzgl. Ihrer Herstellung gepr\u00e4gt. Softwareerstellung bedeutet lediglich das Kopieren\/Vervielf\u00e4ltigen von Programmen, was leicht zu verifizieren ist. Es ist nicht schwer tausende Kopien eines Programmes herzustellen die exakt wie das Original funktionieren. Die Schwierigkeit besteht darin, dass das Original-Programm\u00a0 alle Spezifikationen erf\u00fcllt.<\/li>\n<li>Software kann eine alternative Serie von Anweisungen ausf\u00fchren, die von der urspr\u00fcnglichen Eingabe abh\u00e4ngig sind.\u00a0 Dies ist der am meisten beitragende Faktor f\u00fcr die unterschiedliche Charakteristik von Hardware und Software und ihrer Komplexit\u00e4t. Sogar kurze Programme k\u00f6nnen sehr komplex und schwer zu verstehen sein<\/li>\n<li>\u00dcblicherweise kann das Testen alleine nicht sicherstellen, dass Software vollst\u00e4ndig und korrekt ist. Zus\u00e4tzlich zum Testen werden weitere Verifikationsma\u00dfnahmen und ein gut strukturierter und dokumentierter Entwicklungsprozess kombiniert um einen umfassenden Validierungsansatz sicherzustellen.<\/li>\n<li>Im Gegensatz zu Hardware\u00a0 ist Software nicht physisch und kann daher nicht verschleissen. Software kann sich im Alter verbessern, wenn verborgene Defekte aufgedeckt und entfernt werden.\u00a0 Die Tatsache, dass Software Updates und \u00c4nderungen erh\u00e4lt, birgt die Gefahr dass neue Defekte entstehen k\u00f6nnen, die durch die \u00c4nderung kommen k\u00f6nnen.<\/li>\n<li>Im Gegensatz zu manchen Hardwarefehlern, treten Softwarefehler h\u00e4ufig ohne Vorwarnung auf. Programmverzweigung, die es erlaubt verschiedene Programmabschnitte w\u00e4hrend der Ausf\u00fchrung zu durchlaufen, kann Fehler noch lange Zeit nach der Markteinf\u00fchrung verstecken.<\/li>\n<li>Eine weitere Charakteristik von Software ist die Leichtigkeit und Geschwindigkeit in der sie ge\u00e4ndert werden. Dieser Faktor l\u00e4sst Soft- und Hardwareexperten glauben, dass Software Probleme leicht gel\u00f6st werden k\u00f6nnen. Die Kombination mit dem fehlenden Verst\u00e4ndnis von Software l\u00e4sst Manager glauben, dass kontrolliertes Engineering bei Software nicht zu wichtig ist, wie bei Hardware. In Wirklichkeit ist aber genau das Gegenteil der Fall.\u00a0<strong>Wegen der Komplexit\u00e4t sollte der Entwicklungsprozess von Software st\u00e4rker kontrolliert werden, als der von Hardware, um Probleme die sp\u00e4ter schwer erkannt werden k\u00f6nnen im Entwicklungsprozess zu verhindern.<\/strong><\/li>\n<li>Im Software Code unbedeutend erscheinende \u00c4nderungen k\u00f6nnen unerwartete und sehr signifikante Probleme an einer anderen Stelle des Programmes verursachen (Seiteneffekte).<\/li>\n<li>Aufgrund der hohen Nachfrage an Softwareexperten und ihrer Mitarbeit in verschiedenen Projekten an unterschiedlichen Orten, muss das Softwarepersonal, welches \u00c4nderungen an der Originalsoftware macht, nicht in die Erstellung der Or\u00edginalsoftware involviert sein. Eine genau Dokumentation der Software ist unerl\u00e4sslich.<\/li>\n<li>Historisch gesehen sind Softwarebausteine nicht so h\u00e4ufig von Standardisierung und \u00c4nderungen wie HW Komponenten betroffen. Jedoch\u00a0\u00a0fangen die Entwickler von medizinischen Ger\u00e4ten an komponentenbasierte\u00a0Entwicklungstools und -techniken zu nutzen. Objektorientierte Methoden und die Benutzung von Standardsoftwarebausteinen versprechen eine schnellere und weniger kostspielige Entwicklung. Jedoch ben\u00f6tigen komponentenbasierte Ans\u00e4tze eine besondere Achtsamkeit w\u00e4hrend der Integration. Vor der Integration wird Zeit ben\u00f6tigt um wiederverwendbare Software vollends zu definieren und entwickeln und um das Verhalten von Standardsoftwarekomponenten g\u00e4nzlich zu begreifen.<\/li>\n<\/ul>\n<p>Aus diesen und den selbern Gr\u00fcnden, ben\u00f6tigt Software Engineering eine st\u00e4rkere Kontrolle als Hardware Engineering.<\/p>\n<h2>Vorteile von Softwarevalidierung<\/h2>\n<p>Softwarevalidierung ist ein kritisches Werkzeug, welches benutzt wird um die Qualit\u00e4t von Ger\u00e4tesoftware sicherzustellen.<br \/>\nSoftwarevalidierung &#8230;<\/p>\n<ul>\n<li>&#8230; verbessert die Gebrauchstauglichkeit<\/li>\n<li>&#8230; die Ausfallsicherheit des Ger\u00e4tes,<\/li>\n<li>&#8230; f\u00fchrt zu\u00a0sinkenden Fehlerraten,<\/li>\n<li>&#8230; f\u00fchrt zu weniger R\u00fcckrufen und Korrekturarbeiten,<\/li>\n<li>&#8230; f\u00fchrt zu einer Verringerung des Patienten- und Benutzerrisiko<\/li>\n<li>&#8230; f\u00fchrt zu reduzierten Haftungsbedingungen<\/li>\n<li>&#8230; reduziert die Langzeitkosten von Software &#8230;\n<ul>\n<li>&#8230; durch Verbesserung der Betriebssicherheit bei Software\u00e4nderungen und der Revalidierung\u00a0der ge\u00e4nderten Software<\/li>\n<li>&#8230; durch die Reduzierung von Wartungsaufw\u00e4nden<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Design Review<\/h2>\n<p>Design Reviews sind eine dokumentierte, umfassende und systematische \u00dcberpr\u00fcfungen des Designs um die Angemessenheit der Design Requirements zu bewerten, deren Tauglichkeit sicherzustellen\u00a0 und Probleme zu identifzieren. W\u00e4hrend in einem Entwicklungsteam w\u00e4hrend eines Softwareprojektes viele formlose technische\u00a0Design Reviews stattfinden k\u00f6nnen, ist ein formelles Design Review strukturierter und enth\u00e4lt Beteiligung von anderen Mitarbeitern\u00a0au\u00dferhalb des Entwicklungsteams. Formelle Design Reviews k\u00f6nnen Ergebnisse von anderen formellen oder informellen Design Reviews\u00a0referenzieren oder einbeziehen. Design Reviews k\u00f6nnen separat f\u00fcr die Software durchgef\u00fchrt werden, nachdem die Software mit der Hardware in ein System integriert wurde.<br \/>\nDesign Reviews sollten die \u00dcberpr\u00fcfung<\/p>\n<ul>\n<li>zur Einhaltung des Development Planes<\/li>\n<li>der Requirements Spezifikation<\/li>\n<li>der Design Spezifikation<\/li>\n<li>des\u00a0Testplans und -prozeduren<\/li>\n<li>allen anderen Dokumenten und Akvtit\u00e4ten die mit dem Projekt in Verbindung gebracht werden<\/li>\n<li>Ergebnisse von Verifikation jedes Stadiums des defnierten Lebenszyklusses<\/li>\n<li>Valildierungsergebnisse des Gesamtger\u00e4tes<\/li>\n<\/ul>\n<p>enthalten.<\/p>\n<p>Design Reviews sind das Prim\u00e4rwerkzeug f\u00fcr das Management und die Bewertung von Entwicklungsprojekten. Zum Beispiel erlauben es\u00a0formelle Design Reviews zu best\u00e4tigen, dass alle Ziele, die im Softwarevalidierungsplan definiert wurden, auch erreicht sind. Die Verordnung f\u00fcr Qualit\u00e4tssysteme erfordert mindestens ein formelles Design Review w\u00e4hrend der Entwurfsphase\u00a0des Ger\u00e4tes. Jedoch wird empfohlen, mehrere Design Reviews durchzuf\u00fchren (beispielsweise am Ende jeder Aktivit\u00e4t im Softwarelebenszyklus, als Vorbereitung auf die n\u00e4chste Aktivit\u00e4t). Formelle Design Reviews sind besonders gegen Ende der Anforderungsaktivit\u00e4ten, vorher wurden die Hauptressources zu den spezifischen L\u00f6sungen. Probleme die an diesem Punkt gefunden werden, k\u00f6nnen einfach gel\u00f6st werden, Zeit und Geld sparen und\u00a0reduzieren die Wahrscheinlichkeit f\u00fcr das \u00dcbersehen eines kritischen Fehlers.<br \/>\nDie folgenden Antworten auf ein paar Schl\u00fcsselfragen sollten w\u00e4hrend des formellen Design Reviews dokumentiert werden:<\/p>\n<ul>\n<li>Wurden die entsprechenden Aufgaben, erwarteten Ergebnisse, Outputs oder Produkte definiert, dokumentiert oder\u00a0implementiert f\u00fcr alle\u00a0Aktivit\u00e4ten im\u00a0Softwarelebenszyklusses?\n<ul>\n<li>Entsprechen die Aufgaben und die erwarteten Ergebnisse, Outputs oder Produkte aller Aktivit\u00e4ten im Softwarelebenszyklus allen Anforderungen anderer Aktivit\u00e4ten im Softwarelebenszyklus in Sachen Korrektheit, Vollst\u00e4ndigkeit, Konsistenz und Genauigkeit?<\/li>\n<li>Erf\u00fcllen die Aufgaben und die erwarteten Ergebnisse, Outputs oder Produkte aller Aktivit\u00e4ten im Softwarelebenszyklus die Standards, die Praxis und Abmachungen der Aktivit\u00e4t<\/li>\n<li>Defnieren, dokumentieren oder implementieren \u00a0die erwarteten Ergebnisse, Outputs oder Produkte aller Aktivit\u00e4ten im Softwarelebenszyklus eine angemessene Basis um Aufgaben f\u00fcr die n\u00e4chste Life Cycle Aktit\u00e4t zu initiieren?<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h1>Grundlagen der Software Validierung<\/h1>\n<p>Dieser Abschnitt listet die allgemeinen Grundlagen, die bei der Validation von Software ber\u00fccksichtigt werden sollten.<\/p>\n<h2>Requirements<\/h2>\n<p>Eine dokumentierte Software Requirements Spezifikation stellt eine Baseline sowohl f\u00fcr Validierung als auch f\u00fcr die Verifizierung zur Verf\u00fcgung. Der Softwarevalidierungsprozess kann ohne eine ausdefinierte und\u00a0\u00a0dokumentierte\u00a0Software Requirements Specification nicht abgeschlossen werden (Ref: 21 CFR 820.3(z) and (aa) and 820.30(f) and (g)).<\/p>\n<h2>Fehlervermeidung<\/h2>\n<p>Softwarequalit\u00e4tssicherung sollte sich auf die Verhinderung von Fehlern in den Software-Entwicklungsprozess fokussieren und nicht versuchen, die Qualit\u00e4t in den Softwarecode &#8222;reinzutesten&#8220;, nachdem er geschrieben wurde. Das Testen von Software ist sehr beschr\u00e4nkt in seiner F\u00e4higkeit alle verborgenen Fehler im Code ans Tageslicht zu f\u00fchren. Zum Beispiel verhindert die Komplexit\u00e4t am meisten bei Software, dass sie vollst\u00e4ndig getestet wird.<br \/>\n<strong>Das Testen von Software ist eine notwendige Aktivit\u00e4t. Jedoch ist das Testen von Software durch Software meistens nicht ausreichend um die Gewissheit zu erlangen dass die Software ihren vorgesehenen Verwendungszweck (Intended Use) erf\u00fcllt.<\/strong><br \/>\nDamit man der Software ein gewisses Vertrauen zukommen lassen kann, sollten Softwareentwickler eine Mischung von Methoden und Techniken anwenden um Softwarefehler zu verhindern und zu erkennen das Software Fehler auftreten k\u00f6nnen. Die beste Mischung von Methoden h\u00e4ngt von vielen Faktoren ab, die Eintwicklungsumgebung, Anwendung, Projektgr\u00f6\u00dfe und das Risiko eingeschlossen.<\/p>\n<h2>Zeit und Aufwand<\/h2>\n<p>Den Status zu erhalten, das Software validiert ist ben\u00f6tigt Zeit und Aufwand. Die Vorbereitung der Softwarevalidierung sollte fr\u00fch anfangen, z.B. w\u00e4hrend der Design und Development Planung und dem Design Input. Der Entschluss, dass die Software validiert ist, sollte aus den gesammelten Nachweisen geplanter Validierungsaktit\u00e4ten stammen, die im Laufe des Software-Lebenszyklus angefallen sind.<\/p>\n<h2>Software Life Cycle<\/h2>\n<p>Die Software Validierung geh\u00f6rt zu einem gelebten Softwarelebenszyklus. Der Softwarelebenszyklus beinhaltet Softwareengineeringaufgaben und Dokumentation die notwendig sind, um den\u00a0 Softwarevalidierungsfortschritt zu unterst\u00fctzen. Zus\u00e4tzlich beinhaltet der Softwarelebenszyklus spezifische Verifikations- und Validierungsaktivit\u00e4ten, die dem Verwendungszweck (Intended use) der Software entsprechen. Diese Leitline empfiehlt keine einzelnen Life Cycle Modelle &#8211; nur das sie ausgew\u00e4hlt und f\u00fcr ein Softwareentwicklungsprojekt genutzt werden sollten.<\/p>\n<h2>Validierungspl\u00e4ne<\/h2>\n<p>Der Softwarevalidierungsprozess wird durch die Benutzung eines Planes definiert und kontrolliert. Der Softwarevalidierungsplan legt fest, was w\u00e4hrend den Softwarevalidierungsaktivit\u00e4ten erreicht werden soll. Softwarevalidierungspl\u00e4ne sind ein bedeutsames Werkzeug f\u00fcr Qualit\u00e4tssysteme. Softwarevalidierungspl\u00e4ne legen den Rahmen, den Ansatz, die Mittel, die Pl\u00e4ne, die Validierungsaktivt\u00e4ten und ihren Umfang sowie Aufgaben und Arbeitspunkte fest.<\/p>\n<h2>Prozeduren<\/h2>\n<p>Der Softwarevalidierungsprozess wird durch die Benutzung von Prozeduren ausgef\u00fchrt. Diese Prozeduren legen fest, wie die Softwarevalidierungsaktivit\u00e4ten durchgef\u00fchrt werden sollen.Die Prozeduren sollten die speziellen Aktionen oder Schritte identifizieren, die durchgef\u00fchrt werden m\u00fcssen um individuelle Validierungsaktivit\u00e4ten, Aufgaben und Arbeitspunkte auszuf\u00fchren.<\/p>\n<h2>Softwarevalidierung nach \u00c4nderungen<\/h2>\n<p>Durch die Komplexit\u00e4t von Software, kann eine unscheinbare kleine \u00c4nderung ma\u00dfgebliche Auswirkungen auf das Gesamtsystem haben. Wenn eine \u00c4nderung (sogar eine kleine \u00c4nderung) an der Software gemacht wird, muss der Validierungsstatus der Software neu festgelegt und dokumentiert werden.<br \/>\n<strong>Wenn eine Software ge\u00e4ndert wird, muss eine Validierungsanalyse nicht nur f\u00fcr die Validierung der aktuellen \u00c4nderungen gemacht werden, sondern es muss auch das Ausma\u00df und die Auswirkungen dieser \u00c4nderung auf das Gesamtsystem betrachtet werden<\/strong>.<br \/>\nBasierend auf dieser Analyse sollte der Softwareentwickler eine entsprechende Anzahl an Softwareregressionstests durchf\u00fchren um zu zeigen, das unge\u00e4nderte aber gef\u00e4hrdete Systemabschnitte nicht nachteilig beeintr\u00e4chtigt wurden. Design Kontrollen und entsprechende Regressionstests unterst\u00fctzen das Vertrauen dass die Software nach den \u00c4nderungen noch validiert ist.<\/p>\n<h2>Validierungsabdeckung &#8211; Validation Coverage<\/h2>\n<p>Die Validierungsabdeckung sollte auf der Softwarekomplexit\u00e4t und ihren Sicherheitsrisiken basieren &#8211; nicht auf der Firmengr\u00f6\u00dfe oder irgendwelchen Randbedingungen. Die Auswahl von Validierungsaktivit\u00e4ten, Aufgaben und Arbeitsschritten sollte entsprechend der Komplexit\u00e4t des Softwaredesigns und -nutzung und den damit verbundenen Risiken f\u00fcr den Verwendungszweck ausgef\u00fchrt werden. Bei geringem Risiko k\u00f6nnen auch nur Baselinevalidationen durchgef\u00fchrt werden. Sobald sich das Risiko erh\u00f6ht, sollten zus\u00e4tzliche Validierungsaktivit\u00e4ten hinzugef\u00fcgt werden um das zus\u00e4tzliche Risiko abzudecken. Die Validierungsdokumentation sollte ausreichend sein um zu zeigen, dass alle Softwarevalidierungspl\u00e4ne und -prozeduren erf\u00fcllt wurden.<\/p>\n<h2>Unabh\u00e4ngigkeit vom Review &#8211; Independence of Review.<\/h2>\n<p>Valdierungsaktivit\u00e4ten sollten mit dem Qualit\u00e4tssicherheitsgebot &#8222;Unabh\u00e4ngigkeit vom Review&#8220; durchgef\u00fchrt werden. Selbstvalidierung ist sehr schwer. Eine unabh\u00e4ngige Bewertung ist immer besser, besonders bei Anwendungen mit h\u00f6herem Risiko. Manche Firmen handeln f\u00fcr Dritte\/Fremdfirmen Verifikation und Validation aus, aber diese L\u00f6sung wird nicht immer machbar sein. Ein weitere Ansatz ist es Betriebsangeh\u00f6rigen, die nicht in ein Design involviert\u00a0 sind, aber ausreichendes Wissen f\u00fcr die Durchf\u00fchrung der Projektvalidation und -verifikation besitzen, zuzuweisen.<\/p>\n<h2>Flexibilit\u00e4t und Verantwortlichkeiten<\/h2>\n<p>Spezielle Umsetzungen der Softwarevalidierungsgrunds\u00e4tze k\u00f6nnen sich von Anwendung zu Anwendung unterscheiden. Der Ger\u00e4tehersteller hat die Flexibilit\u00e4t bei der Wahl, wie Validierungsprinzipien\u00a0 ausgew\u00e4hlt werden, aber beh\u00e4lt die ultimative Verantwortung zu zeigen, dass die Software validiert ist.<br \/>\nSoftware wird\u00a0 in einem breitem Spektrum an Umgebungen und f\u00fcr ein reiches Angebot an Ger\u00e4ten mit unterschiedlichen Risiken entworfen, entwickelt, validiert und reguliert.Medizinger\u00e4teanwendungen, die von der FDA reguliert sind, enthalten Software die &#8230;<\/p>\n<ul>\n<li>&#8230; eine Komponente, ein Teil oder Zuberh\u00f6r eines medizinischen Ger\u00e4tes ist<\/li>\n<li>&#8230; selber ein Medizinger\u00e4t ist oder<\/li>\n<li>&#8230; f\u00fcr die Produktion, den Entwurf, die Entwicklung oder andere Teile des Qualit\u00e4tssystems ist.<\/li>\n<\/ul>\n<p>In jeder Umgebung, k\u00f6nnen Softwarebausteine von vielen Quellen genutzt werden um die Anwendung zu erstellen (z.B. In-House Entwicklung, Standardsoftware, Vertragssoftware, Shareware&#8230;). Zus\u00e4tzlich k\u00f6nnen Softwarekomponenten in vielen Formen auftauchen (z.B. Anwendungssoftware, Betriebssysteme, Compiler, Debugger, Konfigurationsmanagmenttools und viele mehr). Die Validierung von Software in diesem Umfeld kann niederschmetternd komplex sein, au\u00dferdem ist es angebracht, dass alle Softwarevalidierungsgrunds\u00e4tze ber\u00fccksichtigt werden, wenn der Softwarevalidierungsprozess aufgesetzt wird. Der resultierende Softwarevalidierungsprozess sollte mit den verbundenen Sicherheitsrisiken, die mit dem System, dem Ger\u00e4t, dem Produkt oder Prozess in Verbindung gebracht werden, angemessen sein.<br \/>\nSoftwarevalidierungsaktivit\u00e4ten und -aufgaben k\u00f6nnen zerstreut an verschiedenen Stellen von verschiedenen Organisationen durchgef\u00fchrt werden. Jedoch, unabh\u00e4ngig der Verteilung, vertraglichen Beziehungen, Komponentenquellen oder der Entwicklungsumgebung bekommt der Ger\u00e4tehersteller und Spezifkationsersteller die absolute Verantwortlichkeit f\u00fcr die Sicherstellung, das Software validiert ist.<\/p>\n<h1>Aktivit\u00e4ten und Aufgaben<\/h1>\n<p>Softwarevalidierung wird \u00a0w\u00e4hrend einer Serie von Aktivit\u00e4ten und Aufgaben, die w\u00e4hrend den unterschiedlichen Stadien des Softwarelebenszyklusses geplant und ausgef\u00fchrt werden, durchgef\u00fchrt. Diese Aufgaben k\u00f6nnen einmalig oder h\u00e4ufig durchlaufen werden. Dies ist abh\u00e4ngig vom Lebenszyklusmodell (Life Cycle Model) was im Rahmen von \u00c4nderungen w\u00e4hrend des Softwareprojektfortschritts benutzt wird.<\/p>\n<h2>Softwarelebenszyklusaktivit\u00e4ten<\/h2>\n<p>Diese Richtlinie empfiehlt nicht die Benutzung eines speziellen Software Life Cycle Modells. Softwareentwickler sollten ein Softwarelebenszyklusmodell etablieren, was ihrem Produkt und der Organisation entspricht. Das Softwarelebenzyklusmodell, das ausgew\u00e4hlt wird, sollte die Software von ihrer Geburt bis zu ihrem Ausscheiden begleiten. Aktivit\u00e4ten in einem typischem Softwarelebenszyklusmodell beinhaltet<\/p>\n<ul>\n<li>Qualit\u00e4tsplaung<\/li>\n<li>Definition der System Requirements<\/li>\n<li>Eine detailierte Software Requirements Spezifikation<\/li>\n<li>Der Aufbau des Codings<\/li>\n<li>Das Testen<\/li>\n<li>Die Installation<\/li>\n<li>Die Operation und der Support<\/li>\n<li>Die Instandhaltung<\/li>\n<li>Die Stilllegung \/ Retirmenent<\/li>\n<\/ul>\n<p>Verifikation, Testen und\u00a0andere Aufgaben die Softwarevalidierung unterst\u00fctzen treten w\u00e4hrend jeder dieser Aktivit\u00e4ten auf. \u00a0Ein Lebenszyklusmodell organisiert diese Softwareentwicklungsaktivit\u00e4ten mit unterschiedlichen M\u00f6glichkeiten und stellt ein Framework f\u00fcr das Monitoring und zur Kontrolle des Softwareentwicklungsprojektes bereit. Verschiedene Softwarelebenszyklusmodelle (Wasserfall, Spiralmodell, Rapid Prototyping, inkrementelle Entwicklng, &#8230; etc) sind im<br \/>\nFDA Glossar definiert:\u00a0Glossary of Computerized System and Software Development Terminology<\/p>\n<p>Diese und viele weitere Lebenszyklusmodelle werden in verschiedenen Referenzlisten im Anhang A beschrieben.<\/p>\n<h2>Typische Aufgaben, die Validierung beg\u00fcnstigen<\/h2>\n<p>F\u00fcr jede Aktivit\u00e4t im Softwarelebenszyklus gibt es gewisse Aufgaben, die eine Schlussfolgerung beg\u00fcnstigen. Jedoch werden diese speziellen Aufgaben, die durchgef\u00fchrt werden m\u00fcssen, ihre Reihenfolge der Ausf\u00fchrung und die Iteration und das Timing ihrer Ausf\u00fchrungen von einem spezifischen Softwarelebenszyklusmodell und den Sicherheitsrisiken der Applikation vorgeschrieben. F\u00fcr Anwendungen mit geringem Risiko k\u00f6nnten manche Aufgaben nicht notwendig sein. Zumindest sollte der Softwareentwickler jede dieser Aufgaben ber\u00fccksichtigen, erkl\u00e4ren und dokumentieren welche Aufgaben f\u00fcr die spezielle Anwendung nicht sinnvoll\u00a0sind. Die folgende Diskussion ist generisch und es ist nicht beabsichtigt ein einzelnes Softwarelebenszyklusmodell vorzuschreiben oder eine Reihenfolge festzulegen, in der die Tasks abgearbeitet werden.<\/p>\n<h2>Qualit\u00e4tsplanung<\/h2>\n<p>Design und Entwicklungsplanung sollte in einem Plan, der notwendige Aufgaben, Prozeduren f\u00fcr Anomalieberichte und L\u00f6sungen, notwendige Ressourcen und Review Anforderungen vom Management, die formelle Design Reviews beinhalten, zusammengefasst werden. Ein Softwarelebenszyklusmodell und damit verbundene Aktivit\u00e4ten sollten identifziert werden, genauso wie die notwendigen Aufgaben f\u00fcr jede Aktivit\u00e4t im Softwarelebenszyklus.<\/p>\n<p>Im Plan sollte enthalten sein:<\/p>\n<ul>\n<li>Die spezifischen Aufgaben f\u00fcr jede Lebenszyklusaktivit\u00e4t<\/li>\n<li>Aufz\u00e4hlungen von wichtigen Qualit\u00e4tsfaktoren<br \/>\n&#8212; Ausfallsicherheit<br \/>\n&#8212; Handhabbarkeit<br \/>\n&#8212; Usability<br \/>\n&#8212; &#8230;<\/li>\n<li>Methoden und Prozeduren f\u00fcr jede\u00a0Aufgabe<\/li>\n<li>Die Akzeptanzkriterien der Aufgaben<\/li>\n<li><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<iframe src=\"http:\/\/www.facebook.com\/plugins\/like.php?href=https%3A%2F%2Fwww.capri-soft.de%2Fblog%2F%3Fp%3D1100&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light\" scrolling=\"no\" frameborder=\"0\" allowTransparency=\"true\" style=\"border:none; overflow:hidden; width:450px;margin-top:5px;\"><\/iframe>","protected":false},"excerpt":{"rendered":"<p>Zweck Dieses Dokument dient als Leitfaden f\u00fcr die Software Validierung und stellt die Ansichten der FDA (Food and Drug Administration) \u00fcber dieses Thema dar. Die Anleitung fasst allgemeine Validierungsprinzipien zusammen, die die FDA vorschreibt f\u00fcr die Validierung von Entwurfs-, Entwicklungs- und Produktionssoftware von Medizinger\u00e4ten. Rahmen Dieser Leitfaden beschreibt, wie sich bestimmte Vorkehrungen f\u00fcr das Qualit\u00e4tssystem &hellip; <a href=\"https:\/\/www.capri-soft.de\/blog\/?p=1100\" class=\"more-link\"><span class=\"screen-reader-text\">Allgemeine Grunds\u00e4tze der Software Validierung in der Medizintechnik<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1,25],"tags":[],"class_list":["post-1100","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-medizintechnik"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4yGeN-hK","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1100"}],"version-history":[{"count":30,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1100\/revisions"}],"predecessor-version":[{"id":2380,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1100\/revisions\/2380"}],"wp:attachment":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}