Want to register? Write a mail to chico.sundermann(at)tu-braunschweig.de
Modern software system are often highly configurable. Managing the variability resulting from numerous configuration options (also known as features) and their interactions requires elaborate tooling. For instance, developers must model features and their dependencies, implement corresponding software artifacts and realize a variability mechanic that can configure the system and derive correct variants. Furthermore, like any other software, configurable systems must be analyzed, tested, and maintained.
In this course students extend existing frameworks for feature-oriented software development, namely FeatureIDE and FeatJAR. While FeatureIDE is a large collection of interdependent Eclipse plug-ins written in Java, FeatJAR is a purely Java-based library consists of multiple Gradle projects.
The goal is to develop high quality source code and make meaningful contributions to these open-source projects, which are used in practice by academia and industry. Alongside, students can collect real programming experience and learn and apply agile software development techniques.
The course is structured as a three-weeks full-time, on-site project during the semester break between the summer and winter term. The exact dates are planned together with the participants after the registration deadline. The course will start with a two-day introduction into the context and the tooling. Afterwards, we will form multiple teams of students to work on smaller and larger tasks that improve and extend FeatJAR/FeatureIDE.
To create high quality source code, we employ agile development using common programming techniques, such as: