This book is a self-contained, practical introduction how to use FeatureIDE for modeling and implementing variable systems. In particular, readers learn how to analyze domains using feature models, specify requirements in form of configurations, and how to generate code based on conditional compilation and feature-oriented programming. Given the interactive style of the book, readers can directly try out the open-source development environment. All code examples are available in the standard distribution on GitHub and can immediately been used for individual modifications. Each part of the book is presented as a step-by-step tutorial and additionally illustrated using an ongoing example of elevator control software written in Java. Written by the core development team of FeatureIDE, this book is suitable for students using a tool for deepening the theoretical foundations of variability modeling and implementation, and as a reference for practitioners needing a stable and scalable tool for industrial applications. FeatureIDE is the most used open-source tool for feature modeling and has been continuously improved since 2004. The success of FeatureIDE is due to being a vehicle for cutting-edge product-line research by still providing an easy-to-use and seamless integration into Eclipse.
Jens Meinicke is a PhD student at University of Magdeburg, Germany. Since 2011 he has developed FeatureIDE as a programmer and a researcher, and since fall 2016 he is working at Carnegie Mellon University in Pittsburgh as Visiting Researcher. Thomas Thüm is a postdoctoral researcher at TU Braunschweig, Germany. In 2010, his master thesis had received the Software Engineering Award 2011 of the Ernst-Denert-Foundation, and in 2015, he received the Dissertation Award of the University of Magdeburg. He made substantial contributions to the source code between 2007 and 2010. Since then, he manages the development and releases of FeatureIDE. Reimar Schröter is a PhD student at University of Magdeburg, Germany. Since 2012, he has been responsible for the integration of several extensions into FeatureIDE. He supervised courses in which students used FeatureIDE for product-line development and extend with new functionalities. Fabian Benduhn is a PhD student at University of Magdeburg, Germany. He has contributed to the development of FeatureIDE, used it for teaching, and has been involved in preparing FeatureIDE for industrial application together with METOP GmbH. Thomas Leich is Professor for Requirements Engineering at Harz University of Applied Sciences in Wernigerode, Germany. He is also Executive Director of METOP GmbH, an affiliate institute to the University of Magdeburg. Since 2001 he worked for several DAX 30 companies as consultant and software architect. In 2004, he initiated FeatureIDE as a part of the FeatureC++ project at the University of Magdeburg. Until today he is responsible for industrial extensions and consulting of FeatureIDE. Gunter Saake is Professor for Databases and Software Engineering at University of Magdeburg, Germany. He has more than 200 publications covering various areas of data base management, formal methods, and software engineering. He is the author of several basic and graduate text books on database technology and an introductory book for computer science students. He is also co-author of the book "Feature-Oriented Software Product Lines" (Springer, 2013) presenting the foundations of feature-oriented software product-line engineering.