# 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
###