Softwareentwicklung
Welche Phase steht am Anfang eines Softwareentwicklungsprojekts?
Erklärung: 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.
Erklärung: 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.
Erklärung: Falsch. Gutes Testen prueft auch Grenzfaelle, ungueltige Eingaben, Fehlersituationen und Extremwerte. Nur den Happy Path zu testen laesst viele Fehler unentdeckt.
Was versteht man unter einem Pflichtenheft?
Erklärung: 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').
Erklärung: 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:
Erklärung: 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.
Ein Kunde ändert nach drei Monaten seine Wünsche an die Startseite. Was passiert typischerweise in einem Scrum-Projekt?
Erklärung: 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.
Dokumentation ist ein wichtiger Bestandteil der Softwareentwicklung und sollte nicht erst am Ende erfolgen.
Erklärung: Richtig. Dokumentation begleitet den gesamten Prozess: Anforderungsdokumente, Entwurfsbeschreibungen, Code-Kommentare, Testprotokolle, Benutzerhandbuecher. Fruehe Dokumentation hilft bei der Kommunikation im Team.
Beim ___-Test wird jede einzelne Komponente (Methode, Klasse) isoliert geprueft, um sicherzustellen, dass sie korrekt funktioniert.
Erklärung: 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:
Erklärung: 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.
Was versteht man unter Refactoring?
Erklärung: 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.
Erklärung: 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.
Ein Scrum-Team arbeitet in Sprints von 2 Wochen. Wie viele Sprints kann das Team in einem Schulhalbjahr von 20 Wochen durchfuehren?
Erklärung: 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.
Versionskontrollsysteme wie Git sind ein wichtiges Werkzeug in der professionellen Softwareentwicklung.
Erklärung: 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.
Was beschreibt das Lastenheft?
Erklärung: 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.
Ordne die Schritte eines typischen Scrum-Sprints in die richtige Reihenfolge:
Erklärung: 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).
Erklärung: 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?
Erklärung: 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.
Was ist Continuous Integration (CI)?
Erklärung: 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.
Ein Entwicklerteam findet waehrend der Testphase 12 Fehler. 9 davon werden behoben. Wie viel Prozent der gefundenen Fehler wurden behoben?
Erklärung: 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.