Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
3.7.1 Zusicherungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90<br />
3.7.2 Vor- und Nachbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />
3.7.3 Klasseninvarianten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93<br />
3.7.4 Grenzen <strong>der</strong> Anwendbarkeit von Zusicherungen . . . . . . . . . . . . . . . . . . . . . . 95<br />
3.8 Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />
3.8.1 Erben und Vorfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />
3.8.2 Export geerbter Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98<br />
3.8.3 Redefinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100<br />
3.8.4 Polymorphismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102<br />
3.8.5 Deklaration durch Assoziation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105<br />
3.8.6 mssxDeferred Classes: Abstrakte Datentypen in mssxEiffel . . . . . . . . . . . . . . . . 106<br />
3.8.7 Mehrfachvererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109<br />
3.8.8 Umbenennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111<br />
3.8.9 Wie<strong>der</strong>holtes Erben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113<br />
3.8.10 Vererbung und Zusicherungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115<br />
3.8.11 Kaufen o<strong>der</strong> Erben? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117<br />
3.9 Arbeiten mit mssxEiffel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117<br />
3.10 Diskussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />
3.11 Sprachbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121<br />
3.11.1 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122<br />
3.11.2 Statische und Dynamische Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124<br />
3.12 Ergänzende Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124<br />
3.13 Deutsch-Englisches Begriffswörterbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124<br />
4 Systematische Entwicklung zuverlässiger Software 127<br />
4.1 Systematischer Entwurf von Softwaresystemen . . . . . . . . . . . . . . . . . . . . . . . . . . . 127<br />
4.1.1 Analyse und Gestaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128<br />
4.1.2 Grundideen des objektorientierten Entwurfs . . . . . . . . . . . . . . . . . . . . . . . . 129<br />
4.1.3 Aufspüren <strong>der</strong> Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />
4.1.4 Schnittstellentechniken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />
4.1.5 Vererbungstechniken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131<br />
4.1.6 Beispiel: Bibliothekenverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132<br />
4.1.7 Ästhetik <strong>der</strong> Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137<br />
4.2 Verifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />
4.2.1 Korrektheit von Routinen und Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br />
4.2.2 Ein Kalkül für Verifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141<br />
4.3 Strukturierung von Routinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144