Vom Auftrag zum Entwurf
- Analyse:Anforderungen sammeln und im Pflichtenheft festhalten: Was soll die Software können?
- Entwurf:Klassen, Attribute, Methoden und Beziehungen festlegen — Ergebnis: das Klassendiagramm.
- Implementierung:die Klassen programmieren, jede nach ihrem Diagramm.
- Test:prüfen, ob jede Anforderung erfüllt ist — mit vorher festgelegten Testfällen.
- Reihenfolge:die Phasen bauen aufeinander auf; zeigt ein Test einen Fehler, geht man einen Schritt zurück.
Arbeiten im Team
- Aufteilen:jedes Team übernimmt ganze Klassen, nicht einzelne Zeilen.
- Schnittstelle:die öffentlichen Methoden, die ein anderes Team benutzt, z. B.
getPreis(): Fließkommazahl. - Vertrag:Schnittstellen stehen im Klassendiagramm und werden nur gemeinsam geändert.
- Testfälle:Eingabe und erwartetes Ergebnis — Normalfall, Grenzfall, Fehlerfall.
Die Mensa-App ist zu groß für eine Person. Zerlege sie in ihre vier Klassen und lege die Teile auf die beiden Teamtische — ziehen, oder Teil fokussieren und 1/2 drücken (0 legt zurück). Jede Beziehung, die zwischen den Tischen verläuft, ist eine Schnittstelle, die beide Teams vorher vereinbaren müssen.
Halte fest: Man teilt ein Projekt so auf, dass möglichst wenige Beziehungen zwischen den Teams verlaufen. Jede verbleibende Schnittstelle — Methodenname, Parameter, Rückgabetyp — wird im Klassendiagramm festgelegt, bevor programmiert wird.
| Ausgangslage und Aufruf | Erwartetes Ergebnis |
|---|---|
| guthaben = 5.0; abbuchen(3.2) | guthaben = 1,8 — Normalfall |
| guthaben = 3.2; abbuchen(3.2) | guthaben = 0 — Grenzfall: genau das ganze Guthaben |
| guthaben = 2.0; abbuchen(3.2) | guthaben bleibt 2,0 — Fehlerfall: zu wenig Geld |
Softwareprojekt: Analyse → Entwurf → Implementierung → Test. Das Klassendiagramm ist der Vertrag im Team: Man verlässt sich nur auf die öffentlichen Methoden der anderen Klassen.
Allgemeine Hinweise
Nicht sofort programmieren
Wer ohne gemeinsamen Entwurf loslegt, merkt erst beim Zusammensetzen, dass Namen und Datentypen nicht zueinander passen.
Schnittstellen nicht allein ändern
Benennt ein Team getPreis() eigenmächtig um, lässt sich der Code des anderen Teams nicht mehr übersetzen.
Grenzfälle zuerst
Genau 0, genau die Obergrenze, knapp darüber: An diesen Stellen stecken die meisten Fehler.
