Eliciting Activity Requirements from Crowd Using Genetic Algorithm

Web-based software systems face a wide range of users and situates in different context. Developing such systems needs to deal with the diversity and variability of requirements. Crowd-based requirements engineering performs requirements engineering activities, such as elicitation requirements from the crowd of stakeholders. That leads to the collected requirements being more diverse and wider coverage. However, the requirements elicited from crowd are not directly available and need to be merged into system requirements. It is a tedious and error-prone work without the help of automatic method. System requirements can be expressed in a variety of ways, of which activity diagram is widely used. This paper provides a method based on genetic algorithm. This approach targets to solve two key issues about the individual requirements representation and the requirements synthesis, one is using a triangular matrix encoding scheme to ensure completeness and uniqueness of genetic representation of solution, the other is proposing a generalized information entropy as fitness function to measure candidate solutions. A simple but meaningful example has been used to demonstrate the feasible of this approach. Moreover, during the synthesis of activity diagrams, the information source’s IDs are kept. This can be used for building the traceability links between the system requirements and their source. That will be helpful to requirements management and evolution.

[1]  Tuure Tuunanen,et al.  Engineering a method for wide audience requirements elicitation and integrating it to software development , 2004, 37th Annual Hawaii International Conference on System Sciences, 2004. Proceedings of the.

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

[3]  Rik Eshuis,et al.  Symbolic model checking of UML activity diagrams , 2006, TSEM.

[4]  Rik Eshuis,et al.  Tool support for verifying UML activity diagrams , 2004, IEEE Transactions on Software Engineering.

[5]  Wei Xu,et al.  UML Activity Diagram-Based Automatic Test Case Generation For Java Programs , 2009, Comput. J..

[6]  Pedro R. Falcone Sampaio,et al.  Assessing agile methods: An empirical study , 2004, Journal of the Brazilian Computer Society.

[7]  Mahmood Hosseini,et al.  The four pillars of crowdsourcing: A reference model , 2014, 2014 IEEE Eighth International Conference on Research Challenges in Information Science (RCIS).

[8]  Daniel J. Simon,et al.  Evolutionary optimization algorithms : biologically-Inspired and population-based approaches to computer intelligence , 2013 .

[9]  Walid Maalej,et al.  When users become collaborators: towards continuous and context-aware user input , 2009, OOPSLA Companion.

[10]  Berry Eggen,et al.  Combining User Needs and Stakeholder Requirements: The Value Design Method , 2016, Collaboration in Creative Design.

[11]  Richa Sharma,et al.  Crowdsourcing to elicit requirements for MyERP application , 2015, 2015 IEEE 1st International Workshop on Crowd-Based Requirements Engineering (CrowdRE).

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

[13]  Alimohammad Shahri,et al.  Configuring crowdsourcing for requirements elicitation , 2015, 2015 IEEE 9th International Conference on Research Challenges in Information Science (RCIS).

[14]  Anna Perini,et al.  Towards Supporting the Analysis of Online Discussions in OSS Communities: A Speech-Act Based Approach , 2014, CAiSE Forum.

[15]  A. Farhang-Mehr,et al.  Entropy-based multi-objective genetic algorithm for design optimization , 2002 .

[16]  Debasis Samanta,et al.  Synthesis of test scenarios using UML activity diagrams , 2009, Software & Systems Modeling.