Context

University of Namur in 2011 for MSc students

10 hours of courses (5 * 2) + 20 hours of exercices (10 * 2)

Instructors: Mathieu Acher and Patrick Heymans

Location of the material

NamurSPLCourse directory

Description of the material

Essentially a set of slides used for courses but also for lab sessions (running project) The material also includes some instructions (textual files)

Description of the course

Below is a “plan” of the five courses. For each course there is a take away message (“conclusion”) and some exercices

1. Software product line engineering, Variability modeling and management: An overview

Conclusion= variability intensive systems (SPLs) are widespread ; managing variability is a key issue

No exercice

2. Software product line engineering: a generic framework

(Basically, we revisit 1.3 (principles), the framework of K. Pohl + generative techniques)

Conclusion= SPL engineering changes the way software should be developed ; (bis) variability management and automated techniques are a key issue

Exercice 1: revisiting your RE/SE knowledge: present (known) techniques in this framework (known means notions you have learned during your cursus)

3. Modeling and managing variability

(aka Using feature model, the defacto standard)

Conclusion= feature models: de factor standard for modeling and managing variability (precise semantics, automated support, tools, useful in many variability management scenarios)

Exercices (goal : modeling with feature models ; feature modeling in practice)

4. Feature models: automated techniques, language and tool support

Conclusion= automated, tool supported techniques have been developed for different purposes (extracting properties and reasoning about models, enhancing configuration process, etc.)

Exercices (goal : see operations in practice using a dedicated language)

5. Variability implementation

Conclusion= realizing variability is a rich field that involves basic mechanisms (conditional compilation) or more sophisiticated technology ; applicable to many artefacts (code, documentation, graphical interfaces)

Project = the goal is to realize an end-to-end generative process to derive specific configurators from a feature model (e.g., like the one that has been reverse engineered)