Vorlesung Performance Engineering of Enterprise Software Systems SS09
Ankündigung: Exkursion zum IBM Forschungslabor in Böblingen
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 22.4.2009.
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, ferner muss die Prüfung in Softwaretechnik bzw. Softwaretechnik 1 erfolgreich bestanden worden sein.
Themen der Vorlesung
- Einführung in Performance-Engineering von betrieblichen Softwaresystemen
- Lebenszyklus eines Systems
- Grundlegende Konzepte
- Ansätze zum Performance-Engineering
- Kapazitätsplannung
- Performance-Messtechniken
- Performance-Metriken
- Durchschnittliche Performance und Variabilität
- Modellierung der Messfehler
- Vergleichen von Alternativen basierend auf Messdaten
- Werkzeuge und Techniken zum Messen der Performanz
- Experimentelles-Design
- Benchmarking von betrieblichen Softwaresystemen
- Methodiken zum Benchmarking
- Übersicht über populäre Benchmarks
- Anwendungen von Benchmarks
- Modellierung zur Performanz-Vorhersage
- Operationale Analyse
- Charakterisierung des Benutzungsprofils
- Modellierungsmethodiken
- Analysemodelle zur Performanz-Vorhersage
- Entwurfsorientierte Performanz-Metamodelle
- 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 http://sdqweb.ipd.uka.de/lehre/SS09-PEESS für Sie bereit gestellt. Der Zugang ist passwortgeschützt; Benutzername: stud. Das Passwort wird Ihnen in der Vorlesung mitgeteilt.
Nr. | Termin | Thema | Folien |
---|---|---|---|
1. | 22.04. | Einführung und Begriffsdefinitionen | |
2. | 29.04. | Teil A: QoS-Eigenschaften; Lebenszyklus eines Enterprise-Systems Teil B: Performance-Metriken |
Teil A, 1-auf-1 Teil A, 3-auf-1 Teil A, 6-auf-1 |
3. | 06.05. | Teil A: Modellierung der Messfehler, Konfidenzintervale für Mittelwerte und Proportionen Teil B: Vergleichen von Alternativen basierend auf Messdaten |
Teil A, 1-auf-1 Teil A, 3-auf-1 Teil A, 6-auf-1 |
4. | 13.05. | Teil A: Vergleichen von mehr als zwei Alternativen Teil B: Mehrfaktorielle Varianzanalyse |
Teil A, 1-auf-1 Teil A, 3-auf-1 Teil A, 6-auf-1 |
5. | 20.05. | Benchmarking | |
6. | 27.05. | Experimentelle Performance-Analyse mit R | |
7. | 03.06. | Performance-Modelle - Einführung und Begriffsdefinitionen | |
8. | 10.06. | Teil A: Operational Analysis Teil B: Bounds Analysis (Schranken-Analyse) |
|
9. | 17.06. | Modellierung mit Warteschlangen | |
10. | 24.06. | Warteschlangennetze | |
11. | 01.07. | Fallstudie: Modellierung mit Warteschlangennetzen | |
12. | 08.07. | Teil A: Modellierungsmethodik Teil B: Servicezeiten bei Netzwerken und Festplatten (optional) |
Teil A, 1-auf-1 Teil A, 3-auf-1 Teil A, 6-auf-1 |
13. | 15.07. | Petri-Netze - Einführung und Anwendungsbeispiele | |
14. | 22.07. | 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 |