Parasoft C/C++test 2022.2 unterstützt das neue MISRA C:2012 Amendment 3 und eine Entwurfsversion von MISRA C++ 202x. Erfahren Sie mehr >>

Statische Analyse für die FDA: 3 Schlüssel zum Erfolg

Von Parasoft

23. Juni 2011

3  min lesen

Fortsetzung unserer Reihe von Beiträgen zur statischen Codeanalyse für FDA/Software-Konformität für medizinische Geräte

1. Machen Sie den statischen Analyseprozess zu einem kontinuierlichen Prozess

Die statische Analyse ist eng in den SDLC integriert, wie in der letzten Woche beschrieben  Statische Analyse für die FDA: Worum geht es? Post - und nicht nur als Audit am Ende des Prozesses - bietet zwei unterschiedliche Vorteile.

  • Entwickler übernehmen bessere Programmiergewohnheiten, die ihnen helfen, schneller besseren Code zu schreiben. Der Prozess der Behebung eines Verstoßes gegen die statische Codeanalyse ist aussagekräftiger und lehrreicher, wenn er im Kontext dessen erfolgt, was der Entwickler erreichen wollte. Daher ist es in einem kontinuierlichen Prozess wahrscheinlicher, dass der Entwickler aus seinen Fehlern lernt und schließlich aus Gewohnheit beginnt, konformen Code zu schreiben.
  • Entwickler beheben Probleme schneller und einfacher. Wenn der Code bei der Meldung des Problems noch im Kopf des Entwicklers ist, muss der Entwickler keine Zeit damit verschwenden, sich daran zu erinnern, was der Code tun sollte, warum er ihn so geschrieben hat, wie er es getan hat, welche Auswirkungen er haben muss Berücksichtigen Sie dies, wenn Sie den Code ändern, um die Compliance-Erwartungen zu erfüllen, und so weiter. Wie Sie sich vorstellen können, würde die Lösung desselben Problems Wochen oder Monate später erheblich mehr Arbeit erfordern, um das gleiche Ergebnis zu erzielen.

2. Halten Sie die Ergebnisse der statischen Code-Analyse im Kontext relevant und aussagekräftig

Verwenden Sie einen richtlinienbasierten Ansatz für die statische Analyse: Verwenden Sie die statische Codeanalyse, um eine nicht verhandelbare Reihe von Erwartungen in Bezug auf die Zuverlässigkeit, Sicherheit, Leistung und Wartbarkeit des Codes zu überwachen. Bei diesem Ansatz ist ein Verstoß gegen eine bestimmte Richtlinie nicht nur ein weiterer Vorschlag für Leute, die Software in einem Elfenbeinturm entwickeln – es ist eine Benachrichtigung, dass der Code die Erwartungen der Organisation nicht erfüllt hat. Andernfalls werden Regelverstöße als Vorschläge für allgemeine Codeverbesserungen wahrgenommen – nicht als kritische Codierungsprobleme, die sofort angegangen werden müssen.

Durch ein effektives Richtlinienmanagement kann ein Unternehmen die Lücke zwischen den Erwartungen des Managements und der Leistung der Entwickler schließen. Wenn eine statische Code-Analyseregel etwas erzwingt, das Teil der Richtlinie ist, ist das Beheben eines Verstoßes gegen diese Regel im Wesentlichen nicht verhandelbar. Wenn ein Entwickler die definierte Richtlinie nicht erfüllt, führt er seinen Job nicht wie vom Management erwartet aus.

Berücksichtigen Sie für eine Analogie die Fahrregeln in Ihrem Bundesstaat. Wenn Sie an einem normalen Tag ohne Strafverfolgungsbehörden herumfahren, können Sie bestimmte Regeln ziemlich locker befolgen. Wenn Sie jedoch eine Hinterrad-Fahrprüfung ablegen, die Sie bestehen müssen, um Ihren Führerschein zu erhalten oder zu erneuern, werden Sie wahrscheinlich viel wachsamer sein, wenn Sie die geltenden Vorschriften befolgen.

3. Reduzieren Sie die Schmerzen bei der statischen Analyse durch Prozess und Workflow

Um sicherzustellen, dass ein richtliniengesteuerter statischer Inline-Code-Analyseprozess einfach einzuführen und nachhaltig anzuwenden ist, sollten Sie Richtlinienverwaltung, Workflow-Management und Workflow-Optimierung berücksichtigen.

Das Richtlinienmanagement bildet den Kern eines solchen Inline-Prozesses. Eine sorgfältig definierte und implementierte Reihe von Richtlinien schafft eine Wissensbasis, die Entwickler dazu anleitet, aus Gewohnheit sicheren und zuverlässigen Code zu schreiben.

Wenn eine Richtlinie festgelegt ist, umfasst ihre Umsetzung das Workflow-Management: Definieren, Automatisieren und Überwachen eines Workflows, der die Entwicklungsproduktivität verbessert und die Grundlage für einen nachhaltigen Prozess bildet.

Für die Workflow-Optimierung müssen Aufgaben zur Unterstützung der Qualitätsrichtlinien optimiert werden, damit sie zu einem integralen Bestandteil des bestehenden Workflows des Teams werden können, um sicherzustellen, dass die Statischer Analyseprozess ist sowohl nachhaltig als auch skalierbar. Der Mangel an Automatisierung, Wiederholbarkeit oder Konsistenz beeinträchtigt jede Qualitätsinitiative, die die Organisation zu implementieren beabsichtigt.

Eine Möglichkeit zur Optimierung des Workflows besteht darin, die statische Analyse zusammen mit anderen Analysefunktionen wie der Metrikanalyse und der Peer-Code-Überprüfung zu verwenden. Auf diese Weise können Sie die Zeit der Entwickler besser optimieren, indem Sie ihre Bemühungen zunächst auf schwerwiegendere oder komplexere Szenarien konzentrieren. Wenn Sie beispielsweise benachrichtigt werden, dass ein bestimmter Code einen hohen Grad an zyklomatischer Komplexität sowie Sicherheitsprobleme mit hohem Schweregrad aufweist, möchten Sie Entwickler letztendlich zuerst auf diese Region verweisen. Tatsächlich ist dies ein hervorragendes Beispiel dafür, wie Sie mithilfe der Codeanalyse Elemente ermitteln können, die während der Überprüfung des Peer-Codes erörtert werden sollten.

Weitere Möglichkeiten zur Optimierung des Workflows sind:

  • Durch das direkte Weiterleiten jedes gemeldeten Problems an den zuständigen Entwickler sowie durch Anpassen der Problempriorisierung an Ihre Richtlinienprioritäten wird sichergestellt, dass Ihre kritischsten Probleme rechtzeitig behoben werden.
  • Das zentralisierte Konfigurationsmanagement stellt sicher, dass Regelsätze konsistent angewendet werden und mühelos aktualisiert werden können, wenn sich Prioritäten und Prozesse weiterentwickeln.
  • Die Verwendung von automatisiertem Refactoring hilft dem Team, Regelverstöße so schnell wie möglich zu korrigieren, wann immer dies möglich ist.

***

Bildquelle: ~ Brenda-Starr ~

Von Parasoft

Die branchenführenden automatisierten Softwaretest-Tools von Parasoft unterstützen den gesamten Softwareentwicklungsprozess, vom Schreiben der ersten Codezeile über Unit- und Funktionstests bis hin zu Leistungs- und Sicherheitstests, wobei simulierte Testumgebungen genutzt werden.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.