Zum Inhalt springen
Informatik · Klasse 13 · Software-Engineering und Abschlussprojekt · 2. Halbjahr

Einführung in Software-Engineering

Die Schülerinnen und Schüler lernen die Phasen des Softwareentwicklungsprozesses und die Bedeutung von Software-Engineering kennen.

KMK BildungsstandardsKMK: Sekundarstufe II - Modellieren und Implementieren

Über dieses Thema

Die Einführung in das Software-Engineering führt Schülerinnen und Schüler der Klasse 13 in die Phasen des Softwareentwicklungsprozesses ein: Anforderungsanalyse, Design, Implementierung, Testen, Deployment und Wartung. Sie verstehen die Notwendigkeit systematischer Ansätze, um Fehler zu minimieren und Qualität zu sichern, insbesondere bei großen Systemen. Dies entspricht den KMK-Standards zur Modellierung und Implementierung und bereitet auf das Abschlussprojekt vor. Schüler analysieren Herausforderungen wie Skalierbarkeit, Teamkoordination und sich ändernde Anforderungen.

Im Kontext des Informatik-Unterrichts verbindet das Thema theoretische Grundlagen mit Praxis. Vergleiche von Lebenszyklusmodellen wie dem Wasserfallmodell, iterativen Ansätzen und Agile Methoden schärfen das analytische Denken. Schüler lernen, dass flexible Modelle für unsichere Projekte geeignet sind, während sequenzielle für stabile Anforderungen passen. Solche Einblicke fördern ein Verständnis für reale Entwicklungsprozesse in Unternehmen.

Aktives Lernen ist hier besonders wirksam, weil abstrakte Phasen durch Simulationen und Gruppenprojekte konkret werden. Wenn Schüler eigene Entwicklungszyklen durchlaufen oder Modelle anwenden, erkennen sie Stärken und Schwächen intuitiv und verbinden Theorie mit Erfahrung.

Leitfragen

  1. Erklären Sie die Notwendigkeit systematischer Ansätze in der Softwareentwicklung.
  2. Analysieren Sie die Herausforderungen bei der Entwicklung großer Softwaresysteme.
  3. Vergleichen Sie verschiedene Software-Lebenszyklusmodelle.

Lernziele

  • Erklären Sie die Notwendigkeit eines strukturierten Vorgehens bei der Softwareentwicklung zur Fehlerreduktion.
  • Analysieren Sie die spezifischen Herausforderungen bei der Entwicklung von Software für verteilte Systeme oder eingebettete Systeme.
  • Vergleichen Sie die Vor- und Nachteile von Wasserfallmodellen und agilen Methoden anhand konkreter Projektbeispiele.
  • Bewerten Sie die Eignung verschiedener Software-Lebenszyklusmodelle für unterschiedliche Projektanforderungen und Teamgrößen.
  • Entwerfen Sie eine einfache Phasenübergangsmatrix für ein gegebenes Softwareprojekt.

Bevor es losgeht

Grundlagen der Programmierung

Warum: Ein grundlegendes Verständnis von Programmierkonzepten ist notwendig, um die Implementierungsphase im Softwareentwicklungsprozess zu verstehen.

Datenstrukturen und Algorithmen

Warum: Kenntnisse über Datenstrukturen und Algorithmen sind für die Designphase und die Bewertung von Lösungsansätzen unerlässlich.

Einführung in die Informatik: Systemarchitekturen

Warum: Ein grundlegendes Verständnis von Systemkomponenten und deren Zusammenspiel hilft, die Komplexität von Softwareprojekten zu erfassen.

Schlüsselvokabular

Software-LebenszyklusDer gesamte Prozess von der Idee bis zur Stilllegung einer Software, einschließlich Planung, Entwicklung, Betrieb und Wartung.
AnforderungsanalyseDie Phase, in der die Bedürfnisse und Wünsche der Stakeholder ermittelt und dokumentiert werden, um festzulegen, was die Software leisten soll.
Agile MethodenIterative und inkrementelle Entwicklungsansätze, die Flexibilität, schnelle Reaktion auf Änderungen und enge Zusammenarbeit mit dem Kunden betonen.
WasserfallmodellEin lineares, sequenzielles Vorgehensmodell, bei dem jede Phase abgeschlossen sein muss, bevor die nächste beginnt.
DeploymentDie Phase, in der die entwickelte Software in die Zielumgebung überführt und für die Benutzer verfügbar gemacht wird.

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungSoftware-Engineering bedeutet nur Programmieren.

Was Sie stattdessen lehren sollten

Software-Engineering umfasst alle Phasen vom Design bis zur Wartung. Aktive Rollenspiele zeigen, dass Codieren nur ein Teil ist, und helfen Schülern, den ganzheitlichen Prozess zu visualisieren.

Häufige FehlvorstellungAgile ist immer besser als das Wasserfallmodell.

Was Sie stattdessen lehren sollten

Die Wahl hängt von Projektanforderungen ab. Gruppenvergleiche mit Szenarien klären Kontexte und reduzieren Vereinfachungen durch praktische Anwendung.

Häufige FehlvorstellungTests erfolgen erst nach der Implementierung.

Was Sie stattdessen lehren sollten

In modernen Modellen ist kontinuierliches Testen zentral. Simulationsstationen demonstrieren iterative Tests und korrigieren lineare Vorstellungen effektiv.

Ideen für aktives Lernen

Alle Aktivitäten ansehen

Bezüge zur Lebenswelt

  • Softwareentwickler bei großen Automobilherstellern wie Volkswagen oder BMW nutzen komplexe Lebenszyklusmodelle, um die Entwicklung von Bordcomputern und Fahrerassistenzsystemen zu steuern, wobei Änderungen oft erst spät im Prozess erkannt werden.
  • Teams, die mobile Apps wie 'DB Navigator' für die Deutsche Bahn entwickeln, arbeiten oft mit agilen Methoden, um schnell auf Nutzerfeedback zu reagieren und neue Funktionen wie Echtzeit-Informationen oder Ticketkäufe zu integrieren.
  • IT-Projektmanager in Beratungsunternehmen wie Accenture oder Capgemini müssen die Wahl des passenden Software-Lebenszyklusmodells für Kunden aus verschiedenen Branchen, von Banken bis zur Logistik, begründen können.

Ideen zur Lernstandserhebung

Lernstandskontrolle

Geben Sie den Schülern eine Karteikarte mit einer Projektbeschreibung (z.B. 'Entwicklung einer neuen Buchhaltungssoftware für ein kleines Unternehmen' oder 'Erstellung einer Echtzeit-Wetter-App'). Bitten Sie sie, eine kurze Begründung zu schreiben, welches Lebenszyklusmodell sie wählen würden und warum.

Diskussionsfrage

Stellen Sie die Frage: 'Warum ist es für die Entwicklung von Software für kritische Infrastrukturen wie Kraftwerke oder Flugverkehrskontrollsysteme besonders wichtig, einen strengen und gut dokumentierten Entwicklungsprozess zu befolgen?' Leiten Sie eine Diskussion über Risiken und Verantwortlichkeiten.

Kurze Überprüfung

Zeigen Sie eine Liste von Software-Entwicklungsphasen (z.B. Anforderung, Design, Implementierung, Test, Wartung). Bitten Sie die Schüler, diese Phasen in der Reihenfolge anzuordnen, wie sie typischerweise in einem Wasserfallmodell ablaufen, und erklären Sie kurz die Logik dahinter.

Häufig gestellte Fragen

Was sind die Phasen des Software-Engineering-Prozesses?
Die Kernphasen sind Anforderungsanalyse, Design, Implementierung, Testen, Deployment und Wartung. Jede Phase baut aufeinander auf und minimiert Risiken. Schüler lernen dies durch Modelle wie Wasserfall oder Agile, die sequenzielle oder iterative Ansätze darstellen. Praktische Übungen festigen das Wissen für große Projekte.
Warum sind systematische Ansätze in der Softwareentwicklung notwendig?
Ohne Systematik entstehen Fehler, Kosten steigen und Termine verspäten sich, besonders bei komplexen Systemen. Systeme fördern Nachverfolgbarkeit und Qualität. Analysen realer Projekte zeigen, wie Modelle Herausforderungen wie Skalierbarkeit lösen.
Wie vergleiche ich Software-Lebenszyklusmodelle?
Vergleichen Sie Wasserfall (sequentiell, für stabile Anforderungen) mit Agile (iterativ, flexibel). Bewerten Sie Kriterien wie Risiko, Teamgröße und Änderungshäufigkeit. Tabellen und Szenarioanalysen erleichtern den Vergleich und fördern fundierte Entscheidungen.
Wie hilft aktives Lernen beim Verständnis von Software-Engineering?
Aktive Methoden wie Stationenlernen oder Rollenspiele machen Phasen erlebbar. Schüler simulieren Prozesse, begegnen Fehlern direkt und diskutieren Lösungen. Das verbindet Theorie mit Praxis, stärkt Retention und bereitet auf Projekte vor, da abstrakte Modelle konkret werden.

Planungsvorlagen für Informatik