Skip to main content

2024 | Buch

Software-Entwicklung für Ingenieure und Ingenieurinnen

Eine Einführung mit der Programmiersprache C

verfasst von: Norbert Drescher

Verlag: Springer Berlin Heidelberg

insite
SUCHEN

Über dieses Buch

​Softwareentwicklung ist mehr als nur Programme schreiben: Die Entwicklung sicherer Programme erfordert ein systematisches Vorgehen von der Aufgabenstellung bis zum getesteten Programm. In diesem Buch wird eine Vorgehensweise beschrieben, die alle Aspekte einer Softwareentwicklung umfasst. Ausgehend von allgemeinen Grundlagen und Einführungen werden die einzelnen Entwicklungsschritte vorgestellt und durch Beispiele und Übungen vertieft. Dabei wird als Programmiersprache C benutzt, die ebenfalls schrittweise eingeführt wird, sodass der Zusammenhang zwischen Entwurf, Sprachkonzept und Programmierung deutlich wird. Abgerundet wird das Buch durch zwei Anwendungsschwerpunkte, in denen die Entwicklung von Systemprogrammen und von Programmen zur Steuerung technischer Anlagen beschrieben werden.

Inhaltsverzeichnis

Frontmatter
Kapitel 1. Einleitung und Methodik
Zusammenfassung
Das Buch beschreibt eine Methodik für die Entwicklung von Software. Zuvor wird jedoch das Wort »Entwicklung« näher betrachtet. Was ist Entwicklung überhaupt? Eine Erklärung wird anhand einer mathematischen Beziehung dargestellt.
Norbert Drescher
Kapitel 2. Analyse
Zusammenfassung
Bevor ein Entwurf beginnen kann, muss zunächst sichergestellt werden, dass eine vollständige Beschreibung der Aufgabenstellung vorliegt. Dazu dient die Analyse. Eine Analyse ist die Untersuchung eines Gegenstands oder Sachverhalts mit dem Ziel, eine vollständige Kenntnis über diesen zu erhalten.
Norbert Drescher
Kapitel 3. Entwurf
Zusammenfassung
Das Ergebnis der Analyse ist eine vollständige Beschreibung des Gesamtsystems, bestehend aus der zu entwickelnden Software und der Umgebung, in der die Software genutzt werden soll. Ziel des Entwurfs ist die Entwicklung der Algorithmen, die die beschriebene Aufgabe realisieren sollen. Dazu werden jetzt nur noch die Schnittstellen zur Umgebung betrachtet.
Norbert Drescher
Kapitel 4. Information, Daten und Datenverarbeitung
Zusammenfassung
Um Algorithmen von einem Rechner ausführen lassen zu können, müssen diese bestimmte Fähigkeiten und Eigenschaften besitzen. Diese müssen zumindest teilweise bei der C-Programmierung berücksichtigt werden. Daher werden in diesem Kapitel grundlegende Arbeitsprinzipien eines Rechners vorgestellt und welchen Einfluss diese auf die Programmierung haben. Dabei wird zunächst geklärt, was Information bedeutet und wie Information in einem Rechner dargestellt werden kann. Darauf aufbauend wird das Arbeitsprinzip eines Rechners vorgestellt.
Norbert Drescher
Kapitel 5. Einführung in die Programmiersprache C
Zusammenfassung
Eine Programmiersprache ist der Vermittler zwischen einem Programmierer und einem Rechner. Beide Seiten müssen diese Sprache verstehen. Verglichen mit dem Programmierer ist der Rechner zunächst jedoch sehr einfach und in seinen Fähigkeiten stark eingeschränkt.
Norbert Drescher
Kapitel 6. Alternativen
Zusammenfassung
In Abschn. 5.4 wurden Anweisungen der Reihenfolge nach von oben beginnend abgearbeitet. Nun gibt es allerdings viele Situationen, in denen eine Entscheidung getroffen werden muss, und abhängig von dieser Entscheidung soll im Programm fortgefahren werden. Dabei basiert die Entscheidungsfindung auf Bedingungen.
Norbert Drescher
Kapitel 7. Schleifen
Zusammenfassung
Bisher ist die einmalige Ausführung von Anweisungen betrachtet worden. In vielen Anwendungen müssen Aktionen jedoch wiederholt bis fortwährend ausgeführt werden. Sollen Benutzer mehrfach vergleichbare Eingaben machen, soll ein Text nach einem Wort durchsucht werden oder ein Roboter fortlaufend Bauteile bearbeiten, dann befinden sich die Aktionen der Anwendungsfälle in Schleifen.
Norbert Drescher
Kapitel 8. Datenstrukturen
Zusammenfassung
In Kap. 6 und Kap. 7 wurden der Entwurf von Algorithmen mit Alternativen und Schleifen und ihre Implementierung in der Programmiersprache C eingeführt. In diesem Kapitel stehen die Daten im Vordergrund. Ausgangspunkt ist wieder die Problemanalyse, die das Ziel hat, eine vollständige und widerspruchsfreie Aufgabenstellung zu erstellen und die mit der Beschreibung der Ein-/Ausgangsdaten endet.
Norbert Drescher
Kapitel 9. Funktionen
Zusammenfassung
Funktionen sind in Kap. 5 als universelles Hilfsmittel zur Beschreibung komplexer Sachverhalte eingeführt worden. Darauf aufbauend wurde die Hauptfunktion eines C-Programms eingeführt, und es wurde die Nutzung von Bibliotheksfunktionen vorgestellt. In diesem Kapitel wird die Erstellung von Funktionen behandelt.
Norbert Drescher
Kapitel 10. Dynamische Datenstrukturen
Zusammenfassung
In Kap. 8 sind Datenstrukturen bereits eingeführt worden. Dabei handelt es sich um statische Datenstrukturen. Diese werden im Programm definiert und je nach Lebensdauer beim Start der Anwendung oder einer Funktion im Speicher des Rechners angelegt.
Norbert Drescher
Kapitel 11. Anpassbare Softwarestrukturen
Zusammenfassung
Funktionen sind das zentrale Hilfsmittel zur Strukturierung von Programmen in der Programmiersprache C. Alle Aktionen werden schrittweise zerlegt und durch Funktionen realisiert. Dadurch ergibt sich eine Hierarchie von Funktionen, die durch Funktionsdiagramme beschrieben werden kann.
Norbert Drescher
Kapitel 12. Ein-/Ausgaben und Dateien
Zusammenfassung
In diesem Kapitel wird das Standardverfahren für die Ein- und Ausgabe von Daten und seine Nutzung für die Speicherung von Daten auf internen oder externen Speichermedien in Form von Dateien vorgestellt.
Norbert Drescher
Kapitel 13. Strukturierung der Software
Zusammenfassung
Ein Grundprinzip einer Entwicklung ist die Zerlegung einer Aufgabenstellung in einzelne Aktivitäten, deren weitere Zerlegung nicht möglich oder nicht sinnvoll ist. Sind alle Aktivitäten festgelegt worden, werden diese als einzelne Funktionen realisiert. Dies führt dazu, dass je nach Komplexität eines Programms viele bis sehr viele Funktionen entstehen können.
Norbert Drescher
Kapitel 14. Fehlerbehandlung
Zusammenfassung
Bisher sind einzuhaltende Vorgaben und Regeln im Entwurf und während der Implementierung in den einzelnen Kapiteln angegeben worden. Alle diese Angaben haben das Ziel, die Qualität von Software zu verbessern und damit die Wahrscheinlichkeit von Fehlern im Programm zu reduzieren. Zudem ist in Abschn. 9.2.2 eine Vorgehensweise bei der Implementierung vorgestellt worden. Diese besagt, dass alle Funktionen vor der Benutzung getestet werden sollen. Diese Forderung erhöht zwar zunächst den Implementierungsaufwand, da Testprogramme entwickelt und Tests durchgeführt werden müssen. Insgesamt verkürzt sich aber der Implementierungsaufwand, wenn dadurch später deutlich aufwendigere Fehlersuchen entfallen.
Norbert Drescher
Kapitel 15. Hardware und C
Zusammenfassung
Um Hardwaresysteme flexibel einsetzen zu können, müssen ihre Eigenschaften an unterschiedliche Umgebungen und Aufgabenstellungen angepasst werden können. Daher muss die Hardware programmierbar sein, um entsprechende Anpassungen vornehmen zu können. Jede Programmierung setzt jedoch Kenntnisse der Anwendung voraus, die realisiert werden soll – in diesem Fall also Kenntnisse der Hardware. Zusätzlich wird eine Programmiersprache benötigt, die für die Programmierung von Hardware geeignet ist.
Norbert Drescher
Kapitel 16. Systemsoftware
Zusammenfassung
In Abb. 2.4 (Abschn. 2.3.2) sind die Schnittstellen in einem Rechnersystem dargestellt worden. Danach gibt es die Rechnerschnittstelle, an der Ein- und Ausgabegeräte angeschlossen werden, und eine interne Softwareschnittstelle, über die eine Anwendung mit der Umgebung Daten austauscht. Anwendungsprogramme kommunizieren in der Regel nie direkt mit externen Geräten, sondern nutzen dazu Dienstleistungsfunktionen des Systems.
Norbert Drescher
Kapitel 17. Echtzeitprogrammierung
Zusammenfassung
In vielen technischen Anwendungen müssen viele Vorgänge oder Abläufe zeitliche Vorgaben einhalten: So muss Musik genauso schnell abgespielt werden, wie sie aufgenommen wurde, oder Fahrstühle müssen exakt vor einer Fahrstuhltür stoppen, damit der Fahrstuhl auch von Personen in einem Rollstuhl problemlos benutzt werden kann. Werden die zeitlichen Vorgaben nicht eingehalten, ist das System unbrauchbar.
Norbert Drescher
Kapitel 18. Implementierung von Echtzeitsoftware
Zusammenfassung
Prinzipiell gibt es zwei unterschiedliche Möglichkeiten der Echtzeitprogrammierung: die synchrone und die asynchrone Echtzeitprogrammierung. Bei der synchronen Echtzeitprogrammierung existieren periodische Zeitpunkte für die Erfassung der Ereignisse. Die Reaktion auf Ereignisse erfolgt somit synchronisiert zu definierten Zeitpunkten, die von der Steuerung festgelegt werden.
Norbert Drescher
Backmatter
Metadaten
Titel
Software-Entwicklung für Ingenieure und Ingenieurinnen
verfasst von
Norbert Drescher
Copyright-Jahr
2024
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-662-67369-0
Print ISBN
978-3-662-67368-3
DOI
https://doi.org/10.1007/978-3-662-67369-0