Softwareentwicklung durchläuft feste Phasen — Anforderungsanalyse, Entwurf, Implementierung, Test und Wartung. Die tragende Einsicht: Ein Fehler wird umso teurer, je später er entdeckt wird; ein in der Analyse übersehener Denkfehler kostet nach der Auslieferung ein Vielfaches seiner Behebung im Entwurf — deshalb lohnen Analyse und Entwurf, bevor Code entsteht. Vorgehensmodelle unterscheiden sich darin, wie sie diese Phasen anordnen: der Wasserfall einmal linear, iterativ-agile Ansätze in kurzen Zyklen, je nach Annahme über die Planbarkeit.
Welche Phase steht am Anfang eines Softwareentwicklungsprojekts?
â—‹ Implementierung
â—Ź Anforderungsanalyse
â—‹ Test
â—‹ Wartung
Die Anforderungsanalyse klaert, WAS die Software leisten soll. Man unterscheidet funktionale Anforderungen (Was soll das System tun?) und nicht-funktionale Anforderungen (Wie schnell, sicher, benutzerfreundlich?).
Im Wasserfallmodell werden die Phasen der Softwareentwicklung ___ durchlaufen, ohne zu vorherigen Phasen zurueckzukehren.
âś“ Antwort: sequentiell
Das Wasserfallmodell ist ein lineares Vorgehensmodell: Jede Phase (Analyse, Entwurf, Implementierung, Test, Wartung) wird vollstaendig abgeschlossen, bevor die naechste beginnt. In der Praxis ist Rueckkehr oft noetig.
Beim Testen von Software genuegt es, nur den normalen Anwendungsfall (Happy Path) zu pruefen.
âś“ Falsch
Falsch. Gutes Testen prueft auch Grenzfaelle, ungueltige Eingaben, Fehlersituationen und Extremwerte. Nur den Happy Path zu testen laesst viele Fehler unentdeckt.
â—Ź Ein Dokument, das beschreibt, WIE die Anforderungen technisch umgesetzt werden
â—‹ Der fertige Quellcode
â—‹ Eine Liste aller Fehlermeldungen
Das Pflichtenheft ist die Antwort des Entwicklers auf das Lastenheft (Kundenwuensche). Es beschreibt die technische Loesung: Architektur, Datenmodell, Schnittstellen, Testplanung.
Ein ___ beschreibt aus Sicht des Nutzers eine konkrete Funktionalitaet, die das System bieten soll (z. B. 'Als Schueler moechte ich meine Noten einsehen').
âś“ Antwort: Use Case
Use Cases (Anwendungsfaelle) beschreiben die Interaktion zwischen Nutzer und System. Sie helfen, Anforderungen verstaendlich zu formulieren. Ein Use-Case-Diagramm zeigt alle Anwendungsfaelle und die beteiligten Akteure.
Ordne die Phasen des Wasserfallmodells in der richtigen Reihenfolge:
âś“ Antwort: Anforderungsanalyse, Entwurf (Design), Implementierung, Test, Wartung und Betrieb
Das Wasserfallmodell durchlaeuft diese fuenf Phasen streng sequentiell. Es eignet sich fuer Projekte mit stabilen, gut verstandenen Anforderungen. Bei sich aendernden Anforderungen sind agile Methoden besser geeignet.
Dokumentation ist ein wichtiger Bestandteil der Softwareentwicklung und sollte nicht erst am Ende erfolgen.
âś“ Wahr
Richtig. Dokumentation begleitet den gesamten Prozess: Anforderungsdokumente, Entwurfsbeschreibungen, Code-Kommentare, Testprotokolle, Benutzerhandbuecher. Fruehe Dokumentation hilft bei der Kommunikation im Team.
Ein Scrum-Team arbeitet in Sprints von 2 Wochen. Wie viele Sprints kann das Team in einem Schulhalbjahr von 20 Wochen durchfuehren?
âś“ Antwort: 10
20 Wochen / 2 Wochen pro Sprint = 10 Sprints. In jedem Sprint liefert das Team ein funktionsfaehiges Inkrement. Am Ende jedes Sprints findet ein Review (Vorstellung der Ergebnisse) und eine Retrospektive (Verbesserung des Prozesses) statt.
Ein Kunde ändert nach drei Monaten seine Wünsche an die Startseite. Was passiert typischerweise in einem Scrum-Projekt?
● Die Änderung kommt ins Backlog und kann im nächsten Sprint umgesetzt werden.
○ Die Änderung wird erst nach Abschluss aller Phasen in einer neuen Version eingeplant.
○ Das Team verzichtet ab jetzt auf Tests, um die Änderung schneller zu schaffen.
Agile Entwicklung arbeitet in kurzen Sprints mit einem funktionsfähigen Inkrement am Ende – neue Wünsche kommen ins Backlog und können früh eingeplant werden. Erst nach Abschluss aller Phasen zu reagieren ist typisch fürs Wasserfallmodell. Agil heißt nicht: ohne Tests.
Beim ___-Test wird jede einzelne Komponente (Methode, Klasse) isoliert geprueft, um sicherzustellen, dass sie korrekt funktioniert.
âś“ Antwort: Unit
Unit-Tests (Modultests) pruefen die kleinsten testbaren Einheiten der Software. Sie werden oft automatisiert und bei jeder Aenderung ausgefuehrt. Daneben gibt es Integrationstests (Zusammenspiel) und Systemtests (Gesamtsystem).
Ordne die Teststufen von der kleinsten zur groessten Testeinheit:
âś“ Antwort: Unit-Test (einzelne Methode/Klasse), Integrationstest (Zusammenspiel von Modulen), Systemtest (gesamtes System), Abnahmetest (Test durch den Kunden)
Die Teststufen bilden eine Pyramide: Viele kleine Unit-Tests bilden die Basis. Integrationstests pruefen die Schnittstellen. Systemtests pruefen das Gesamtverhalten. Der Abnahmetest erfolgt durch den Auftraggeber.
â—Ź Die Verbesserung der internen Codestruktur, ohne das aeussere Verhalten zu aendern
â—‹ Das Entfernen von Fehlern
â—‹ Die Uebersetzung in eine andere Programmiersprache
Refactoring verbessert Lesbarkeit, Wartbarkeit und Struktur des Codes. Beispiele: Methoden umbenennen, doppelten Code in eine Methode auslagern, Klassen aufteilen. Automatisierte Tests stellen sicher, dass nichts kaputt geht.
Ein ___-Diagramm zeigt die zeitliche Abfolge von Nachrichten zwischen Objekten und eignet sich zur Modellierung von Ablaeufen.
âś“ Antwort: Sequenz
Sequenzdiagramme (UML) zeigen Objekte als Lebenslinien und Nachrichten (Methodenaufrufe) als Pfeile zwischen ihnen. Sie modellieren die dynamische Interaktion und sind besonders hilfreich beim Entwurf von Schnittstellen.
Versionskontrollsysteme wie Git sind ein wichtiges Werkzeug in der professionellen Softwareentwicklung.
âś“ Wahr
Richtig. Git speichert die gesamte Aenderungshistorie, ermoeglicht paralleles Arbeiten im Team (Branching), und macht Aenderungen rueckgaengig machbar. Plattformen wie GitHub ermoeglichen zusaetzlich Code-Reviews und Issue-Tracking.
â—Ź Die Anforderungen und Wuensche des Auftraggebers an das System
â—‹ Den Testplan
â—‹ Die Installationsanleitung
Das Lastenheft wird vom Auftraggeber erstellt und beschreibt, WAS er vom System erwartet. Es ist die Grundlage fuer das Pflichtenheft, das der Entwickler als technische Loesung formuliert.
Ein Entwicklerteam findet waehrend der Testphase 12 Fehler. 9 davon werden behoben. Wie viel Prozent der gefundenen Fehler wurden behoben?
âś“ Antwort: 75
9 von 12 Fehlern behoben: 9/12 = 0,75 = 75%. Fehlerquoten und Behebungsraten sind wichtige Metriken in der Softwareentwicklung, um die Qualitaet des Testprozesses zu bewerten.
Ordne die Schritte eines typischen Scrum-Sprints in die richtige Reihenfolge:
âś“ Antwort: Sprint Planning: Aufgaben fuer den Sprint auswaehlen, Daily Standup: Taegliches kurzes Teammeeting, Entwicklung: Aufgaben implementieren und testen, Sprint Review: Ergebnisse dem Stakeholder vorstellen, Sprint Retrospektive: Prozess reflektieren und verbessern
Scrum strukturiert die Arbeit in Sprints mit festen Ritualen. Das Planning legt den Umfang fest, Dailys synchronisieren das Team, der Review zeigt Ergebnisse, die Retro verbessert den Prozess.
Das Entwurfsmuster ___ beschreibt die Trennung von Software in Modell (Daten), View (Darstellung) und Controller (Steuerung).
âś“ Antwort: MVC
MVC (Model-View-Controller) trennt die Zustaendigkeiten: Das Modell verwaltet die Daten, die View zeigt sie an, der Controller verarbeitet Benutzereingaben. Diese Trennung verbessert Wartbarkeit und Testbarkeit.
Ein Softwareprojekt hat 5 Module. Fuer den Integrationstest muessen alle moeglichen Paare von Modulen getestet werden. Wie viele Paarungen gibt es?
âś“ Antwort: 10
Die Anzahl der Paare bei 5 Modulen: 5 * 4 / 2 = 10. Das ist die Kombinatorik 'n ueber 2' = n*(n-1)/2. In der Praxis testet man oft nur die Paare, die tatsaechlich interagieren.
â—Ź Die Praxis, Codeaenderungen haeufig in ein gemeinsames Repository zu integrieren und automatisiert zu bauen und zu testen
â—‹ Ein Dokumentationsformat
â—‹ Eine Methode zur Datenbankoptimierung
Bei CI werden Aenderungen mehrmals taeglich eingecheckt. Ein Build-Server kompiliert automatisch und fuehrt Tests aus. Fehler werden so frueh erkannt. CI ist die Grundlage fuer Continuous Delivery/Deployment.