Lektion 8.1

Softwareentwicklung: Projekt und Vorgehensmodelle

16 min Lesezeit

Eure Schule möchte eine App für den Vertretungsplan. Fünf Schülerinnen und Schüler fangen an zu programmieren. Nach drei Wochen zeigt eine Lehrerin die App der Schulleitung. Die Leitung wollte aber auch Raumänderungen sehen, die Schüler wollen den Plan nur für ihre Klasse, und niemand hat geklärt, wer die Daten einträgt. Vieles muss neu gebaut werden.

Solche Fehler entstehen, wenn Software ohne Plan entsteht. Die Softwaretechnik beschreibt deshalb, in welche Schritte Entwicklung zerfällt, wie man sie ordnet und wie man ein Projekt organisiert. Das lernst du hier.

Definition

Software-Entwicklungsprozess

Der Entwicklungsprozess gliedert die Arbeit in Phasen. Jede Phase beantwortet eine Frage und liefert ein Ergebnis:

PhaseFrageErgebnis
AnforderungsanalyseWas soll die Software leisten?Lasten- und Pflichtenheft, User Stories
Modellierung (Entwurf)Wie ist sie aufgebaut?Klassen- und Datenmodell, Entwurf der Oberfläche
ImplementierungWie wird sie programmiert?Quelltext
TestTut sie, was verlangt wurde?Testprotokoll, behobene Fehler
DokumentationWie versteht und bedient man sie?Benutzerhandbuch, Beschreibung für Entwickler, Kommentare

Die Reihenfolge gilt als Grundgerüst. Wie oft und in welcher Ordnung man die Phasen durchläuft, bestimmt das Vorgehensmodell (unten).

Definition

Lastenheft, Pflichtenheft, User Story und Prototyp

Das Lastenheft schreibt der Auftraggeber. Es beschreibt, was die Software leisten soll und wofür, ohne die technische Umsetzung. Das Pflichtenheft schreibt der Auftragnehmer auf dieser Grundlage. Es legt fest, wie und womit die Anforderungen umgesetzt werden, und dient als Grundlage des Vertrags. Funktionale Anforderungen nennen Funktionen („zeige den Plan einer Klasse“), nichtfunktionale nennen Eigenschaften wie Antwortzeit, Datenschutz oder Bedienbarkeit.

Agile Teams schreiben Anforderungen oft als User Story: „Als [Rolle] möchte ich [Ziel], damit [Nutzen].“ Dazu gehören Akzeptanzkriterien, an denen man prüft, ob die Story erfüllt ist. Ein Prototyp ist eine früh gebaute, unvollständige Version, etwa eine Skizze auf Papier oder ein Klickmodell. Nutzer probieren ihn aus, und man erkennt früh, ob die Anforderungen richtig verstanden wurden.

Beispiel

Vom Lastenheft zur User Story

Das Lastenheft der Schule enthält den Satz: „Schülerinnen und Schüler sollen sehen, welche Stunden ausfallen.“ Formuliere eine User Story, ein Akzeptanzkriterium und eine nichtfunktionale Anforderung.

User Story: „Als Schüler der 10b möchte ich die Vertretungen meiner Klasse sehen, damit ich weiß, ob ich später kommen kann.“

Akzeptanzkriterium: Wählt jemand die Klasse 10b, erscheinen nur Einträge dieser Klasse für den heutigen und den nächsten Schultag.

Nichtfunktionale Anforderung (Wert angenommen): Die Seite erscheint auf dem Handy in weniger als 3 Sekunden. Ins Pflichtenheft kommt zusätzlich die Umsetzung, zum Beispiel eine Webseite, die die Daten aus der Plansoftware der Schule liest.

Definition

Vorgehensmodelle: Wasserfall, iterativ, Spiral und agil

Ein Vorgehensmodell legt fest, in welcher Ordnung die Phasen durchlaufen werden.

  • Wasserfallmodell: Die Phasen laufen nacheinander, jede wird abgeschlossen, bevor die nächste beginnt. Stärke: klare Planung und Dokumente, gut bei festen, gut verstandenen Anforderungen. Schwäche: Fehler der Analyse fallen spät auf, der Kunde sieht das Produkt erst am Ende.
  • Iteratives (inkrementelles) Vorgehen: Die Phasen werden mehrfach durchlaufen. Jede Runde liefert ein lauffähiges Stück, das Inkrement, und die Software wächst. Rückmeldungen kommen früh.
  • Spiralmodell: iterativ mit Risikoanalyse. Jeder Umlauf legt Ziele fest, bewertet Risiken (oft mit einem Prototyp), entwickelt und testet und plant den nächsten Umlauf. Es passt zu großen Projekten mit hohen Risiken.
  • Agile Vorgehensweisen, zum Beispiel Scrum: Kurze Zyklen (Sprints, höchstens ein Monat, oft zwei Wochen) und ein selbstorganisiertes Team. Die Wünsche stehen als User Stories im Product Backlog, der Product Owner setzt Prioritäten, der Scrum Master hilft dem Team bei der Arbeitsweise. Nach jedem Sprint gibt es ein nutzbares Inkrement, das mit dem Kunden besprochen wird. Anforderungen dürfen sich ändern.
Beispiel

Welches Vorgehensmodell passt?

a) Eine Firma entwickelt die Steuerung einer Anlage. Die Anforderungen stehen fest und müssen dokumentiert nachgewiesen werden.
b) Ein Verein möchte eine App, weiß aber erst nach dem Ausprobieren, was er will, und möchte alle zwei Wochen etwas sehen.

a) Ein planbasiertes Vorgehen wie das Wasserfallmodell passt, gegebenenfalls als Spiralmodell, wenn die Risiken hoch sind. Die Anforderungen ändern sich kaum, und die Nachweise verlangen vollständige Dokumente.

b) Ein agiles Vorgehen mit Sprints passt. Nach jedem Sprint kann der Verein das Inkrement ausprobieren und seine Wünsche anpassen.

Definition

Projektplanung und Projektorganisation

Ein Projekt hat ein Ziel, einen Anfang und ein Ende und begrenzte Mittel. Die Planung zerlegt die Arbeit in Arbeitspakete, ordnet sie zeitlich und setzt Meilensteine, also überprüfbare Zwischenziele. Zur Organisation gehören Rollen (Projektleitung, Entwicklung, Test, Kunde), feste Treffen und eine Aufwandsschätzung.

Agile Teams schätzen User Stories in Story Points, einer relativen Größe: Eine Story mit 5 Punkten gilt als etwa 2,5-mal so aufwendig wie eine mit 2 Punkten. Die Velocity ist die Zahl der Story Points, die das Team in einem Sprint tatsächlich schafft. Sie dient dazu, die Dauer des Projekts abzuschätzen.

Beispiel

Wie viele Sprints braucht das Team?

Das Backlog der Vertretungsplan-App enthält fünf Stories mit 5, 3, 8, 2 und 3 Story Points. Die Velocity des Teams beträgt 8 Story Points je Sprint. Wie viele Sprints braucht das Team mindestens?

Summe: 5 + 3 + 8 + 2 + 3 = 21 Story Points. Zwei Sprints schaffen nur 2 · 8 = 16 Punkte, das reicht nicht. Drei Sprints schaffen 24 Punkte. Es sind mindestens 3 Sprints. Sie lassen sich füllen: Sprint 1 mit der 8er-Story, Sprint 2 mit 5 + 3, Sprint 3 mit 2 + 3. Ob es wirklich bei 3 Sprints bleibt, hängt auch davon ab, ob sich die Stories ohne Teilen so auf die Sprints verteilen lassen.

Definition

Software-Life-Cycle

Software hat einen Lebenszyklus: Planung und Entwicklung, Einführung und Betrieb, Wartung und Pflege (Fehler beheben, an neue Bedingungen anpassen, erweitern) und schließlich die Ablösung. Wartung dauert oft Jahre und verursacht häufig den größten Teil der Gesamtkosten. Deshalb lohnen sich ein gutes Pflichtenheft, ein sauberer Entwurf und eine verständliche Dokumentation schon bei der Entwicklung.

Häufige Fehler

Agil heißt ohne Plan und ohne Dokumentation

„Wir arbeiten agil, also müssen wir nichts planen und nichts aufschreiben.“

Richtig ist

Agile Teams planen ständig, nur in kurzen Abschnitten: Backlog, Sprintplanung, Rückblick. Sie schreiben so viel auf, wie nötig ist, damit Software verstanden und gepflegt werden kann. Das agile Manifest stellt lauffähige Software über umfangreiche Dokumentation, nicht ohne Dokumentation.

Häufige Fehler

Das Wasserfallmodell ist veraltet und falsch

„Ein modernes Projekt arbeitet immer agil.“

Richtig ist

Welches Vorgehen passt, hängt vom Projekt ab. Sind die Anforderungen fest und müssen Nachweise vorliegen, ist ein planbasiertes Vorgehen oft sinnvoll. Wo sich Wünsche ändern, ist ein agiles Vorgehen im Vorteil.

Zusammenfassung

  • Der Entwicklungsprozess besteht aus Anforderungsanalyse, Modellierung, Implementierung, Test und Dokumentation.

  • Das Lastenheft beschreibt, was der Auftraggeber braucht, das Pflichtenheft, wie der Auftragnehmer es umsetzt. User Stories und Prototypen klären Anforderungen früh.

  • Das Wasserfallmodell durchläuft die Phasen einmal nacheinander, iterative Modelle und das Spiralmodell mehrfach, agile Modelle wie Scrum in kurzen Sprints mit Backlog und Inkrementen.

  • Projektplanung nutzt Arbeitspakete, Meilensteine, Rollen und Aufwandsschätzung. In Scrum schätzt man in Story Points und misst die Velocity.

  • Der Software-Life-Cycle reicht von der Entwicklung über den Betrieb bis zur Wartung und Ablösung. Wartung macht oft den größten Kostenanteil aus.

Übungen

Aufgabe 1Multiple Choice

In welche Phase gehört es, ein UML-Klassendiagramm für die App zu zeichnen?

Aufgabe 2Multiple Choice

Was unterscheidet das Pflichtenheft vom Lastenheft?

Aufgabe 3Numerisch

Das Backlog enthält Stories mit zusammen 34 Story Points. Die Velocity beträgt 9 Story Points je Sprint. Wie viele Sprints braucht das Team mindestens?

Aufgabe 4Multiple Choice

Ein Kunde weiß erst nach dem Ausprobieren, was er genau braucht, und möchte alle zwei Wochen etwas Nutzbares sehen. Was passt am besten?

Aufgabe 5Freitext

Formuliere für eine Bibliotheks-App eine User Story zum Verlängern einer Ausleihe und ein Akzeptanzkriterium.