Variability representations in class models: an empirical assessment

Owing to the ever-growing need for customization, software systems often exist in many different variants. To avoid the need to maintain many different copies of the same model, developers of modeling languages and tools have recently started to provide representations for such variant-rich systems, notably variability mechanisms that support the implementation of differences between model variants. Available mechanisms either follow the annotative or the compositional paradigm, each of them having unique benefits and drawbacks. Language and tool designers select the used variability mechanism often solely based on intuition. A better empirical understanding of the comprehension of variability mechanisms would help them in improving support for effective modeling. In this paper, we present an empirical assessment of annotative and compositional variability mechanisms for class models. We report and discuss findings from an experiment with 73 participants, in which we studied the impact of two selected variability mechanisms during model comprehension tasks. We find that, compared to the baseline of listing all model variants separately, the annotative technique did not affect developer performance. Use of the compositional mechanism correlated with impaired performance. For two out of three considered tasks, the annotative mechanism is preferred to the compositional one and the baseline. We present actionable recommendations concerning support of flexible, tasks-specific solutions, and the transfer of established best practices from the code domain to models.

[1]  Sophie Dupuy-Chessa,et al.  A model-driven approach for embedded system prototyping and design , 2014, 2014 25nd IEEE International Symposium on Rapid System Prototyping.

[2]  Uirá Kulesza,et al.  A Comparative Study of Compositional and Annotative Modelling Approaches for Software Process Lines , 2012, 2012 26th Brazilian Symposium on Software Engineering.

[3]  A. Vargha,et al.  A Critique and Improvement of the CL Common Language Effect Size Statistics of McGraw and Wong , 2000 .

[4]  Gunter Saake,et al.  How preprocessor annotations (do not) affect maintainability: a case study on change-proneness , 2017, GPCE.

[5]  Margaret J. Robertson,et al.  Design and Analysis of Experiments , 2006, Handbook of statistics.

[6]  Malte Lochau,et al.  Dynamic configuration management of cloud-based applications , 2012, SPLC '12.

[7]  Andy Schürr,et al.  MATE - A Model Analysis and Transformation Environment for MATLAB Simulink , 2007, Model-Based Engineering of Embedded Real-Time Systems.

[8]  Jan Jürjens,et al.  Model-based security analysis of feature-oriented software product lines , 2018, GPCE.

[9]  Tobias Kaufmann,et al.  Extending the SPES Modeling Framework for Supporting Role-specific Variant Management in the Engineering Process of Embedded Software , 2014, Software Engineering.

[10]  Axel Legay,et al.  Sound Merging and Differencing for Class Diagrams , 2014, FASE.

[11]  Jan-Philipp Steghöfer,et al.  The state of adoption and the challenges of systematic variability management in industry , 2020, Empirical Software Engineering.

[12]  D. Levi,et al.  Visual crowding: a fundamental limit on conscious perception and object recognition , 2011, Trends in Cognitive Sciences.

[13]  Michal Antkiewicz,et al.  Mapping features to models: a template approach based on superimposed variants , 2005, GPCE'05.

[14]  Daniel Amyot,et al.  Union Models: Support for Efficient Reasoning About Model Families Over Space and Time , 2019, SAM.

[15]  Udo Kelter,et al.  SiPL -- A Delta-Based Modeling Framework for Software Product Line Engineering , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[16]  Daniel Antonio Callegari,et al.  Project Management and Software Development Processes: Integrating RUP and PMBOK , 2007, 2007 International Conference on Systems Engineering and Modeling.

[17]  Gabriele Taentzer,et al.  Model-Driven Development of Mobile Applications Allowing Role-Driven Variants , 2014, MoDELS.

[18]  Krzysztof Czarnecki,et al.  Verifying feature-based model templates against well-formedness OCL constraints , 2006, GPCE '06.

[19]  Jacques Klein,et al.  Automating the Extraction of Model-Based Software Product Lines from Model Variants (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[20]  Rick Salay,et al.  Perspectives of Model Transformation Reuse , 2016, IFM.

[21]  Olivier Barais,et al.  Concern-oriented language development (COLD): Fostering reuse in language engineering , 2018, Comput. Lang. Syst. Struct..

[22]  Klaus Schmid,et al.  Software product lines in action - the best industrial practice in product line engineering , 2007 .

[23]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[24]  Henry Spencer,et al.  #ifdef Considered Harmful, or Portability Experience with C News , 1992, USENIX Summer.

[25]  Stefan Schulz,et al.  A Tool Environment for Managing Families of Model Transformation Rules , 2016, ICGT.

[26]  Natalia Juristo Juzgado,et al.  Are Students Representatives of Professionals in Software Engineering Experiments? , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[27]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[28]  Juha-Pekka Tolvanen,et al.  How Domain-Specific Modeling Languages Address Variability in Product Line Development: Investigation of 23 Cases , 2019, SPLC.

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

[30]  Rick Salay,et al.  Transformations of Software Product Lines: A Generalizing Framework Based on Category Theory , 2017, 2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[31]  Sven Apel,et al.  The road to feature modularity? , 2011, SPLC '11.

[32]  Marian Petre,et al.  UML in practice , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[33]  Ingo Stürmer,et al.  Automated Transformation of MATLAB , Simulink and Stateflow Models , .

[34]  Sahar Kokaly,et al.  User Experience for Model-Driven Engineering: Challenges and Future Directions , 2017, 2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[35]  Thorsten Berger,et al.  PEoPL: Projectional Editing of Product Lines , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[36]  Gerti Kappel,et al.  On the Usage of UML: Initial Results of Analyzing Open UML Models , 2014, Modellierung.

[37]  Chris Gane Process Management: Integrating Project Management and Development , 2001 .

[38]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[39]  Harald Störrle,et al.  VMTL: a language for end-user model transformation , 2018, Software & Systems Modeling.

[40]  Ina Schaefer,et al.  Variability Modelling for Model-Driven Development of Software Product Lines , 2010, VaMoS.

[41]  Sandro Schulze,et al.  Extractive software product line engineering using model-based delta module generation , 2017, VaMoS.

[42]  Ralf Lämmel,et al.  Bidirectional Transformations: A Cross-Discipline Perspective , 2009, ICMT@TOOLS.

[43]  Krzysztof Czarnecki,et al.  Variability mechanisms in software ecosystems , 2014, Inf. Softw. Technol..

[44]  Christian Wende,et al.  FeatureMapper: mapping features to models , 2008, ICSE Companion '08.

[45]  Pierre-Yves Schobbens,et al.  Model checking lots of systems: efficient verification of temporal properties in software product lines , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[46]  Sven Apel,et al.  Model Superimposition in Software Product Lines , 2009, ICMT@TOOLS.

[47]  Bogdan Dit,et al.  Feature location in source code: a taxonomy and survey , 2013, J. Softw. Evol. Process..

[48]  Sabrina Marczak,et al.  Model comprehension for security risk assessment: an empirical comparison of tabular vs. graphical representations , 2017, Empirical Software Engineering.

[49]  Ariadi Nugroho,et al.  Level of detail in UML models and its impact on model comprehension: A controlled experiment , 2009, Inf. Softw. Technol..

[50]  Thomas Leich,et al.  Do background colors improve program comprehension in the #ifdef hell? , 2012, Empirical Software Engineering.

[51]  M. Kenward,et al.  Design and Analysis of Cross-Over Trials , 1989 .

[52]  Markus Völter,et al.  Model-Driven Software Development: Technology, Engineering, Management , 2006 .

[53]  C. Pacheco,et al.  Project Management in Small-Sized Software Enterprises: A Metamodeling-Based Approach , 2016 .

[54]  Uwe Aßmann,et al.  DeltaEcore - A Model-Based Delta Language Generation Framework , 2014, Modellierung.

[55]  Jordi Cabot,et al.  MoDisco: a generic and extensible framework for model driven reverse engineering , 2010, ASE.

[56]  Marsha Chechik,et al.  N-way model merging , 2013, ESEC/FSE 2013.

[57]  Claus Brabrand,et al.  How Does the Degree of Variability Affect Bug Finding? , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[58]  F. Wilcoxon Individual Comparisons by Ranking Methods , 1945 .

[59]  Charles W. Krueger,et al.  Mega-scale product line engineering at General Motors , 2012, SPLC '12.

[60]  Peng Li,et al.  A UML Model to Simulink Model Transformation Method in the Design of Embedded Software , 2014, 2014 Tenth International Conference on Computational Intelligence and Security.

[61]  Souad Ahriz,et al.  Representing IT Projects Risk Management Best Practices as a Metamodel , 2017 .

[62]  Antonio Vallecillo,et al.  WebML modelling in UML , 2007, IET Softw..

[63]  Vinay Kulkarni,et al.  Generating Enterprise Applications from Models , 2002, OOIS Workshops.

[64]  Steffen Staab,et al.  A semi-automated BPMN-based framework for detecting conflicts between security, data-minimization, and fairness requirements , 2020, Software and Systems Modeling.

[65]  Hyun Seung Son,et al.  Metamodel Design for Model Transformation from Simulink to ECML in Cyber Physical Systems , 2012, FGIT-GDC/IESH/CGAG.

[66]  Jacob Krüger,et al.  Effects of explicit feature traceability on program comprehension , 2019, ESEC/SIGSOFT FSE.

[67]  D. Gopher,et al.  On the Psychophysics of Workload: Why Bother with Subjective Measures? , 1984 .

[68]  Jacob Krüger,et al.  Facing the Truth: Benchmarking the Techniques for the Evolution of Variant-Rich Systems , 2019, SPLC.

[69]  Andy Schürr,et al.  Modularizing Triple Graph Grammars Using Rule Refinement , 2014, FASE.

[70]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[71]  Sandro Schulze,et al.  Detecting Variability in MATLAB/Simulink Models: An Industry-Inspired Technique and its Evaluation , 2017, SPLC.

[72]  Dimitra Dodou,et al.  Five-Point Likert Items: t test versus Mann-Whitney-Wilcoxon , 2010 .

[73]  Michiel Helvensteijn,et al.  Abstract delta modeling , 2010, GPCE '10.

[74]  Shmuel S. Tyszberowicz,et al.  UML Diagram Refinement (Focusing on Class-and Use Case Diagrams) , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[75]  Ernesto Damiani,et al.  The Use of a Meta-Model to Support Multi-Project Process Measurement , 2008, 2008 15th Asia-Pacific Software Engineering Conference.

[76]  Roberto Erick Lopez-Herrejon,et al.  Discovering Software Architectures with Search-Based Merge of UML Model Variants , 2017, ICSR.

[77]  Krzysztof Czarnecki,et al.  Staged configuration through specialization and multilevel configuration of feature models , 2005, Softw. Process. Improv. Pract..

[78]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[79]  Iris Vessey,et al.  Cognitive Fit: A Theory‐Based Analysis of the Graphs Versus Tables Literature* , 1991 .

[80]  Ngiap Chuan Tan,et al.  Subjects with colour vision deficiency in the community: what do primary care physicians need to know? , 2014 .

[81]  Daniel Strüber,et al.  Comparing Reuse Mechanisms for Model Transformation Languages: Design for an Empirical Study , 2016, HuFaMo@MoDELS.

[82]  Andy Schürr,et al.  Checking and Enforcement of Modeling Guidelines with Graph Transformations , 2008, AGTIVE.