This book is a self-contained, practical introduction how to use Feature IDE 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 Git Hub 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 Feature IDE, 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. Feature IDE is the most used open-source tool for feature modeling and has been continuously improved since 2004. The success of Feature IDE is due to being a vehicle for cutting-edge product-line research by still providing an easy-to-use and seamless integration into Eclipse.
Содержание
1 Software Variability.- 2 Getting Started.- 3 Feature IDE in a Nutshell.- 4 An Elevator as a Running Example.- 5 Feature Modeling.- 6 Product Configuration.- 7 Feature Traceability in Feature Models and Configurations.- 8 Quality Assurance for Feature Models and Configurations.- 9 Conditional Compilation with Feature IDE.- 10 Developing an Elevator with Conditional Compilation.- 11 Feature Traceability for Conditional Compilation.- 12 Quality Assurance for Conditional Compilation.- 13 Feature-Oriented Programming with Feature IDE.- 14 Developing an Elevator with Feature-Oriented Programming.- 15 Feature Traceability for Feature-Oriented Programming.- 16 Quality Assurance for Feature-Oriented Programming.- 17 Tool Support Beyond Preprocessors and Feature Modules.- 18 Tool Support for Product-Line Maintenance.- 19 Overview on Feature IDE.
Об авторе
Jens Meinicke is a Ph D student at University of Magdeburg, Germany. Since 2011 he has developed Feature IDE 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 Feature IDE.
Reimar Schröter is a Ph D student at University of Magdeburg, Germany. Since 2012, he has been responsible for the integration of several extensions into Feature IDE. He supervised courses in which students used Feature IDE for product-line development and extend withnew functionalities.
Fabian Benduhn is a Ph D student at University of Magdeburg, Germany. He has contributed to the development of Feature IDE, used it for teaching, and has been involved in preparing Feature IDE for industrial application together with METOP Gmb H.
Thomas Leich is Professor for Requirements Engineering at Harz University of Applied Sciences in Wernigerode, Germany. He is also Executive Director of METOP Gmb H, 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 Feature IDE as a part of the Feature C++ project at the University of Magdeburg. Until today he is responsible for industrial extensions and consulting of Feature IDE.
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.