Software Product Lines (Master, Summer Term 2024)

Nowadays, software often needs to be available on many platforms and should be adaptable to many different needs of users and customers. Whether it's configuring a new car, your operating system or installing mods for Minecraft, software needs to be flexible and customizable everywhere. It can quickly happen that there are so many configuration options that there can be a different software variant for every person on earth! In our lecture, we will show you how to model the configurability of such systems (e.g. dependencies), what techniques there are for writing extensible and configurable software, what strategies can be used to test meaningfully despite the exponential number of variants, and much more.

Content of the Lecture:

  • introduction to software mass-customization
  • specification and implementation of variability
  • separation of concerns, information hiding, modular design
  • overview on methods for implementation methods for software product lines, including:
    • components, frameworks, design patterns
    • preprocessors, build systems
    • aspect-oriented and feature-oriented programming
  • feature interactions, testing, automated and static analyses using (#)SAT solvers
  • evolution and maintenance of variational software

Goals

  • Understanding the limits of traditional programming paradigms with regard to the development of information systems,
  • knowledge on modern and extended programming paradigms for mass-customization, and the
  • ability to evaluate, select, and apply extended programming methods.

Organizational Matters

This lecture will be in english.

This course is yet to be added to the module handbooks (ger.: Modulhandbuch). This means, you won't find the software product lines course in there yet. The course will be added to the module handbooks by beginning of the next semester.

Further information regarding the exam, potential homework, and more will appear here soon.

Where and When?

Lecture (Prof. Dr. Thomas Thüm)

  • When? Wednesday, 09:15 - 10:45
  • Where? F 2 211

Exercise (Paul Bittner)

  • When? Tuesday, 13:30 - 15:45
  • Where? F 0 530