Vorlesung Komponentenbasierte Software-Architektur SS2011

Aus SDQ-Wiki
Wechseln zu: Navigation, Suche

Termin

Appointment-new.png ACHTUNG, TERMINÄNDERUNG!
Aufgrund der ganztägigen Exkursion zu IBMs Forschungs- und Entwicklungslabor in Böblingen findet die Vorlesung ausnahmsweise erst am Donnerstag, den 30.06.2011 um 8:00 in SR348 statt.
Die Vorlesung wird von Prof. Dr. Ralf Reussner gehalten, und zwar wöchentlich am Dienstag, 15:45-17:15 im Gaede Hörsaal (Gebäude 30.22). Erster Vorlesungstermin ist der 12.04.2011.

Zielgruppe und Voraussetzungen

  • Studenten der Informatik (Master oder Hauptdiplom) und Studenten der Informationswirtschaft (Master).
  • Die Vorlesung wird für Studenten im 5. Semester empfohlen.
  • Im Master (Informatik/Informationswirtschaft) im Rahmen des Vertiefungsfaches „Softwaretechnik und Übersetzerbau“ prüfbar.
  • Im Diplom (Informatik) im Rahmen des Vertiefungsfaches „Softwaretechnik/Übersetzerbau“ prüfbar.
  • Die Prüfung in Softwaretechnik muss erfolgreich absolviert worden sein.
  • Nicht zusammen mit der Vorlesung „Komponentenbasierte Software-Entwicklung“ (KBSE) prüfbar.
  • Nicht zusammen mit der Vorlesung „Software-Architektur“ (SWA) prüfbar.
Anmerkung zum stofflichen Umfang:

Die Vorlesung entspricht weitestgehend der Vorlesung „Komponetenbasierte Software-Entwicklung“ (KBSE). Teile, die bereits in „Softwaretechnik 1+2“ (SWT) behandelt wurden, wurden ausgelassen, stattdessen wurden Teile der ehemaligen Vorlesung „Softwarearchitektur“ (SWA) integriert, die nicht von „Softwaretechnik 1+2“ abgedeckt werden. Die Zusammenführung musste vorgenommen werden, um die stofflichen Überschneidungen mit „Softwaretechnik 1+2“ zu minimieren, die mit der Einführung des Moduls im Zuge des Bolognaprozesses entstanden sind. Der Umfang der Vorlesung ist in etwa gleich geblieben.

Inhalte

Enterprise Java Beans (EJBs), Corba oder COM - komponentenbasierte Software-Entwicklung ist in Praxis und Wirtschaft erfolgreich und weit verbreitet und gewinnt in der Software-Technik zunehmend an Bedeutung. Zu den Vorteilen komponentenbasierter Software-Entwicklung zählen die Wiederverwendbarkeit von Komponenten und dadurch eine gesteigerte Effizienz bei der Entwicklung, verkürzte Entwicklungs-Zyklen und damit auch eine Verringerung von „Time-to-Market".

Aus wissenschaftlicher Sicht lassen sich auf funktionaler Ebene Aussagen zur Kompatiblität und Funktionsfähigkeit zusammengefügter Komponenten treffen. Daneben eignet sich ein komponentenbasierter Ansatz hervorragend für die ingenieurmäßige Entwicklung von Software mit vorhersagbaren Qualitäts-Eigenschaften. Damit lassen sich beispielsweise Performanz- und Zuverlässigkeits-Eigenschaften noch vor der tatsächlichen Implementierung eines Software-Systems bestimmen. Auf dieser Grundlage lassen sich gezielt Entscheidungen über Alternativen in der Entwurfsphase von Software treffen.

In der Vorlesung werden Paradigmen und Techniken für eine systematische Vorgehensweise bei Entwurf, Implementierung und Testen von Software-Komponenten vermittelt. Dazu gehören u.a. UML für die Beschreibung von statischen und dynamischen Aspekten von Komponenten, Schnittstellenentwurf, parametrisierte Verträge, Komponentenadaptation und Interoperabilität. Anhand des Palladio-Komponentenmodells werden Trends und fortschrittliche Technologien vorgestellt, z.B. Performance-Vorhersage zur Entwurfszeit, Rollenmodelle für Entwurf und Entwicklung von komponentenbasierter Software, sowie modellgetriebene Code-Generierung aus Modellen.

Die Vorlesung behandelt UML als Beschreibungssprache für Komponenten und Architekturen. Die Evaluation von Architekturen wird anhand der Verfahren SAAM und ATAM veranschaulicht. Auch dem Entwicklungsprozess wird Beachtung geschenkt, wobei die Betonung auf modellgetriebene Architekturentwicklung (MDA) gelegt wird. In diesem Zusammenhang behandelt die Vorlesung Technologien wie MOF, OCL und auch architekturzentrierte modellgetriebene Softwareentwicklung (AC-MDSD). Moderne Middleware aus der Praxis wie z.B. Java EE / EJB wird vorgestellt, und eine Taxonomie der verschiedenen Middleware-Arten wird diskutiert. Weiterhin sind Software-Produktlinien, SOA (service-orientierte Architekturen) sowie Architektur-Muster („Patterns“) Bestandteile der Vorlesung. Die Behandlung der funktionalen Architektur-Eigenschaften wird ergänzt durch Vorstellung der Verfahren für Analyse der extra-funktionalen Eigenschaften der Architekturen, u.a. werden modell-basierte Verfahren für die Performance-Vorhersage vorgestellt.

Lernziele

Die Studierenden lernen die Vorteile der komponentenbasierten Softwareentwicklung kennen und können ihren Bezug zur ingenieurmäßigen Softwareentwicklung und zu Software-Architekturen herstellen. Grundlegende Konzepte wie komponentenbasierte Architekturen und deren Entwurf, sowie Interoperabilitätsprüfungen und parametrisierte Verträge für Schnittstellen bilden die Basis für das Verständnis aktueller Komponentenmodelle und –metamodelle aus Forschung und Praxis. Die Studierenden vergegenwärtigen sich die Vor- und Nachteile dieser Komponentenmodelle, um diese kritisch bewerten zu können. Wichtige Techniken und Vorgehensweisen aus Praxis und Forschung werden vermittelt, wie z.B. Performance-Vorhersage zur Entwurfszeit und Code-Generierung aus Modellen. Die Studierenden sollen aktuelle angewandte Technologien (EJBs, SOA etc.) ebenso kennenlernen wie aktuelle Forschungsschwerpunkte, z.B. Modelltransformationen zur Erzeugung von Software-Prototypen. Die Studierenden sollen auch die Konzepte hinter modernen Software-Architekturen kennenlernen und kritisch beurteilen können: Service-orientierte Architekturen (SOA), Produktlinien, Middleware, etc. Die systematische Arbeit mit Architekturbeschreibungen soll erlernt werden, indem Modellierungs- und Beschreibungssprachen (z.B. UML) und strukturierte Methoden für Architekturbewertung (z.B. SAAM) behandelt werden. Eine Einführung in modellgetriebene Softwareentwicklung (MDSD) und modellgetriebene Architekturen (MDA) zeigt die aktuellen Entwicklungen auf und wird anhand der Architektur-Muster (Patterns) illustriert.

Unterlagen

Vorlesungsfolien werden auf Emblem-readonly small.png http://sdqweb.ipd.uka.de/lehre/SS11-KBSWA 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 Version
1. 12.04.2011 Introduction: Einführung und Begriffsdefinitionen 1-auf-1 2-auf-1 6-auf-1 9-auf-1 v2
2. 19.04.2011 Component Types, Component Comparison: Typhierarchie, Vergleich mit ähnlichen Ansätzen 1-auf-1 2-auf-1 6-auf-1 9-auf-1 v1
3. 26.04.2011 Specifying Components Using UML2: Sichtenbasiertes Modellieren in der UML 1-auf-1 2-auf-1 6-auf-1 9-auf-1 v1
4. 03.05.2011 Processes And Modelling: Komponenten in der Softwareentwicklung, Produktlinienarchitekturen 1-auf-1 2-auf-1 6-auf-1 9-auf-1 v2
5. 10.05.2011 Component Identification: Komponenten identifizieren, Architektur-Guidelines und -Stile 1-auf-1 2-auf-1 6-auf-1 9-auf-1 v1
6. 17.05.2011 Development with Components: Muster für den Entwurf von auf Komponenten basierenden Systemen 1-auf-1 2-auf-1 6-auf-1 9-auf-1 v1
7. 24.05.2011 Development of Components: Richtlinien beim Entwurf von Komponenten 1-auf-1 2-auf-1 6-auf-1 9-auf-1 v1
8. 31.05.2011 Component Interoperability: Interoperabilitätsüberprüfung basierend auf Modellen der Schnittstelle 1-auf-1 2-auf-1 6-auf-1 9-auf-1 v1
9. 07.06.2011 Contractual Use of Components: Design-by-Contract, parametrische Verträge 1-auf-1 2-auf-1 6-auf-1 9-auf-1 v1
14.06.2011 Contractual Use of Components ff.
10. 21.06.2011 Component Adaptation: Techniken zur Anpassung unpassender Schnittstellen (Whitebox vs. Blackbox) 1-auf-1 2-auf-1 6-auf-1 9-auf-1 v1
11. 30.06.2011 JavaEE and EJB: Die Enterprise Java Beans als Beispiel eines Komponentenmodells 1-auf-1 2-auf-1 6-auf-1 9-auf-1 v1
12. 05.07.2011 Mash-ups, Taxonomy of Component Models: Mash-ups als Beispiel einer Komponententechnologie,
Klassifizierung von Komponentenmodellen
1-auf-1 2-auf-1 6-auf-1 9-auf-1 v1
13. 12.07.2011 Palladio Component Model: Das PCM als Beispiel für eine weitere Komponententechnologie 1-auf-1 2-auf-1 6-auf-1 9-auf-1 v1

Organisation

Bei technischen und organisatorischen Fragen wenden Sie sich bitte an Andreas Rentschler.

Formalia

  • Lehrform: Vorlesung ohne Übung
  • Für Master- und Diplomstudenten
  • Die LV-Nummer lautet 24667
  • Leiter der LV: Ralf Reussner, Michael Kuperberg
  • Sprache: Deutsch
  • Umfang: 2 SWS
  • Gewichtung: 100 % Prüfungsnote
  • Erfolgskontrolle: in Form einer mündlichen Prüfung im Umfang von 20 Minuten nach § 4 Abs. 2 Nr. 2 der SPO Bachelor/Master Informatik
  • Leistungspunkte/ECTS:
    • 3 (Studierende der Informatik)
    • 4 (Studierende der Informationswirtschaft)
  • Level:
    • Leistungsstufe 3: 5. + 6. Semester Bachelor
    • Leistungsstufe 4: Master
  • Teil folgender Module: Modul „Software-Methodik“, „Software-Systeme“
  • Vertiefungsfachzuordnung: Softwaretechnik und Übersetzerbau
  • Termin: wird bekannt gegeben
  • Raum: wird bekannt gegeben