Sie sind hier
E-Book

Softwareentwicklung eingebetteter Systeme

Grundlagen, Modellierung, Qualitätssicherung

AutorPeter Scholz
VerlagSpringer-Verlag
Erscheinungsjahr2006
Seitenanzahl240 Seiten
ISBN9783540275220
FormatPDF
KopierschutzDRM
GerätePC/MAC/eReader/Tablet
Preis44,99 EUR

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.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe
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.
Inhaltsverzeichnis
Vorwort6
Inhaltsverzeichnis10
1 Einleitung14
1.1 Motivation14
1.2 Klassifikation, Charakteristika16
1.3 Anwendungen, Beispiele und Branchen19
1.4 Begriffsdefinitionen21
1.5 Logischer Aufbau eingebetteter Systeme23
1.5.1 Kontrolleinheit25
1.5.2 Regelstrecke28
1.5.2.1 Peripherie29
1.5.2.2 Digital/Analog-Wandler30
1.5.2.3 Analog/-Digital-Wandler31
1.5.2.4 Sensoren32
1.5.2.5 Aktuatoren34
1.5.3 Benutzerschnittstelle34
1.6 Softwareentwicklung eingebetteter Systeme35
1.6.1 Motivation35
1.6.2 Begriffsklärung36
1.6.3 Entwurf36
1.7 Besondere Herausforderungen37
1.8 Zusammenfassung38
2 Nebenläufige Systeme40
2.1 Einführung41
2.1.1 Multitasking42
2.1.2 Multithreading42
2.1.3 Prozesssynchronisation und -kommunikation44
2.2 Grundlegende Modelle für die Nebenläufigkeit45
2.3 Verteilte Systeme47
3 Echtzeit, Echtzeitsysteme, Echtzeitbetriebssysteme52
3.1 Echtzeitsysteme52
3.2 Ereignissteuerung versus Zeitsteuerung54
3.3 Echtzeitbetriebssysteme55
3.3.1 Aufbau und Aufgaben von Betriebssystemen56
3.3.2 Betriebssystemarchitekturen57
3.3.3 Echtzeitfähige Betriebssysteme58
3.3.4 Zeitgeber und Zugriffsebenen auf Zeit63
3.3.5 Prozesse66
3.3.6 Multitasking und Scheduling67
3.3.7 Scheduling in Echtzeitbetriebssystemen70
3.3.8 Speicherverwaltung72
3.4 VxWorks als Beispiel eines Echtzeitbetriebssystems74
3.4.1 Das Laufzeitsystem76
3.4.2 Exkurs: Der POSIX Standard76
3.4.3 Das I/O-Subsystem von VxWorks77
3.4.4 Unterstützung verteilter Systeme in VxWorks77
3.4.5 VxWorks Entwicklungswerkzeuge77
3.5 Weitere Beispiele eingebetteter Betriebssysteme79
3.5.1 Symbian OS80
3.5.2 Palm OS81
3.5.3 Windows CE82
3.5.4 QNX83
3.5.5 Embedded Linux85
3.6 Zusammenfassung86
4 Programmierung eingebetteter Systeme88
4.1 Der Einsatz von C/C++ für eingebettete Systeme90
4.2 Embedded C++91
4.2.1 Einschränkung: Das Schlüsselwort „mutable“93
4.2.2 Einschränkung: Ausnahmebehandlung93
4.2.3 Typidentifikation zur Laufzeit94
4.2.4 Namenskonflikte94
4.2.5 Templates94
4.2.6 Mehrfachvererbung und virtuelle Vererbung94
4.2.7 Bibliotheken95
4.2.8 EC++ Styleguide95
4.3 Der Einsatz von Java für eingebettete Systeme96
4.3.1 Java 198
4.3.1.1 Personal Java98
4.3.1.2 Embedded Java99
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 JavaCard103
4.3.4 Echtzeiterweiterungen für Java106
4.3.4.1 Real- Time Core Erweiterung108
4.3.4.2 Real Time Specification for Java (RTSJ)108
4.4 Synchrone Sprachen111
4.5 Ereignisbasierter Ansatz am Beispiel von Esterel112
4.5.1 Historie113
4.5.2 Hypothese der perfekten Synchronie113
4.5.3 Determinismus117
4.5.4 Allgemeines118
4.5.5 Parallelität119
4.5.6 Deklarationen119
4.5.7 Instruktionen122
4.5.8 Beispiel: Die sogenannte ABRO-Spezifikation124
4.5.9 Semantik124
4.5.10 Kausalitätsprobleme125
4.5.10.1 Logische Korrektheit126
4.5.10.2 Konstruktive Semantik128
4.5.11 Codegenerierung und Werkzeuge129
4.6 Synchrone Datenflusssprachen am Beispiel von Lustre131
4.6.1 Datenfluss und Clocks132
4.6.2 Variablen, Konstanten und Gleichungen133
4.6.3 Operatoren und Programmstruktur133
4.6.4 Assertions (Zusicherungen)135
4.6.5 Compilation135
4.6.6 Verifikation und automatisches Testen137
4.6.7 Lustre im Vergleich zu Signal138
4.7 Zeitgesteuerter Ansatz am Beispiel von Giotto138
4.8 Zusammenfassung149
5 Softwareentwurf eingebetteter Systeme152
5.1 Modellierung eingebetteter Systeme153
5.2 Formale Methoden154
5.3 Statecharts155
5.4 Die Unified Modeling Language (UML)158
5.5 Der Ansatz ROOM164
5.5.1 Softwarewerkzeuge und Umgebung164
5.5.2 Einführung165
5.5.3 Echtzeitfähigkeit167
5.6 Hardware/Software-Codesign168
5.7 Die MARMOT-Methode174
5.8 Hybride Systeme und hybride Automaten177
5.8.1 Einleitung177
5.8.2 Spezifikation hybrider Systeme180
5.9 Zusammenfassung184
6 Softwarequalität eingebetteter Systeme186
6.1 Motivation186
6.2 Begriffe187
6.3 Zuverlässigkeit eingebetteter Systeme191
6.3.1 Konstruktive Maßnahmen195
6.3.1.1 Einsatz redundanter Hardware195
6.3.1.2 Einsatz redundanter Software196
6.3.2 Analytische Verfahren197
6.3.3 Stochastische Abhängigkeit199
6.3.4 Gefahrenanalyse199
6.4 Sicherheit eingebetteter Systeme201
6.4.1 Testen203
6.4.1.1 Überblick203
6.4.1.2 Ausgewählte Testverfahren204
6.4.2 Manuelle Prüftechniken208
6.4.3 Formale Verifikation209
6.5 Zusammenfassung212
7 Vorgehensmodelle und Standards der Entwicklung214
7.1 Das Wasserfall-Modell214
7.2 Das V-Modell215
7.3 Das V-Modell XT218
7.3.1 Grundlagen219
7.3.2 Anwendung des V-Modell XT220
7.3.3 Zielsetzung und Aufbau des V-Modell XT221
7.3.3.1 V- Modell XT als Weiterentwicklung des V-Modells 97222
7.3.3.2 Zielsetzung des V-Modells XT223
7.3.3.3 Grenzen des V-Modells XT223
7.3.4 V-Modell XT Produktvorlagen224
7.3.5 V-Modell XT Werkzeuge224
7.3.5.1 Der V- Modell XT Projektassistent225
7.3.5.2 V- Modell XT Editors225
7.4 Die ROPES-Methode225
7.5 Der OSEK-Standard226
7.6 AUTOSAR228
7.7 Zusammenfassung230
8 Schlussbemerkungen232
Literaturverzeichnis236
Sachverzeichnis242

Weitere E-Books zum Thema: Software - Betriebssysteme - Anwenderprogramme

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Softwaretechnik

E-Book Softwaretechnik
Format: PDF

Software-Projekte geraten oft in Schwierigkeiten: Zeit und Budget werden überschritten; das Projekt tritt auf der Stelle; im schlimmsten Fall wird es ohne Ergebnis abgebrochen. Manche…

Statistische Grafiken mit Excel

E-Book Statistische Grafiken mit Excel
Format: PDF

Die grafische Veranschaulichung von Sachverhalten oder Entwicklungsverläufen spielt in allen empirisch orientierten Bereichen eine besondere Rolle. Empirische Informationen grafisch aufzubereiten,…

Statistische Grafiken mit Excel

E-Book Statistische Grafiken mit Excel
Format: PDF

Die grafische Veranschaulichung von Sachverhalten oder Entwicklungsverläufen spielt in allen empirisch orientierten Bereichen eine besondere Rolle. Empirische Informationen grafisch aufzubereiten,…

Computergrafik und OpenGL

E-Book Computergrafik und OpenGL
Format: PDF

Das Lehrbuch stellt die theoretischen Grundlagen zu den wichtigsten Themenbereichen der Computergrafik, wie Rastergrafik, Modellierung, Transformation, Projektion, Clipping, Sichtbarkeit, Farbe und…

Computergrafik und OpenGL

E-Book Computergrafik und OpenGL
Format: PDF

Das Lehrbuch stellt die theoretischen Grundlagen zu den wichtigsten Themenbereichen der Computergrafik, wie Rastergrafik, Modellierung, Transformation, Projektion, Clipping, Sichtbarkeit, Farbe und…

Computergrafik und OpenGL

E-Book Computergrafik und OpenGL
Format: PDF

Das Lehrbuch stellt die theoretischen Grundlagen zu den wichtigsten Themenbereichen der Computergrafik, wie Rastergrafik, Modellierung, Transformation, Projektion, Clipping, Sichtbarkeit, Farbe und…

Citrix Presentation Server

E-Book Citrix Presentation Server
Format: PDF

Der Citrix MetaFrame Presentation Server ist unangefochtener Marktführer unter den Terminalservern für Windows-Systeme. Unternehmen setzen ihn ein, um die Systemverwaltung von Windows-Netzwerken…

Citrix Presentation Server

E-Book Citrix Presentation Server
Format: PDF

Der Citrix MetaFrame Presentation Server ist unangefochtener Marktführer unter den Terminalservern für Windows-Systeme. Unternehmen setzen ihn ein, um die Systemverwaltung von Windows-Netzwerken…

Weitere Zeitschriften

küche + raum

küche + raum

Internationale Fachzeitschrift für Küchenforschung und Küchenplanung. Mit Fachinformationen für Küchenfachhändler, -spezialisten und -planer in Küchenstudios, Möbelfachgeschäften und den ...

dima

dima

Bau und Einsatz von Werkzeugmaschinen für spangebende und spanlose sowie abtragende und umformende Fertigungsverfahren. dima - die maschine - bietet als Fachzeitschrift die Kommunikationsplattform ...

ea evangelische aspekte

ea evangelische aspekte

evangelische Beiträge zum Leben in Kirche und Gesellschaft Die Evangelische Akademikerschaft in Deutschland ist Herausgeberin der Zeitschrift evangelische aspekte Sie erscheint viermal im Jahr. In ...

elektrobörse handel

elektrobörse handel

elektrobörse handel gibt einen facettenreichen Überblick über den Elektrogerätemarkt: Produktneuheiten und -trends, Branchennachrichten, Interviews, Messeberichte uvm.. In den monatlichen ...

FileMaker Magazin

FileMaker Magazin

Das unabhängige Magazin für Anwender und Entwickler, die mit dem Datenbankprogramm Claris FileMaker Pro arbeiten. In jeder Ausgabe finden Sie von kompletten Lösungsschritten bis zu ...