Implementierungstechniken für Software-Produktlinien

Organisatorisches

Vorlesung: LSF, verantwortlich: Gunter Saake
Übung: LSF, verantwortlich: Elias Kuiter
Kontakt: kuiter@ovgu.de  
Material: -  
  • Die Veranstaltung besteht aus Vorlesung und Übung (2+2 SWS, 5 oder 6 CP), aufgrund von Corona eventuell angepasst (Details im Moodle-Kurs).
  • Gestellte Übungsaufgaben sind regelmäßig zu bearbeiten, um die Prüfungszulassung zu erlangen.
  • Praktische Aufgaben dürfen in Teams bis zu 2 Studierenden bearbeitet werden.
  • Für Masterstudenten werden zusätzliche Übungsaufgaben gestellt, um 6 CP zu erreichen.
  • Details zur Anrechenbarkeit bitte dem Modulhandbuch entnehmen (S. 342), bei Fragen melden (kuiter@ovgu.de).
  • Je nach Anzahl der Studierenden wird am Ende mündlich oder schriftlich geprüft, im Bachelor ist eine unbenotete Leistung (Schein) möglich.
  • Die Vorgängerveranstaltung hieß Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung (EPMD) und kann nicht zusammen mit ISP belegt werden.

Aktuelles (Stand 18.08.2021)

Die Veranstaltung wird im Wintersemester 2021/22, wenn es die Lage erlaubt, als Präsenzveranstaltung angeboten. Termine und der genaue Ablauf werden im Moodle bekannt gegeben, dort ist auch eine Registrierung für den Kurs möglich. Bei inhaltlichen oder organisatorischen Fragen bitte an Elias wenden.

Inhalt

Heutzutage sind mobile Endgeräte wie Smartphones und das Internet der Dinge allgegenwärtig. Die dazugehörigen Softwaresysteme, oft maßgeschneidert, müssen dann eine Vielzahl von Hardware-Varianten unterstützen und sollen dennoch möglichst schnell, günstig und fehlerfrei auf den Markt gebracht werden. Dazu ist es nötig, Softwarevariabilität in mehreren Dimensionen zu meistern: Einerseits zeitlich (Stichworte sind hier Versionierung, Wartung/Evolution, Refactoring), aber auch räumlich (d.h. Variantenmanagement, maßschneiderte Implementierung, Software-Reuse).

Diese Veranstaltung behandelt vorrangig die räumliche Variabilität in Form sogenannter Softwareproduktlinien (hat aber auch Überschneidungen mit Versionsverwaltung etc.) Damit liefert diese Veranstaltung die Grundlagen zum Verständnis hochkonfigurierbarer Softwaresysteme (wie z.B. der Linux-Kernel, Eclipse, das HIS-LSF oder der HP-Druckertreiber). Es werden außerdem eigene variable Programme in kleinen Projektgruppen entwickelt, um das Verständnis zu vertiefen.

Unter anderem vermittelt die Veranstaltung:

  • Verständnis von Grenzen traditioneller Programmierparadigmen bzgl. der Entwicklung von Informationssystemen
  • Übersicht über verschiedene Möglichkeiten zur Implementierung von Softwareproduktlinien
  • Modellierung und Implementierung von Programmfamilien, Produktlinien und Software-Ökosystemen
  • Einführung in Grundkonzepte des "clean coding" (u.a. Separation of Concerns, Information Hiding, Modularisierung)
  • Überblick über erweiterte Programmierkonzepte (u.a. Komponenten, Frameworks, Design Patterns, featureorientierte & aspektorientierte Programmierung, Reflection)

Literatur

  • Die Vorlesung baut auf dem Buch Feature-Oriented Software Product Lines auf (Download als PDF oder EPUB, verfügbar im Uninetz oder nach Anmeldung mit URZ-Account). Dieses Buch eignet sich besonders gut zur Prüfungsvorbereitung.
  • Für die praktische Übung wird FeatureIDE empfohlen, als begleitendes Buch empfiehlt sich Mastering Software Variability with FeatureIDE (Download als PDF, verfügbar im Uninetz oder nach Anmeldung mit URZ-Account). FeatureIDE ist allerdings nicht verpflichtend und auch nur oberflächlich prüfungsrelevant.

Letzte Änderung: 18.08.2021 - Ansprechpartner:

Sie können eine Nachricht versenden an: M.Sc. Elias Kuiter
Sicherheitsabfrage:
Captcha
 
Lösung: