Softwareentwicklung erfordert - ausgehend von informellen Problemstellungen - Spezifikationen unter Festlegung der Daten- und Rechenstrukturen, Implementierungen und die Verifikation der Korrektheit. Zur Bewältigung dieser Aufgaben hat die Informatik eine Reihe grundlegender Ansätze und Methoden entwickelt, die in zwei Bänden in einem einheitlichen Rahmen zusammengefasst und an Beispielen erläutert werden. Der erste Band widmet sich der Spezifikationen von Daten- und Rechenstrukturen, der Spezifikation und Implementierung sowie dem Nachweis der Korrektheit funktionaler, prozeduraler und objektorientierter Programme. Der zweite Band dieses umfassenden und zugleich grundlagenorientierten Werkes behandelt softwareintensive Systeme und ihre Darstellung durch Zustandsmaschinen, nebenläufige Programme mit gemeinsamen Variablen, Datenflussprogramme, Schnittstellspezifikation, Zeitfluss, Architektur verteilter Systeme, Prozessmodellierung, Verfeinerung und spezifische Formalismen wie CSP, TLAund prädikative Spezifikation.Dies schließt unter anderem auch Themen wie Korrektheitsbeweise in Hinblick auf Sicherheit und Lebendigkeit sowie schrittweise Verfeinerung ein. Insbesondere werden im Buch die Grundlagen für eine wissenschaftlich abgesicherte Entwicklung von Programmen gelegt.