Was ist das primäre Ziel der konstruktiven Qualitätssicherung?
Durch den Einsatz spezifischer Konstruktionsmethoden soll die Erstellung minderwertiger Produkte von vornherein unmöglich gemacht werden.
Warum sind Softwareprozessmodelle nur eine Teilantwort auf Qualitätsfragen?
Sie verbessern zwar den Erstellungsprozess bieten aber keine absolute Garantie für die finale Produktqualität.
Nennen Sie drei klassische Softwareprozessmodelle aus der Vorlesung.
Scrum
Was definiert eine Domain Specific Language (DSL) im Gegensatz zu Java?
Eine DSL ist für einen spezifischen Zweck optimiert und einfacher zu nutzen während Universalsprachen wie Java unspezifisch sind.
Welchen Nachteil haben DSLs trotz ihrer Optimierung?
Sie sind nicht universell einsetzbar und in den meisten Fällen kann man auch in einer DSL fehlerhafte Beschreibungen erstellen.
Wie unterstützt Modellierung die Code-Generierung?
Mathematische Modelle beschreiben das Problem präzise woraus mittels Code-Generatoren kompilierbarer und ausführbarer Code erzeugt wird.
Was sind die Grenzen mathematischer Modelle in der Softwarekonstruktion?
Sie sind oft in ihrer Ausdrucksstärke limitiert schwer zu realisieren und erfordern spezialisierte Experten.
Was bedeutet der Satz “Quality is never done”?
Qualitätssicherung ist ein kontinuierlicher Prozess der ständige Messungen Tests und ein aktives Qualitätsmanagement erfordert.
Welche zwei Hauptkategorien der Entscheidungsfindung werden unterschieden?
Es wird zwischen expliziter und impliziter Entscheidungsfindung differenziert.
Was kennzeichnet einen expliziten Entscheidungsprozess?
Das Identifizieren von Problemen vor deren Eintreten das Finden und Vergleichen aller Alternativen sowie die Kostenberechnung.
Warum wird ein Team bei expliziten Entscheidungen oft externes Wissen benötigen?
Weil die Exploration neuer Alternativen oft über den aktuellen Wissensstand hinausgeht und Lernprozesse erfordert.
Was sind die Vorteile impliziter Entscheidungsfindung?
Sie ist einfach erfordert keine Diskussion ermöglicht direkten Fortschritt beim Programmieren und macht oft mehr Spaß.
Welche Risiken birgt die implizite Entscheidungsfindung?
Hohes Risiko fehlendes Risikomanagement keine Lernprozesse und die Gefahr bessere Optionen zu übersehen.
Wann ist eine implizite Entscheidung laut Vorlesung vertretbar?
Wenn das aktuelle Projekt einem vorherigen sehr ähnlich ist und bewährte Technologien (zum beispiel Programmiersprachen) beibehalten werden.
Was ist eine zentrale Frage zur Rechtfertigung eines expliziten Entscheidungsprozesses?
Ist die Entscheidung wichtig genug und wie kostspielig wäre es die Entscheidung später zu ändern?
Warum ist Kommunikation im Software Engineering oft fehleranfällig?
Begriffe haben je nach Person Kontext oder Fachdomäne unterschiedliche Bedeutungen was zu Missverständnissen führt.
Nennen Sie eine Strategie zur Präzisierung von Begriffen in der Kommunikation.
Die Verwendung von Glossaren Referenzdefinitionen und das explizite Nachfragen bei Unklarheiten.
Was ist der Zweck von “Reporting Back” als Kommunikationsstrategie?
Die ausführende Person erklärt die Aufgabe mit eigenen Worten zurück um sicherzustellen dass das Verständnis mit der Intention übereinstimmt.
Warum sollte man Rollen in einem Projekt strikt definieren?
Um Aufgaben und Verantwortlichkeiten explizit zu machen und effiziente Kommunikation ohne Rollenkonflikte zu ermöglichen.
Was ist laut Vorlesung ein Risiko beim häufigen Rollenwechsel einer Person?
Es kann zu Irreführungen führen auch wenn Experten in Meetings flexibel mit Rollen umgehen können.
Welche Artefakte gehören neben dem Quellcode zu einem Softwareprojekt?
Verträge Sitzungsprotokolle Anforderungen Testergebnisse Dokumentationen und Installationshandbücher.
Warum zählen “Lessons Learned” zum Umfang eines Softwareprojekts?
Sie sichern das während des Projekts gewonnene Wissen des Teams für zukünftige Vorhaben.
Nennen Sie fünf Qualitätsmerkmale die Software aufweisen sollte.
Korrektheit Zuverlässigkeit Sicherheit Effizienz und Wartbarkeit.
Was versteht man unter der “Resilienz” einer Software?
Die Fähigkeit des Systems bei Teilfehlern oder Belastungen widerstandsfähig zu bleiben und den Betrieb aufrechtzuerhalten.