Anforderungsanalyse und -management
Die Schülerinnen und Schüler lernen, Softwareanforderungen zu erheben, zu dokumentieren und zu verwalten.
Über dieses Thema
Die Anforderungsanalyse und -management ist zentral für den Erfolg von Softwareprojekten. Schülerinnen und Schüler in Klasse 13 erheben Anforderungen durch Methoden wie Stakeholder-Interviews, Workshops und Umfragen. Sie dokumentieren diese in Artefakten wie User Stories, Use Cases oder Requirements-Spezifikationen und lernen, Prioritäten zu setzen. Nicht-funktionale Anforderungen wie Leistung oder Sicherheit werden ebenso berücksichtigt. Dies entspricht den KMK-Standards zum Modellieren und Implementieren sowie Kommunizieren und Kooperieren.
Im Rahmen der Unit Software-Engineering und Abschlussprojekt analysieren Schüler die Bedeutung klarer Anforderungen für den Projekterfolg. Sie designen Erhebungsmethoden und bewerten Auswirkungen sich ändernder Anforderungen auf Zeitpläne, Kosten und Qualität. Change-Management-Prozesse wie Impact-Analysen und Versionskontrolle werden eingeführt, um Scope Creep zu vermeiden. Solche Inhalte stärken Fähigkeiten im Teamkontext und bereiten auf reale Entwicklungsprozesse vor.
Aktives Lernen passt hervorragend, weil abstrakte Konzepte durch Rollenspiele mit simulierten Stakeholdern und iterative Projektphasen konkret werden. Schüler üben Erhebung und Anpassung in Gruppen, was Verständnis vertieft, Fehlerquellen aufdeckt und Kooperationskompetenzen schult.
Leitfragen
- Erklären Sie die Bedeutung klar definierter Anforderungen für den Projekterfolg.
- Designen Sie Methoden zur Erhebung und Dokumentation von Benutzeranforderungen.
- Analysieren Sie die Auswirkungen sich ändernder Anforderungen auf den Entwicklungsprozess.
Lernziele
- Analysieren Sie die Auswirkungen von Änderungen der Anforderungen auf Zeitpläne, Kosten und Qualität eines Softwareprojekts.
- Entwerfen Sie eine Methode zur Erhebung von Benutzeranforderungen unter Berücksichtigung verschiedener Stakeholder-Gruppen.
- Bewerten Sie die Eignung verschiedener Dokumentationsformate (z.B. User Stories, Use Cases) für spezifische Projektkontexte.
- Erstellen Sie ein einfaches Change-Management-Protokoll für eine hypothetische Anforderungsänderung.
- Klassifizieren Sie Anforderungen in funktionale und nicht-funktionale Kategorien und begründen Sie die Klassifizierung.
Bevor es losgeht
Warum: Ein grundlegendes Verständnis des Softwareentwicklungszyklus ist notwendig, um die Rolle der Anforderungsanalyse darin einordnen zu können.
Warum: Grundkenntnisse über Projektphasen, Ziele und Ressourcen helfen den Schülern, die Bedeutung von Anforderungen für den Projekterfolg zu verstehen.
Schlüsselvokabular
| Stakeholder | Eine Person oder Gruppe, die ein Interesse an einem Projekt hat oder davon betroffen ist. Dies können Nutzer, Kunden, Entwickler oder Manager sein. |
| User Story | Eine kurze, einfache Beschreibung einer Funktion aus der Perspektive des Benutzers, die typischerweise im Format 'Als ein [Rolle] möchte ich [Ziel], damit [Nutzen]' verfasst wird. |
| Use Case | Eine Beschreibung der Interaktion zwischen einem Benutzer (Akteur) und einem System zur Erreichung eines bestimmten Ziels, die alternative Abläufe und Fehlerfälle einschließt. |
| Scope Creep | Die unkontrollierte Erweiterung des Projektumfangs durch zusätzliche Funktionen oder Anforderungen, die nicht ursprünglich geplant waren und den Zeitplan sowie das Budget gefährden können. |
| Nicht-funktionale Anforderung | Eine Anforderung, die beschreibt, wie ein System funktionieren soll, anstatt was es tun soll. Beispiele sind Leistung, Sicherheit, Benutzerfreundlichkeit oder Wartbarkeit. |
Vorsicht vor diesen Fehlvorstellungen
Häufige FehlvorstellungAnforderungen sind einmal erfasst und bleiben unverändert.
Was Sie stattdessen lehren sollten
Anforderungen entwickeln sich durch Feedback und neue Erkenntnisse. Aktive Rollenspiele mit Change Requests demonstrieren diese Dynamik und trainieren flexible Anpassungsstrategien. Gruppenanalysen helfen, Risiken früh zu erkennen.
Häufige FehlvorstellungAlle Anforderungen haben gleiche Priorität.
Was Sie stattdessen lehren sollten
Anforderungen müssen priorisiert werden, z. B. nach MoSCoW-Methode. Hands-on-Priorisierungsübungen in Gruppen zeigen Trade-offs auf. Peer-Reviews fördern nuanciertes Urteilsvermögen.
Häufige FehlvorstellungVerbale Absprachen reichen zur Dokumentation.
Was Sie stattdessen lehren sollten
Schriftliche Dokumentation vermeidet Missverständnisse. Iterative Schreib- und Review-Aktivitäten verdeutlichen den Wert formaler Artefakte. Kollaborative Tools machen den Prozess praxisnah.
Ideen für aktives Lernen
Alle Aktivitäten ansehenStationenrotation: Erhebungsmethoden
Richten Sie vier Stationen ein: Interviews (Rollenspiele), Umfragen (Fragebögen entwerfen), Workshops (Brainstorming) und Beobachtung (Szenario-Video analysieren). Gruppen rotieren alle 10 Minuten, erheben Anforderungen zu einem fiktiven App-Projekt und dokumentieren sie. Abschließend vergleichen sie Ergebnisse.
Paararbeit: User Stories schreiben
Teilen Sie ein Stakeholder-Szenario aus. Paare führen ein kurzes Interview, identifizieren Anforderungen und formulieren User Stories im Format 'Als [User], möchte ich [Feature], damit [Nutzen]'. Sie priorisieren und präsentieren.
Gruppenprojekt: Change Management
Gruppen erhalten ein Requirements-Dokument und simulierte Änderungsanfragen. Sie führen Impact-Analysen durch, aktualisieren das Dokument und erstellen einen Change-Log. Diskutieren Sie Auswirkungen auf den Projektplan.
Klassenrunde: Requirements Review
Jede Gruppe präsentiert ihr Requirements-Set. Die Klasse stellt Fragen als Stakeholder, bewertet Vollständigkeit und Klarheit. Sammeln Sie Feedback in einer gemeinsamen Tabelle.
Bezüge zur Lebenswelt
- Softwareentwickler bei großen Technologieunternehmen wie SAP oder Siemens führen regelmäßig Stakeholder-Interviews durch, um die Anforderungen für neue Softwaremodule zu definieren, die in globalen Geschäftsprozessen eingesetzt werden.
- Agile Teams in Start-ups, z.B. im Bereich FinTech, nutzen User Stories und tägliche Stand-ups, um flexibel auf sich ändernde Marktbedingungen und Kundenwünsche zu reagieren und die Produktentwicklung schnell anzupassen.
- Projektmanager in der Automobilindustrie dokumentieren detailliert funktionale und nicht-funktionale Anforderungen für neue Fahrzeugsysteme, wie z.B. Infotainment oder Fahrerassistenzsysteme, um die Einhaltung von Sicherheitsstandards und Kundenbedürfnissen zu gewährleisten.
Ideen zur Lernstandserhebung
Stellen Sie die Frage: 'Stellen Sie sich vor, Sie entwickeln eine neue App für die Schulverwaltung. Welche drei Stakeholder würden Sie unbedingt befragen und warum? Welche Art von Anforderung (funktional/nicht-funktional) würden Sie von jedem erwarten?' Lassen Sie die Schüler ihre Antworten in Kleingruppen diskutieren und die Ergebnisse im Plenum vorstellen.
Bitten Sie die Schüler, auf einem Zettel die Definition von 'Scope Creep' in eigenen Worten zu formulieren und ein konkretes Beispiel dafür zu nennen, wie dieser in einem Schulprojekt auftreten könnte. Fordern Sie sie auf, eine mögliche Maßnahme zur Vermeidung zu beschreiben.
Geben Sie den Schülern eine Liste mit verschiedenen Softwareanforderungen (z.B. 'Das System muss 100 Benutzer gleichzeitig verarbeiten können', 'Der Benutzer soll sich mit E-Mail und Passwort anmelden können'). Lassen Sie sie jede Anforderung als funktional oder nicht-funktional klassifizieren und kurz begründen, warum.
Häufig gestellte Fragen
Was ist Anforderungsanalyse im Software-Engineering?
Wie managt man sich ändernde Anforderungen?
Wie fördert aktives Lernen das Verständnis von Anforderungsmanagement?
Welche Methoden eignen sich zur Anforderungserhebung?
Planungsvorlagen für Informatik
Mehr in Software-Engineering und Abschlussprojekt
Einführung in Software-Engineering
Die Schülerinnen und Schüler lernen die Phasen des Softwareentwicklungsprozesses und die Bedeutung von Software-Engineering kennen.
2 methodologies
Software-Design und Architektur
Die Schülerinnen und Schüler entwerfen Softwarearchitekturen und wenden Designprinzipien an.
2 methodologies
Agile Softwareentwicklung (Scrum)
Projektmanagement und iterative Entwicklungsprozesse.
3 methodologies
Versionskontrolle mit Git
Die Schülerinnen und Schüler lernen den Umgang mit Versionskontrollsystemen zur Teamarbeit und Code-Verwaltung.
2 methodologies
Qualitätssicherung und Testing
Verfahren zur Sicherstellung der Softwarequalität durch Unit-Tests und Code-Reviews.
3 methodologies
Software-Wartung und Evolution
Die Schülerinnen und Schüler verstehen die Herausforderungen und Strategien der Software-Wartung.
2 methodologies