Please note that registration for this seminar has closed. If you have not attended the kickoff meeting or emailed Sarah Nadi by now, you can no longer join the seminar
In modern times, a “one size fits all” strategy no longer works for software systems. Many systems have become highly-configurable in order to tailor for various customer requirements. Instead of building a specific product from scratch every time, we need to build variable software. Using such systems, various products can be generated by selecting the needed features (units of functionality). This is exactly what Software Product Lines (SPLs) aim to provide. SPLs provide a systematic way of configuring different, yet similar, products from reusable components according to the functionalities selected by the user. SPLs have many benefits such as improved quality and reduced time to market which lead to their adoption by many open-source (e.g., Linux kernel, Wordpress) as well as industrial (e.g., Boeing, General Motors) software systems.The fact that SPLs deal with families of products instead of a single product creates many interesting challenges:
- How to model all the SPL features and any dependencies between them?
- How to implement such variable or highly-configurable software?
- How to simultaneously analyze all possible products while avoiding a combinatorial explosion?
- How to detect bugs/anomalies/inconsistencies in an SPL?
- • How to migrate existing products to an SPL?
In this course, you will read both SPL background and state-of-the-art papers to understand how such challenges can be addressed.
This is a discussion seminar with weekly meetings. In each meeting, we discuss a scientific article. The following weekly activities are required:
- Reading a scientific article
- Writing a short summary (max. 1 page)
- Active participation in the discussion of the content
In addition to the weekly activities, a final project consisting of a 4-page research paper and a presentation that discuss one related topic of your choice is required. Your project presents an open-problem you have identified through the papers read in the course and includes a potential solution. You will be required to present your paper at the end of the course.
- In-class discussion and participation (40%)
- Paper summaries (20%)
- Final Paper (25%)
- Final Presentation (15%)
- Course Type
Please register in TUCAN and also send an email to Sarah Nadi. To ensure an interactive and productive seminar, we have to limit the number of participants to aprox. 15. Therefore, the kick-off meeting is obligatory.
Mon. Oct. 12, 2015
- Course material
Mondays 15:20 - 17:00, S2|02 A213
|Oct. 12, 2015||Kickoff meeting (course description & introductory lecture)||-|
|Oct. 19, 2015||Generative Software Development||Overview of Generative Software Development (Czarnecki, 2004)|
|Oct. 26, 2015||
NOTE: There will be no class this week. However, paper summaries are still due in Github by 15:20 on Oct. 26. The discussion of this paper will be combined with the following week's paper.
|Variability Modeling in the Real: A perspective from the Operating Systems Domain(Berger et al., ASE '10)|
|Nov. 2, 2015||Variability Modeling||What is a Feature? A Qualitative Study of Features in Industrial Software Product Lines (Berger et al., SPLC '15)|
|Nov. 9, 2015||Variability-aware analysis||The Linux Kernel: A Case Study of Build System Variability (Nadi & Holt, JSEP '13)|
|Nov. 16, 2015||Variability-aware analysis||Variability-Aware Parsing in the Presence of Lexical Macros and Conditional Compilation (Kaestner et al., OOPSLA '11)|
|Nov. 23, 2015||Variability-aware analysis||Exploring Variability Aware Execution for Testing Plugin-based Web Applications (Nguyen et al., ICSE '14)|
|Nov. 30, 2015||Variability-aware analysis||Variability Testing in the Wild: The Drupal Case Study (Sánchez et al., VaMoS '14)|
|Dec. 7, 2015||Reverse-engineering variability (models)||Mining Configuration Constraints: Static Analyses and Empirical Results (Nadi et al., ICSE '14)|
|Dec. 14, 2015||Reverse-engineering variability (models)||Reverse-engineering Web Configurators (Abbasi et al., CSMR '14)|
|Dec. 21, 2015||Christmas Break||-|
|Dec. 28, 2015||Christmas Break||-|
|Jan. 4, 2016||Christmas Break||-|
|Jan. 11, 2016||SPL Migration||Minimally Invasive Migration to Software Product lines (Jespen et al., SPLC '07)|
|Jan. 18, 2016||
Variability management/implementation techniques|
(Discussion classes end)
|Managing Cloned Variants: A Framework and Experience (Rubin et al., SPLC '13)|
|Feb. 8, 2016||Project Presentations from 2-5 pm in A126||Check emailed schedule for exact presentation slots|