- Suche

- Kontakt

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

Podcast zur Vorlesung

Übung

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