Etappe: Die Landkarte – hier führen wir die beiden Etappen ein, die uns durch den gesamten Kurs begleiten
Motchi hat sein Problem erkannt und seine Erwartung ist klar: Am Ende soll eine funktionierende Software stehen, die Reservierungen, Bestellungen und Kundendaten sauber verwaltet. Doch zwischen diesem Wunsch und der fertigen Software liegt ein weiter Weg. Bevor wir diesen Weg im Detail gehen, lohnt sich ein Blick auf die gesamte Strecke – wie auf eine Landkarte vor einer langen Reise.
Auch bei Chez Motchi beginnt die Entwicklung nicht mit Programmcode. Zunächst müssen Motchis Anforderungen verstanden, analysiert und strukturiert werden. Erst daraus entsteht Schritt für Schritt ein vollständiger Softwareentwurf.
Nahezu jedes Softwareprojekt beginnt mit einer Anforderung. Ein Kunde möchte ein Problem lösen, einen bestehenden Prozess verbessern oder eine neue Idee umsetzen. Die Beschreibung dieser Anforderungen ist jedoch selten technisch formuliert. Motchi würde vermutlich eher sagen:
Eine solche Aussage beschreibt ein Ziel, aber noch keine technische Lösung. Bevor Software entwickelt werden kann, müssen solche Wünsche genauer untersucht werden.
Wenn wir den gesamten Weg von Motchis Wunsch bis zur fertigen Software betrachten, lässt er sich in zwei große Etappen einteilen. Diese beiden Etappen werden uns durch den kompletten Kurs begleiten – jede Lektion lässt sich später einer der beiden zuordnen.
Bevor irgendetwas gestaltet werden kann, müssen wir verstehen, was Motchi eigentlich braucht. Wir sammeln Informationen über sein Café, seine Abläufe und seine Probleme und übersetzen seinen Wunsch in klare, überprüfbare Anforderungen. Man spricht hier auch von praxisorientierter Modellierung: Wir denken noch in Alltagssprache über Gäste, Tische und Reservierungen nach, ohne bereits UML zu verwenden.
Sobald klar ist, was gebraucht wird, müssen wir es sichtbar machen. Aus den Objekten, Eigenschaften und Aufgaben, die wir in Etappe 1 gefunden haben, entsteht nun ein formales UML-Modell mit Klassen, Sichtbarkeiten, Beziehungen und Kardinalitäten. Man spricht hier von softwaretechnischer Modellierung, weil das Ergebnis direkt als Grundlage für die spätere Programmierung dient.
Diese Zweiteilung ist kein Zufall. Sie folgt genau dem Aufbau, den professionelle Softwareprojekte in der Praxis verwenden: erst die Anforderungen verstehen, dann die Lösung entwerfen.
Kundenwunsch
│
▼
┌─────────────────────┐
│ Etappe 1: Analyse │ praxisorientierte Modellierung
│ (Was wird gebraucht?) │
└─────────────────────┘
│
▼
┌─────────────────────┐
│ Etappe 2: Entwurf │ softwaretechnische Modellierung
│ (Wie stellen wir es dar?) │
└─────────────────────┘
│
▼
Softwareentwurf
In der Analysephase versuchen wir herauszufinden, wie die reale Welt bei Chez Motchi aussieht, die später durch Software unterstützt werden soll.
Das Ziel besteht nicht darin, sofort Lösungen zu entwickeln. Stattdessen sammeln wir Wissen über Motchis Café. Je besser wir das Problem verstehen, desto besser können wir später eine passende Lösung entwerfen.
Sobald die Anforderungen klarer werden, beginnen wir außerdem, die wichtigen Bestandteile des Systems zu identifizieren – wir betrachten die reale Welt als Sammlung von Objekten. Bei Chez Motchi könnten das zum Beispiel Gäste, Tische, Reservierungen und Bestellungen sein.
Sobald wir die wichtigsten Objekte und Zusammenhänge erkannt haben, benötigen wir eine Möglichkeit, unsere Erkenntnisse festzuhalten. Hier kommt UML ins Spiel. Mit UML können wir unsere Ideen grafisch darstellen und dokumentieren. Statt langer Textbeschreibungen entstehen übersichtliche Diagramme, die sowohl von Entwicklerinnen und Entwicklern als auch von Motchi selbst verstanden werden können.
Aus Analyse und Modellierung entsteht schließlich ein Softwareentwurf. Dieser Entwurf beschreibt, wie die spätere Anwendung aufgebaut sein soll, und dient als Grundlage für die eigentliche Implementierung. Erst jetzt beginnt der Schritt, den viele Menschen als „Programmieren“ wahrnehmen.
Der gesamte Prozess lässt sich stark vereinfacht in fünf Schritten zusammenfassen:
| Schritt | Leitfrage | Etappe |
|---|---|---|
| 1. Anforderung | Was möchte Motchi erreichen? | Etappe 1 |
| 2. Analyse | Welche Probleme müssen gelöst werden? | Etappe 1 |
| 3. Objektorientierung | Welche Objekte und Beziehungen existieren? | Etappe 1 → 2 |
| 4. UML-Modellierung | Wie lassen sich diese Erkenntnisse darstellen? | Etappe 2 |
| 5. Entwurf & Implementierung | Wie entsteht daraus Software? | Etappe 2 |
Genau diesem Weg werden wir auch in diesem Kurs folgen. Wir beginnen mit den Grundlagen der Objektorientierung und lernen anschließend die wichtigsten UML-Diagramme kennen. Danach wenden wir diese Kenntnisse auf Chez Motchi an und entwickeln nach und nach ein vollständiges Modell.
In der nächsten Lektion ordnen wir diese beiden Etappen in ein offizielles Phasenmodell der Softwareentwicklung ein – das Phasenkonzept nach IEEE 12207. So sehen wir, wo Analyse und Entwurf im gesamten Lebenszyklus eines Softwareprojekts stehen.