Wie sieht es angesichts dieser Faktoren mit der Rentabilität aus? Die statische Analyse verringert die Zahl der Defekte in der entwickelten Software in sämtlichen Entwicklungsphasen. Eine einfache Analyse besteht darin, die Zahl der Defekte gemäß den Daten aus Bild 4 zu reduzieren. Aus dieser geringeren Zahl entstandener Fehler während der Entwicklung lässt sich eine gravierende Kostensenkung ableiten.
Diese einfache Auswertung ergibt Einsparungen von rund 126 US-Dollar pro Defekt, wenn man von durchschnittlich 15 Defekten pro 1000 LOC ausgeht (während der Entwicklung bei hohem Defektvolumen). Hieraus errechnen sich Einsparungen von 1900 US-Dollar pro 1000 LOC. Selbstverständlich variieren die Ergebnisse infolge anderer Faktoren wie Lohnkosten, Zeitaufwand für Defekterkennung und -beseitigung und Defektdichte. Berücksichtigt man aber, dass viele sicherheitskritische Systeme 100.000 LOC und mehr enthalten, ist die Wirtschaftlichkeitsberechnung für die statische Analyse klar. Dabei sind hier noch nicht einmal die Kosten nach erfolgtem Einsatz beim Kunden berücksichtigt, die wie erwähnt erheblich höher sind.
Neben der Defekterkennung wird CodeSonar zum Aufdecken komplexer Nebenläufigkeitsprobleme, zum Analysieren von Third-Party Software und -Binarys sowie zur Erkennung von Fehlern benutzt, die von traditionellen Tests übersehen werden. Diese kritischen Aspekte sind bei der oben durchgeführten, eher einfachen Analyse nicht berücksichtigt, tragen aber eindeutig zur Rentabilität des Tools bei. Allerdings beschert das Finden sonst unentdeckt gebliebener Defekte dem Entwicklungsteam die größten Vorteile.
Kosten im Griff behalten durch weniger Fehler
Die Entwicklung sicherheitskritischer Software wird immer teurer, und so suchen die Hersteller nach Lösungen zur Verbesserung der Entwicklerproduktivität. Statische-Analyse-Tools stellen hier unerlässliche Hilfsmittel dar und werden von Experten auf diesem Gebiet zu Stützpfeilern ihrer Software-Entwicklung gemacht.
Trotz rigoroser Tests kommen in sicherheitskritischer Software immer noch Fehler vor – mit teils katastrophalen menschlichen und wirtschaftlichen Folgen. Im Bereich der sicherheitskritischen Software sind Statische-Analyse-Tools unerlässlich, um die Entwicklung sicherer und qualitativ hochwertiger Software zu gewährleisten. In einigen Fällen empfehlen Sicherheitsnormen die Verwendung von Statische-Analyse-Tools zum Aufdecken von Fehlern, die bei Tests möglicherweise übersehen werden, sowie – neben anderen Vorteilen – zur Durchsetzung von Codierungsstandards. Die Rentabilität von Statische-Analyse-Tools unterstreicht die Tatsache, dass die statische Analyse eine wichtige Rolle nicht nur bei der Entwicklung, sondern auch bei der Markteinführung spielt.
Durch die Steigerung der Entwicklungs- und Testproduktivität und das Auffinden von Defekten, die von herkömmlichen Tests nicht erkannt werden, spielt die statische Analyse eine Schlüsselrolle bei der Lösung des Bezahlbarkeits-Problems sicherheitskritischer Software.
Literatur
[1] Redman, D. et al.: Virtual Integration for Improved System Design, Carnegie Mellon University, Pittsburgh, USA, 2010. wiki.sei.cmu.edu/aadl/images/d/de/SAVI_Virtual_Integration-AVICPS2010.pdf
[2] Benediktsson, O.: Safety critical software and development productivity. Proceedings for The Second World Congress on Software Quality, Yokohama, O., 2000. www.eis.mdx.ac.uk/research/SFC/Papers/2WCSQPreprint.pdf
[3] Feiler, P., et al.: Four Pillars for Improving the Quality of Safety-Critical Software Reliant Systems. Software Engineering Institute, Carnegie Mellon University, Pittsburgh, USA, 2013. resources.sei.cmu.edu/asset_files/WhitePaper/2013_019_001_47803.pdf
[4] Holzmann; G.: The Power of Ten – Rules for Developing Safety Critical Code. NASA/JPL Laboratory for Reliable Software, Pasadena, USA. spinroot.com/gerard/pdf/P10.pdf
[5] Foster School of Business: Accounting for Toyota’s Recalls. 2011. faculty.washington.edu/rbowen/cases/Toyota_Recall_case_April_2011.pdf
[6] Jones, C.: A Short History of the Cost per Defect Metric. 2012. www.ifpug.org/Documents/Jones-CostPerDefectMetricVersion4.pdf
[7] Wikipedia: The Therac-25 Incident. en.wikipedia.org/wiki/Therac-25
Der Autor:
Dr. Paul Anderson |
---|
ist Vice President Engineering bei GrammaTech (USA), einem Hersteller von Statische-Code-Analyse-Tools. Dr. Anderson hat über 20 Jahre Erfahrung in der Entwicklung von Statische-Analyse-Werkzeugen und automatisierten Test Tools. Er besitzt einen Hochschulabschluss (Bachelor of Science) des Kings College, Universität London, und einen Doktortitel der City-Universität London. Seine Arbeit findet Erwähnung in zahlreichen Artikeln, Buchkapiteln und auf internationalen Konferenzen. |
sales@grammatech.com