1 / 37

Using Interactive Genetic Algorithm for Requirements Prioritization

Using Interactive Genetic Algorithm for Requirements Prioritization. Using Interactive Genetic Algorithm for Requirements Prioritization Master’s Thesis Presentation. Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions. Francis Palma

estherl
Download Presentation

Using Interactive Genetic Algorithm for Requirements Prioritization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Using Interactive Genetic Algorithm for Requirements Prioritization Using Interactive Genetic Algorithm for Requirements Prioritization Master’s Thesis Presentation Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Francis Palma Department of Information Engineering and Computer Science Universitá degli Studi di Trento francis.palma@studenti.unitn.it December 3, 2010

  2. Presentation Outline Using Interactive Genetic Algorithm for Requirements Prioritization • Problem description • Related works • Genetic Algorithm • Our approach • Case study • Results • Conclusions Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions

  3. Problem Description Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Problem: [Prioritization of Requirements] Tofind the best ordering of requirements in each successive release to ensure quality & value of the delivered system, trade-off constraints & end-user satisfaction.

  4. Problem Description (cont) 1. Acquisition and coding of set of Requirements and Domain Knowledge 2. Apply A Prioritization Technique 3. Output of the ranking Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Why Ordered List?Order of implementation satisfy the developers’ constraints & delivers maximum value to the user. Find it!

  5. Domain Knowledge: Prio & Dep Domain knowledge includes two precedence graphs • Prio • Dep • How to build them? • Prio: For 1st release, initial priorities • Dep: For 1st release, dependencies Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Prio Dep

  6. Classification: State-of-the-Art approaches Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions • User Knowledge refers to the awareness of the requirements attributes and the overall system functionalities to be developed

  7. State-of-the-Art approaches (cont) Using Interactive Genetic Algorithm for Requirements Prioritization • Pairwise Comparison based approaches • Analytic Hierarchy Process (AHP): involves comparing all unique pairs of requirements to determine which of the two is of higher priority, and to what extent • Bubble Sort: compares two requirements & swap them if they are in the wrong order • Cost-Value Approach: each individual requirement is determined on • the value to the users • the cost of implementing the requirements. • It uses the AHP technique • Case Based Ranking (CBRank): exploits a machine learning algorithm to guide the elicitation of user preferences during the prioritization process Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions

  8. State-of-the-Art approaches (cont) Non-Pairwise comparison based approaches Numerical Assignment: grouping requirements into different priority groups MoScoW: groups all requirements into four priority groups MUST have, SHOULD have, COULD have, and WON’T have. Simple Ranking: requirements are simply ranked from integer 1 to N Binary Search Tree: each node represents a requirement, requirements placed in the left subtree of a node are of lower priority and those placed in the right subtree of a node are of higher priority than the node priority. $100 Method: each stakeholder is asked to assume having $100 to distribute over the requirements in a ratio scale Combining Techniques based approaches Planning Game: combination of two prioritization techniques i.e. Numerical Assignment & Simple Ranking Domain Knowledge based approaches Priority Groups: dividing requirements into separate groups. then groups are ranked by using AHP Genetic Algorithm: optimization is an application of GA & used in the problem of requirements prioritization too; uses domain knowledge Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions

  9. State-of-the-Art approaches (cont) Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Scalability is a very common problem of all the approaches!

  10. Genetic Algorithm 1. Acquisition and coding of set of Requirements and Domain Knowledge 2. Apply Genetic Algorithm(no user knowledge) 3. Output of the ranking (the most promising individual) Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions

  11. Genetic Algorithm Pseudo Code Using Interactive Genetic Algorithm for Requirements Prioritization The Canonical GA (a simple pseudo code is presented here): 1. choose initial population 2. evaluate each individual’s fitness REPEAT: 3. select best-ranking individuals to reproduce 4. apply crossover operator 5. apply mutation operator 6. evaluate each individual’s fitness until terminating condition (e.g. until at least one individual has the desired fitness or enough generations have passed) Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions

  12. What is Population & Individuals? Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Population! A set of solution candidates Pr1 An individual, also a solution candidate A requirement as a gene

  13. Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions How we define Individual’s Fitness?

  14. Domain Knowledge Encoding Transform the domain knowledge into graphs Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions

  15. Disagreement Calculation Using Interactive Genetic Algorithm for Requirements Prioritization Prio Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Conflicts = {(R5, R8), (R6, R7), (R6, R8), (R7, R8)} For Pr1

  16. Disagreement Calculation (cont) Using Interactive Genetic Algorithm for Requirements Prioritization Dep Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Conflicts = {(R1, R3), (R1, R7), (R1, R2), (R5, R8)} For Pr1

  17. Disagreement Calculation (cont) • Disagreement: Between a pair of ordering i.e. Pr1 • and Prio, disagreement is the count of pairs that are inverted in two orderings. Lower disagreement defines higher fitness. Using Interactive Genetic Algorithm for Requirements Prioritization Formally define: Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Total Conflicts = {(R5, R8), Prio (R6, R7), (R6, R8), (R7, R8), (R1, R3), Dep (R1, R7), (R1, R2), (R5, R8)} … and so on …

  18. GA Crossover Operator We used cut-head/fill-in-tail and cut-tail/fill-in-head… Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Positions 5-6 as cut points to cut-head/fill-in-tail R4 R1 R5 R8 R6 R7 R9 R2 R3 Pr2 R1 R3 R7 R2 R9 R4 R6 Pr3 R5 R8 R4 R1 R5 R6 R7 R8 R9 R2 R3 Pr2’ - variation allows searching out different available niches, find better fitness values and subsequently better solutions - never produce chromosomes containing duplicate genes.

  19. GA Mutation Operator Using Interactive Genetic Algorithm for Requirements Prioritization Mutation is basically a swap operator,we used requirement-pair-swap Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Pr2 R4 R1 R5 R8 R6 R7 R9 R2 R3 Pr2’ R6 R1 R5 R8 R4 R7 R9 R2 R3 - mutation causes movement in the search space - may produce a stronger chromosome.

  20. GA Selection Operator We used the Tournament Selection for our approach Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions - allows the selection pressure to be easily adjusted - faster than other selection operators i.e. Roulette Wheel Selection - better convergence

  21. Our IGA Approach 1. Acquisition and coding of set of Requirements and Domain Knowledge 2. Apply Interactive Genetic Algorithm(exploiting User Knowledge) 3. Output of the ranking (the most promising individual) Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions

  22. Our Approach: Pairs to be Elicited Using Interactive Genetic Algorithm for Requirements Prioritization Ranked individuals w. r. t. disagreement Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Pr1 = < R1, R3, R2, R4, R5, R6, R7, R8, R9 > vs Pr2 = < R2, R3, R4, R1, R5, R8, R6, R7, R9 > Candidate pairs to be asked to the decision maker

  23. Our Approach: User Feedback Using Interactive Genetic Algorithm for Requirements Prioritization Prio • Why ties appear in population? • Contradictory information • w.r.t. initial constraints • (ii) Nothing is expressed • explicitly in initial constraints • (iii) Common Domain • Knowledge but different • positions in the individuals • Simple example: • Why (R7, R8)? • Case I: Contradictory w.r.t. Prio & Dep.. • Why (R2, R3)? • Case III: Common knowledge but different positions Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Dep

  24. Our Approach: User Feedback Using Interactive Genetic Algorithm for Requirements Prioritization Eli Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions R1< ? > R3 R2< ? > R3 R6< ? > R8 R6 < ? > R8 Experience & knowledge ‘<‘ or ‘>’ User Preference Graph eliOrd So, user knowledge is playing important role…

  25. Our Approach: New Round with New Constraints Using Interactive Genetic Algorithm for Requirements Prioritization • The new evolved population after using GA operators on population: • Crossover • Mutation • Selection • is compared against the new set of constraints graphs Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Prio Dep Eli

  26. Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Evaluation of the Approach

  27. The Case Study Using Interactive Genetic Algorithm for Requirements Prioritization • Prioritize requirements for a real software system, as part of the project ACube (Ambient Aware Assistance) designing a highly technological monitoring environment to be deployed in nursing homes to support medical and assistance staff • After user requirements analysis phase, 60 user requirements and 49 technical requirements Four macro-scenarios have been identified. Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions *ACube is a social welfare project coordinated by Fondazione Bruno Kessler (FBK) and funded by Autonomous Province of Trento under Bando Grandi Progetti, 2006.

  28. Gold Standard (GS) Using Interactive Genetic Algorithm for Requirements Prioritization • For each of the four macro-scenarios, we obtained the Gold Standard (GS)prioritization from the Software Architect of the ACube project • The GS prioritization is the ordering given by the software architect to the requirements when planning their implementation during the ACube project. • Why Gold Standard? • To measure disagreements with respect to GS. • To evaluate our approach in terms of disagreement against other non-interactive approaches using the same GS. Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions

  29. Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Research Questions

  30. R Q 1 • RQ1 (Convergence) Can we observe convergence with respect to the finally elicited fitness function? • Convergence is not obvious immediately, as EliGraph is evolving at early stages. • Although the full fitness function is known only at end of elicitation process. • The best individual in each population converges toward a low value of the final fitness function. Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions YES!

  31. R Q 2 RQ2 (Role of interaction) Does IGA produce improved prioritizations compared to non-interactive requirement ordering? Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions YES! IGA outperforms substantially GA (and RAND), especially when a higher number of pairwise comparisons can be carried out

  32. R Q 3 RQ3 (Role of initial precedence constraints) How does initial availability of precedence constraints affect the performance of IGA? Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Improves! - Different type of Domain Knowledge affects IGA significantly - The improvement of IGA over GA is even higher when limited ranking information is available

  33. R Q 4 RQ4 (Robustness) Is IGA robust with respect to errors committed by the user during the elicitation of pairwise comparisons? Using Interactive Genetic Algorithm for Requirements Prioritization YES! Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions IGA can tolerate user errors up to 20%.

  34. General Discussion Using Interactive Genetic Algorithm for Requirements Prioritization • Cost/benefit trade off offered by IGA as compared to AHP is extremely interesting • With an elicitation effort reduced to 10% of the one required by AHP, IGA produces an apprx. ordering which has a quite low disagreement from the requirement positions in the GS. • User Errors tolerance offered by IGA as compared to AHP is highly reasonable • With an elicitation of very significant amount of less pairs than AHP (i.e. pairwise comparisons), it is reasonable even if IGA accepts up to 20% user error, while using AHP even 10% user error can result a total bad ordering. Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions

  35. Conclusions & Future Works Using Interactive Genetic Algorithm for Requirements Prioritization • We proposed an Interactive Genetic Algorithm to collect pairwise information useful to prioritize the requirements for a software system. • We also verified the robustness of the algorithm with respect to increasing user feedback errors. • We evaluated the approach in a real project (ACube). • In summary, we contributed A NOVEL APPROACH to prioritize requirements & tested its effectiveness empirically. What’s Next? Algorithm: - refining the algorithm - improving GA operators Experiment - off-line: comparisons with other approaches - on-line: controlled experiments with real object (i.e. human) Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions

  36. Paper Publication Using Interactive Genetic Algorithm for Requirements Prioritization A paper was published from this work and was presented at SSBSE 2010: Paolo Tonella1, Angelo Susi1, and Francis Palma2, "Using Interactive GA for Requirements Prioritization" in 2nd International Symposium on Search Based Software Engineering 2010. 1Fondazione Bruno Kessler, Software Engineering Research Unit; 2Department of Inf. Eng. and Computer Science, University of Trento. Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions

  37. Using Interactive Genetic Algorithm for Requirements Prioritization Outline Problem Related Works Genetic Algo Our Approach Case Study Results Discussions Conclusions Thank You!

More Related