23.05.2014 Aufrufe

Folien zum Vortrag

Folien zum Vortrag

Folien zum Vortrag

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Wenn das Auto selbst lenkt<br />

Sicherheitskritische Software in<br />

der Automobilindustrie<br />

Dr. Alexander Mattausch<br />

31.01.2013


Wenn das Auto selbst lenkt<br />

Inhalt<br />

• Vorstellung und Lebenslauf<br />

• EB – Wer sind wir, was machen wir?<br />

• Echtzeit-Betriebssysteme:<br />

AUTOSAR – Automotive-Standard für Embedded Software<br />

• Entwicklung sicherheitskritischer Systeme:<br />

Was braucht man alles für den Sicherheitsnachweis?<br />

• Physiker in der Software-Entwicklung?<br />

© Elektrobit (EB), 2012 / Confidential 2


Lebenslauf<br />

Informatik oder Physik?<br />

Physik!<br />

Warum?<br />

• Allgemeinere Ausrichtung<br />

• Grundlagen-orientierter<br />

• Große Themenvielfalt<br />

…und in die Informatik kann man<br />

hinterher immer noch.<br />

Studium<br />

• Nebenfächer: Chemie/Informatik<br />

• Auslandsaufenthalt: Norwich (UK)<br />

• Seminare: Nichtlineare Optik und<br />

Theoretische Festkörperphysik<br />

• FSI, Fachschaft<br />

• Diplomarbeit:<br />

‒ Prof. Pankratov<br />

‒ Dichtefunktionaltheorie<br />

‒ Leerstellen-Defekte in Silizium<br />

• Diplom: 1999<br />

© Elektrobit (EB), 2012 / Confidential 3


Lebenslauf<br />

Theoretische Festkörperphysik - SiC<br />

• Promotion bei Prof. Pankratov<br />

• Defekte und Diffusion in SiC<br />

• Dichtefunktionaltheorie<br />

‒ Migrationsbarrieren<br />

‒ Ladungsniveaus<br />

‒ Resonanzspektren<br />

• Arbeitsumfeld<br />

‒ SFB / Forschergruppe<br />

‒ Internationale Konferenzen<br />

‒ Viel Numerik auf (damals) großen<br />

Computern<br />

Phys. Rev. B 73, 161201 (2006).<br />

• Promotion: 2005<br />

© Elektrobit (EB), 2012 / Confidential 4


Lebenslauf<br />

Theoretische Festkörperphysik - Graphen<br />

• 2 weitere Jahre Post-Doc<br />

• Thema: Graphen auf SiC<br />

• Start: 2005 – ganz zu Beginn des<br />

Graphen-Hypes<br />

• Veröffentlichung in „Physical Review<br />

Letters“ 2007<br />

Glück braucht man manchmal auch…!<br />

Phys. Rev. Lett. 99, 076802 (2007).<br />

© Elektrobit (EB), 2012 / Confidential 5


Lebenslauf<br />

Nebenjob: Freier c‘t-Autor<br />

• 3 c‘t-Artikel über<br />

‒ NFS (2000)<br />

‒ NIS (2001)<br />

‒ RPM (2005)<br />

• Zweitverwertung des Admin-Wissens<br />

vom Lehrstuhl-Netzwerk<br />

• Erstkontakt…?<br />

Eine kurze Anfrage per Mail!<br />

Fragen kostet nichts!<br />

© Elektrobit (EB), 2012 / Confidential 6


Lebenslauf<br />

Uni oder Industrie?<br />

Vorteile Uni<br />

• Forschung und Lehre<br />

• Freies Arbeiten<br />

Nachteile Uni<br />

• Befristete Verträge<br />

• „Wanderjahre“<br />

• „Alles-oder-Nichts“-Spiel<br />

Vorteile Industrie<br />

• Unbefristete Verträge bei i.d.R.<br />

besserer Bezahlung<br />

• Größere Stellenauswahl<br />

Nachteile Industrie<br />

• Mehr Stress<br />

• Weniger Freiheiten<br />

Uni so lange wie möglich, aber die Industrie hat gewonnen.<br />

Entscheidungskriterien für den Job:<br />

• Fachliches Interesse<br />

• Arbeitsklima<br />

© Elektrobit (EB), 2012 / Confidential 7


Vorstellung EB<br />

Elektrobit Automotive GmbH<br />

• Teil der finnischen Elektrobit Corporation (Wireless und Automotive)<br />

• EB Automotive: Mehr als 1200 Mitarbeiter (ca. 700 in Erlangen)<br />

• Als ich anfing (Mitte 2007): 550 Mitarbeiter<br />

• Fächer sind bunt gemischt: Informatik, E-Technik, Mathematik, Physik…<br />

• Gegründet 1988 als<br />

• 14 Niederlassungen in 7 Ländern:<br />

Deutschland, Finnland, Österreich, Frankreich, USA, Japan, China<br />

• Kunden sind praktisch alle führenden Firmen der Automobilindustrie<br />

© Elektrobit (EB), 2012 / Confidential 8


Vorstellung EB<br />

Arbeitsbereiche bei EB Automotive<br />

• Infotainment (HMI)<br />

‒ EB GUIDE<br />

‒ Benutzeroberflächen, Spracherkennung/-ausgabe…<br />

• Navigation (NAVI)<br />

‒ EB street director<br />

‒ „White label“ On-/Offboard-Navigationslösung<br />

• Fahrerassistenzsysteme (DA)<br />

‒ EB ADTF<br />

‒ Assistenzsysteme und Entwicklungswerkzeuge<br />

• Steuergeräte (ECU)<br />

‒ EB tresos<br />

‒ Basissoftware und Tools für Steuergeräte aller Art<br />

© Elektrobit (EB), 2012 / Confidential 9


Vorstellung EB<br />

Arbeitsklima<br />

• Offene Türen und flache Hierarchien<br />

• Wir sind alle „per Du“<br />

• Flexible Arbeitszeiten<br />

• Motivierte Kollegen<br />

• Genaue Arbeitszeiterfassung<br />

• Internationales Flair<br />

• Freie Getränke<br />

• Admin-Rechte auf dem Computer<br />

• Keine Großraumbüros<br />

• Team-Events, Schafkopf-Turniere, gute Stimmung…<br />

…fast wie an der Uni!<br />

© Elektrobit (EB), 2012 / Confidential 11


AUTOSAR – Automotive Embedded Software<br />

Die AUTOSAR Software-Architektur<br />

http://www.autosar.org<br />

© Elektrobit (EB), 2012 / Confidential 12


AUTOSAR – Automotive Embedded Software<br />

Echtzeit-Betriebssysteme: OSEK<br />

• „Echtzeit“ bedeutet:<br />

‒ Antwortzeiten im unteren µs-Bereich<br />

‒ Sowohl periodische als auch ereignisgesteuerte Prozess-Aktivierung<br />

• Der OSEK-Standard<br />

‒ Teil der AUTOSAR-Spezifikation<br />

‒ Statisches Betriebssystem<br />

• Alle Prozesse sind zur Kompilier-Zeit bekannt<br />

• Keine dynamische Speicherverwaltung<br />

‒ Prioritätsgesteuertes Scheduling<br />

‒ Betriebssystem-Objekte:<br />

• Tasks, Interrupts, Alarme und Timer, Counter, Events, selektive Locks<br />

Das OS muss ein vorhersagbares System ermöglichen!<br />

© Elektrobit (EB), 2012 / Confidential ISO 17356, http://www.osek-vdx.org 13


AUTOSAR – Automotive Embedded Software<br />

Unsere Betriebssysteme<br />

• ProOSEK: ältestes System, seit 1997, reines OSEK<br />

• EB tresos AutoCore OS: OSEK mit AUTOSAR-Erweiterungen<br />

• EB tresos Safety OS: AUTOSAR für sicherheitskritische Systeme (SIL-3/ASIL-D)<br />

• Jeweils bestehend aus zwei Teilen:<br />

‒ Konfigurationsabhängiger, generierter Code<br />

‒ Statischer, konfigurationsunabhängiger Code<br />

• Prozessor-Architekturen (SoC‘s):<br />

‒ 32 Bit: PowerPC, Infineon TriCore, ARM Cortex-R/A, Renesas V850, …<br />

‒ 16 Bit: Freescale S12X, Infineon XC2000, …<br />

‒ Hohe Portabilität der Betriebssysteme!<br />

© Elektrobit (EB), 2012 / Confidential 14


AUTOSAR – Automotive Embedded Software<br />

Der Arbeitsalltag in der OS-Entwicklung… 1<br />

• Portierungen auf neue CPU-Derivate und Architekturen (ab 2007)<br />

‒ 16-Bitter: Freescale S12X, Infineon XC2000<br />

‒ 32-Bitter: PowerPC<br />

‒ Support: letzter Anlaufpunkt bei technischen Problemen<br />

• Entwicklung von AUTOSAR-Modulen und Eclipse-Plugins (2008)<br />

‒ z.B. Betriebssystem-Generator, CanTP-Treiber<br />

‒ Programmiersprachen: Java, C, Assembler, (Perl, Make, Bash, XML,…)<br />

• Projektleitungsaufgaben: ProOSEK, AutoCore OS (2009)<br />

‒ Abstimmung mit Verkauf, Kunden, Produktmanagement, anderen Entwicklungsteams<br />

• Start der Sicherheitsentwicklung: Safety OS (seit 2010)<br />

‒ Erstellung des technischen Konzepts<br />

‒ Aufsetzen der Prozesse für die Entwicklung sicherheitskritischer Software<br />

1<br />

Aus meiner persönlichen Sicht… <br />

© Elektrobit (EB), 2012 / Confidential 15


Sicherheitskritische Systeme<br />

Beispiele sicherheitskritischer Steuergeräte<br />

• Servolenkung<br />

• Airbag<br />

• ESP/ABS<br />

• Elektronisches Gaspedal<br />

• Bremsassistenten<br />

• Automatischer Tempomat<br />

• Aktive Spurhalte-Assistenten<br />

• Batterie-Ladekontrolle<br />

• …<br />

Außerhalb der Automobilindustrie:<br />

• Industriesteuerungen<br />

• Motorsteuerungen<br />

• Landwirtschaft/Baumaschinen<br />

• Medizintechnik<br />

• …<br />

Immer mehr sicherheitskritische Steuergeräte<br />

werden von Software kontrolliert!<br />

© Elektrobit (EB), 2012 / Confidential 16


Safety Assessment – Sicherheitseigenschaften<br />

Was ist „Safety“?<br />

Definitionen:<br />

• „Safety“ bedeutet die Abwesenheit<br />

unangemessener Risiken.<br />

(Bekannter Begriff: „Restrisiko“)<br />

• „Unangemessenes“ Risiko: gemäß<br />

gesellschaftlicher und moralischer<br />

Werte nicht akzeptables Risiko<br />

• Risiko: Kombination aus<br />

Auftrittswahrscheinlichkeit und<br />

Schwere eines Schadens oder<br />

Verletzung<br />

Eigenschaften sicherer Systeme:<br />

• Fehlertolerant (durch Überwachung<br />

o.ä.)<br />

• Unter allen Umständen<br />

wohldefiniertes Verhalten<br />

• Sicherer Zustand im Fehlerfall<br />

‒ „Fail safe“: Abschalten<br />

‒ „Fail operational“: Notbetrieb muss<br />

weiterlaufen<br />

Philosophie des Risikomanagements:<br />

<strong>Vortrag</strong> von Rafaela Hillerbrand, SS2013<br />

© Elektrobit (EB), 2012 / Confidential 17


Sicherheitskritische Systeme<br />

Was braucht man alles für sichere Software?<br />

• Wichtig:<br />

Safety ≠ Security<br />

• Folgende Punkte sind relevant für<br />

die Entwicklung:<br />

‒ „Unterstützende“ Prozesse<br />

‒ Technische Dokumentation<br />

‒ Sicherheits-Eigenschaften<br />

• All dies wird in einem Safety<br />

Assessment geprüft<br />

Sicherheit lässt sich nicht nachträglich integrieren!<br />

© Elektrobit (EB), 2012 / Confidential 18


Safety Assessment – Unterstützende Prozesse<br />

Software-Entwicklungsprozesse<br />

© Elektrobit (EB), 2012 / Confidential 19


Safety Assessment – Unterstützende Prozesse<br />

Software-Entwicklung: Einfachste Methode<br />

Hack<br />

Ship<br />

© Elektrobit (EB), 2012 / Confidential 20


Safety Assessment – Unterstützende Prozesse<br />

Software-Entwicklung: Bessere Methode<br />

Hack<br />

Test<br />

Ship<br />

© Elektrobit (EB), 2012 / Confidential 21


Safety Assessment – Unterstützende Prozesse<br />

Software-Entwicklung: Noch bessere Methode<br />

Specify<br />

Test<br />

Ship<br />

Hack<br />

© Elektrobit (EB), 2012 / Confidential 22


Safety Assessment – Unterstützende Prozesse<br />

Software-Entwicklung: Das V-Modell<br />

Requirements<br />

„Was?“<br />

Tracing<br />

Integration Tests<br />

„Ist alles da?“<br />

Tracing<br />

Design<br />

„Wie?“, „Warum?“<br />

Tracing<br />

Analyse<br />

Unit Tests<br />

„Funktioniert‘s?“<br />

Tracing<br />

Coverage<br />

Code<br />

© Elektrobit (EB), 2012 / Confidential 23


Safety Assessment – Unterstützende Prozesse<br />

Umsetzung: Iterativer Entwicklungsprozess<br />

• Aufteilen des Gesamtsystems in einzelne kleine Module<br />

• Kleine Teams, die für ihr gesamtes „V“ verantwortlich sind<br />

• Iterative Entwicklung mit ca. 4-Wochen-Zyklen<br />

• Letzte Iteration muss in sich konsistent sein<br />

• Vorteile:<br />

‒ Schnelles Feedback, ob Spezifikation funktioniert<br />

‒ Abwechslungsreicheres Arbeiten<br />

‒ Schnelle Anpassung des Funktionsumfangs möglich<br />

‒ i.d.R. pünktliche Auslieferungen<br />

© Elektrobit (EB), 2012 / Confidential 24


Safety Assessment – Unterstützende Prozesse<br />

Welche Hilfsprozesse gibt es?<br />

• Configuration Management<br />

‒ Was ist in einem Release enthalten?<br />

‒ Welche Versionen gibt es?<br />

• Change Management<br />

‒ Wie ändere ich die Software?<br />

‒ Funktioniert sie noch?<br />

• Project Management<br />

‒ Wer macht was wann?<br />

‒ Schaffen wir es rechtzeitig?<br />

‒ Was brauchen die anderen Teams?<br />

© Elektrobit (EB), 2012 / Confidential 25


Safety Assessment – Technische Dokumente<br />

Wie komme ich an „Safety Requirements“?<br />

Beispiel: Fiktive Servolenkung<br />

• Wenige „Safety Goals“ beschreiben<br />

die übergeordneten Sicherheitsziele.<br />

• Funktionale und technische<br />

Requirements beschreiben die<br />

Umsetzung im System<br />

• Software Requirements beschreiben<br />

die Anforderungen an den Software-<br />

Sicherheitsmechanismus.<br />

Safety Goal<br />

Functional<br />

Requirements<br />

Technical<br />

Requirements<br />

• Die Lenkung darf nicht selbst<br />

lenken.<br />

• Die Lenkung darf nicht blockieren.<br />

• Der Servomotor muss den<br />

Lenkbewegungen exakt folgen.<br />

• Eine Software-Komponente muss<br />

den Zustand der Lenkung<br />

kontinuierlich überwachen.<br />

⇒ Ergibt einen großen Requirements-<br />

Baum<br />

⇒ Tracing hilft bei der Analyse!<br />

Software<br />

Requirements<br />

• Das Betriebssystem muss den<br />

Überwachungsprozess aktivieren.<br />

© Elektrobit (EB), 2012 / Confidential 26


Safety Assessment – Technische Dokumente<br />

Design – die Anfänge<br />

© Elektrobit (EB), 2012 / Confidential 27


Safety Assessment – Technische Dokumente<br />

Design – im fertigen Dokument<br />

• Beschreibungssprachen<br />

‒ Informeller Text nach vorgegebenem<br />

Schema<br />

‒ UML (semiformale Methode)<br />

cmp Safety_OS_components<br />

«thread»<br />

Hook<br />

{0..4}<br />

«thread»<br />

OS Application::Task<br />

{0..*}<br />

OS Application<br />

OS Application::Application Data:<br />

MemProtBoundary::Application Data<br />

«thread»<br />

OS Application::ISR<br />

{0..*}<br />

{0..*}<br />

• Beschreibt…<br />

‒ Enthaltene Komponenten<br />

‒ Schnittstellen<br />

‒ Interne Abläufe<br />

MK_OS<br />

Hook Data :<br />

LocalData<br />

Stack :LocalData<br />

AUTOSAR_OS<br />

AUTOSAR_OS<br />

«delegate»<br />

SafetyOS_API<br />

«delegate»<br />

Task Data :LocalData<br />

Stack :LocalData<br />

AUTOSAR_OS<br />

QM-OS_delegated<br />

Safety OS<br />

ISR Data :LocalData<br />

Stack :LocalData<br />

AUTOSAR_OS<br />

Microkernel<br />

MK_OS<br />

«thread»<br />

QM-OS<br />

MK Data :LocalData<br />

Stack :LocalData<br />

QM-OS<br />

OS Data :LocalData<br />

Stack :LocalData<br />

A<br />

© Elektrobit (EB), 2012 / Confidential 28


Safety Assessment – Technische Dokumente<br />

Gute Designs sind eine Kunst<br />

• Es gibt keine Software ohne Design<br />

‒ Gutes oder schlechtes Design<br />

‒ Aufgeschriebenes oder nicht<br />

aufgeschriebenes Design<br />

• Die Fähigkeit, gute Designs zu<br />

erstellen, unterscheidet den<br />

Software-Architekten vom<br />

Programmierer!<br />

• Sicherheitskritische Software<br />

benötigt ein sehr gutes Design.<br />

© Elektrobit (EB), 2012 / Confidential 29


Safety Assessment – Sicherheitseigenschaften<br />

Safety-Klassifizierung nach Risiko<br />

• Klassifizierung der Safety-<br />

Eigenschaften nach:<br />

‒ Schadenshöhe<br />

‒ Eintrittswahrscheinlichkeit<br />

‒ Kontrollierbarkeit<br />

• Normen<br />

‒ IEC 61508<br />

Safety Integrity Levels (SIL):<br />

Industrietechnik, Medizintechnik,<br />

Kerntechnik, …<br />

jedoch nicht: Luftfahrt (andere Norm)<br />

‒ ISO 26262<br />

Automotive SIL:<br />

Automobil-Industrie<br />

ASIL SIL<br />

4<br />

D<br />

3<br />

C<br />

2<br />

B<br />

A 1<br />

Kernkraftwerke<br />

Mehrere Tote<br />

Schwere Verletzungen<br />

Leichte Verletzungen<br />

Nicht sicherheitskritisch<br />

© Elektrobit (EB), 2012 / Confidential 30


Safety Assessment – Sicherheitseigenschaften<br />

Safety-Analyse – „Warum ist das alles sicher?“<br />

• Safety-Analyse unterscheidet<br />

sicherheitskritische von normaler<br />

Software-Entwicklung<br />

Unterscheidung von „Fehlern“:<br />

• Fault: Ursache eines Fehlers<br />

• Error: Fehlverhalten des Systems<br />

• Failure: Ausfall<br />

• Safety-Analyse ist das Aufstellen und<br />

Untersuchen von Fehlerszenarien.<br />

Wann führt man die Analyse durch?<br />

• Zu Beginn der Entwicklung<br />

‒ Erstellen eines sicheren Konzepts<br />

• Während der Entwicklung<br />

‒ Kontinuierliches Hinterfragen<br />

• Am Ende der Entwicklung<br />

‒ Dokumentation des Systemverhaltens<br />

⇒ Alles so klein und einfach wie<br />

möglich!<br />

⇒ Prozesse alleine reichen nicht!<br />

Man weiß unter allen Umständen, wie sich das System verhält!<br />

© Elektrobit (EB), 2012 / Confidential 31


Safety Assessment<br />

Inhalt eines Safety Assessments<br />

• Fokus auf Safety-Eigenschaften<br />

‒ Technisches Konzept<br />

‒ Qualität der Umsetzung<br />

‒ Verifikation<br />

• Persönliches Assessment der<br />

Entwickler<br />

‒ Fachliche Kompetenz<br />

‒ Integrität 1<br />

• Prozesse<br />

‒ Umgang mit Fehlern<br />

‒ Behandlung von Änderungen<br />

Ablauf<br />

• Mehrtägiges Frage-Antwort-Spiel mit<br />

dem Assessor<br />

• Dokumenten-Review<br />

Ergebnis<br />

• Assessment-Report<br />

• Zertifikat<br />

Gute Argumentation ist der Schlüssel <strong>zum</strong> Erfolg!<br />

1<br />

Taz Daughtry, Integrity in Software Process Improvement, EuroSPI 2 2012<br />

http://2012.eurospi.net/images/Conference_Pictures/key_note_2.mp4<br />

© Elektrobit (EB), 2012 / Confidential 32


Fazit<br />

Physiker in der Software-Entwicklung?<br />

• Professionelle Software-Entwicklung<br />

ist mehr als nur Programmieren<br />

• Benötigte Fähigkeiten:<br />

‒ Abstraktionsvermögen<br />

‒ Logisches Denken<br />

‒ Gute Argumentationsfähigkeit<br />

‒ Teamfähigkeit<br />

• Programmiererfahrung ist natürlich<br />

trotzdem nötig…<br />

• Zukunftsaussichten<br />

‒ Sicherheitskritische Funktionen<br />

werden immer mehr in Software<br />

implementiert werden<br />

‒ Auch außerhalb der Auto-Industrie<br />

wird mehr sicherheitskritische<br />

Software eingesetzt werden<br />

⇒ Der Markt wächst!<br />

Ja, da die Anforderungen immer breiter werden!<br />

© Elektrobit (EB), 2012 / Confidential 33


Vielen Dank für Eure<br />

Aufmerksamkeit!<br />

Kontakt:<br />

Automotive.elektrobit.com<br />

Alexander.Mattausch@elektrobit.com<br />

Ein besonderer Dank geht an Geek & Poke: http://www.geek-and-poke.com<br />

Lizenz: Creative Commons - http://creativecommons.org/licenses/by/3.0/deed.en_US

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!