Automotive Software Engineering - Grundlagen, Prozesse, Methoden und Werkzeuge effizient einsetzen

von: Jörg Schäuffele, Thomas Zurawka

Vieweg+Teubner (GWV), 2010

ISBN: 9783834893680 , 339 Seiten

4. Auflage

Format: PDF, OL

Kopierschutz: DRM

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: 34,99 EUR

Mehr zum Inhalt

Automotive Software Engineering - Grundlagen, Prozesse, Methoden und Werkzeuge effizient einsetzen


 

Zur Bedeutung von Software im Automobil

5

Standardisierung von Software und Entwicklungsmethoden

5

Vom Kostentreiber zum Wettbewerbsvorteil

5

Ausbildung als Chance und Herausforderung

5

Vorwort zur 4. Auflage

6

Beispiele aus der Praxis

7

Leserkreis

7

Danksagungen

7

Inhaltsverzeichnis

9

1 Einführung und Überblick

14

1.1 Das System Fahrer-Fahrzeug-Umwelt

15

1.1.1 Aufbau und Wirkungsweise elektronischer Systeme

15

1.1 .2 Elektronische Systeme des Fah rzeugs und der Umwelt

18

1.2 Überblick über die elektronischen Systeme des Fahrzeugs

19

1.2.1 Elektronische Systeme des Antriebsstrangs

21

1.2.1.1 Benutzerschnittstellen und Sollwertgeber

21

1.2.1.2 Sensoren und Aktuatoren

21

1.2.1.3 Software-Funktionen

21

1.2.1.4 Bauraum

22

1.2.1.5 Varianten und Skatierbarkeit

22

1.2.2 Elektronische Systeme des Fahrwerks

22

1.2.2.1 Benutzerschnittstellen und Sollwertgeber

23

1.2.2.2 Sensoren und Aktuatoren

23

1.2.2.3 Software-Funktionen

24

1.2.2.4 Bauraum

24

1.2.2.j Varianten und Skalierbarkeit

24

1.2.3Elektronische Systeme der Karo sserie

24

1.2.3.1 Benutzerschnittstellen und Sollwertgeber

25

1.2.3.2 Sensoren und Aktuatoren

25

1.2.3.3 Software-Funktionen

25

1.2.3.4 Bauraum

26

1.2.3.5 Varianten und Skalierbarkeit

26

1.2.4 Multi-Media-Systeme

26

1.2.5 Verteilte und ver netzte elekt ro nische Systeme

27

1.2.6 Zusammenfassung und Ausblick

28

1.3 Überblick über die logische Systemarchitekt ur

29

1.3.1 Funktions- und Steuergerätenetzwerk des Fahrzeugs

29

1.3.2 Logische Systemarchitektur für Steuerungs-Regelungs- und Überwachungssysteme

30

1.4 Prozesse in der Fahrzeugentwicklung

31

1.4.1 Überblick über die Fahrzeugentwicklung

31

1.4.2 Überblick über die Entwicklung von elektronischen Systemen

32

1.4.2.1 Trend von der Hardware zur Software

32

1.4.2.2 Kosten

33

1.4.2.3 Lange Produktlebenszyklen

33

1.4.2.4 Hohe und steigende Anforderungen an die Steherneit

34

1.4.3 Kernprozess zur Entwicklung von elektronischen Systemen und Software

35

1.4.4 Unterstützungsprozesse zur Entwicklung von elektronischen Systemen und Software

37

1.4.4.1 Kunden-Liejeranten-BezieJllIngen

38

1.4.4.2 Simultaneaus Engineering und verschiedene Entwicklungsumgehungen

38

1.4.5 Produktion und Service von elektronischen Systemen und Software

40

1.5 Methoden und Werkzeuge für die Entwicklung von Software für elektronische Systeme

40

1.5.1 Modellbasierte Entwicklung

41

1.5.2 Integrierte Qualitätssicherung

41

1.5.2.1 Richtlinien zur Qualitätssicherung

42

1.5.2.2 Maßnahmen zur Quatitatsprafung. Vatidienmg und Verifikation

42

1.5.3 Reduzierung des Entwicklungsrisikos

44

1.5.3.1 Frühzeitige Validierung von Software-Funktionen

44

1.5.3.2 Wiederverwendung von Software-Funktionen

45

1.5.4 Standardisierung und Automatisierung

45

1.5.4.1 Standardisierung

45

1.5.4.2 Automatisierung

46

1.5.5 Entwick lungsschritte im Fahrzeug

48

2 Grundlagen

49

2.1 Steuerungs- und regelungstechnische Systeme

49

2.1.1 Modellbildung

49

2.1.2 Blockschattbüder

50

2.2 Diskrete Systeme

54

2.2.1 Zeltdiskrete Systeme und Signale

55

2.2.2 Wertdiskrete Systeme und Signale

56

2.2.3 Zeit- und wertdiskrete Systeme und Signale

57

2.2.4 Zustandsautomaten

57

2.3 Eingebettete Systeme

59

2.3.1 Aufbau von Mikrocontrollern

60

2.3.2 Speichertechnologien

62

2.3.2.1 Schreib-lese-Speicher

63

2.3.2.2 Nicht läschbare Festwertspeicher

63

2.3.2.3 Wiederbeschreibbare Festwertspeicher

64

2.3.3 Programmierung von Mikrocontrollern

65

2.3.3.1 Programm- und Datenstand

65

2.3.3.2 Arbeitsweise von Mikrocontrollern

65

2.3.3.3 Hauptoperationen von Mikroconrrollern

66

2.3.3.4 Architektur und Bef ehlssalz von Mikroprozessoren

67

2.3.3.5 Architektur von Ein- und Ausgabeeinheuen

70

2.4 Echtzeitsysteme

72

2.4.1 Festlegung von Tasks

72

2.4.2 Festlegung von Echtzeitanforderungen

74

2.4.2.1 Aktivierungs- und Deadline-Zeitpunkt einer Taste

74

2.4.2.2 Harte und weiche Echtzeitariforderungen

75

2.4.2.3 Festlegung von Prozessen

76

2.4.3 Zustände von Tasks

76

2.4.3.1 Basis-Zustandsmodell für Tasks nach AUTOSAR-OS und OSEK-OS

76

2.4.3.2 Erweitertes Zustandsmodell für Tasks nach AUTOSAR-OS und OSEK-OS

77

2.4.4 Strategien für die Zuteilung des Prozessors

78

2.4.4.1 Zuteilung nach der Reihenfolge

79

2.4.4.2 Zuteilung nach einer Priorität

79

2.4.4.3 Zuteilung nach einer kombinierten Reihenfolge-Prioritäts-Strategie

79

2.4.4.4 Präemptive Zuteilung

80

2.4.4.5 Nichtpräempttve Zuteilung

80

2.4.4.6 Ereignis- und zeitgesteuerte Zuteilungsstrategien

81

2.4.5 Aufbau von Echtzeitbetriebssystemen

83

2.4.6 Interaktion zwischen Tasks

83

2.4.6.1 Synchronisation

84

2.4.6.2 Kooperation

85

2.4.6.3 Kommunikation

87

2.4.6.4. Interaktion zwischen Tasks in der logischen Systemarchitektur

89

2.5 Verteilte und vernetzte Systeme

89

2.5.1 Logische und technische Systemarchitektur

92

2.5.2 Festlegung der logischen Kommunikationsbeziehungen

93

2.5.2.1 Client-Server-Modell

93

2.5.2.2 Sender-Receiver-Modell

93

2.5.3 Fesrlegung der technischen Netzwerktopologie

95

2.5.3.1 Stermopologie

95

2.5.3.2 Ringtopologie

96

2.5.3.3 Linientopologie

96

2.5.4 Festlegung von Nachrichten

96

2.5.4.1 Adressierung

97

2.5.4.2 Kommunikationsmatrix

97

2.5.5 Aufbau der Kommunikation und des Netzwerkmanagements

97

2.5.5.1 Kommunikation nach AUTOSAR und OSEK

99

2.5.5.2 Netzwerkmanagement nach AUTOSAR und OSEK

100

2.5.6 Strategien für die Zuteilung des Busses

101

2.5.6.1 Zentral oder dezentral realisierte Strategie für den Buszugriff

102

2.5.6.2 Gesteuerte oder ungesteuerte Strategie für den Buszugriff

102

2.5.6.3 Ereignis- lind zeitgesteuerte Zugriffsstrategien

103

2.6 Zuverlässigkeit, Sicherheit, Überwac hung und Diagnose von Systemen

103

2.6.1 Grundbegriffe

104

2.6.2 Zuverlässigkeit und Verfügbarkeit von Systemen

105

2.6.2.1 Definition der Zuverlässigkeitsfunktion R(t) und der Ausfallrate .(t)

105

2.6.2.2 Definition der mittleren ausfallfreien Arbeitszeit MTTF

108

2.6.2.3 Definition der mittleren Ausfallzeit MTTR

108

2.6.2.4 Definition der mittleren Verfügbarkeit

109

2.6.3 Sicherheit von Systemen

109

2.6.3.1 Definition von Begriffen der Sicherheitstechnik

109

2.6.3.2 Ermittlung des Risikos

111

2.6.4 Überwach und und Diagnose von Systemen

112

2.6.4.1 Überwachung

112

2.6.4.2 Fehlererkennung

113

2.6.4.3 Fehlerbehandlung

114

2.6.4.4 Sicherheitslogik

115

2.6.4.5 Funktionale Sicherheit bei Software

116

2.6.5 Aufbau des Überwachungssystems elektronischer Steuergeräte

116

2.6.5.1 Funktionen zur Überwachung des Mikrocontrollers

117

2.6.5.2 Funktionen zur Überwachung der Sollwertgeber. Sensoren, Aktuatoren und der Steuerungs- und Regelungsfunktionen

118

2.6.6 Aufbau des Diagnosesystems elektronischer Steuergeräte

119

2.6.6.1 Offboard-Diagnosefunktionen

119

2.6.6.2 Onboard-Diagnosefunktionen

119

2.6.6.3 Sottwengeber- und Sensordiagnosefunktionen

120

2.6.6.4 Aktuatordiagnosefunktionen

121

2.6.6.5 Fehlerspeichermanager

122

2.6.6.6 Offboard-Diagnosekommunikation

123

2.6.6.7 Modellbasierte Fehlererkennung

123

2.7 Steuergerätenetzwerke

124

3 Unterstützungsprozesse zur Entwicklung von elektronischen Systemen und Software

126

3.1 Grundbegriffe der Systemtheorie

126

3.2 Vorgehensmodelle und Standards

129

3.3 Konfigurationsmanagement

131

3.3.1 Produkt und Lebenszyklus

131

3.3.2 Varianten und Skalierbarkeit

132

3.3.3 Versionen und Konfigurationen

133

3.4 Projektmanagement

136

3.4.1 Projektplanung

136

3.4.1.1 Qualitätsplanung

137

3.4.1.2 Kostenplanung

137

3.4.1.3 Terminplanung

138

3.4.1.4 Rollen und Aufgabengebiete in der Entwicklung

140

3.4.2 Projektverfolgung und Risikomanagement

141

3.5 Lieferantenman agement

142

3.5.1 System- und Komponentenverantwortung

142

3.5.2 Schnittstellen für die Spezifikation und Integration

143

3.5.3 Festlegung des firmenübergreifenden Entwicklungsprozesses

143

3.6 Anforderungsmanagement

145

3.6.1 Erfassen der Benutzeranforderungen

145

3.6.2 Verfolgen von Anforderungen

149

3.7 Qualitätssicherung

149

3.7.1 Integrations- und Testschritte

150

3.7.2 Maßnahmen zur Qualltätsstcherung von Software

151

4 Kernprozess zur Entwicklung von elektronischen Systemen und Software

152

4.1 Anforderungen und Randbedingungen

153

4.1.1 System- und Komponentenverantwortung

153

4.1.2 Abstimmung zwischen System- und Software-Entwicklung

154

4.1.3 Modellbasierte Software-Entwicklung

156

4.2 Grundbegriffe

156

4.2.1 Prozesse

156

·1.2.2 Methoden und Werkzeuge

157

4.3 Analyse der Benutzeranforderungen und Spezifikation derlogischen Systemarchitektur

158

4.4 Analyse der logischen Systemarchitektur und Spezifikation der technischen Systemarchitektur

161

4.4.1 Analyse und Spezifikation steuerungs- und regelungstechnischer Systeme

165

4.4.2 Analyse und Spezifikation von Echtzeitsystemen

166

4.4.3 Analyse und Spezifikation verteilter und vernetzrer Systeme

167

4.4.4 Analyse und Spezifikation zuvertässtger und sicherer Systeme

168

4.5 Analyse der Software-Anforderungen und Spezifikation der Software-Architektur

169

4.5.1 Spezifikation der Software-Komponenten und ihrer Schnittstellen

169

4.5.1.1 Spezifikation der Onboard-Schnittstellen

170

4.5.1.2 Spezifikation der Offboard-Schnittstellen

170

4.5.2 Spezifikation der Software-Schichten

171

4.5.3 Spezifikation der Betriebszustände

173

4.6 Spezifikation der Software-Komponenten

174

4.6.1 Spezifikation des Datenmodells

175

4.6.2 Spezifikation des Verhaltensmodells

176

4.6.2.1 Spezifikation des Datenflusses

176

4.6.2.2 Spezifikation des Kontrollflusses

177

4.6.3 Spezifikation des Echtzeitmodells

178

4.6.3.1 Zustandsabhängiges. reaktives Ausfühmngsmodell

178

4.6.3.2 Zustandsunabhängiges, reaktives Ausführungsmodell

179

4.7 Design und Implementierung der Software-Komponenten

180

4.7.1 Berücksichtigung der geforderten nichtfunktionalen Produkteigenschaften

181

4.7.1.1 Unterscheidung zwischen Programm- und Datenstand

181

4.7.1.2 Beschränkung der Hardware-Ressourcen

181

4.7.2 Design und Implementierung des Datenmodells

183

4.7.3 Design und Implementierung des Verhaltensmodells

184

4.7.4 Design und Implementierung des Echtzeitmodells

185

4.8 Test der Software-Komponenten

185

4.9 Integration der Software-Komponenten

186

4.9.1 Erzeugung des Programm- und Datenstands

187

4.9.2 Erzeugung der Bcschretbungsdatelen

188

4.9.3 Erzeugung der Dokumentation

189

4.10 Integrationstest der Software

190

4.11 Integration der Systemkomponenten

191

4.11.1 Integration von Software und Hardware

191

4.11.1.1 Download

191

4.11.1.2 Flash-Programmierung

192

4.11.2 Integration von Steuergeräten, Sollwertgebern, Sensoren und Aktuatoren

192

4.12 Integrationstest des Systems

194

4.13 Kalibrierung

197

4.14 System- und Akzeptanztest

198

5 Methoden und Werkzeuge in der Entwicklung

200

5.1 Offboard-Schnittstelle zwischen Steuergerät und Werkzeug

201

5.2 Analyse der logischen Systemarchitektur und Spezifikation der technischen Systemarchitektur

203

5.2.1 Analyse und Spezifikation steuerungs- und regelungstechnischer Systeme

203

5.2.2 Analyse und Spezifikation von Echtzeitsystemen

207

5.2.2.1 Zuteilbarkeitsanalyse

209

5.2.2.2 Verifikation der Zuteilbarkeit durch Messungen

212

5.2.2.3 Überwachung und Behandlung von Deadline-Verletzungen im Betriebssystem

212

5.2.3 Analyse und Spezifikation verteilter und vernetzter Systeme

213

5.2.4 Analyse und Spezifikation zuverlässiger und sicherer Systeme

218

5.2.4.1 Ausfallratenanalyse und Berechnung der Zuverlässigkeitsfunktion

218

5.2.4.2 Sicherheits- und Zuverlässigkeitsanalyse für das System

221

5.3 Spezifikation von Software-Funktionen und Validierung der Spezifikation

225

5.3.1 Spezifikation der Software-Architektur und der Software-Komponenten

227

5.3.1.1 Objektbasierte Modellierung der Software-Architektur

227

5.3.1.2 Spezifikation der Schnittste llen zum Echtzeitbetriebssystem mit Modulen

229

5.3.1.3 Spezifikation von wiederverwendbaren Software-Komponenten mit Klassen

230

5.3.2 Spezifikatio n des Datenmodells

231

5.3.3 Spezifikation des Verhaltensmodells mit Blockdiagrammen

231

5.3.3.1 Spezifikation arithmetischer Funktionen

231

5.3.3.2 Spezifikation Bootescher Funkttonen

234

5.3.4 Spezifikation des Verhaltensmodells mit Entscheidungstabellen

234

5.3.5 Spezifikation des Verhaltensmodells mit Zustandsautomaten

237

5.3.5.1 Spezifikation flacher Zustandsautomaten

237

5.3.5.2 Spezifikation von Übergängen mit Verzweigungen

240

5.3.5.3 Spezifikation hierarchischer Zustandsautomaten

241

5.3.6 Spezifikation des Verhaltensmodells mit Programmiersprachen

242

5.3.7 Spezifikation des Echtzeitmodells

242

5.3.8 Validierung der Spezifikation durch Simulation und Rapid-Prototyping

242

5.3.8.1 Simulation

244

5.3.8.2 Rapid-Prototyping

245

5.3.8.3 Horizontale und vertikale Prototypen

246

5.3.8.4 Zielsystemidentische Prototypen

250

5.3.8.5 Wegwerf- und evolutionäre Prototypen

251

5.3.8.6 Verifikation des Steuergeräts mit Referenzprototyp

252

5.4 Design und Implementierung von Software-Funktionen

254

5.4.1 Berücksichtigung der geforderten nichtfunktionalen Produkteigenschaften

254

5.4.1.1 Laufzeitoptimierung durch Berücksichtigung unterschiedlicher Zugriffszeiten auf verschidene Speichersegmente

254

5.4.1.2 Laufzeitopumierung durch Aufteilung einer Software-Funktionauf verschiedene Tasks

255

5.4.1.3 Ressourcenoptimierung durch Alljieilung in Online- und Offline-Berechnungen

256

5.4.1.4 Ressourcenoptimierung durch Aufteilung in Onboard- und Offboard- Berechnungen

257

5.4.1.5 Ressourcenoptimierung bei Kennlinien und Kennfeldern

259

5.4.2 Design und Implementierung von Algorithmen in Festpunkt- und Gleitpunktarithmetik

262

5.4.2.1 Darstellung von Zahlen in digitalen Prozessoren

262

5.4.2.2 Rundungsfehler bei der Ganzzahldivision

265

5.4.2.3 Über- und Unterlaufbei der Addition, Subtraktion und Multiplikation

266

5.4.2.4 Schiebeoperationen

267

5.4.2.5 Behandlung von Überläufen und Unterläufen

267

5.4.2.6 Fehlerfortpflanzung bei Algorithmen in Festpunktarithmetik

269

5.4.2.7 Physikalischer Zusammenhang und Festpunktarithmetik

271

5.4.2.8 Physikalische Modellebene und Implementierungsebene

273

5.4.2.9 Einige Hinweise zur Implementierung in Festpunktarithmetik

274

5.4.2.10 Einige Hinweise zur Implementierung in Gleitpunktarithmetik

276

5.4.2.11 Modellierungs- und Implementierungsrichtlinien

277

5.4.3 Design und Implementierung der Software-Architektur

277

5.4.3.1 Basis- und Anwendungs-Software

277

5.4.3.2 Standardisierung von Software-Komponenten der Basis-Software

278

5.4.3.3 Konfiguration von standardisierten Software-Komponenten

279

5.4.4 Design und Implementierung des Datenmodells

281

5.4.4.1 Festlegung des Speichersegments

281

5.4.4.2 Einstellung von Datenvarianten durch Flash-Programmierung

282

5.4.4.3 Einstellung von Datenvarianten durch Korftgurationsparameter

282

5.4.4.4 Generierung von Datenstrukturen und Beschreibungsdateien

283

5.4.5 Design und Implementierung des Verhaltensmodells

284

5.5 Integration und Test von Software-Funktionen

287

5.5.1 Software-in-the-Loop-Simulationen

288

5.5.2 Laborfahrzeuge und Prüfstände

290

5.5.2.1 Prüfumgebung für ein Steuergerät

290

5.5.2.2 Inbetriebnahme und Prüfumgebung für Steuergerät, Sollwertgeber, Sensoren und Aktuatoren

292

5.5.2.3 Inbetriebnahme und Prüfulmgebumg für ein Steuergeratenetzwerk

293

5.5.2.4 Prüfstand

294

5.5.3 Experimental-. Prototypen- und Serienfahrzeuge

296

5.5.4 Design und Automatisierung von Experimenten

297

5.6 Kalibrierung von Software-Funktionen

298

5.6.1 Arbeitsweisen bei der Offline- und Online-Kalibrierung

299

5.6.2 Software-Update durch Flash-Programmierung

301

5.6.3 Synchrones Messen von Signalen des Mikrocontrollers und der Instrumentierung

302

5.6.4 Auslesen und Auswerten von Onboard-Diagnosedaten

302

5.6.5 Offline-verstellen von Parametern

303

5.6.6 Online-Verstellen von Parametern

304

5.6.7 Klassifizierung der Offboa rd-Schnittstellen für das Online-Verstellen

305

5.6.7.1 Serielle. seriennahe Schnittstelle mit internem CAL-RAM (Methode 1)

306

5.6.7.2 Serielle Entwicklungsschnittsteile mit internem CAL-RAM (Methode 2)

307

5.6.7.3 Parallele Entwicklungsschnittstelle mit internem CAL-RAM (Methode 3)

308

5.6.7.4 Serielle. seriennahe Sehntustelle mitzusätzlichem CAL-RAM (Methode 4)

308

5.6.7.5 Serielle Entwicklungssctmiustette mit zusätzlichem CAL-RAM (Methode 5)

309

5.6.7.6 Parallele Entwicklungsschnittstelle mit zusätzlichem CAL-RAM (Methode 6)

309

5.6.7.7 Protokolle für die Kanunnnikatian zwischen Kalibrierwerkzeugen und Mikrocontrollern

310

5.6.8 Management des C AL-RAM

310

5.6.8.1 CAL-RAM-Management bei ausreichenden Speicherressourcen

311

5.6.8.2 CAL-RAM-Management bei eingeschränkten Speicherressourcen

311

5.6.9 Management der Parameter und Datenstände

313

5.6.9.1 Parametrierung der binären Programm-/Datenstandsdatei

314

5.6.9.2 Parametrierung des Modells oder des Quelleodes und Optimierung

314

5.6.10 Design und Automatisierung von Experimenten

314

6 Methoden und Werkzeuge in Produktion und Service

315

6.1 Offboard-Diagnose

316

6.2 Parametrierung von Software-Funktionen

317

6.3 Software-Update durch Flash-Programmierung

318

6.3.1 Löschen und Programmieren von Flash-Speichern

319

6.3.2 Flash-Programmierung über die Oftboard-Diagnoseschnittstelle

319

6.3.3 Slcherheltsanforderungen

320

6.3.4 Verfügbarkeltsanforderungen

322

6.3.5 Auslagerung und Flash-Programmierung des Boot-Blocks

323

6.4 Inbetriebnahme und Prüfung elektronischer Systeme

325

7 Zusammenfassung und Ausblick

326

Literaturverzeichnis

328

Abkürzungsverzeichnis

333

Sachwortverzeichnis

335