Softwaretechnik 2
| Titel: | Softwaretechnik 2 |
| Dozent(in): | Dr. Dominik Haneberg |
| Termin: | Vorlesung: Montag, 15:45 Uhr - 17:15 Uhr (2045 N) und Freitag, 12:15 Uhr - 13:45 Uhr (2045 N). Übung: Dienstag, 08:15 Uhr - 09:45 Uhr (1057 N) |
| Gebäude/Raum: | Gebäude N, Raum 2045 (Vorlesung), Raum 1057 (Übung) |
Zusammenfassung:
Folgeveranstaltung zu Softwaretechnik. Themen sind agile Methoden, Requirements Engineering, Testen, Refactoring, Aspektorientierte Programmierung
Inhalt der Lehrveranstaltung:
Klausurergebnisse
Die Korrektur der Klausur ist abgeschlossen. Der Termin der Klausureinsicht ist Donnerstag, der 29.3.2012. Die Klausureinsicht findet von 10:30 Uhr bis 12:00 Uhr in Raum 3018 am Lehrstuhl für Softwaretechnik statt. Wer sein Ergebnis vor der Klausureinsicht erfahren will, kann in meinem Büro (Raum 3015) vorbeikommen und nachfragen.
Inhalt
Die Veranstaltung Softwaretechnik 2 beschäftigt sich mit Themen, die in der Vorlesung Softwaretechnik nicht oder kaum behandelt werden. Die geplanten Themen sind:
Requirements Engineering
Sowohl in klassischen Entwicklungsprozessen wie auch in agilen Methoden ist es wichtig, herauszufinden, was der Kunde braucht. In diesem Abschnitt gibt es eine Einführung in die umfangreiche Begriffswelt und die Techniken der Requirementsanalyse.
Agile Methoden
In diesem Abschnitt wird auf die agile Softwareentwicklung und entsprechende Prozesse eingegangen. Agile Methoden haben sich in den letzten Jahren als Gegenentwurf zu klassischen Entwicklungsprozessen entwickelt. Sie zielen auf eine stärkere Orientierung auf das Endprodukt (und weniger auf umfangreiche Analysedokumente). Als Ersatz für das Up-Front-Design wird auf eine stärkere Beteiligung des Kunden und kurze Entwicklungszyklen (und damit schnelles Feedback) gesetzt.
Testen
Gerade agile Methoden legen sehr viel Wert auf Regressionstests, wofür automatisierte Unit-Test-Frameworks zum Einsatz kommen. Nach einer Einführung in die Testtheorie geht es in diesem Abschnitt besonders um Unit-Tests mit JUnit.
Refactoring
Auch das Refactoring spielt in den agilen Methoden eine sehr wichtige Rolle. Das ständige Überarbeiten des Codes nach dem Hinzufügen von neuen Funktionen soll die Codequalität gewährleisten und für eine ordentliche Architektur sorgen.
Aspektorientierte Entwicklung
Aspektorientierte Programmierung ist ein Paradigma, das das Problem von funktions- und komponentenübergreifenden Aufgaben in Programmen lösen soll, indem diese allgemeinen Aufgaben (Logging, Sicherheit,...) nur an einer Stelle abgehandelt werden und sich nicht durch alle Module ziehen, da dies sehr schlecht wartbaren Code zur Folge hat.
![]()
Folien zur Vorlesung
- Folien der ersten Vorlesung, Teil 1: Organisatorisches
- Folien der ersten Vorlesung, Teil 2: Einführung Requirements Engineering
- Notizen und Kommentare zur ersten Vorlesung
- Folien der zweiten Vorlesung
- Notizen und Kommentare zur zweiten Vorlesung
- Folien der dritten Vorlesung
- Notizen und Kommentare zur dritten Vorlesung
- Folien der vierten Vorlesung
- Notizen und Kommentare zur vierten Vorlesung
- Folien der fünften Vorlesung
- Notizen und Kommentare zur fünften Vorlesung
- Folien der sechsten Vorlesung
- Notizen und Kommentare zur sechsten Vorlesung
- Bild 1 zu Moderation
- Bild 2 zu Moderation
- Bild 3 zu Moderation
- Bild 4 zu Moderation
- Bild 5 zu Moderation
- Bild 6 zu Moderation
- Folien der siebten Vorlesung
- Notizen und Kommentare zur siebten Vorlesung
- Folien der achten Vorlesung
- Notizen und Kommentare zur achten Vorlesung
- Folien der neunten Vorlesung
- Notizen und Kommentare zur neunten Vorlesung
- Folien der zehnten Vorlesung
- Notizen und Kommentare zur zehnten Vorlesung
- Folien der elften Vorlesung
- Notizen und Kommentare zur elften Vorlesung
- Folien der zwölften Vorlesung
- Notizen und Kommentare zur zwölften Vorlesung
- Folien der dreizehnten Vorlesung
- Notizen und Kommentare zur dreizehnten Vorlesung
- Folien der vierzehnten Vorlesung
- Notizen und Kommentare zur vierzehnten Vorlesung
- Folien der fünfzehnten Vorlesung
- Notizen und Kommentare zur fünfzehnten Vorlesung
- Folien der sechzehnten Vorlesung
- Notizen und Kommentare zur sechzehnten Vorlesung
- Folien der siebzehnten Vorlesung
- Notizen und Kommentare zur siebzehnten Vorlesung
- Folien der achtzehnten Vorlesung
- Notizen und Kommentare zur achtzehnten Vorlesung
- Folien der neunzehnten Vorlesung
- Notizen und Kommentare zur neunzehnten Vorlesung
- Folien der zwanzigsten Vorlesung
- Notizen und Kommentare zur zwanzigsten Vorlesung
- Folien der einundzwanzigsten Vorlesung
- Notizen und Kommentare zur einundzwanzigsten Vorlesung
- Folien der zweiundzwanzigsten Vorlesung
- Notizen und Kommentare zur zweiundzwanzigsten Vorlesung
- Folien der dreiundzwanzigsten Vorlesung
- Notizen und Kommentare zur dreiundzwanzigsten Vorlesung
- Erläuterungen zur AspectJ-Demo
- Code zur AspectJ-Demo
![]()
Podcast zur Vorlesung
- Zusammenfassung der ersten Vorlesung
- Zusammenfassung der zweiten Vorlesung
- Zusammenfassung der dritten Vorlesung
- Zusammenfassung der vierten Vorlesung
- Zusammenfassung der fünften Vorlesung
- Zusammenfassung der sechsten Vorlesung
- Zusammenfassung der siebten Vorlesung
- Zusammenfassung der achten Vorlesung
- Zusammenfassung der neunten Vorlesung
- Zusammenfassung der zehnten und elften Vorlesung
- Zusammenfassung der zwölften Vorlesung
- Zusammenfassung der dreizehnten Vorlesung
- Zusammenfassung der vierzehnten Vorlesung
- Zusammenfassung der fünfzehnten Vorlesung
- Zusammenfassung der sechzehnten Vorlesung
- Zusammenfassung der siebzehnten Vorlesung
- Zusammenfassung der achtzehnten Vorlesung
- Zusammenfassung der neunzehnten Vorlesung
- Zusammenfassung der zwanzigsten Vorlesung
- Zusammenfassung der einundzwanzigsten Vorlesung
- Zusammenfassung der zweiundzwanzigsten Vorlesung
![]()
Übung
- Erstes Übungsblatt
- Lösungsvorschlag für das erste Übungsblatt
- Zweites Übungsblatt
- Lösungsvorschlag für das zweite Übungsblatt
- Drittes Übungsblatt
- Lösungsvorschlag für das dritte Übungsblatt
- Viertes Übungsblatt
- Lösungsvorschlag für das vierte Übungsblatt
- Fünftes Übungsblatt
- Lösungsvorschlag für das fünfte Übungsblatt
- Lösungsvorschlag für das sechste Übungsblatt
- Siebtes Übungsblatt
- Basisversion von Date.java
- Lösungsvorschlag für das siebte Übungsblatt
Vorkenntnis für die Lehrveranstaltung:
- Vorlesung Softwaretechnik
- Programmierkenntnisse in Java
Literatur zur Lehrveranstaltung:
-
Requirements Engineering
- K. Pohl, C. Rupp: Basiswissen Requirements Engineering; dpunkt.verlag; 2009
-
Agile Softwareentwicklung
- W.-G. Bleek, H. Wolf: Agile Softwareentwicklung; dpunkt.verlag; 2008
- R. Pichler: Scrum; dpunkt.verlag; 2008
-
Testen
- A. Spillner, T. Linz: Basiswissen Softwaretest; dpunkt.verlag; 2005
- J. Link: Softwaretests mit JUnit; dpunkt.verlag; 2005
-
Refactoring
- M. Fowler: Refactoring – Improving the Design of Existing Code; Addison-Wesley; 1999
-
Aspektorientierte Entwicklung
- O. Böhm: Aspektorientierte Programmierung mit AspectJ 5; dpunkt.verlag; 2006
weitere Informationen zu der Lehrveranstaltung:
| empfohlenes Studiensemester der Lehrveranstaltung: | ab dem 1. Semester |
| Fachrichtung Lehrveranstaltung: | Masterstudiengänge Informatik, Hauptstudium im Informatik-Diplom, Bachelor nach den alten Prüfungsordnungen |
| Nummer der Lehrveranstaltung: | 07321 |
| Dauer der Lehrveranstaltung: | 4 SWS |
| Typ der Lehrveranstaltung: | V - Vorlesung |
| Leistungspunkte: | 8 |
| Bereich: | Softwaretechnik und Programmiersprachen |
| Prüfung: | Klausur |
| Begleitende Lehrveranstaltung(en): | 07322 |
| Semester: | WS 2011/12 |
