Softwareentwurf mit Flow-Design
/
Die Methode
Die Methode
Up next
01 - Die Anforderung-Logik Lücke
In this part
01 - Die Anforderung-Logik Lücke
Logik - Der Stoff aus dem Verhalten entsteht
Funktionalität
Effizienz I - Effizienz durch Algorithmen und Datenstrukturen
Effizienz II - Effizienz durch Verteilung
Zusammenfassung
Von den Anforderungen zur Logik
Logik schwer definierbar
Die Phasen der Programmierung
Zusammenfassung
Übungsaufgaben
02 - Entwurf im Überblick
Den Entwurf abstecken
Hierarchie der Lösungen
Von der Kunst lernen
Entwerfen ist fachgerecht
Entwerfen ist agil
1. Der Lösungsansatz
2. Das Modell
Modellarten
Abstraktion
Zusammenfassung
Übungsaufgaben
Aufgabe - Lösungsansatz finden
03 - Radikale Objektorientierung
Die Welt bestehend aus Objekten?
Der Ursprung der Objektorientierung
Wer hat’s erfunden?
Die zentrale Analogie der radikalen Objektorientierung
Principle of Mutual Oblivion (PoMO)
Unabhängigkeit
Geschlossenheit
Unidirektionalität
Ein Prinzip als Destillat
Implementationsidee
Integration Operation Segregation Principle (IOSP)
Objekte verbinden als Verantwortlichkeit
Ein Prinzip als Destillat
Implementationsidee
Philosophischer Exkurs
Übungsaufgaben
Aufgabe - Mit PoMO/IOSP implementieren
04 - Flow-Design mit 1-dimensionalen Datenflüssen
0-dimensionale Datenflüsse
Notation
Implementation
1-dimensionale Datenflüsse
Der Datenfluss als Scope
Fließende Mengen
Implementation
Übungsaufgaben
05 - Flow-Design mit 2-dimensionalen Datenflüssen
Abstraktion durch Komposition
Stratified Design
2-dimensionale Datenflüsse
Notation
Datenflüsse als aufgemotzte Abhängigkeitsdiagramme
n:1 Übersetzungen
Rekursion
Reflexion
Übungsaufgaben
06 - Flow-Design mit modularisierten Datenflüssen
Abstraktion durch Aggregation
Physisch kategorisieren mit dem Dateisystem
Module
Abhängigkeiten
Orthogonale Containerdimension
Die Modul-Hierarchie
Klasse - Abhängigkeiten mit Kontrakten zähmen
Namensraum - Kontraktkollisionen vermeiden
Bibliothek - Wiederverwendbarkeit ermöglichen
Paket - Abhängigkeiten stabilisieren
Komponente - Die Arbeitsteilung befördern
Service - Module plattformneutral machen
Wave - Softwareevolution zur Laufzeit
Die Modul-Hierarchie im Überblick
Datenflüsse modularisieren
Notation & Implementation I - Funktionen
Notation & Implementation II - Daten
Modularisierungsbeispiel
Reflexion
Übungsaufgaben
07 - Flow-Design mit 3-dimensionalen Datenflüssen
Die wahren Übersetzungsverhältnisse
Streams
Einsatzgebiete für Streams
Implementation
Continuation
Iterator
Fallunterscheidung in der Integration
Polymorphie
Warteschlange
Reflexion
Übungsaufgaben
08 - Die IODA Architektur
Die Softwarezelle
System vs. Umwelt
“Kleiderbügelarchitektur”
Die Membran
“Griechische Architekturen”
Der Kern
“Vitruvianische Architektur”
The Missing Concern: Integration
IOSP in der Architektur
Interactors
Processors
IODA: All together now!
Übungsaufgaben
09 - Finale im Softwareuniversum
Der Explizite Entwurf ist nötig
Der Entwurf ist deklarativ
Das Modell beschreibt Funktionen in Beziehungen
Flow-Design im 4-dimensionalen Raum
Orientierungshilfe für die Softwareentwicklung