variED: an editor for collaborative, real-time feature modeling

Feature models are a helpful means to document, manage, maintain, and configure the variability of a software system, and thus are a core artifact in software product-line engineering. Due to the various purposes of feature models, they can be a cross-cutting concern in an organization, integrating technical and business aspects. For this reason, various stakeholders (e.g., developers and consultants) may get involved into modeling the features of a software product line. Currently, collaboration in such a scenario can only be done with face-to-face meetings or by combining single-user feature-model editors with additional communication and version-control systems. While face-to-face meetings are often costly and impractical, using version-control systems can cause merge conflicts and inconsistency within a model, due to the different intentions of the involved stakeholders. Advanced tools that solve these problems by enabling collaborative, real-time feature modeling, analogous to Google Docs or Overleaf for text editing, are missing. In this article, we build on a previous paper and describe (1) the extended formal foundations of collaborative, real-time feature modeling, (2) our conflict resolution algorithm in more detail, (3) proofs that our formalization converges and preserves causality as well as user intentions, (4) the implementation of our prototype, and (5) the results of an empirical evaluation to assess the prototype’s usability. Our contributions provide the basis for advancing existing featuremodeling tools and practices to support collaborative feature modeling. The results of our evaluation show that our prototype is considered helpful and valuable by 17 users, also indicating potential for extending our tool and opportunities for new research directions.

[1]  Pascal Molli,et al.  Tombstone Transformation Functions for Ensuring Consistency in Collaborative Editing Systems , 2006, 2006 International Conference on Collaborative Computing: Networking, Applications and Worksharing.

[2]  Krzysztof Czarnecki,et al.  Variability in Software: State of the Art and Future Directions - (Extended Abstract) , 2013, FASE.

[3]  Jacob Krüger,et al.  Poster: Knowledge Transfer from Research to Industry: A Survey on Program Comprehension , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).

[4]  Charles W. Krueger BigLever software gears and the 3-tiered SPL methodology , 2007, OOPSLA '07.

[5]  Saul Greenberg,et al.  Real time groupware as a distributed system: concurrency control and its effect on the interface , 1994, CSCW '94.

[6]  Clarence A. Ellis,et al.  Groupware: some issues and experiences , 1991, CACM.

[7]  Rüdiger Schollmeier,et al.  A definition of peer-to-peer networking for the classification of peer-to-peer architectures and applications , 2001, Proceedings First International Conference on Peer-to-Peer Computing.

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

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

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

[11]  Tao Xie,et al.  Model-Driven Impact Analysis of Software Product Lines , 2011, Model-Driven Domain Analysis and Software Development.

[12]  Friedemann Mattern,et al.  Virtual Time and Global States of Distributed Systems , 2002 .

[13]  Jonathan Grudin,et al.  Computer-supported cooperative work: history and focus , 1994, Computer.

[14]  Rok Sosic,et al.  Consistency maintenance in Web-based real-time group editors , 1999, Proceedings. 19th IEEE International Conference on Distributed Computing Systems. Workshops on Electronic Commerce and Web-based Applications. Middleware.

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

[16]  Michael Nieke,et al.  Back to the future: avoiding paradoxes in feature-model evolution , 2018, SPLC.

[17]  Daniel G. Bobrow,et al.  Beyond the chalkboard: computer support for collaboration and problem solving in meetings , 1988, CACM.

[18]  Mark McGranaghan ClojureScript: Functional Programming for JavaScript Platforms , 2011, IEEE Internet Computing.

[19]  Michael Nieke,et al.  Guaranteeing Configuration Validity in Evolving Software Product Lines , 2016, VaMoS.

[20]  Alexander Felfernig,et al.  Towards Anomaly Explanation in Feature Models , 2013, Configuration Workshop.

[21]  Timothy C. Lethbridge,et al.  The Management of University-Industry Collaborations Involving Empirical Studies of Software Enginee , 2008, Guide to Advanced Empirical Software Engineering.

[22]  ChenDavid,et al.  Transparent adaptation of single-user applications for multi-user real-time collaboration , 2006 .

[23]  Elias Kuiter,et al.  Foundations of Collaborative, Real-Time Feature Modeling , 2019, SPLC.

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

[25]  Rolf Molich,et al.  A critique of how to specify the participant group size for usability studies: a practitioner's guide by Macefield , 2010 .

[26]  Friedemann Mattern,et al.  Detecting causal relationships in distributed computations: In search of the holy grail , 1994, Distributed Computing.

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

[28]  Antonio Ruiz Cortés,et al.  FLAME: a formal framework for the automated analysis of software product lines validated by automated specification testing , 2017, Software & Systems Modeling.

[29]  Michaël Rusinowitch,et al.  Formal design and verification of operational transformation algorithms for copies convergence , 2006, Theor. Comput. Sci..

[30]  Bernhard Westfechtel,et al.  Collaborative and Distributed Management of Versioned Model-driven Software Product Lines , 2016, ICSOFT-PT.

[31]  Nadia Bouassida,et al.  Change impact analysis for software product lines , 2016, J. King Saud Univ. Comput. Inf. Sci..

[32]  G. Herman,et al.  The feature interaction problem in telecommunications systems , 1989 .

[33]  Martín Abadi,et al.  Understanding TypeScript , 2014, ECOOP.

[34]  Prasun Dewan,et al.  Architectures for Collaborative Applications , 1999 .

[35]  Meredith Ringel Morris,et al.  Beyond "social protocols": multi-user coordination policies for co-located groupware , 2004, CSCW.

[36]  Rich Hickey,et al.  The Clojure programming language , 2008, DLS '08.

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

[38]  Volker Wulf Negotiability: a metafunction to tailor access to data in groupware , 1995, Behav. Inf. Technol..

[39]  Yi Xu,et al.  Exhaustive search of puzzles in operational transformation , 2014, CSCW.

[40]  Krzysztof Czarnecki,et al.  Cool features and tough decisions: a comparison of variability modeling approaches , 2012, VaMoS.

[41]  Robertas Damasevicius,et al.  Change Impact Analysis of Feature Models , 2012, ICIST.

[42]  Chengzheng Sun,et al.  Operational transformation in real-time group editors: issues, algorithms, and achievements , 1998, CSCW '98.

[43]  Alejandro Quintero,et al.  On Consistency of Operational Transformation Approach , 2012, Infinity.

[44]  Jacob Krüger,et al.  Promote-pl: a round-trip engineering process model for adopting and evolving product lines , 2020, SPLC.

[45]  Chengzheng Sun,et al.  Undoing any operation in collaborative graphics editing systems , 2001, GROUP.

[46]  Marc Shapiro,et al.  Conflict-Free Replicated Data Types , 2011, SSS.

[47]  Eduardo Figueiredo,et al.  A Systematic Literature Review of Software Product Line Management Tools , 2015, ICSR.

[48]  Sven Apel,et al.  Views on Internal and External Validity in Empirical Software Engineering , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[49]  Wentong Cai,et al.  Transparent adaptation of single-user applications for multi-user real-time collaboration , 2006, TCHI.

[50]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[51]  Chengzheng Sun,et al.  Consistency maintenance in real-time collaborative graphics editing systems , 2002, TCHI.

[52]  Simon J. Gibbs,et al.  LIZA: an extensible groupware toolkit , 1989, CHI '89.

[53]  Li Yi,et al.  CoFM: An environment for collaborative feature modeling , 2012, 2012 20th IEEE International Requirements Engineering Conference (RE).

[54]  Alan R. Dennis,et al.  Lessons from the Early Adopters of Web Groupware , 1998, J. Manag. Inf. Syst..

[55]  Mónica Pinto,et al.  Software Product Line Engineering: A Practical Experience , 2019, SPLC.

[56]  Chengzheng Sun,et al.  A multi-version approach to conflict resolution in distributed groupware systems , 2000, Proceedings 20th IEEE International Conference on Distributed Computing Systems.

[57]  Mario Kolberg,et al.  Feature interaction: a critical review and considered forecast , 2003, Comput. Networks.

[58]  Chengzheng Sun,et al.  Optional instant locking in distributed collaborative graphics editing systems , 2001, Proceedings. Eighth International Conference on Parallel and Distributed Systems. ICPADS 2001.

[59]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

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

[61]  Manfred Reichert,et al.  Towards Integrated Variant Management in Global Software Engineering: An Experience Report , 2013, 2013 IEEE 8th International Conference on Global Software Engineering.

[62]  Magnus C. Ohlsson,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[63]  Thomas Thüm,et al.  Explaining anomalies in feature models , 2016, GPCE.

[64]  Gordon V. Cormack A Counterexample to the Distributed Operational Transform and a Corrected Algorithm for Point-to-point Communication , 2002 .

[65]  Saul Greenberg Personalisable Groupware: Accommodating Individual Roles and Group Differences , 1991, ECSCW.

[66]  Ritch Macefield,et al.  How to specify the participant group size for usability studies: a practitioner's guide , 2009 .

[67]  Chengzheng Sun,et al.  Operational transformation for collaborative word processing , 2004, CSCW.

[68]  Lionel C. Briand,et al.  Change Impact Analysis for Evolving Configuration Decisions in Product Line Use Case Models , 2018, 2019 IEEE/ACM 10th International Symposium on Software and Systems Traceability (SST).

[69]  Clarence A. Ellis,et al.  Concurrency control in groupware systems , 1989, SIGMOD '89.

[70]  Pierre-Yves Schobbens,et al.  Generic semantics of feature diagrams , 2007, Comput. Networks.

[71]  A. B. Kahn,et al.  Topological sorting of large networks , 1962, CACM.

[72]  Danny Z. Chen,et al.  A Consistency Model and Supporting Schemes for Real-time Cooperative Editing Systems , 1996 .

[73]  Alfred V. Aho,et al.  The Transitive Reduction of a Directed Graph , 1972, SIAM J. Comput..

[74]  Li Yi,et al.  CoFM: a web-based collaborative feature modeling system for internetware requirements' gathering and continual evolution , 2010, Internetware.

[75]  Jacob Krüger,et al.  Principles of feature modeling , 2019, ESEC/SIGSOFT FSE.

[76]  Mehmet A. Orgun,et al.  A Multi-versioning Algorithm for Intention Preservation in Distributed Real-time Group Editors , 2003, ACSC.

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

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

[79]  Robert Johansen,et al.  Groupware: Future directions and wild cards , 1991 .

[80]  Stefan Kowalewski,et al.  EvoFM: feature-driven planning of product-line evolution , 2010, PLEASE '10.

[81]  Yanchun Zhang,et al.  Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems , 1998, TCHI.

[82]  Lianping Chen,et al.  A systematic review of evaluation of variability management approaches in software product lines , 2011, Inf. Softw. Technol..

[83]  Bernhard Westfechtel,et al.  Maintaining Workspace Consistency in Filtered Editing of Dynamically Evolving Model-driven Software Product Lines , 2017, MODELSWARD.

[84]  Thomas Berlage,et al.  A framework for shared applications with a replicated architecture , 1993, UIST '93.

[85]  Thomas Leich,et al.  Mastering Software Variability with FeatureIDE , 2017, Springer International Publishing.

[86]  Colin J. Fidge,et al.  Timestamps in Message-Passing Systems That Preserve the Partial Ordering , 1988 .

[87]  Franck Petit,et al.  Stabilization, Safety, and Security of Distributed Systems , 2016, Lecture Notes in Computer Science.