Skip to main content

2019 | Buch

Logische und Methodische Grundlagen der Programm- und Systementwicklung

Datenstrukturen, funktionale, sequenzielle und objektorientierte Programmierung - Unter Mitarbeit von Alexander Malkis

insite
SUCHEN

Über dieses Buch

Eignen Sie sich mit Hilfe dieses Buchs die wichtigsten Grundlagen der Programm- und Systementwicklung an

Geht man beim Entwickeln von Programmen von einer informellen Problemstellung aus, erfordert das:

a) die Spezifikation des Programms unter Festlegung der Daten- und Rechenstrukturen.

b) die Implementierung.

c) die Verifikation der Korrektheit.

Um diese Aufgaben zu bewältigen, hat die Informatik eine Reihe grundlegender Ansätze und Methoden entwickelt, welche in Manfred Broy und Alexander Malkis Buch „Logische und Methodische Grundlagen der Programm- und Systementwicklung“ übersichtlich zusammengefasst und an praktischen Beispielen erläutert werden.

Um was geht es im Detail?

In ihrem Buch über System- und Programmentwicklung behandeln die Autoren im Kern folgende Themen:

· Algebraische Spezifikationen von Daten- und Rechenstrukturen sowie die Fähigkeit, daraus Eigenschaften abzuleiten

· Die Spezifikation und Implementierung

· Den Nachweis der Korrektheit für funktionale, prozedurale und objektorientierte Programme

Dies schließt unter anderem auch Themen wie Korrektheits- und Terminierungsbeweise, Design-by-Contract und schrittweise Verfeinerung ein.

Mit ihrem Buch „Logische und Methodische Grundlagen der Programm- und Systementwicklung“ gelingt es Broy und Malkis, die wichtigsten Grundlagen für eine wissenschaftlich abgesicherte Entwicklung von Programmen zu vermitteln. Das Werk richtet sich deshalb an Studierende aus der Informatik und an Praktiker des Software-Engineering mit Interesse an Grundlagen und Methodik.

Inhalte des Buchs über Programmentwicklung in der Übersicht· Einführung in die Grundlagen der Softwareentwicklung

· Rechen- und Datenstrukturen

· Algebraische Datenmodellierung

· Funktionale Programmierung

· Anweisungsorientierte, sequenzielle Programmierung

· Referenzen, Zeiger und organisierter Speicher

· Verfeinerung

· Grundlagen der Objektorientierung· Ausblick: parallel ablaufende, verteilte, kooperierende Systeme

Inhaltsverzeichnis

Frontmatter
Kapitel 1. Einführung in die Grundlagen der Softwareentwicklung
Zusammenfassung
Dieses erste Kapitel motiviert die beschriebenen Ansätze zur Programm- und Softwareentwicklung. Es hat die Einordnung der behandelten Themen zum Ziel und stellt Bezüge zu angrenzenden Gebieten und Themen her. Es gibt insbesondere eine Übersicht über wesentliche methodische Gesichtspunkte und die Rolle der logischen und methodischen Grundlagen für das Gebiet des Software Engineering.
Manfred Broy
Kapitel 2. Rechen- und Datenstrukturen
Zusammenfassung
Eine der zentralen Aufgaben der Programm- und Softwareentwicklung besteht in der Festlegung und Beschreibung der auftretenden Datenelemente und der darauf zur Verfügung stehenden Operationen. Im Software Engineering sprechen wir von Datenmodellierung.
Manfred Broy
Kapitel 3. Algebraische Datenmodellierung
Zusammenfassung
Die Modellierung von Daten, ihrer Strukturen und Eigenschaften ist eine der klassischen Aufgaben der Programmentwicklung und des Software Engineering. Insbesondere in den frühen Phasen der Softwareentwicklung, in Anforderungsanalyse und Design, sind wir stark an Techniken der Datenmodellierung für das Anwendungsgebiet interessiert, in denen die Nutzungssicht, nicht aber die Implementierungssicht, adressiert wird. Im Folgenden behandeln wir eine konkrete Methode zur eigenschaftsorientierten Beschreibung von Datenstrukturen, genannt „algebraische Spezifikation“ (auch abstrakte Datentypen genannt), bei der die charakteristischen Eigenschaften einer Rechenstruktur axiomatisch durch Gleichungen beschrieben werden.
Manfred Broy
Kapitel 4. Funktionale Programmierung
Zusammenfassung
In den zwei vorangegangenen Kapiteln haben wir uns auf Rechen- und Datenstrukturen konzentriert. Die in Rechenstrukturen betrachteten Funktionen sind in der Regel so gewählt, dass sie vornehmlich dem Aufbau und der Zerlegung der Datenelemente dienen. Nun wenden wir uns der Frage zu, wie wir über gegebenen Rechenstrukturen weitere Funktionen in der Form von Programmen durch Rechenvorschriften formulieren.
Manfred Broy
Kapitel 5. Anweisungsorientierte, sequenzielle Programme
Zusammenfassung
Die funktionale Programmierung ist beherrscht von der syntaktischen Einheit „Ausdruck“ (engl. expression) oder „Term“ und von den semantischen Begriffen „Wert“, „Funktion“ und „Funktionsanwendung“. Programmierung erfolgt durch die Deklaration von in der Regel rekursiven Funktionen und die Bildung von Termen. Berechnung besteht in der Auswertung von Termen.
Manfred Broy
Kapitel 6. Referenzen, Zeiger und organisierter Speicher
Zusammenfassung
Während für die permanente Speicherung von Daten außerhalb von Programmabläufen Dateien und Datenbanken zum Einsatz kommen, werden komplexe Datenstrukturen im Hauptspeicher heutiger Maschinen in der Regel durch organisierte Speicher verwaltet. Dies ermöglicht eine effiziente Implementierung und Darstellung der Datenstrukturen, wie sie in Programmen auftreten. Ein organisierter Speicher besteht aus einer Folge von Speicherzellen identifiziert über Adressen, wobei die Werte der Speicherzellen die unterschiedlichsten Datenelemente darstellen einschließlich der Adressen selbst. Wir verwenden als Darstellung des organisierten Speichers eine Abstraktion des Hauptspeichers einer Maschine mit seinen Adressen und den typisierten Inhalten der Speicherzellen.
Manfred Broy
Kapitel 7. Verfeinerung
Zusammenfassung
In diesem Kapitel wenden wir uns einer zentralen Frage der Programmentwicklung zu: Wie kommen wir in Schritten systematisch von abstrakten, gegebenenfalls unterspezifizierten Anforderungsspezifikationen zu einer detaillierten Spezifikation, dann zu einem Entwurf für eine Architektur eines Programms und schließlich zum lauffähigen Programm? Ist es möglich, eine Folge von Schritten so zu wählen, dass die Korrektheit jedes einzelnen Schrittes unmittelbar nachvollziehbar und überprüfbar ist und damit die Korrektheit im Hinblick auf die Ausgangsspezifikation durch den Weg der Konstruktion gesichert ist?
Manfred Broy
Kapitel 8. Grundlagen der Objektorientierung
Zusammenfassung
Breite Anwendung hat im Laufe der letzten 45 Jahre in der Softwareentwicklung das Konzept der Objektorientierung gefunden. Die Objektorientierung hat das Ziel, ausgewählte Prinzipien in der Softwareentwicklung und bewährte Konzepte der Programmierung mithilfe eines speziellen Vorgehensmodells und zugeschnittener Beschreibungsmittel umzusetzen. Historisch gehen die wesentlichen Ideen der Objektorientierung auf die Programmiersprache Simula 67 (vgl. [DN65]) aus dem Jahr 1967 und auf die deutlich später entstandene Programmiersprache Smalltalk (vgl. [GR83]) zurück. Zunächst war C++ (vgl. [Str91], [Eck99] und [Wei99]) eine der in der Praxis gebräuchlichsten objektorientierten Sprachen. Neuere Sprachen wie Java (vgl. [Eck02]) und C# (vgl. [Lib03]) sind inzwischen im Einsatz und finden in der Praxis großen Anklang.
Manfred Broy
Kapitel 9. Ausblick: parallel ablaufende, verteilte, kooperierende Systeme
Zusammenfassung
In den vorangegangenen Kapiteln haben wir uns im Wesentlichen mit Programmen und Datenstrukturen beschäftigt, die dazu dienen, aus gegebenen Daten spezifizierte Resultate zu berechnen. Die Berechnung kann grundsätzlich in einem Zug ohne weitere Interaktion ausgeführt werden. Eine Interaktion zwischen dem ablaufenden Programm und seiner Umgebung findet nicht statt.
Manfred Broy
Backmatter
Metadaten
Titel
Logische und Methodische Grundlagen der Programm- und Systementwicklung
verfasst von
Prof. Dr. Manfred Broy
Copyright-Jahr
2019
Electronic ISBN
978-3-658-26302-7
Print ISBN
978-3-658-26301-0
DOI
https://doi.org/10.1007/978-3-658-26302-7