Zum Inhalt springen
Informatik · Klasse 12 · Objektorientierte Modellierung und Software-Engineering · 1. Halbjahr

Einführung in Software-Engineering

Die Schülerinnen und Schüler lernen die Phasen des Softwareentwicklungsprozesses und die Bedeutung systematischer Vorgehensweisen kennen.

KMK BildungsstandardsKMK: Sekundarstufe II - Problemlösen und HandelnKMK: Sekundarstufe II - Kooperieren und Kommunizieren

Über dieses Thema

Die Einführung in das Software-Engineering führt Schülerinnen und Schüler in die Phasen des Softwareentwicklungsprozesses ein: Anforderungsanalyse, Design, Implementierung, Testen und Wartung. Sie lernen, wie systematische Vorgehensweisen Komplexität bewältigen, Fehler reduzieren und Projekte erfolgreich abschließen. Dies verbindet sich mit dem Alltag, da Software in Apps, Systemen und vernetzten Geräten rund um uns präsent ist und Fehlentwicklungen teure Konsequenzen haben können.

Im KMK-Lehrplan Sekundarstufe II stärkt das Thema Kompetenzen im Problemlösen und Handeln sowie im Kooperieren und Kommunizieren. Schülerinnen und Schüler analysieren Risiken unsystematischer Ansätze, wie unklare Anforderungen, die zu Fehlern im Code oder hohen Nachbesserungskosten führen. Sie bewerten Modelle wie Wasserfall oder agil und verstehen, warum Iterationen Flexibilität bieten.

Aktives Lernen ist hier besonders wirksam, weil abstrakte Phasen durch Simulationen und Gruppenprojekte konkret werden. Schüler bauen eigene Mini-Projekte auf, testen Phasen schrittweise und erleben Risiken hautnah. Solche Ansätze fördern tiefes Verständnis, Teamfähigkeiten und praktische Anwendbarkeit.

Leitfragen

  1. Analysieren Sie die Bedeutung der verschiedenen Phasen im Softwareentwicklungsprozess.
  2. Erklären Sie, warum eine systematische Vorgehensweise bei der Softwareentwicklung wichtig ist.
  3. Beurteilen Sie die Risiken, die bei einer unsystematischen Softwareentwicklung entstehen können.

Lernziele

  • Analysieren Sie die Kernaufgaben jeder Phase des Softwareentwicklungsprozesses (Anforderung, Design, Implementierung, Test, Wartung).
  • Erklären Sie die Notwendigkeit eines strukturierten Vorgehensmodells anhand konkreter Beispiele für Projektkomplexität.
  • Bewerten Sie die potenziellen negativen Auswirkungen unsystematischer Vorgehensweisen auf die Softwarequalität und Projektkosten.
  • Vergleichen Sie die grundlegenden Prinzipien von linearen und iterativen Entwicklungsmodellen (z.B. Wasserfall vs. Agil).
  • Identifizieren Sie typische Fehlerquellen in jeder Phase des Softwareentwicklungsprozesses.

Bevor es losgeht

Grundlagen der Programmierung

Warum: Ein grundlegendes Verständnis von Variablen, Kontrollstrukturen und Funktionen ist notwendig, um die Implementierungsphase zu verstehen.

Datenstrukturen und Algorithmen

Warum: Kenntnisse über grundlegende Datenstrukturen und Algorithmen helfen beim Verständnis der Design- und Implementierungsphasen.

Schlüsselvokabular

AnforderungsanalyseDer Prozess der Ermittlung und Dokumentation dessen, was eine Software leisten soll, basierend auf den Bedürfnissen der Stakeholder.
Software-DesignDie Phase, in der die Architektur und die detaillierte Struktur der Software geplant werden, um die definierten Anforderungen zu erfüllen.
ImplementierungDie Umsetzung des Designs in tatsächlich lauffähigen Code durch Programmierung.
SoftwaretestDie systematische Überprüfung der Software, um Fehler zu finden und sicherzustellen, dass sie die Anforderungen erfüllt.
WartungDie Phase nach der Auslieferung, in der Fehler behoben, die Software verbessert oder an neue Umgebungen angepasst wird.
VorgehensmodellEin standardisierter Rahmen oder eine Methode, die den Ablauf und die Organisation des Softwareentwicklungsprozesses strukturiert.

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungSoftware-Engineering besteht nur aus Programmieren.

Was Sie stattdessen lehren sollten

Viele Schüler überschätzen die Implementierung und unterschätzen Analyse und Design. Aktive Stationen lassen sie jede Phase erleben, was zeigt, dass 70 Prozent der Zeit in Planung fließt. Peer-Diskussionen korrigieren dies durch Vergleich eigener Modelle.

Häufige FehlvorstellungJedes Projekt braucht den gleichen Prozess.

Was Sie stattdessen lehren sollten

Schüler halten starre Modelle für universell. Simulationssprints demonstrieren Anpassungsfähigkeit agiler Methoden. Gruppenreflexionen helfen, Kontexte zu differenzieren und Risiken realistisch einzuschätzen.

Häufige FehlvorstellungSystematik macht Entwicklung langsamer.

Was Sie stattdessen lehren sollten

Unsystematik führt zu Chaos, was Zeit kostet. Projektsimulationen quantifizieren Einsparungen durch Tests. Schüler messen selbst Zeitunterschiede und diskutieren in Teams.

Ideen für aktives Lernen

Alle Aktivitäten ansehen

Bezüge zur Lebenswelt

  • Entwicklerteams bei großen Softwareunternehmen wie SAP oder Microsoft folgen strengen Prozessen, um komplexe ERP-Systeme oder Betriebssysteme zu erstellen. Ein Fehler in der Anforderungsanalyse kann hier zu kostspieligen Nacharbeiten führen, die Millionen kosten.
  • Start-ups, die mobile Apps entwickeln, wie z.B. Lieferdienste oder Lernplattformen, nutzen oft agile Methoden. Sie müssen schnell auf Nutzerfeedback reagieren, um ihre Produkte wettbewerbsfähig zu halten und Fehler zu minimieren, bevor sie viele Nutzer erreichen.
  • Automobilhersteller wie Volkswagen oder BMW integrieren immer mehr Software in ihre Fahrzeuge für Infotainment, Fahrassistenzsysteme und autonomes Fahren. Die systematische Entwicklung und das Testen dieser Software sind entscheidend für die Sicherheit und Funktionalität.

Ideen zur Lernstandserhebung

Lernstandskontrolle

Geben Sie jedem Schüler eine Karte mit einer Phase des Softwareentwicklungsprozesses (z.B. 'Design'). Bitten Sie die Schüler, eine kurze Beschreibung der Hauptaktivität dieser Phase und ein typisches Risiko bei unsachgemäßer Durchführung zu notieren.

Diskussionsfrage

Stellen Sie die Frage: 'Stellen Sie sich vor, Sie entwickeln eine App zur Organisation von Schulveranstaltungen. Welche drei Hauptanforderungen würden Sie zuerst definieren und warum? Welche Probleme könnten entstehen, wenn diese Anforderungen unklar bleiben?'

Kurze Überprüfung

Zeigen Sie eine Liste von Aktivitäten (z.B. 'Code schreiben', 'Fehler im Programm finden', 'Kunden befragen', 'Datenbankstruktur entwerfen'). Lassen Sie die Schüler jede Aktivität der korrekten Phase des Softwareentwicklungsprozesses zuordnen und begründen Sie kurz ihre Wahl.

Häufig gestellte Fragen

Was sind die Phasen des Softwareentwicklungsprozesses?
Die Kernphasen umfassen Anforderungsanalyse (Bedürfnisse ermitteln), Design (Struktur planen), Implementierung (Codieren), Testen (Funktion prüfen) und Wartung (Aktualisieren). Jede Phase baut aufeinander auf und minimiert Risiken. Schüler lernen dies durch Modelle wie Wasserfall, wo Schritte sequentiell ablaufen, oder agil mit Iterationen. Praktische Übungen festigen das Wissen.
Warum ist eine systematische Vorgehensweise im Software-Engineering wichtig?
Systematik reduziert Fehler, spart Kosten und Zeit, da Anforderungen früh geklärt werden. Unsere Projekte scheitern oft an unklaren Specs. Schüler analysieren reale Fälle wie Therac-25, um Risiken zu verstehen. Kooperative Diskussionen schärfen das Bewusstsein für Teamarbeit und Dokumentation.
Wie kann aktives Lernen den Softwareentwicklungsprozess verständlich machen?
Aktives Lernen macht Phasen greifbar durch Stationen, Sprints oder Rollenspiele. Schüler simulieren Prozesse in Gruppen, erleben Iterationen und Risiken direkt. Das fördert Problemlösen und Kooperation, wie im KMK gefordert. Solche Methoden steigern Retention um 75 Prozent, da Theorie mit Praxis verknüpft wird.
Welche Risiken birgt unsystematische Softwareentwicklung?
Unsere Ansätze führen zu Fehlern, Verzögerungen und hohen Kosten, z. B. durch ungetesteten Code. Schüler bewerten Szenarien und lernen, dass 50 Prozent der Projekte scheitern. Systeme wie agil mildern dies durch Feedback-Loops. Praktische Analysen in Pairs verdeutlichen Prävention.

Planungsvorlagen für Informatik