special | software-qualität systematische qualität

SPECIAL | Software-Qualität
Systematische Qualität für
Software und Produkte
Herausforderungen, Analysemethoden und Werkzeuge
Ob Fahrerassistenz, Hochvoltkomponente im Elektrofahrzeug oder InfotainmentSystem – in vielen innovativen Funktionen zeigt sich, welchen Einfluss die Qualität
der Software auf das Verhalten, die Sicherheit und auf die Qualitätswahrnehmung
eines Fahrzeugs hat. Das Competence Center für Software-Qualität von Berner &
Mattner ist mit umfassenden Leistungen und Analysemethoden darauf spezialisiert,
die Software-Qualität für seine Automotive-Kunden zu verbessern.
Die steigende Systemkomplexität ist oftmals
nicht alleine für fehlerhafte Funktionen im
Fahrzeug verantwortlich. Begrenzte Entwicklungsressourcen oder fehlende Kompetenzen
zur systematischen Software-Qualitätssicherung
sind in der Praxis ebenso häufige Ursachen.
Konventionelle
Qualitätssicherungsprozesse
sind zumeist erst in fortgeschrittenen Entwicklungsstufen implementiert und können keine
optimale Absicherung leisten. Mögliche Auswirkungen: aufwendiges Bugfixing, Terminverzug,
Nachbesserungen bis hin zu kostenintensiven
Rückrufaktionen.
Berner & Mattner gehört zu den führenden Anbietern für die Bewertung und Verbesserung
der Qualität von Software-Produkten im Automobilbereich und begleitet OEMs, Tier1s und
Zulieferer, wenn es darum geht, Fehler, Ände-
rungsaufwände und Risiken bei der SoftwareEntwicklung zu minimieren. Dazu analysieren
wir Testprozesse, Prozesse der Software-Entwicklung und -Qualitätssicherung, bieten fundiertes Code Quality Management zur SoftwareAnalyse und führen bei Bedarf umfassende
Maßnahmen zur operativen Qualitätssicherung
für modell- und softwarebasierte Systeme durch.
Code Quality Management und
Software-Analyse
Code Quality Management (CQM) ist für unsere Arbeit eines der Schlüsselkonzepte, um
Software-Qualität und damit die Produktqualität
zu steigern. Dies betrifft direkt kundenerlebbare
Funktionen, z. B. aus dem Infotainment, genauso wie sicherheitskritische Funktionen.
(Fortsetzung auf Seite 2)
Michael Schmidt
Leiter des
Competence Centers
für Software-Qualität
Die Wahrheit liegt im Code:
Gerade bei ECU-Software im Fahrzeug
wird deutlich, wie eng Produkt- und
Software-Qualität miteinander verknüpft
sind. Berner & Mattner ist für den Automotive-Bereich der führende Anbieter,
um mit praxisbewährten Analyseverfahren diese Qualität zu steigern und Software-Mängel bereits frühzeitig aufzudecken. Im Heft stellen wir Ihnen unser
neues Competence Center für SoftwareQualität ausführlich vor, insbesondere
unser Portfolio zur Software-Analyse.
Zudem stehen Methoden zur Absicherung der Produktqualität, unser eigenentwickeltes Analysewerkzeug und die
Herausforderungen im Zusammenspiel
von Funktionaler Sicherheit und Software-Qualität im Mittelpunkt.
tcpip.c
FileLoc:
10.232
Defects:
227
Commentrate: 22%
Qualität im Blick: Das Competence Center nutzt leistungsfähige Analysemethoden und innovative Visualisierungsverfahren, um Software-Defizite
aufzudecken. Bei Bedarf übernimmt das Competence Center die operative Qualitätssicherung entlang der gesamten Software-Prozesskette.
Ausgabe 14
Insight Special 14
(Fortsetzung von Seite 1)
Die Erfahrung aus der Praxis zeigt, dass ein
kontinuierliches CQM weitreichende Transparenz im Entwicklungsprozess schafft und dem
Projektmanagement ein effizientes Instrument
zur Qualitätssicherung an die Hand gibt. Ein
wichtiger CQM-Baustein sind Assessments mit
Hilfe von statischen Analysemethoden und innovativen Visualisierungsverfahren, in denen
unsere Ingenieure Software-Eigenschaften wie
Architektur, Design oder Codequalität untersuchen, Defizite identifizieren und auf dieser Basis
konkrete Verbesserungsvorschläge entwickeln.
Statische Software-Analyse
Qualität nicht erst kurz vor SOP sichern
Die Software-Ingenieure aus dem Competence Center für SoftwareQualität bieten ein umfangreiches Portfolio von statischen Analyseverfahren zur entwicklungsbegleitenden Absicherung von SoftwareProjekten. Ziel ist es, kritische und fehlerträchtige Strukturen in der
Software zu erkennen und konkrete Handlungsempfehlungen für
Verbesserungsmaßnahmen abzuleiten. Dazu unterhält das Competence Center eine leistungsfähige Toolsuite und entwickelt eigene Werkzeuge, die zur Optimierung der Analyseabläufe eingesetzt
werden. Das Zusammenspiel dieser Methoden hat sich in einer Vielzahl von Analysen bei Zulieferern und OEMs im Rahmen von Code-
Quality-Management-Projekten, aber auch bei der Qualitätssicherung von
Inhouse-Projekten bewährt. Grundlage hierfür sind die Anforderungen des
Kunden, aber auch Standards und Normen, wie z. B. MISRA, CERT-C
oder HIS sowie eigene bewährte Analysekriterien. Umfang und Analyseziele beziehen immer Aufwand, Nutzen und Machbarkeit sowie Faktoren
wie externe Fristen oder Eskalationspfade mit ein und werden flexibel an
Problemstellungen ausgerichtet. Einen Überblick über die Bausteine und
Prüfverfahren aus dem „Werkzeugkoffer“ des Competence Centers gibt
die nachfolgende Infografik.
Statische Analyse
präventiv
reaktiv
Architekturanalyse
Prüfung der implementierten Architektur gegen
die geplante Architektur
Codeanalyse
Design- und Codeanalyse
Identifikation typischer Design-Schwächen • Prüfung des
Quellcodes hinsichtlich der Einhaltung von Programmiervorgaben oder kritischer Codebereiche
Präventive Defektanalyse
Werkzeuggestützte verdachtsunabhängige Analyse auf
fehlerhafte bzw. kritische Programmierkonstrukte sowie
Wartbarkeitsrisiken
LIZENZANALYSE
Frühzeitige Identifikation von Open-Source-Bestandteilen
zur Prüfung der rechtlichen Anforderungen
Modellanalyse
Dokumentanalyse
Modellqualitätsanalyse
Identifikation von Entwurfsproblemen • Prüfung der Modelle
hinsichtlich der Einhaltung von Modellierungsrichtlinien
Systemarchitekturanalyse
Checklistenbasierte Prüfung der eingesetzten Konzepte
hinsichtlich ihrer Korrektheit und Robustheit
Testqualitätsanalyse
Prüfung der Testkonzeption und -umsetzung auf Modulund Integrationstestebene
Taskforce-Einsatz
Ursachenanalyse
akuter Fehler mit
statischen und dynamischen Methoden
Projektbeispiel
FehlerAnalyse-Workshop für InfotainmentSteuergerät
Erst kurz vor SOP (Start of Production) trat im
Zusammenspiel von Fahrzeug und Telefon ein
schwerwiegender Fehler auf: Sobald bestimmte Mobiltelefone angeschlossen wurden, führte
das Infotainment-Steuergerät sporadisch einen
Reset durch. Aufgrund der Erfahrungen aus vergleichbaren Projekten wurde Berner & Mattner
mit dieser „Taskforce Telefon“ betraut, um die
Fehlerursache für das geschilderte Problem
schnell und effizient zu ermitteln.
Im Rahmen eines Fehleranalyse-Workshops
grenzten die Experten des Competence Centers
für Software-Qualität zunächst interviewbasiert
mögliche Ursachen ein, um anschließend die
Fehlerhypothesen zu formulieren und zu bewerten. Dabei stellte sich heraus, dass die Tele-
fone eine hohe Anzahl zusammenhängender
SMS mit einer überlangen Zeichenzahl enthalten hatten. Durch systematische Code-Walkthroughs zur Verifizierung bzw. Falsifizierung
der möglichen Ursachen konnte der Fehler eindeutig ermittelt werden: ein Werteüberlauf einer
„signed char“ Indexvariablen, die als Zähler der
segmentierten Nachrichten verwendet wurde.
Diese lief bei mehr als 127 Teilnachrichten auf
einen negativen Wert über. Der Zugriff auf den
Speicher mit negativem Index führte aufgrund
eines Schutzmechanismus zu einem Reset. Bei
den betroffenen Nutzern war ein E-Mail-to-SMSDienst eingerichtet, der zu dieser hohen Anzahl
von Teilnachrichten führte. Der Kunde konnte
den Fehler aufgrund der Analyse in der finalen
Software leicht beheben.
Projektbeispiel
Code Quality Management für sicherheitskritische
Steuergeräte-Software
Im Rahmen der Qualitätssicherung für eine
sicherheitskritische Steuergeräte-Software hat
ein Berner & Mattner-Team die projektbegleitende Absicherung der Codequalität bei einem
Tier1 übernommen. Ziel war es, frühzeitig in der
Entwicklung mögliche Schwächen und Risiken
im Code aufzudecken, zu bewerten und Maßnahmen zur Fehlerbehebung vorzustellen. Für
den Kunden wurde in diesem Projekt bereits
die zweite entwicklungsbegleitende Qualitätsanalyse von Berner & Mattner durchgeführt. Die
CQM-Experten nutzten dabei statische Verfahren zur Architektur-, Design- und Code- sowie
Lizenz- und Defektanalyse und führten einen
Fehleranalyse-Workshop durch.
Anhand einer priorisierten „Offene-Punkte-Liste“
konnte der Kunde die Umsetzung der empfohlenen Maßnahmen zielgerichtet angehen:
5 Verbesserungsvorschläge wurden mit hoher
Priorität versehen, 12 mit mittlerer Priorität und 9
mit niedriger Priorität. Die Defektanalyse ergab,
dass 55 von 57 Defekten der vorhergehenden
Analyse zwischenzeitlich behoben worden waren, jedoch im Zuge der Weiterentwicklung 60
neue Defekte in der Software entstanden sind –
unter ihnen 4 mit hoher Priorität. Trotz eines moderaten Wachstums der Codebasis gegenüber
der Voranalyse stellte das Team im Rahmen der
Design- und Codeanalyse sogar Verbesserungen bei Kopplung, Kohäsion und Komplexität
fest. Der Kunde konnte mit Hilfe dieses CQMProjektes Ressourcen frühzeitig und zielgerichtet einsetzen, um die identifizierten Schwächen
in der Software zu beheben. Der Aufwand für die
Fehlerbehebungen in der kritischen Phase kurz
vor SOP reduzierte sich gegenüber den Vorprojekten deutlich.
Software-Qualität
CodeAnalyse-Werkzeug
Effizienter Analyse-Workflow durch Eigenentwicklungen
Struktur
Design &
Metriken
Defekte/
Mängel
Code
Datenaggregation
Berner & Mattner AnalyseWerkzeug
Analyse
Klassifizierung
Diagramme & Befundlisten
Reporting
Für einen effizienten Analyse-Workflow nutzt
das Competence Center ein leistungsfähiges,
eigenentwickeltes Analysewerkzeug, das in
zahlreichen Projekten zum Einsatz kommt.
Das Tool aggregiert und verknüpft die Daten
mehrerer kommerzieller Werkzeuge. Vorteil:
Die kombinierte Betrachtung von Komplexität,
Änderungsumfang, Defektrate und Unit-Testabdeckung ermöglicht die effiziente Identifikation
und Bewertung kritischer Codeteile und erlaubt
die Ableitung wirksamer Restrukturierungsmaßnahmen sowie die optimierte Steuerung von
Testressourcen. Für die weitere Analyse lassen
sich im Analysewerkzeug die Mängel bis auf
die Codeebene zurückverfolgen. Ein Highlight
ist die Visualisierung: Die Verteilung von Problemmustern über die Software-Architektur wird
grafisch dargestellt, um Zusammenhänge und
„Hotspots“ vor allem bei umfangreichen Systemen intuitiv zu erkennen. Bei wiederholten Tool-
Einsätzen kann der Experte zudem die Daten
der einzelnen Analysezeitpunkte in Beziehung
setzen, um die Evolution der Codebasis zu untersuchen und frühzeitig potenziellen Fehlentwicklungen entgegenzuwirken. In einer Vielzahl
von Berner & Mattner-Projekten zur Verbesserung der Software-Qualität wurde mit Hilfe des
Codeanalysewerkzeugs der Analyseprozess
deutlich effizienter gestaltet und die Entwicklung
von Lösungen vereinfacht.
Software-Qualität
© Yuri | iStockphoto.com
AUSBLICK
Funktionale Sicherheit:
Neue Anforderungen an die Software-qualität
Neben etablierten Qualitätsanforderungen, wie
z. B. Richtigkeit und Änderbarkeit nach ISO/IEC
25000 (vormals 9126), beschreibt die ISO 26262
zusätzliche Anforderungen an die Funktionale
Sicherheit (FuSi) von E/E-Systemen. Dazu empfiehlt die Norm präventive Maßnahmen sowie
spezifische Methoden zur Absicherung sicherheitsrelevanter Software-Bestandteile der jeweiligen ASIL-Stufen – ein Kernthema des Code
Quality Managements.
Das Competence Center erarbeitet derzeit ein
neues Review-Verfahren einschließlich ange-
passter ASIL-Bewertungskriterien. Ziel ist eine
differenziertere Bewertung der allgemeinen
Software-Qualität. Ein besonderer Fokus liegt
hierbei auf der Prüfung der eingesetzten Absicherungsmaßnahmen zur Erreichung definierter
Sicherheitsziele. In der Regel kommen dafür bewährte Konzepte zur Absicherung der Systemintegrität zum Einsatz. Die Herausforderung:
Bei der Umsetzung, wie z. B. Speicherprüfung
oder Programmablaufkontrolle, besteht mitunter
Spielraum – die Gefahr für eine nicht angemessene Umsetzung ist damit präsent. Zusätzliche
Prüfkriterien in dem neuen Review-Verfahren
sollen Aufschluss darüber geben, inwieweit die
Implementierung für das Erreichen der Sicherheitsziele geeignet ist.
Ob die hohen Anforderungen der ISO 26262 an
sicherheitsrelevante Software erfüllt werden und
wo Defizite liegen, lässt sich mit diesem ReviewVerfahren effektiver aufdecken. Damit steht für
unsere Kundenprojekte künftig ein verbessertes, bedarfsgerechtes System zum Qualitätsmanagement und zur Ableitung konkreter Verbesserungsmaßnahmen zur Verfügung.
Davon profitieren unsere Kunden
2
Kosteneinsparungen durch
Minimierung von Fehlern,
Änderungsaufwänden
und Risiken
1
Transparente und vergleichbare
Qualitätsaussagen über Software
und ihren Reifegrad
3
Abschätzung von Qualitätsrisiken
4
Entlastung von operativen Qualitätssicherungs- und Testaufgaben
5
Erfahrungen aus mehr als hundert
Software-Qualitätsbewertungen
Software-Qualität
Insight Special 14
LEISTUNGEN Competence Center
Für Software-Qualität
Code Quality Management
PROZESSANALYSE
Beurteilung und Erhöhung der Modell- und SoftwareQualität von Systemen mittels Architektur-, Design-,
bzw. Modell- und Codeanalysen
Bewertung und Verbesserung von SoftwareEntwicklungs- und Qualitätssicherungsprozessen
Absicherung von Systemen durch Analysen zur Aufdeckung von Fehlern, Ressourcenengpässen sowie
von Safety-, Security- und lizenzrechtlichen Risiken
Software-Qualitätsentwicklung mittels Trendanalysen
als Steuerungsinstrument für Projekt- und Qualitätsmanagement
Durchführung von SPICE Assessments
TestAnalyse
Bewertung von Testprozessen, -qualität
und -vollständigkeit
Operative
Qualitätssicherung
Taskforces zur Aufdeckung und
Ursachenbeseitigung von Fehlern
Operative Durchführung aller Qualitätssicherungsmaßnahmen für modellbasierte und softwarebasierte
Systeme
© Berner & Mattner 05 / 2014
Risiko- und Aufwandsbewertung für
Software-Änderungen
Ansprechpartner
Stephan Alker | Tel. +49 89 608090-295 | [email protected]
IMPRESSUM
Herausgeber: Berner & Mattner Systemtechnik GmbH | Erwin-von-Kreibig-Str. 3 | 80807 München
Tel. +49 89 608090-0 | Fax +49 89 6098182 | [email protected]
Redaktion & Gestaltung: Michael Schmidt | Stephan Alker | Michaela Lipus
www.berner-mattner.com