Softwareentwicklung eingebetteter Systeme (eBook)
XII, 232 Seiten
Springer Berlin (Verlag)
9783540275220 (ISBN)
Eingebettete Systeme übernehmen komplexe Steuerungs- und Regelungsaufgaben für technische Systeme. Ihre Funktionalität wird durch das Zusammenspiel von Spezialhardware, Standardprozessoren, Peripherie und Software realisiert. Oft liegt der Schwerpunkt auf Hardware-Aspekten. Tatsächlich spielt der Softwareentwurf eine mindestens genauso wichtige Rolle beim Entwurf dieser Systeme. Hier setzt das Buch an und liefert einen guten Überblick über das Thema. Klassifikationen und Themen wie Nebenläufigkeit, Echtzeit und Echtzeitbetriebssysteme bilden die Grundlagen. Die Programmierung eingebetteter Systeme wird mit C++, Java sowie an den Beispielen von Esterel und Giotto erläutert. Ausgewählte Softwareentwurfstechniken wie Statecharts, hybride Systeme, UML und Hardware-Software Co-Design werden ausführlich vorgestellt. Eingebettete Systeme finden oft in sicherheitskritischen Bereichen Einsatz. Die Sicherung der Softwarequalität ist daher von zentraler Bedeutung und bildet einen weiteren wichtigen Teil des Buches.
Vorwort 6
Inhaltsverzeichnis 10
1 Einleitung 14
1.1 Motivation 14
1.2 Klassifikation, Charakteristika 16
1.3 Anwendungen, Beispiele und Branchen 19
1.4 Begriffsdefinitionen 21
1.5 Logischer Aufbau eingebetteter Systeme 23
1.5.1 Kontrolleinheit 25
1.5.2 Regelstrecke 28
1.5.2.1 Peripherie 29
1.5.2.2 Digital/Analog-Wandler 30
1.5.2.3 Analog/-Digital-Wandler 31
1.5.2.4 Sensoren 32
1.5.2.5 Aktuatoren 34
1.5.3 Benutzerschnittstelle 34
1.6 Softwareentwicklung eingebetteter Systeme 35
1.6.1 Motivation 35
1.6.2 Begriffsklärung 36
1.6.3 Entwurf 36
1.7 Besondere Herausforderungen 37
1.8 Zusammenfassung 38
2 Nebenläufige Systeme 40
2.1 Einführung 41
2.1.1 Multitasking 42
2.1.2 Multithreading 42
2.1.3 Prozesssynchronisation und -kommunikation 44
2.2 Grundlegende Modelle für die Nebenläufigkeit 45
2.3 Verteilte Systeme 47
3 Echtzeit, Echtzeitsysteme, Echtzeitbetriebssysteme 52
3.1 Echtzeitsysteme 52
3.2 Ereignissteuerung versus Zeitsteuerung 54
3.3 Echtzeitbetriebssysteme 55
3.3.1 Aufbau und Aufgaben von Betriebssystemen 56
3.3.2 Betriebssystemarchitekturen 57
3.3.3 Echtzeitfähige Betriebssysteme 58
3.3.4 Zeitgeber und Zugriffsebenen auf Zeit 63
3.3.5 Prozesse 66
3.3.6 Multitasking und Scheduling 67
3.3.7 Scheduling in Echtzeitbetriebssystemen 70
3.3.8 Speicherverwaltung 72
3.4 VxWorks als Beispiel eines Echtzeitbetriebssystems 74
3.4.1 Das Laufzeitsystem 76
3.4.2 Exkurs: Der POSIX Standard 76
3.4.3 Das I/O-Subsystem von VxWorks 77
3.4.4 Unterstützung verteilter Systeme in VxWorks 77
3.4.5 VxWorks Entwicklungswerkzeuge 77
3.5 Weitere Beispiele eingebetteter Betriebssysteme 79
3.5.1 Symbian OS 80
3.5.2 Palm OS 81
3.5.3 Windows CE 82
3.5.4 QNX 83
3.5.5 Embedded Linux 85
3.6 Zusammenfassung 86
4 Programmierung eingebetteter Systeme 88
4.1 Der Einsatz von C/C++ für eingebettete Systeme 90
4.2 Embedded C++ 91
4.2.1 Einschränkung: Das Schlüsselwort „mutable“ 93
4.2.2 Einschränkung: Ausnahmebehandlung 93
4.2.3 Typidentifikation zur Laufzeit 94
4.2.4 Namenskonflikte 94
4.2.5 Templates 94
4.2.6 Mehrfachvererbung und virtuelle Vererbung 94
4.2.7 Bibliotheken 95
4.2.8 EC++ Styleguide 95
4.3 Der Einsatz von Java für eingebettete Systeme 96
4.3.1 Java 1 98
4.3.1.1 Personal Java 98
4.3.1.2 Embedded Java 99
4.3.2 Java 2 (J2ME) 100
4.3.2.1 Connected Device Configuration (CDC) 101
4.3.2.2 Connected Limited Device Configuration (CLDC) 102
4.3.3 JavaCard 103
4.3.4 Echtzeiterweiterungen für Java 106
4.3.4.1 Real- Time Core Erweiterung 108
4.3.4.2 Real Time Specification for Java (RTSJ) 108
4.4 Synchrone Sprachen 111
4.5 Ereignisbasierter Ansatz am Beispiel von Esterel 112
4.5.1 Historie 113
4.5.2 Hypothese der perfekten Synchronie 113
4.5.3 Determinismus 117
4.5.4 Allgemeines 118
4.5.5 Parallelität 119
4.5.6 Deklarationen 119
4.5.7 Instruktionen 122
4.5.8 Beispiel: Die sogenannte ABRO-Spezifikation 124
4.5.9 Semantik 124
4.5.10 Kausalitätsprobleme 125
4.5.10.1 Logische Korrektheit 126
4.5.10.2 Konstruktive Semantik 128
4.5.11 Codegenerierung und Werkzeuge 129
4.6 Synchrone Datenflusssprachen am Beispiel von Lustre 131
4.6.1 Datenfluss und Clocks 132
4.6.2 Variablen, Konstanten und Gleichungen 133
4.6.3 Operatoren und Programmstruktur 133
4.6.4 Assertions (Zusicherungen) 135
4.6.5 Compilation 135
4.6.6 Verifikation und automatisches Testen 137
4.6.7 Lustre im Vergleich zu Signal 138
4.7 Zeitgesteuerter Ansatz am Beispiel von Giotto 138
4.8 Zusammenfassung 149
5 Softwareentwurf eingebetteter Systeme 152
5.1 Modellierung eingebetteter Systeme 153
5.2 Formale Methoden 154
5.3 Statecharts 155
5.4 Die Unified Modeling Language (UML) 158
5.5 Der Ansatz ROOM 164
5.5.1 Softwarewerkzeuge und Umgebung 164
5.5.2 Einführung 165
5.5.3 Echtzeitfähigkeit 167
5.6 Hardware/Software-Codesign 168
5.7 Die MARMOT-Methode 174
5.8 Hybride Systeme und hybride Automaten 177
5.8.1 Einleitung 177
5.8.2 Spezifikation hybrider Systeme 180
5.9 Zusammenfassung 184
6 Softwarequalität eingebetteter Systeme 186
6.1 Motivation 186
6.2 Begriffe 187
6.3 Zuverlässigkeit eingebetteter Systeme 191
6.3.1 Konstruktive Maßnahmen 195
6.3.1.1 Einsatz redundanter Hardware 195
6.3.1.2 Einsatz redundanter Software 196
6.3.2 Analytische Verfahren 197
6.3.3 Stochastische Abhängigkeit 199
6.3.4 Gefahrenanalyse 199
6.4 Sicherheit eingebetteter Systeme 201
6.4.1 Testen 203
6.4.1.1 Überblick 203
6.4.1.2 Ausgewählte Testverfahren 204
6.4.2 Manuelle Prüftechniken 208
6.4.3 Formale Verifikation 209
6.5 Zusammenfassung 212
7 Vorgehensmodelle und Standards der Entwicklung 214
7.1 Das Wasserfall-Modell 214
7.2 Das V-Modell 215
7.3 Das V-Modell XT 218
7.3.1 Grundlagen 219
7.3.2 Anwendung des V-Modell XT 220
7.3.3 Zielsetzung und Aufbau des V-Modell XT 221
7.3.3.1 V- Modell XT als Weiterentwicklung des V-Modells 97 222
7.3.3.2 Zielsetzung des V-Modells XT 223
7.3.3.3 Grenzen des V-Modells XT 223
7.3.4 V-Modell XT Produktvorlagen 224
7.3.5 V-Modell XT Werkzeuge 224
7.3.5.1 Der V- Modell XT Projektassistent 225
7.3.5.2 V- Modell XT Editors 225
7.4 Die ROPES-Methode 225
7.5 Der OSEK-Standard 226
7.6 AUTOSAR 228
7.7 Zusammenfassung 230
8 Schlussbemerkungen 232
Literaturverzeichnis 236
Sachverzeichnis 242
6 Softwarequalität eingebetteter Systeme (S.173)
Der Qualität von eingebetteter Software eine besondere Bedeutung zuzumessen, ist eine lohnenswerte Investition. Dies belegen zahlreiche Beispiele, bei denen fehlerhafte Software zu Schädigungen von Maschinen oder gar Menschen geführt hat. Einige prominente Fälle, wo Softwarefehler zu massiven Konsequenzen geführt haben, schildern wir daher in diesem Kapitel, bevor wir dann zentrale Begriffe der Softwarequalität diskutieren. Um die Softwarequalität überprüfen zu können, sind spezielle Prüftechniken erforderlich. Wir geben zunächst eine Übersicht über derzeit mögliche Prüftechniken und schildern dann ausgewählte Vertreter etwas näher.
Die Qualitätssicherung eingebetteter Systeme, gerade auch in der Automobiltechnik oder Avionik ist eine schwierige aber gleichwohl dringend erforderliche Entwicklungsaufgabe. Nach diesem Kapitel sollte der Leser die beiden Begriffe Zuverlässigkeit und Sicherheit sowie die damit in Bezug stehenden Begriffe verstanden haben und Verfahren zu ihrer Herstellung kennen.
6.1 Motivation
Ein „eindrucksvolles" Beispiel für einen Softwarefehler ist die Bruchlandung eines Airbus A-320 auf dem Warschauer Flughafen am 14. September 1993: Ein Lufthansa-Airbus fängt bei der Landung in Warschau Feuer. Bei dem Unfall sterben zwei Menschen, 54 werden verletzt. Ursache war eine Fehlkonstruktion des Sensors zur Erkennung der Bodenberührung: Im „Flight Mode" ließ sich die zum Bremsen notwendige Schubumkehr nicht einschalten. Hier handelte es sich um keinen Pilotenfehler, sondern 6 um falsche Entwurfsentscheidungen der Konstrukteure und Software-Ingenieure.
Ein anderes Beispiel, wo ein Softwarefehler beinahe zu einer Katastrophe geführt hatte, war die Landung einer in einer „Sojus"- Kapsel zurückgekehrten ISS-Mannschaft im Jahre 2003. Nach russischen Angaben führte ein Softwarefehler zu einem absturzartigen Wiedereintritt, bei dem ein vom Computer falsch berechneter Eintrittswinkel zu einer übermäßigen Hitzeentwicklung geführt hat. Einer der wohl bekanntesten Repräsentanten für mangelnde Softwarequalität ist der Absturz bzw. die ferngelenkte Zerstörung der europäischen Trägerrakete Ariane 5 auf ihrem Jungfernflug am 4. Juni 1996 in Kourou. Die Rakete war mit vier Satelliten bestückt. Etwa 37 Sekunden nach dem Start erreichte die Ariane 5 eine Horizontalgeschwindigkeit von mehr als 32.768 internen Einheiten. Die in der Programmiersprache Ada realisierte Konvertierung dieses Wertes in eine vorzeichenbehaftete Integer-Variable führte daher zu einem Überlauf, der nicht abgefangen wurde, obwohl die Hardware redundant ausgelegt war. Da es sich hier jedoch um einen reinen Softwarefehler handelte, blieb diese Redundanz wirkungslos.
Folglich wurden Diagnosedaten zum Hauptrechner geschickt, die dieser als Flugbahndaten interpretierte, so dass dieser unsinnige Steuerbefehle generierte. Die Rakete drohte daraufhin zu bersten und musste ferngelenkt gesprengt werden, um größeren Schaden aufgrund der noch niedrigen Höhe zu vermeiden. Interessanterweise war die Software von der Ariane 4 wiederverwendet worden und hatte dort auch problemlos funktioniert. Der Gesamtschaden belief sich auf 500 Millionen US-Dollar.
| Erscheint lt. Verlag | 30.11.2005 |
|---|---|
| Reihe/Serie | Xpert.press | Xpert.press |
| Zusatzinfo | XII, 232 S. |
| Verlagsort | Berlin |
| Sprache | deutsch |
| Themenwelt | Mathematik / Informatik ► Informatik ► Software Entwicklung |
| Schlagworte | Betriebssystem • Echtzeit • Echtzeitbetriebssysteme • Echtzeitsystem • Echtzeitsysteme • Eingebettete Systeme • Embedded Systems • Java • Metriken • Modellierung • Reaktive Systeme • Regelung • Sicherheit • Sicherheitskritische Softwaresysteme • Software engineering • unified modeling language (UML) |
| ISBN-13 | 9783540275220 / 9783540275220 |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich