Softwareentwicklung eingebetteter Systeme - Grundlagen, Modellierung, Qualitätssicherung

von: Peter Scholz

Springer-Verlag, 2005

ISBN: 9783540275220 , 240 Seiten

Format: PDF, OL

Kopierschutz: Wasserzeichen

Windows PC,Mac OSX für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Online-Lesen für: Windows PC,Mac OSX,Linux

Preis: 40,46 EUR

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