Vorlesung Performance Engineering of Enterprise Software Systems SS2010

Aus SDQ-Wiki

Ankündigung: Exkursion zum IBM Forschungslabor in Böblingen am 29.6.2010

Termin der Vorlesung

Die Vorlesung wird von Dr.-Ing. Samuel Kounev gehalten, und zwar wöchentlich am Mittwoch, 11:30-13:00 im HS -101 im UG des Informatik-Hauptgebäudes (50.34). Erster Vorlesungstermin ist 14.4.2010.

Zielgruppe und Voraussetzungen

Studenten der Informatik (Master oder Hauptdiplom). Empfohlen wird das 7. Semester. Die Vorlesung kann als Teil der mündlichen Vertiefungsfachprüfung in "Softwaretechnik und Übersetzerbau" geprüft werden. Voraussetzungen sind Vordiplom oder Bachelor in Informatik.

Themen der Vorlesung

  1. Einführung in Performance-Engineering von betrieblichen Softwaresystemen
    1. Lebenszyklus eines Systems
    2. Grundlegende Konzepte
    3. Ansätze zum Performance-Engineering
    4. Kapazitätsplannung
  2. Performance-Messtechniken
    1. Performance-Metriken
    2. Durchschnittliche Performance und Variabilität
    3. Modellierung der Messfehler
    4. Vergleichen von Alternativen basierend auf Messdaten
    5. Werkzeuge und Techniken zum Messen der Performanz
    6. Experimentelles-Design
  3. Benchmarking von betrieblichen Softwaresystemen
    1. Methodiken zum Benchmarking
    2. Übersicht über populäre Benchmarks
    3. Anwendungen von Benchmarks
  4. Modellierung zur Performanz-Vorhersage
    1. Operationale Analyse
    2. Charakterisierung des Benutzungsprofils
    3. Modellierungsmethodiken
    4. Analysemodelle zur Performanz-Vorhersage
    5. Entwurfsorientierte Performanz-Metamodelle
  5. Fallstudien

Vorlesungsbeschreibung

An moderne Softwaresysteme für Unternehmenseinsatz, die auf Technologien wie Java EE oder .NET basieren, werden hohe und immer weiter steigende Anforderungen in Bezug auf Performance und Skalierbarkeit gestellt. Es gibt dazu zahlreiche Studien, insbesondere in den Bereichen wie eBusiness, Telekommunikation, Gesundheitswesen und Verkehr: sie zeigen, dass das Nichterfüllen von Performance-Anforderungen zu erheblichen finanziellen Verlusten, Kundenabwanderung, Ansehensverlust und sogar zu menschlichen Opfern führen können. Um die Fallgruben zu vermeiden, die zu inadequater Dienstgüte führen, ist es wichtig, die erwartete Performance abzuschätzen, und die Skalierungsvermögen von Systemen zu analysieren – und zwar in jeder Phase des Lebenszykluses der Software-Systeme. Die Vorgehensweisen, um dies zu bewerkstelligen, sind teil einer Informatik-Disziplin, die sich „Performance Engineering“ nennt. Diese Disziplin setzt sich zum Ziel, die Performance abzuschätzen, die ein System erbringen kann, und erarbeitet Empfehlungen, um ein möglichst optimales Performance-Niveau zu erreichen.

Das Ziel der Vorlesung besteht darin, eine Einführung in die wichtigsten Methoden und Techniken für Performance Engineering im Bereich der Unternehmensanwendungen zu bieten. Die Studenten werden zunächst mit modernen Techniken der Performance-Messungen vertraut gemacht, wie z.B. Plattform-Benchmarking, Profiling von Anwendungen und Lasttests von Systemen. Die verschiedenen Typen der Arbeitslast-Modelle werden diskutiert, wie sie in Studien für Performance-Evaluation verwendet werden. Eine Übersicht aktueller Benchmarks für Geschäftsanwendungen wird ebenso präsentiert. Aufbauend darauf werden aktuelle Methoden für Performance-Modellierung und Performance-Vorhersage vorgestellt, sodass die Studenten die wichtigsten Typen von Performance-Modellen aus der Praxis kennen, mitsamt ihrer Vor- und Nachteile. Schliesslich wird ein Überblick über aktuelle entwurfsorientierte Meta-Modelle im Bereich Performance geboten. Über die gesamte Vorlesung hinweg werden Fallstudien von realen Systemen verwendet, um die diskutierten Konzepte zu veranschaulichen.

Vorlesungsunterlagen

Die nachfolgend verlinkte Materialien werden auf Emblem-readonly small.png http://sdqweb.ipd.uka.de/lehre/SS10-PEESS für Sie bereit gestellt. Der Zugang ist passwortgeschützt; Benutzername: stud. Das Passwort wird Ihnen in der Vorlesung mitgeteilt.

Nr. Termin Thema Emblem-readonly small.png Folien
1. 14.04.2010 Einführung und Begriffsdefinitionen

1-auf-1 2-auf-1 6-auf-1

2. 21.04.2010 Teil A: QoS-Eigenschaften; Lebenszyklus eines Enterprise-Systems
Teil B: Performance-Metriken

Teil A, 1-auf-1 Teil A, 2-auf-1 Teil A, 6-auf-1
Teil B, 1-auf-1 Teil B, 2-auf-1 Teil B, 6-auf-1

3. 28.04.2010 Modellierung der Messfehler, Konfidenzintervale für Mittelwerte und Proportionen

1-auf-1 2-auf-1 6-auf-1

4. 05.05.2010 Vergleichen von Alternativen basierend auf Messdaten

1-auf-1 2-auf-1 6-auf-1

5. 12.05.2010 Mehrfaktorielle Varianzanalyse

1-auf-1 2-auf-1 6-auf-1

6. 19.05.2010 Experimentelle Performance-Analyse mit R

1-auf-1 2-auf-1 6-auf-1

7. 26.05.2010 Performance-Modelle - Einführung und Begriffsdefinitionen

1-auf-1 2-auf-1 6-auf-1

8. 2.06.2010 Teil A: Operational Analysis
Teil B: Bounds Analysis (Schranken-Analyse)

1-auf-1 2-auf-1 6-auf-1
1-auf-1 2-auf-1 6-auf-1

9. 9.06.2010 Teil A: Modellierung mit Warteschlangen
Teil B: Warteschlangennetze

1-auf-1 2-auf-1 6-auf-1
1-auf-1 2-auf-1 6-auf-1

10. 16.06.2010 Fallstudie: Modellierung mit Warteschlangennetzen

1-auf-1 2-auf-1 6-auf-1

11. 23.06.2010 Petri-Netze - Einführung und Anwendungsbeispiele

1-auf-1 2-auf-1 6-auf-1

12. 30.06.2010 Benchmarking

1-auf-1 2-auf-1 6-auf-1

13. 07.07.2010 Modellierungsmethodik

1-auf-1 2-auf-1 6-auf-1

14. 14.07.2010 Teil A: Palladio Component Model (PCM)
Teil B: Fallstudie: Automated Extraction of Palladio Component Models
Teil C: Fallstudie: Performance Modeling of Storage Virtualization

Teil A, 1-auf-1 Teil A, 3-auf-1 Teil A, 6-auf-1
Teil B, 1-auf-1 Teil B, 3-auf-1 Teil B, 6-auf-1
Teil C, 1-auf-1 Teil C, 2-auf-1 Teil C, 6-auf-1