Gathering Requirements for Software Configuration from the Crowd

Today's complex software systems consist of several components that interact in complex ways to provide services to users. In doing so, these systems go through continuous assessment of their context and configure themselves accordingly to keep user satisfaction high. A popular approach to design adaptive software systems is to perform variability modelling, for instance adopting a feature-based approach. Features describe key components and characteristics of a system, which can take different values and be combined in different ways to obtain a system behavior that can best satisfy the needs of different users, who may use the software in different contexts. These design-time models should be complemented by rules that help in deciding when to switch from one valid system configuration to a different one to fit changing user needs or preferences.Eliciting information necessary to build suitable feature models, as well as rules for dynamic reconfigurations that cover relevant scenarios is not an easy task when considering dynamic adaptation in presence of high variability in user profiles. We are experiencing this issue in a project which aims at developing dynamically personalisable software, and specifically a dynamically configurable feedback gathering tool.In this vision paper we propose to use crowdsourcing to elicit knowledge about reconfiguration requirements for dynamically adaptive systems. The proposed approach rests on a two-stage process, which involves the contribution from the crowd of potential system users, as well as from domain experts.

[1]  Anna Perini,et al.  Grammar Based Genetic Programming for Software Configuration Problem , 2017, SSBSE.

[2]  Gustavo Rossi,et al.  Crowdsourcing Mobile Web Applications , 2013, ICWE Workshops.

[3]  Alberto Siena,et al.  Modelling Risks in Open Source Software Component Selection , 2014, ER.

[4]  Zhi Jin,et al.  A Systematic Literature Review of Requirements Modeling and Analysis for Self-adaptive Systems , 2014, REFSQ.

[5]  Anna Perini,et al.  Engineering requirements for adaptive systems , 2015, Requirements Engineering.

[6]  Carlo Ghezzi,et al.  A journey to highly dynamic, self-adaptive service-based applications , 2008, Automated Software Engineering.

[7]  Bashar Nuseibeh,et al.  Social sensing: when users become monitors , 2011, ESEC/FSE '11.

[8]  John Mylopoulos,et al.  Adaptive socio-technical systems: a requirements-based approach , 2011, Requirements Engineering.

[9]  Travis D. Breaux,et al.  Scaling requirements extraction to the crowd: Experiments with privacy policies , 2014, 2014 IEEE 22nd International Requirements Engineering Conference (RE).

[10]  Norbert Seyff,et al.  Feedback Gathering from an Industrial Point of View , 2017, 2017 IEEE 25th International Requirements Engineering Conference (RE).

[11]  Anna Perini,et al.  An ontology of online user feedback in software engineering , 2015, Appl. Ontology.

[12]  Mark Harman,et al.  A survey of the use of crowdsourcing in software engineering , 2017, J. Syst. Softw..

[13]  Cornelius Ncube,et al.  The design of adaptive acquisition of users feedback: An empirical study , 2014, 2014 IEEE Eighth International Conference on Research Challenges in Information Science (RCIS).

[14]  Mahmood Hosseini,et al.  Towards Crowdsourcing for Requirements Engineering , 2014, REFSQ Workshops.

[15]  Anna Perini,et al.  Crowdsourcing for Software Engineering The Crowd in Requirements Engineering The Landscape and Challenges , 2017 .

[16]  Sebastian VanSyckel,et al.  A survey on engineering approaches for self-adaptive systems , 2015, Pervasive Mob. Comput..

[17]  Vítor Estêvão Silva Souza,et al.  A requirements-based approach for the design of adaptive systems , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[18]  Bashar Nuseibeh,et al.  Social Adaptation - When Software Gives Users a Voice , 2012, ENASE.

[19]  Anna Perini,et al.  Engineering adaptive requirements , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

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

[21]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[22]  Anna Perini,et al.  Crowd Intent: Annotation of Intentions Hidden in Online Discussions , 2015, 2015 IEEE/ACM 2nd International Workshop on CrowdSourcing in Software Engineering.

[23]  Kyo Chul Kang,et al.  Variability Modeling , 2013, Systems and Software Variability Management.

[24]  Alan Cooper,et al.  The Inmates are Running the Asylum , 1999, Software-Ergonomie.

[25]  Cornelius Ncube,et al.  Adaptive software-based Feedback Acquisition: A Persona-based design , 2015, 2015 IEEE 9th International Conference on Research Challenges in Information Science (RCIS).

[26]  Moira C. Norrie,et al.  CrowdAdapt: enabling crowdsourced web page adaptation for individual viewing conditions and preferences , 2013, EICS '13.

[27]  Rodolfo E. Haber,et al.  Self-adaptive systems: A survey of current approaches, research challenges and applications , 2013, Expert Syst. Appl..

[28]  Arosha K. Bandara,et al.  Engineering Adaptive Model-Driven User Interfaces , 2016, IEEE Transactions on Software Engineering.