Modeling variability in the video domain: language and experience report

In an industrial project, we addressed the challenge of developing a software-based video generator such that consumers and providers of video processing algorithms can benchmark them on a wide range of video variants. This article aims to report on our positive experience in modeling, controlling, and implementing software variability in the video domain. We describe how we have designed and developed a variability modeling language, called VM, resulting from the close collaboration with industrial partners during 2 years. We expose the specific requirements and advanced variability constructs; we developed and used to characterize and derive variations of video sequences. The results of our experiments and industrial experience show that our solution is effective to model complex variability information and supports the synthesis of hundreds of realistic video variants. From the software language perspective, we learned that basic variability mechanisms are useful but not enough; attributes and multi-features are of prior importance; meta-information and specific constructs are relevant for scalable and purposeful reasoning over variability models. From the video domain and software perspective, we report on the practical benefits of a variability approach. With more automation and control, practitioners can now envision benchmarking video algorithms over large, diverse, controlled, yet realistic datasets (videos that mimic real recorded videos)—something impossible at the beginning of the project.

[1]  Jan Bosch,et al.  A taxonomy of variability realization techniques , 2005, Softw. Pract. Exp..

[2]  Martin Törngren,et al.  The CVM Framework - A Prototype Tool for Compositional Variability Management , 2010, VaMoS.

[3]  Myra B. Cohen,et al.  An orchestrated survey of methodologies for automated software test case generation , 2013, J. Syst. Softw..

[4]  Stefan Sobernig,et al.  Quantifying structural attributes of system decompositions in 28 feature-oriented software product lines , 2016, Empirical Software Engineering.

[5]  Øystein Haugen,et al.  An algorithm for generating t-wise covering arrays from large feature models , 2012, SPLC '12.

[6]  Matthias Grochtmann,et al.  Classification trees for partition testing , 1993, Softw. Test. Verification Reliab..

[7]  Klaus Schmid,et al.  Mapping the design-space of textual variability modeling languages: a refined analysis , 2014, International Journal on Software Tools for Technology Transfer.

[8]  Halit Oguztüzün,et al.  From extended feature models to constraint logic programming , 2013, Sci. Comput. Program..

[9]  Douglas C. Schmidt,et al.  Automated reasoning for multi-step feature model configuration problems , 2009, SPLC.

[10]  Alexandr Murashkin,et al.  Visualization and exploration of optimal variants in product line engineering , 2013, SPLC '13.

[11]  Andreas Classen,et al.  A text-based approach to feature modelling: Syntax and semantics of TVL , 2011, Sci. Comput. Program..

[12]  Arnaud Gotlieb,et al.  Automated product line test case selection: industrial case study and controlled experiment , 2017, Software & Systems Modeling.

[13]  Arnaud Gotlieb,et al.  Practical minimization of pairwise-covering test configurations using constraint programming , 2016, Inf. Softw. Technol..

[14]  Donald D. Cowan,et al.  S.P.L.O.T.: software product lines online tools , 2009, OOPSLA Companion.

[15]  Myra B. Cohen,et al.  Coverage and adequacy in software product line testing , 2006, ROSATEA '06.

[16]  Krzysztof Czarnecki,et al.  A Study of Variability Models and Languages in the Systems Software Domain , 2013, IEEE Transactions on Software Engineering.

[17]  Michael Kircher,et al.  Domain specific feature modeling for software product lines , 2012, SPLC '12.

[18]  Mathieu Acher,et al.  ViViD: a variability-based tool for synthesizing video sequences , 2014, SPLC '14.

[19]  Camille Salinesi,et al.  Bridging the gap between product lines and systems engineering: an experience in variability management for automotive model based systems engineering , 2013, SPLC '13.

[20]  Jesús García-Galán,et al.  BETTY: Benchmarking and Testing on the Automated Analysis of Feature Models , 2012 .

[21]  Gunter Saake,et al.  SPL Conqueror: Toward optimization of non-functional properties in software product lines , 2012, Software Quality Journal.

[22]  Myra B. Cohen,et al.  Covering arrays for efficient fault characterization in complex configuration spaces , 2004, IEEE Transactions on Software Engineering.

[23]  Haiyan Zhao,et al.  A BDD-Based Approach to Verifying Clone-Enabled Feature Models' Constraints and Customization , 2008, ICSR.

[24]  Gunter Saake,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014, ACM Comput. Surv..

[25]  Arie van Deursen,et al.  Domain-specific language design requires feature descriptions , 2002 .

[26]  Krzysztof Czarnecki,et al.  Feature and Meta-Models in Clafer: Mixed, Specialized, and Coupled , 2010, SLE.

[27]  Pierre-Yves Schobbens,et al.  Feature Diagrams: A Survey and a Formal Semantics , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[28]  Jacques Klein,et al.  Bypassing the Combinatorial Explosion: Using Similarity to Generate and Prioritize T-Wise Test Configurations for Software Product Lines , 2014, IEEE Transactions on Software Engineering.

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

[30]  Jean-Marc Jézéquel,et al.  Using machine learning to infer constraints for product lines , 2016, SPLC.

[31]  Jan Bosch,et al.  A taxonomy of variability realization techniques: Research Articles , 2005 .

[32]  Krzysztof Czarnecki,et al.  Formalizing cardinality-based feature models and their specialization , 2005, Softw. Process. Improv. Pract..

[33]  Mathieu Acher,et al.  Run Time Adaptation of Video-Surveillance Systems: A Software Modeling Approach , 2011, ICVS.

[34]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

[35]  Cristina Cachero,et al.  Requirements modeling languages for software product lines: A systematic literature review , 2016, Inf. Softw. Technol..

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

[37]  Sergio Segura,et al.  FaMa , 2013, Systems and Software Variability Management.

[38]  Gabor Karsai,et al.  DSLs: the good, the bad, and the ugly , 2008, OOPSLA Companion.

[39]  Hui Zhang,et al.  Image segmentation evaluation: A survey of unsupervised methods , 2008, Comput. Vis. Image Underst..

[40]  Krzysztof Czarnecki,et al.  A survey of variability modeling in industrial practice , 2013, VaMoS.

[41]  Kerstin Mueller,et al.  Software Product Line Engineering Foundations Principles And Techniques , 2016 .

[42]  Andreas Classen,et al.  A Preliminary Review on the Application of Feature Diagrams in Practice , 2010, VaMoS.

[43]  Larry S. Davis,et al.  AVSS 2011 demo session: A large-scale benchmark dataset for event recognition in surveillance video , 2011, AVSS.

[44]  Arnaud Gotlieb,et al.  Multi-objective test prioritization in software product line testing: an industrial case study , 2014, SPLC.

[45]  Pierre-Yves Schobbens,et al.  Beyond Boolean product-line model checking: Dealing with feature attributes and multi-features , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[46]  Mathieu Acher,et al.  Modeling Variability from Requirements to Runtime , 2011, 2011 16th IEEE International Conference on Engineering of Complex Computer Systems.

[47]  Juha Kuusela,et al.  Ten years of product line engineering at Danfoss: lessons learned and way ahead , 2016, SPLC.

[48]  Krzysztof Czarnecki,et al.  Three Cases of Feature-Based Variability Modeling in Industry , 2014, MoDELS.

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

[50]  Patrick Tessier,et al.  Capturing Variability in Model Based Systems Engineering , 2013, CSDM.

[51]  Eelco Visser,et al.  Product Line Engineering Using Domain-Specific Languages , 2011, 2011 15th International Software Product Line Conference.

[52]  Tomi Männistö,et al.  Eight Practical Considerations in Applying Feature Modeling for Product Lines , 2011, ICSR.

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

[54]  Jim R. Parker,et al.  Algorithms for image processing and computer vision , 1996 .

[55]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[56]  Charles W. Krueger,et al.  Systems and software product line engineering with gears from BigLever software , 2014, SPLC '14.

[57]  Laurence Duchien,et al.  Cardinality-based feature models with constraints: a pragmatic approach , 2013, SPLC '13.

[58]  Gunter Saake,et al.  Multi-dimensional variability modeling , 2011, VaMoS.

[59]  Klaus Schmid,et al.  A systematic analysis of textual variability modeling languages , 2013, SPLC '13.

[60]  Mathieu Acher,et al.  A variability-based testing approach for synthesizing video sequences , 2014, ISSTA 2014.

[61]  Sven Apel,et al.  Variability-aware performance prediction: A statistical learning approach , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[62]  João Araújo,et al.  AoURN-based modeling and analysis of software product lines , 2011, Software Quality Journal.

[63]  Sven Apel,et al.  Strategies for product-line verification: Case studies and experiments , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[64]  Douglas C. Schmidt,et al.  Automated diagnosis of feature model configurations , 2010, J. Syst. Softw..

[65]  Sarah Nadi,et al.  Variability Modeling of Cryptographic Components: Clafer Experience Report , 2016, VaMoS.

[66]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[67]  Jean Ponce,et al.  Computer Vision: A Modern Approach , 2002 .

[68]  Hareton K. N. Leung,et al.  A survey of combinatorial testing , 2011, CSUR.

[69]  Vincent Weber,et al.  UTFM - a Next Generation Language and Tool for Feature Modeling , 2014 .

[70]  Danny Weyns,et al.  Variability in Software Systems—A Systematic Literature Review , 2014, IEEE Transactions on Software Engineering.

[71]  Eelco Visser,et al.  DSL Engineering - Designing, Implementing and Using Domain-Specific Languages , 2013 .