Zertifizierung von Codegeneratoren

Transcription

Zertifizierung von Codegeneratoren
Zertifizierung von Codegeneratoren
- Probleme und Lösungsmöglichkeiten Dr.-Ing. Ingo Stürmer
Model Engineering Solutions, Berlin
DGLR Workshop:
Zertifizierung von generierter Software für Luft- und Raumfahrtsysteme
11. Okt. 2006, München
Überblick
„
Motivation
„
Modell-basierte Codegenerierung
„
Codegenerator Zertifizierungsaspekte
Zertifizierung von
Codegeneratoren
Tool-Qualifizierung aus Sicht der DO-178B
(2) Tool-Zertifizierung aus Sicht der IEC 61508
(1)
„
Erfahrungen aus dem Automobilbereich (Lessons Learned)
Î
Einsatz CG für Seriencodegenerierung
„
Lösungsmöglichkeiten
„
Zusammenfassung und Ausblick
Ingo Stürmer
2
Motivation: Modell-basierte Entwicklung
„
Paradigmenwechsel in der Entwicklung eingebetteter Software
„
Modell-basierte Entwicklung
Zertifizierung von
Codegeneratoren
 Durchgängiger Einsatz von Modellen für Spezifikation, Design und
Implementierung
„
MATLAB/Simulink und -/Stateflow de-facto Modellierungsstandard
„
Übergang von manueller Implementierung zur modell-basierten
Codegenerierung
„
Deutliche Effizienzgewinne in der Software-Implementierungsphase
„
Konsequenter Einsatz von Optimierungstechniken zur Steigerung der
Codeeffizienz erforderlich
Ingo Stürmer
3
Modell-basierte Codegenerierung
Zertifizierung von
Codegeneratoren
Physikalisches Modell (PM)
Floating Point
Entwicklungsrechner
Compiler
(Linker)
Codegenerator
Implementierungsmodell (IM)
Fixed-point
Autocode
Eingebettetes
System
Cross-Compiler
(Linker / Loader)
Autocode Tool-Kette
Ingo Stürmer
4
Modell-basiertes Testen von Autocode
Zertifizierung von
Codegeneratoren
‰ Übersetzung Modell in Autocode dann korrekt, wenn Autocode gleiches
Ausführungsverhalten wie Modell zeigt („Funktionale Äquivalenz“)
‰ Dynamisches Prüfverfahren (Modell-basierter Back-to-Back Test)
Testmodell
Model-in-the-Loop (MiL)
Test output o(t)Model
Simulation
Testvektor i(t)
?
Codegenerator
≈
(Autocode Tool-Kette)
;
:
Ausführung
Autocode
Test output o(t)Code
Software-in-the-Loop (SiL)
+
Processor-in-the-Loop (PiL)
Ingo Stürmer
5
Codegenerator
Zertifizierungsaspekte
Codegenerator Zertifizierung (+Tool-Kette)
Zertifizierung von
Codegeneratoren
Erhoffte Vorteile beim Einsatz eines (zertifizierten) Codegenerators:
„ Höhere Qualität des generierten Codes (Fehleranzahl, Lesbarkeit,
Traceability) gegenüber manuell erstellten Code
„
Einheitliches Qualitätsniveau des Codes
„
Konsistenz zwischen Spezifikation und Software
„
Wiederverwendung der ausführbaren Spezifikationen in Folgeprojekten
„
Reduzierung von V&V-Aktivitäten
„
Eigenentwicklung von Software in Organisationen/Abteilungen ohne
ausreichende Anzahl von Implementierungs-Spezialisten
„
Effizientere Durchführung der Implementierungsphase in der SWEntwicklung
V&V… Verifikation & Validation
Ingo Stürmer
7
Zertifizierung
„
Unter Zertifizierung wird im Allgemeinen die “Bewertung” (rechtliche
Anerkennung) eines Produktes oder Prozesses durch eine unabhängige,
offizielle Organisation oder Institution verstanden.
Î
„
Zertifizierung von
Codegeneratoren
An Stelle von “Bewertung” werden häufig die verwandten Begriffe Zulassung,
Qualifizierung oder sonstige vertrauensbildende Maßnahmen verwendet.
Eine Zertifizierung hat zweierlei Funktionen:
Der Kunde darf darauf vertrauen, dass das Produkt nach relevanten Standards
entwickelt und geprüft wurde
2. Der SW- Lieferant bekommt eine unabhängige Zusicherung, dass die Techniken,
die für die Produktentwicklung und –prüfung eingesetzt wurden, den jeweiligen
Anforderungen an die Sicherheit des Produktes entsprechen.
1.
„
Wesentliche Zertifizierungsstandards für Luftfahrt und Automobilbereich:
DO-178B (Luftfahrzeugindustrie)
Î IEC 61508 (Automobilindustrie)
Î
Ingo Stürmer
8
DO-178B
Zertifizierung von
Codegeneratoren
Internationaler Avionics Standard RTCA/DO-178B (Software Considerations in
Airborne Systems and Equipment Certification Requirements) ist ein
Prozess-Standard, dessen Einhaltung für die Luftfahrzeugindustrie
obligatorisch ist!
„
Ziel der Zertifizierung im Sinne der DO-178 B ist es sicherzustellen, dass
die Softwareanteile des Systems (1) safe und (2) airworthy sind.
„
Daher muss Software je nach den Software Zertifizierungsrichtlinien
entwickelt werden, die der jeweiligen Kritikalitätsstufe entsprechen.
„
Software kann nur zusammen mit dem Zielsystem, auf dem die Software
laufen soll, zertifiziert werden!!!
Ingo Stürmer
9
DO-178B - Qualifizierung
Zertifizierung von
Codegeneratoren
‰ Qualifizierung bezeichnet den erforderlichen Prozess zum Erhalt von
Zertifizierungserleichterungen für ein Software-Werkzeug im Kontext eines
spezifischen flugzeuggestützten Systems.
‰ Dies beinhaltet die “Bewertung” (engl. Assessement) des Werkzeugs im
Hinblick auf Konformität zur DO-178B.
‰ Eine Qualifizierung geht immer der Zertifizierung voraus, muss aber nicht im
Zusammenspiel mit dem Zielsystem durchgeführt werden! (Im Falle der CG
Toolkette problematisch)
‰ Qualifizierung gilt nur im Zusammenhang mit dem zu zertifizierenden System
(daher oft der Begriff “qualifizierbarer” CG, siehe z.B. VAPS QCG)
‰ Im Gegensatz zur Zertifizierung wird die Qualifizierung eines Produktes
oder Prozesses gefordert, wenn Teile des Entwicklungsprozesses durch ein
Werkzeug (1) eliminiert, (2) reduziert oder (3) automatisiert werden, ohne
dass die Ausgaben des Werkzeugs (z.B. generierter Code) nicht wie im
Standard gefordert verifiziert werden.
Ingo Stürmer
10
DO-178B – Qualifizierung (Forts.)
Zertifizierung von
Codegeneratoren
‰ DO-178B unterscheidet zwei zu qualifizierende Werkzeugtypen:
 Software Entwicklungswerkzeuge: Ausgaben von Entwicklungswerkzeugen sind Teil des
Zielsystems und können somit potentiell Fehler einbringen (Code Generator, Compiler,
Bibliotheken, Bertriebssystem).
 Software Verifikationswerkzeuge: können selbst keine Fehler aus das Zielsystem
einbringen, aber diese übersehen (Simulator, Emulatoren, Testdaten Generatoren).
Wann ist Qualifizierung
erforderlich?
Kann
Werkzeug Fehler
In Airbone Software
einbringen?
Nein
Ingo Stürmer
Ja
Werden die
Ausgaben des
Werkzeug NICHT wie in
DO-178B spezifiziert
verifiziert?
Keine Qualifizierung
erforderlich
Nein
Ja
Werden
Prozesse der DO-178B
durch Werkzeug eliminiert,
reduziert oder
automatisiert?
Nein
Ja
Qualifizierung
erforderlich
11
Probleme bei der Tool-Qualifizierung (DO-178B)
„
Zertifizierung von
Codegeneratoren
Aus der Sicht des Managers oder Tool Herstellers :
Î
Hohe Kosten
„
„
Qualifizierung Development Tool signifikant höher als Verifcation Tool [Pot04]
Beispiel: Kostenkalkulation von [San02] für GNAT ADA95 Compiler (625 KLOC) allein
für MC/DC Coverage beläuft sich auf 58 Personenjahre.
Unzureichende Regulierungen für Qualifizierung
Î Verwendete Tools liefern häufig nicht ausreichende Daten, die aber vom
Standard für Qualifizierung erfordert werden (Bsp.: MC/DC Coverage)
Î Schwerpunkt des Herstellers liegt in der Entwicklung des Werkzeugs, nicht in
dessen Qualifizierung
Î Tool-Hersteller möchte kein wertvolles Know-how an andere weitergeben!!
Î
„
Aus technischer Sicht (nur einige Aspekte):
Î
Ein Werkzeug muss entsprechend der Kritikalitätsstufe der Software qualifiziert
werden.
„
„
Î
Werkzeug läuft aber auf Host-PC und nicht auf dem Zielsystem
Viele Aspekte der DO-178B daher nicht anwendbar
Bei der Qualifizierung eines Codegen. werden Compiler nicht mit einbezogen
„
Ingo Stürmer
Ausgaben des Compilers muss zusätzlich überprüft werden (problematisch bei CrossCompilern)
12
IEC 61508
Zertifizierung von
Codegeneratoren
IEC 61508 (Functional Safety of Electrical/Electronic/Programmable Electronic
Safety-related Systems) ist ein Safety-Standard für E/E/EPS, der z.B. in der
Automobilindustrie für die Zertifizierung von sicherheits-relevanten, softwarebasierten E/E/EPS angewendet wird.
 Besteht aus sieben Hauptteilen
 Teil 1-3: Anforderungen an E/E/EPS
 Teil 4-7: Erläuterungen zu Teil 1-3
 Basiert auf dem Konzept der Safety-Integrity Levels (SIL 1-4)
 Je höher der Level, desto höher die Auswirkungen auf System-Sicherheit
 Z.B. SIL 4 enstpricht Anforderungen an Software-Anteile für z.B. „X-by-Wire“ Systeme,
dessen Fehlverhalten katastrophale Auswirkungen auf Mensch, Umwelt oder das
System selbst haben könnte
Ingo Stürmer
13
IEC 61508: Zertifizierung
„
Zertifizierung von
Codegeneratoren
Zertifizierung wird nicht explizit im Standard erwähnt
Im Sinne der IEC 61508 muss Software „zugelassen“ (assessed) werden
Î Anerkannte Zulassungsstellen: TÜV (DEU), Factory Mutual (USA)
Î
„
Compiler Assessment ist auf zwei Arten möglich:
Zertifizierung (z.B. auf Basis des Sprachstandards)
Î Problematisch bei Simulink und Stateflow
2. „Increased Confidence from Use“
Î Korrektes Arbeiten des Werkzeugs wurde im mehreren Projekten
nachgewiesen (setzt stabile Tool-Version voraus)
Î Compiler Assessment erfolgt NICHT im Bezug auf Safety!
1.
„
„Fitness for Purpose“
„Tool is fit for intended purpose“ (z.B. durch „existence of conclusive
evidence for correct code generation“)
Î Siehe z.B. ASCET-SD Codegen. („Fitness for Purpose“ nach SIL3)
Î
„
Werkzeug-Zertifizierung nach Teil 1 und 3 der IEC 61508 möglich (siehe
SCADE KCG)
Ingo Stürmer
14
Probleme bei der Zertifizierung nach IEC 61508
„
Aus der Sicht des Managers oder Tool Herstellers :
Î
„
Zertifizierung von
Codegeneratoren
Siehe Probleme DO-178 B
Aus technischer Sicht:
Î
Siehe Probleme DO-178 B
Ingo Stürmer
15
Erfahrungen aus dem
Automobilbereich
Einsatz eines Codegenerators für Seriencodegenerierung
Ein „typisches“ Flowchart [SCFD06]
Zertifizierung von
Codegeneratoren
AND bitwise
[ (BEEP_fla g_beep) & (runs > 0) ]
{
runs= 1;
counter= 0;
}
Counter dependent of
processors‘ execution speed
[ runs > 0 ]
{
counter++;
}
Local SF variable implemented
as global variable
[ counter > t_tOn ]
{
{
BEEP_flag_buz zer= 1 ;
}
BEEP_flag_buz zer= 0;
}
[ counter > (t_tOn + t_tOff) ]
{
counter= 0;
runs++;
}
[ runs > 2 ]
{
runs= 0;
}
Ingo Stürmer
Only 20 LOC !!!
17
Die „bessere“(?) Stateflow Variante [SCFD06]
Zertifizierung von
Codegeneratoren
 Clearer than flowchart variant
 Independent of processor’s
execution speed (standardized
event: CLK)
•
•
Use of temporal logic
Problem: more code cause by use
of events
 Parameterization possible
(e.g. double beep)
 120 LOC
(due to use of events and states)
 A compromise between
meaningful modeling and code
efficiency must be found!
Ingo Stürmer
18
Kriterien für den erfolgreichen Einsatz eines Codegenerators
„
Anforderung an den Tool-Hersteller:
Î
Î
Î
Î
Î
„
Zertifizierung von
Codegeneratoren
CG-Version stabil
CG systematisch geprüft (zertifiziert)
Gute Dokumentation des CG
Sorgfältige Dokumentation der Fehler und Patches
Effiziente Behebung von Fehlern/Problemen mit dem Tool
Anforderungen an den Codegenerator:
CG systematisch geprüft (z.B. durch Testuite)
Î Semantikerhalt bei der Übersetzung der Modellierungssprache in Code
Î Modellierungssprache weit verbreitet
Î
„
Anforderung an den Modellierer (im Hinblick auf Seriencode):
Beherrschung der Modellierungssprache(n) Simulink, Stateflow +
Modellierungssprache des Codegenerators (z.B. TargetLink Blockset, Lustre)
Î Beherrschung des Codegenerators
Î Kenntnis von Programmiersprache, Betriebssystemen (allg.), Hardware-Aspekten
Î …
Î
Ingo Stürmer
19
Lessons Learned (Einsatz eines Codegenerators)
„
Zertifizierung von
Codegeneratoren
KEIN PUSH-BUTTON Ansatz (für Seriencode)
Expertenwissen wird benötigt
Î Im Allgemeinen:
„ Eine gutes Physikalisches Modell ≠ gutes Implementierungsmodell !!!
„ Effizienz des Codes hängt im wesentlichen von der geeigneten Modellierung
ab
Î Lösung: Kompromiss zwischen Codeeffizienz und verständlicher Modellierung
finden!
Î
„
Der generierte Code hat Overhead zu handgeschriebenen Code, bei:
Ungeeigneter Modellierung
Î Falscher Anwendung (Konfiguration) des Codegenerators
Î Codegenerator erzeugt (eher selten) fehlerhaften oder ineffizienten Code
Î
Ingo Stürmer
20
Lösungsmöglichkeiten
Autocode Validierungs-Testsuite (AVS)
„
Zertifizierung von
Codegeneratoren
Zertifzierung eines Compiler über Testsuite für ADA und C Compiler
erfolgreich eingesetzt
Konformitätstest im Hinblick auf ADA und ISO C Standard
Î Dies ist aber keine Zertifizierung nach DO-178B!
Î
„
Problem bei Codegenerator:
Î
„
Sprachstandard für SL/SF nicht publiziert (und teilweise bestimmt durch
Ausführungsumgebung)
Derzeitig Initiative von Automobilherstellern zur Validierung von TargetLink
über AVS Testsuite
Konsortium führender, deutscher Automobilhersteller und Zulieferern
Î Testsuite bestehend aus allg., öffentlichen Teil + kundenspezifische Modelle
(nicht-öffentlich)
Î
„
Wissenschaftliche Grundlagen für CG Testverfahren inkl. Fallstudien in
[Stü06], [SC05] fundiert
Î
Testumgebung und Modellgenerator für Codegenerator-Validierung vorhanden
Ingo Stürmer
22
Vorteile der CG Zertifizierung über AVS
„
Zertifizierung von
Codegeneratoren
Allgemeiner Konsens über Inhalte des Testsuite
Î
Gilt nur wenn öffentlich und werkzeugübergreifend
„
Semantik kann impliziert definiert werden
„
Safeguarded Subset kann incrementell erweitert werden
„
Kostengünstige Möglichkeit zur Tool-Zertifizierung
„
„Delta-Certification“ (Modifikationen, Patches des CG) wird unterstützt
Î
Bei klassicher Zertifizierung eher schwierig
Ingo Stürmer
23
(Idealerweise) Optimales Zusammenspiel der QA Aktivitäten
[SCDF06]
Zertifizierung von
Codegeneratoren
5. Regression Testing
2. Testing
3. Static Analysis
Development PC
Compiler
(Linker)
1. Model Review
Code generator
Implementation Model (IM)
Fixed-point
Autocode
Embedded
System
Cross-Compiler
(Linker / Loader)
6. Back-to-back Test
(IM versus Autocode)
Ingo Stürmer
4. Autocode Review
24
Zusammenfassung
Zertifizierung von
Codegeneratoren
„
Tool-Hersteller: Zertifizierung eines Codegenerators sollte sorgfältig
abgewogen werden
„
Kunde: Nutzen eines zertifizierten Codegenerators sollte geklärt werden
(„nice-to-have“ oder „must-have“)
Was kann ich durch den Einsatz eines zertifizierten CG einsparen?
Î Kann ich z.B. auf Codeoptimierungen verzichten?
Î
„
Wichtig (aus persönliche Sicht):
Wie ist das Zusammenspiel mit dem Tool-Lieferanten?
Î Passt das Werkzeug zum eigenen SW- Entwicklungsprozess (muss ich
Werkzeug oder Prozess anpassen)
Î Optimales Zusammenspiel der QA-Aktivitäten
Î
Ingo Stürmer
25
Literatur
Zertifizierung von
Codegeneratoren
„
[Pot04] Potter, B. “Use of the MathWorks Tool Suite to Develop DO-178B Certified
Code.” Slide No. 13. Honeywell, May 2004 <http://faculty.erau.edu/
korn/ToolForum/potter.htm>.
„
[San02] Santhanam, V.: The Anatomy of an FAA-Qualifiable Ada Subset Compiler,
Proc. of the 2002 annual ACM SIGAda Int. Conference on Ada, Houston, Texas, USA,
pp. 40-43, 2002.
„
[SC05] I. Stürmer, M. Conrad, "Ein Testverfahren für Optimierende Codegeneratoren”,
Informatik - Forschung und Entwicklung, Jun., 2005.
„
[SCFD06] I. Stürmer, M. Conrad, I. Fey, H. Dörr, "Experiences with Model and
Autocode Reviews in Model-based Software Development", Proc. of 3rd Intl. ICSE
Workshop on Software Engineering for Automotive Systems (SEAS’06), Shanghai,
China, May. 23, 2006.
„
[Stü06] I.Stürmer, "Systematic Testing of Code Generation Tools – A Test Suiteoriented Approach for Safeguarding Model-based Code Generation", Dissertation,
ProBusiness Verlag, Berlin, 2006.
Ingo Stürmer
26
Kontakt
Ingo Stürmer
Zertifizierung von
Codegeneratoren
27

Documents pareils