Suchen und Finden
Mehr zum Inhalt
Softwareentwicklung eingebetteter Systeme - Grundlagen, Modellierung, Qualitätssicherung
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
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.