Softwareentwicklung eingebetteter Systeme - Grundlagen, Modellierung, Qualitätssicherung
von: Peter Scholz
Springer-Verlag, 2005
ISBN: 9783540275220
Sprache: Deutsch
240 Seiten, Download: 1498 KB
Format: PDF, auch als Online-Lesen
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 |