Implementierungstechniken für Software-Produktlinien

Organisatorisches

Vorlesung: LSF, verantwortlich: Gunter Saake
Übung: LSF, verantwortlich: Elias Kuiter
Kontakt: kuiter@ovgu.de  
Material: Moodle  
  • Die Veranstaltung besteht aus Vorlesung und Übung (2+2 SWS, 5 oder 6 CP), aufgrund von Corona 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 06.04.2021)

Die Veranstaltung wird im Sommersemester 2021 als Onlineveranstaltung mit asynchronen (Vorlesung) und synchronen (Übung) Inhalten angeboten. Termine und der genaue Ablauf werden im Moodlebekannt gegeben, dort ist auch eine Registrierung für den Kurs möglich. Bei inhaltlichen oder organisatorischen Fragen wenden Sie sich bitte an Elias Kuiter (Mail siehe oben).

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: 06.04.2021 - Ansprechpartner:

Sie können eine Nachricht versenden an:
Sicherheitsabfrage:
Captcha
 
Lösung: