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
© Copyright 2024 ExpyDoc