Supporting feature-oriented development and evolution in industrial software ecosystems

Companies nowadays need to serve a mass market while at the same time customers request highly individual solutions. To handle this problem, development is frequently organized in software ecosystems (SECOs), i.e., interrelated software product lines involving internal and external developers. Individual products for customers are derived and adapted by adding new features or creating new versions of existing features to meet the customer-specific requirements. Development teams typically use version control systems to track fine-grained, implementation-level changes to product lines and products. However, it is difficult to relate such low-level changes to features and their evolution in the SECO. State-of-the-art approaches addressing this issue are variation control systems, which allow tracking of changes at the level of features. However, these systems have not found their way into mainstream development so far. In this thesis we will describe which workflows and additions to variation control systems are required to support feature-oriented development in an industrial SECO environment. We will further investigate mechanisms that support feature-based monitoring to guide the evolution in SECOs.

[1]  Dewayne E. Perry,et al.  Implications of evolution metrics on software maintenance , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[2]  Uwe Aßmann,et al.  Capturing variability in space and time with hyper feature models , 2014, VaMoS.

[3]  Andreas Grimmer,et al.  Configuration-Aware Change Impact Analysis (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[4]  Thomas Buchmann,et al.  SuperMod — A model-driven tool that combines version control and software product line engineering , 2015, 2015 10th International Joint Conference on Software Technologies (ICSOFT).

[5]  Audris Mockus,et al.  Forking and coordination in multi-platform development: a case study , 2014, ESEM '14.

[6]  Matthias Weber,et al.  Multi-level feature trees , 2007, Requirements Engineering.

[7]  Alexander Egyed,et al.  Enhancing Clone-and-Own with Systematic Reuse for Developing Software Variants , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[8]  Paul Grünbacher,et al.  A classification of variation control systems , 2017, GPCE.

[9]  Manoel G. Mendonça,et al.  Software evolution visualization: A systematic mapping study , 2013, Inf. Softw. Technol..

[10]  Alexander Egyed,et al.  A Variability Aware Configuration Management and Revision Control Platform , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[11]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[12]  Uwe Aßmann,et al.  Towards modeling and analyzing variability in evolving software ecosystems , 2013, VaMoS.

[13]  Birgit Vogel-Heuser,et al.  Researching Evolution in Industrial Plant Automation: Scenarios and Documentation of the Pick and Place Unit , 2014 .

[14]  Mathieu Acher,et al.  FAMILIAR: A domain-specific language for large scale management of feature models , 2013, Sci. Comput. Program..

[15]  Paul Grünbacher,et al.  A prototype-based approach for managing clones in clone-and-own product lines , 2016, SPLC.

[16]  Marsha Chechik,et al.  What is a feature?: a qualitative study of features in industrial software product lines , 2015, SPLC.

[17]  Paul Grünbacher,et al.  Software Evolution in an Industrial Automation Ecosystem: An Exploratory Study , 2014, 2014 40th EUROMICRO Conference on Software Engineering and Advanced Applications.

[18]  Andreas Grimmer,et al.  Supporting Program Analysis for Non-Mainstream Languages: Experiences and Lessons Learned , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[19]  Tom Mens,et al.  Future trends in software evolution metrics , 2001, IWPSE '01.

[20]  Sven Apel,et al.  An Overview of Feature-Oriented Software Development , 2009, J. Object Technol..

[21]  Wolfram Fenske,et al.  Synchronizing software variants with variantsync , 2016, SPLC.

[22]  Andreas Grimmer,et al.  Multi-purpose, multi-level feature modeling of large-scale industrial software systems , 2016, Software & Systems Modeling.

[23]  Thomas Buchmann,et al.  Towards the integration of model-driven engineering, software product line engineering, and software configuration management , 2015, 2015 3rd International Conference on Model-Driven Engineering and Software Development (MODELSWARD).

[24]  Juha Savolainen,et al.  Coevolution of variability models and code: an industrial case study , 2014, SPLC.

[25]  Paul Grünbacher,et al.  A case study on software ecosystem characteristics in industrial automation software , 2014, ICSSP 2014.

[26]  Oscar Díaz,et al.  Tuning GitHub for SPL development: branching models & repository operations for product engineers , 2015, SPLC.

[27]  Alexander Egyed,et al.  Feature-Oriented Evolution of Automation Software Systems in Industrial Software Ecosystems , 2018, 2018 IEEE 23rd International Conference on Emerging Technologies and Factory Automation (ETFA).

[28]  Ralf Lämmel,et al.  Flexible product line engineering with a virtual platform , 2014, ICSE Companion.

[29]  Paul Grünbacher,et al.  Using Feature Feeds to Improve Developer Awareness in Software Ecosystem Evolution , 2015, VaMoS.

[30]  Jan Bosch,et al.  From software product lines to software ecosystems , 2009, SPLC.

[31]  Thomas Leich,et al.  FeatureIDE: An extensible framework for feature-oriented software development , 2014, Sci. Comput. Program..

[32]  Andreas Grimmer,et al.  Identifying inactive code in product lines with configuration-aware system dependence graphs , 2014, SPLC.

[33]  Marsha Chechik,et al.  A framework for managing cloned product variants , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[34]  Marsha Chechik,et al.  Managing cloned variants: a framework and experience , 2013, SPLC '13.