# SWT Altklausuren ## SWT Klausur 2012 ### Was sind funktionale und nicht funktionale Anforderungen? - funktionale Anforderungen beschreiben Funktionen/Features des Systems - nicht-funktionale Anforderungen beschreiben Rahmenbedingungen des Systems und den Prozess - Benutzerfreundlichkeit, Effizienz, Verlässlichkeit, Portabilität - Prozess, Implementierung, Auslieferung, Standards - Interoperabilität, Ethik, Legalität ### Verknüpfung von LSD Werten mit Praktiken von XP. - Einfachheit in beidem - Deliver Fast - Continuos Integration, Small Releases - Eliminate Waste - Simple Design - Respect People - Sustainable Development - Build Quality In - Testing ### Inwiefern unterstützen die XP Werte die 3 ausgewählten Praktiken (gab 4 zur Wahl) - Communication - On-site Customer - Metaphor - Pair Programming - Planning Game - (Collective Code Ownership) - Einfachheit - Simple Design - Refactoring - Small Releases - Coding Standards - Feedback - Test first - On-site customer - Pair Programming - CI - Courage - Refactoring - CCO - CI - Testing - Respect - Sustainable Development ### Warum ist bei XP die Kommunikation im Team so wichtig? - verhindert Fehler im Voraus - sorgt für Teamgeist ### 2 Codesmells aus einer 50-zeiligen Methode suchen und refactorn! - Zeile 17 ist schlecht weil verstoßen gegen Spaghetticode /s ## SWT Klausur 2013 ### System, Akteur, Use Case beschreiben und einordnen, und Zusammenhang erklären - System: Gesamtheit des zu entwickelnden Produkts - Akteur: Person außerhalb des Systems - Use Case: Folge von Aktionen, die das System ausführt, um ein für den Akteur wertvolles, sichtbares Resultat erzeugen ### Reverse Engineering (nennen Sie 4 Phasen und dabei übliche Praktiken) (8 Punkte) - Setting Direction - Agree on maxims - - First contact - read code in 1h - interview the people - mock installation - Initial Understanding - speculate about design - identify exceptional entities - analyze persistent data - Detailed model capture - Refactor to understand (testing) - Look for contracts - Step through execution - Learn from the past - link code and questions ### Debugging: wie kann man in einer Programmierumgebung deiner Wahl (z. B. Smalltalk/Squeak) ein Programm an einer bestimmten Stelle anhalten und das Programm dann beobachten? - self halt ### Vgl. XP und Scrum hinsichtlich Einführung und Umsetzung von neuen Anforderungen: Wann, wer, wie, etc (6 Punkte) - Wann: während des Sprints kommen keine externen Anforderungen dazu - Wer: - XP: Kunde im Kundenmeeting - Scrum: Kunde -> Product Owner -> Team - Wie: Im Backlog (User Stories o.ä.) ### vergleiche product owner und scrum master in scrum (2 punkte) - Product Owner - owns the WHAT - Produktvision - kümmert sich um Backlog - Scrum Master - kümmert sich um Prozess - verteidigt Team mit seinem Leben (und dem Leben von Marius) - Verantwortlich für Teammeetings, Retros, ... ### Welche 3 Fragen werden bei Scrum-Meetings geklärt und was ist die Aufgabe des Scrum Masters dabei jeweils? - Was in den letzten 24h gemacht? - fertige Tasks loggen - Was waren Probleme dabei? - anschließend Lösungen für Probleme finden - Leuten helfen - Was in den nächsten 24h? - Leuten dabei helfen was sie als nächstes machen sollen ### warum ist kontinuierliches warten, schreiben und ausführen von tests in xp so wichtig? - Fehler fallen schneller auf - Hat bei neuen Features Sicherheit, dass noch alles läuft - Test First: Features erfüllem Anforderungen - automatiserte Tests -> schnelles Feedback ### Von TDD wird der Ansatz "test-first" propagiert. Erläutern Sie zwei Gründe, warum es von Vorteil ist, zuerst die Tests zu schreiben. - Anforderungen an Story sind klar - Funktionalität nicht implementierung wird getestet - kompletter Code ist immer getestet ### Warum soll man sich laut XP für ein (schwieriges) Problem verschiedene Lösungen überlegen, bevor man sie umsetzt? (Es steht frei, ob man die XP-Begründung oder die von LSD angibt.) - besseres abwägen gegeneinander - ***Simple Design*** - ist gezwungen verschiedene Ansätze zu betrachten ### Wer oder was entscheidet darüber, welche aufgaben als nächstes bearbeitet werden? - jeweils für xp und scrum - XP: Kunde - Scrum: Product Owner im Größeren, Scrum Master innerhabl des Sprints ### geg. Codebeispiel, 2 Code smells nennen, Refactoring dazu nennen, quelltext refactorn - können wir nicht machen ### geg. feature model, kreuze an, welche gegebenen Instanzen tatsächlich möglich sind - nischt möglisch ### geg. dieses kleine diagramm aus den folien "refactoring to patterns" (context: problem -> solution) Aufgabe: füge die wörter für design patterns ein (software system: code smell -> refactoring) (3 punkte) - Antwort steht in Frage ### 2 Prinzipien von LSD erklären (außer defer commitment) (4 Punkte) - Respect People - Verantwortung möglichst weit nach unten verlagern - eigenverantwortliche Teams sind mehr engaged - Deliver Fast - Schnell Aufgaben abschließen - guten Flow etablieren - Eliminate Waste - Overproduction, WiP, Extra Processing, Motion, Transportation, Waiting, Defects ### defer commitment: welche beiden entscheidungsarten gibt es + Erklärung, wann man entscheidung am besten trifft (2 Punkte) - Entscheidungen nach Möglichkeit so treffen, dass man sie wieder zurücknehmen kann - nicht zurücknehmbare Entscheidungen so spät wie möglich treffen ### geg. 5 key practices aus XP, erkläre 3 und bringe sie mit XP Values oder anderen XP praktiken in Verbindung - siehe mehr oder weniger weiter oben ### Beschreibe 2 Gründe, warum kommunikation in XP so wichtig ist. - s.o. ### nenne und beschreibe ein organizational pattern - Conwa's Law - uvm. ### wo wird das v-modell xt in deutschland verwendet? - kein Plan ### vgl. RUP mit XP: welche Anforderungen werden zuerst umgesetzt bzw wie wird das entschieden? - RUP bein uns nicht klausurrelevant ## SWT Klausur 2016 ### beschreibe Conways Law und welche Aufgaben entstehen daraus für den Projekmanager? Schreibe ein weiteres Organisational Pattern mit Problem und Lösung - Conway's Law - Architektur eines Softwaresystems folgen dem Aufbau der Organisation - Personen, die räumlich nah beisammen sind an gleichem Teil des Softwaresystems arbeiten lassen - Another Organizational Pattern / Self-Selectiong Team - Problem: Es gibt keine perfekten Kriterien neue Team Members auszuwählen - Lösung: Lass das Team sich selbst auswählen (nur noch bedingt auf Vergangenheit und Interessen achten) ### Was ist ein Mock Objekt? Anwendungsbeispiel, welche Probleme können dabei auftreten? Wie kann man die lösen? - Fake Version einer Ressource die konstant antwortet (speziell gedacht für teuere und kompliziert Obhjekte wie Datenbanken, Netzwerk etc.) - Probleme - Performance kann so nicht getestet werden - viel Setup - Annahmen wie Objekt intern funktioniert - Lösungen - Mock-Objects nur wenn nötig nutzen - wenn dann möglichst kleine ### Nenne und beschreibe 3 XP Praktiken, die Eliminate Waste von LSD ähnlich sind. - Simple Design - Architektur einfach halten - Small Releases - Wenig work in Progress - Refactoring, Test First - Defects beseitigen/verhindern ### Ein Entwickler, der alleine ein Modul geschrieben hat ist krank, weshalb das Modul nicht überarbeitet werden kann. Welche 2 XP Values wurden hier nicht beachtet? Weilche drei XP Praktiken hätten ein schlimmes Ausmaß verhindert? - Values - Kommunikation - Simplicity - Hätte sonst von den anderen verstanden werden können - Praktiken - CCO - Simple Design - Pair Programming ### Code Smells finden und bennen, Refactoring benennen, welches den Code besser macht und das Endergebnis der Refactorings als Smalltalk Code aufschreiben. (super einfach gewesen. da hat man sofort was gefunden) - joa ne? ### Scrum Master und PO vergleichen - s.o. ### testing: gegeben 5 module die getesten werden sollten (mit test driven development). was ist davon schlecht testbar und warum? was ist davon gut testbar? wie würden sie es testen? - wenn zwingend vorher testen: Interface vorher genau festlegen - Requests an API können gut getestet werden (mit Mock) ### nicht-funktionale anforderungen - was sind sinnvolle? Warum (nicht)? - thematisch: siehe oben - konkret Messbar / feststellbar! Zahlen, Metriken, Statistiken, Mathe III ### reverse engineering - phasen und eine tätigkeit erläutern - Setting Direction - First Contact - GANZEN code in 1h lesen - Initial Understanding - Detailed Model Capture ### entscheidungsarten von defer commitment - s.o. ### Bonusfrage: (Reverse Engineering) Metrik, Visualisierung und Grenzwert beschreiben und in Verbindung setzen - Metrik - Messbarer Wert, der Schlüsse auf Codebasis zulässt - Visualisierung - visuelle Darstellung von Metriken in Verbindung mit struktur d. Codes - Verhältnisse werden deutlicher - Threshold - bestimmte Werte einer Metrik, ab der eine bestimmte Aussage über System getätigt werden kann - Referenzpunkt - gibt für das meiste keinen perfekten Grenzwert ## SWT Klausur 2016 (2) ### 1) Anforderungen #### a) Anforderungen gegeben, bestimmen, welche nicht genug spezifiziert sind und verbessern. - #### b) Warum müssen Anforderungen so gut spezifiziert sein, dass sie objektiv überprüft werden können? - damit klar ist, wann abgeschlossen ### 2) RUP NICHT RELEVANT FÜR UNS ### 3) TDD #### a) geg 5 Szenarien: welches davon ist gut (2 Punkte) und welches schlecht (2 Punkte) mit Test-first zu lösen und warum? - schlecht - Berechnungen, die man schlecht von Hand berechnen kann ### 4) Reverse Engineering #### a) Phasen nennen, beschreiben (je eine typische Aktion nennen) und in Reverse Engineering Kontext einordnen (aka definieren) (8 Punkte) - Setting direction - Startpunkt festlegen - First Contact - 1h code - Initial Understanding - Speculate about Design ### 5) Refactoring #### a) Gegeben Code: Smells finden und Refactorn (6 Punkte) nope #### b) Vorteile von automated Tests, wann soll getestet werden und wenn Tests fehlschlagen, was tun? (3 Punkte) - schnelles, automatisches Feedback - so oft wir möglich, Tests sollten nicht länger als 10min dauern - direkt fixen, nicht erst loggen sonst passierts nicht mehr :D ### 6) Organizational Patterns #### a) Ein beliebiges nennen und Problem und Lösung erklären (2 Punkte) - Architect also implements - Umsetzung kann von geplanter Architektur abweichen - --> Architekt ist an Umsetzung beteiligt #### b) Conways Law nennen und Beispiel für resultierende Aufgabe des Projektmanagers (4 Punkte) - s.o. ### 7) LSD #### a) Eliminate Waste mit drei XP Praktiken in Verbindung bringen (6 Punkte) - Simple Design - Refactoring - Testing #### b) Defer Commitment: Welche zwei Arten von Entscheidungen gibt es und wann sollten sie jeweils getroffen werden? (4 Punkte) - s.o. ### 8) XP #### a) zwei Werte nennen und beschreiben (2 Punkte) - Kommunikation - Respekt - Feedback - Einfachheit - Courage #### b) geg Szenario, wo ein Entwickler ein ganzes Modul alleine geschrieben hat, dann krank wurde und Modul weiterentwickelt werden sollte: Welche 2 XP Praktiken hätten diese Situation verhindern können (+ diese beschreiben)? Und welche 2 XP Werte wurden nicht beachtet. (6 Punkte) - s.o. ### 9) Product Lines #### geg ein Feature Diagramm, ankreuzen, welche Produkte möglich sind (2 Punkte) ### 10) Scrum #### a) Vergleiche Scrum Master und Produkt Owner (2 Punkte) - s.o. #### b) Vergleiche Scrum mit XP: Wer(a) bringt wann(b) Anforderungen ein und wann werden diese umgesetzt(c)? (6 Punkte) - XP - Wer: Kunde - Wann: bei Kundenmeetings - Umsetzung: frühestens im nächsten Sprint, spezieller wenn Kunde es wählt - Scrum - Wer: Product Owner - Wann: stetig in globales Backlog, im Sprint "lokales" Backlog - Umsetzung: Im Sprint ### Zusatzaufgabe #### a) Was für ein gemeinsames Ziel haben Pair Programming und Scrum Meetings (1 Punkt) - mehr als nur eine Person soll Probleme kennen - keiner soll alleine gelassen werden mit Problemen - Feedback #### b) Reverse Engineering was bedeuten Metrik, Visualisierung und Grenzwert (Threshold) und setzen sie diese in Beziehung? (4 Punkte) - s.o. ## SWT Klausur 2017 ### Use Case, Akteur, System erklären und in Beziehung setzen (Use Case und Szenario dürfen in diesem Kontext synonym verwendet werden) - siehe oben ### funktionale und nicht funktionale Anforderungen kurz definieren - siehe oben ### collective Code ownership, coding Standards, Small releases, on-side customer, Continuous Integration drei davon erläutern und mit XP Values oder anderen XP Praktiken in Beziehung bringen 2. ## SWT Klausur 2019 ###