An Ant Colony Optimization Approach to the Software Release Planning Problem

Similar documents
An Ant Colony Optimization Approach to the Software Release Planning Problem with Dependent Requirements

Ant Colony Optimization Resource Allocation for Software Release Planning

MuACOsm A New Mutation-Based Ant Colony Optimization Algorithm for Learning Finite-State Machines

An ACO Approach to Solve a Variant of TSP

vii TABLE OF CONTENTS CHAPTER TITLE PAGE DECLARATION DEDICATION ACKNOWLEDGEMENT ABSTRACT ABSTRAK

STUDY OF PROJECT SCHEDULING AND RESOURCE ALLOCATION USING ANT COLONY OPTIMIZATION 1

Projects - Neural and Evolutionary Computing

Ant Colony Optimization and Constraint Programming

Finding Liveness Errors with ACO

An Integer Programming Model for the School Timetabling Problem

An Improved ACO Algorithm for Multicast Routing

Ant Colony Optimization (ACO)

D A T A M I N I N G C L A S S I F I C A T I O N

CHAPTER 6 MAJOR RESULTS AND CONCLUSIONS

EA and ACO Algorithms Applied to Optimizing Location of Controllers in Wireless Networks

An ACO-based Approach for Scheduling Task Graphs with Communication Costs

TEST CASE SELECTION & PRIORITIZATION USING ANT COLONY OPTIMIZATION

Overview. Swarms in nature. Fish, birds, ants, termites, Introduction to swarm intelligence principles Particle Swarm Optimization (PSO)

Numerical Research on Distributed Genetic Algorithm with Redundant

Biogeography Based Optimization (BBO) Approach for Sensor Selection in Aircraft Engine

Using Ant Colony Optimization for Infrastructure Maintenance Scheduling

QoS Guaranteed Intelligent Routing Using Hybrid PSO-GA in Wireless Mesh Networks

A Parallel Processor for Distributed Genetic Algorithm with Redundant Binary Number

CLOUD DATABASE ROUTE SCHEDULING USING COMBANATION OF PARTICLE SWARM OPTIMIZATION AND GENETIC ALGORITHM

ACO Based Dynamic Resource Scheduling for Improving Cloud Performance

Extended Finite-State Machine Inference with Parallel Ant Colony Based Algorithms

Requirements Selection: Knowledge based optimization techniques for solving the Next Release Problem

HYBRID GENETIC ALGORITHM PARAMETER EFFECTS FOR OPTIMIZATION OF CONSTRUCTION RESOURCE ALLOCATION PROBLEM. Jin-Lee KIM 1, M. ASCE

A Service Revenue-oriented Task Scheduling Model of Cloud Computing

HYBRID ACO-IWD OPTIMIZATION ALGORITHM FOR MINIMIZING WEIGHTED FLOWTIME IN CLOUD-BASED PARAMETER SWEEP EXPERIMENTS

AN APPROACH FOR SOFTWARE TEST CASE SELECTION USING HYBRID PSO


International Journal of Emerging Technologies in Computational and Applied Sciences (IJETCAS)

Management of Software Projects with GAs

A Comparative Study of Scheduling Algorithms for Real Time Task

A Binary Model on the Basis of Imperialist Competitive Algorithm in Order to Solve the Problem of Knapsack 1-0

INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET)

Optimization and Ranking in Web Service Composition using Performance Index

An ACO/VNS Hybrid Approach for a Large-Scale Energy Management Problem

Introduction. Swarm Intelligence - Thiemo Krink EVALife Group, Dept. of Computer Science, University of Aarhus

A hybrid Approach of Genetic Algorithm and Particle Swarm Technique to Software Test Case Generation

A DISTRIBUTED APPROACH TO ANT COLONY OPTIMIZATION

AN APPROACH FOR OBJECT FINDING USING MOBILE ROBOTS BASED ON ACO

ACO Hypercube Framework for Solving a University Course Timetabling Problem

Ant Colony Optimization for RDF Chain Queries for Decision Support

Software Project Management with GAs

Evaluation of Different Task Scheduling Policies in Multi-Core Systems with Reconfigurable Hardware

Ant colony optimization techniques for the vehicle routing problem

A Review And Evaluations Of Shortest Path Algorithms

Computational intelligence in intrusion detection systems

Modified Ant Colony Optimization for Solving Traveling Salesman Problem

ISSN: ISO 9001:2008 Certified International Journal of Engineering Science and Innovative Technology (IJESIT) Volume 2, Issue 3, May 2013

Swarm Intelligence Algorithms Parameter Tuning

Optimised Realistic Test Input Generation

Manjeet Kaur Bhullar, Kiranbir Kaur Department of CSE, GNDU, Amritsar, Punjab, India

A SURVEY ON GENETIC ALGORITHM FOR INTRUSION DETECTION SYSTEM

Comparing Algorithms for Search-Based Test Data Generation of Matlab R Simulink R Models

Genetic Algorithm. Based on Darwinian Paradigm. Intrinsically a robust search and optimization mechanism. Conceptual Algorithm

Intelligent Modeling of Sugar-cane Maturation

A Performance Comparison of GA and ACO Applied to TSP

Application Partitioning on Programmable Platforms Using the Ant Colony Optimization

The ACO Encoding. Alberto Moraglio, Fernando E. B. Otero, and Colin G. Johnson

Software Framework for Vehicle Routing Problem with Hybrid Metaheuristic Algorithms

Bachelor Thesis Performance comparison of heuristic algorithms in routing optimization of sequencing traversing cars in a warehouse

The 10 th International Scientific Conference elearning and software for Education Bucharest, April 24-25, / X

A GENETIC ALGORITHM FOR RESOURCE LEVELING OF CONSTRUCTION PROJECTS

An Efficient Approach for Task Scheduling Based on Multi-Objective Genetic Algorithm in Cloud Computing Environment

Computational Intelligence Algorithms for Optimized Vehicle Routing Applications in Geographic Information Systems

SmartPATH: An Efficient Hybrid. ACO-GA Algorithm for Solving the Global Path Planning Problem of Mobile Robots

A SURVEY ON WORKFLOW SCHEDULING IN CLOUD USING ANT COLONY OPTIMIZATION

Praktikum Wissenschaftliches Rechnen (Performance-optimized optimized Programming)

Proposed Software Testing Using Intelligent techniques (Intelligent Water Drop (IWD) and Ant Colony Optimization Algorithm (ACO))

Multi-Objective Ant Colony Optimization for Solving the Twin- Screw Extrusion Configuration Problem

Time-line based model for software project scheduling

Application of GA for Optimal Location of FACTS Devices for Steady State Voltage Stability Enhancement of Power System

Resource Scheduling in Cloud using Bacterial Foraging Optimization Algorithm

APPLICATION OF ADVANCED SEARCH- METHODS FOR AUTOMOTIVE DATA-BUS SYSTEM SIGNAL INTEGRITY OPTIMIZATION

BMOA: Binary Magnetic Optimization Algorithm

COMPE 564/ MODES 662 Natural Computing

GA as a Data Optimization Tool for Predictive Analytics

Architectural Design for Space Layout by Genetic Algorithms

Effective Load Balancing for Cloud Computing using Hybrid AB Algorithm

International Journal of Emerging Technology & Research

Automatic Test Data Generation-Achieving Optimality Using Ant-Behaviour

An ant colony optimization for single-machine weighted tardiness scheduling with sequence-dependent setups

HYBRID OPTIMIZATION FOR GRID SCHEDULING USING GENETIC ALGORITHM WITH LOCAL SEARCH

Solving Traveling Salesman Problem by Using Improved Ant Colony Optimization Algorithm

Cellular Automaton: The Roulette Wheel and the Landscape Effect

Evolutionary SAT Solver (ESS)

An Improved Ant Colony Optimization Algorithm for Software Project Planning and Scheduling

Optimal PID Controller Design for AVR System

Coverage Criteria for Search Based Automatic Unit Testing of Java Programs

Random vs. Structure-Based Testing of Answer-Set Programs: An Experimental Comparison

A Multi-Objective Performance Evaluation in Grid Task Scheduling using Evolutionary Algorithms

Genetic Algorithm Based Interconnection Network Topology Optimization Analysis

Research Article Improved Ant Algorithms for Software Testing Cases Generation

Production Scheduling for Dispatching Ready Mixed Concrete Trucks Using Bee Colony Optimization

Comparison of ACO and GA Techniques to Generate Neural Network Based Bezier-PARSEC Parameterized Airfoil

Alpha Cut based Novel Selection for Genetic Algorithm

Study on Cloud Computing Resource Scheduling Strategy Based on the Ant Colony Optimization Algorithm

Transcription:

SBSE for Early Lifecyle Software Engineering 23 rd February 2011 London, UK An Ant Colony Optimization Approach to the Software Release Planning Problem with Dependent Requirements Jerffeson Teixeira de Souza, Ph.D Optimization in Software Engineering Group (GOES.UECE) State University of Ceará, Brazil

Nice to meet you, Jerffeson Teixeira de Souza, Ph.D. State University of Ceará, Brazil Professor http://goes.comp.uece.br/ prof.jerff@gmail.com

Our little time will be divided as follows Motivation Problem Definition Research Questions Problem Encoding The ACO Algorithm Experimental Evaluation Conclusion

Motivation The Search Based Software Engineering (SBSE) field has been benefited from a number of general search methods. Surprisingly, even with the large applicability and the significant results obtained by the Ant Colony Optimization (ACO) metaheuristic, very little has been done regarding the employment of this strategy to tackle software engineering problems modeled as optimization problems.

Ant Colony Optimization swarm intelligence framework, inspired by the behavior of ants during food search in nature. ACO mimics the indirect communication strategy employed by real ants mediated by pheromone trails, allowing óri individual ants to adapt their behavior to reflect the colony s search experience.

The software release planning problem addresses the selection and assignment of requirements to a sequence of releases, such that the most important and riskier requirements are anticipated, and both cost and precedence constraints are met.

The software release planning problem addresses the selection and assignment of requirements to a sequence of releases, such that the most important and riskier requirements are anticipated, and both cost and precedence constraints are met.

The software release planning problem addresses the selection and assignment of requirements to a sequence of releases, such that the most important and riskier requirements are anticipated, and both cost and precedence constraints are met.

The software release planning problem addresses the selection and assignment of requirements to a sequence of releases, such that the most important and riskier requirements are anticipated, and both cost and precedence constraints are met.

How can the ACO framework be adapted to solve the Software Release Planning problem in the presence of dependent requirements? ACO for the Software Release Planning problem

How can the ACO frameworkbe adapted to solve the Software Release Planning problem in the presence of dependent requirements? ACO for the Software Release Planning problem How does the proposed ACO adaptation compare to other metaheuristics in solving the Software Release Planning problem in the presence of dependent requirements? ACO versus Other Metaheuristics?

How can the ACO algorithm be adapted to solve the Software Release Planning problem in the presence of dependent requirements? ACO for the Software Release Planning problem THE ACO ALGORITHM

PROBLEM ENCONDING The problem will be encoded as a directed graph,, where, with representing mandatory moves, and representing optional ones. i. each vertex in represents a requirement ; ii. a directed mandatory edge, if ; iii. a directed optional edge, if and.

MORE PROBLEM ENCONDING if requirement has no precedent requirements and, for all unvisited requirements where

OVERALL INITIALIZATION COUNT 1 MAIN LOOP REPEAT MAIN LOOP INITIALIZATION FOR ALL vertices r i V, visited i False FOR ALL vertices r i V, current_planning i 0 SINGLE RELEASE PLANNING LOOP // FINDS A NEW RELEASE PLANNING (current_planning) THE PROPOSED ACO ALGORITHM FOR THE SOFTWARE RELEASE PLANNING PROBLEM MAIN LOOP FINALIZATION IF current_planning.eval( ) > best_planning.eval( ) THEN best_planning current_planning COUNT ++ UNTIL COUNT > MAX_COUNT RETURN best_planning

OVERALL INITIALIZATION COUNT 1 MAIN LOOP REPEAT MAIN LOOP INITIALIZATION FOR ALL vertices r i V, visited i False FOR ALL vertices r i V, current_planning i 0 SINGLE RELEASE PLANNING LOOP // FINDS A NEW RELEASE PLANNING (current_planning) MAIN LOOP FINALIZATION IF current_planning.eval( ) > best_planning.eval( ) THEN best_planning current_planning COUNT ++ UNTIL COUNT > MAX_COUNT RETURN best_planning

OVERALL INITIALIZATION COUNT 1 MAIN LOOP REPEAT MAIN LOOP INITIALIZATION FOR ALL vertices r i V, visited i False FOR ALL vertices r i V, current_planning i 0 SINGLE RELEASE PLANNING LOOP // FINDS A NEW RELEASE PLANNING (current_planning) MAIN LOOP FINALIZATION IF current_planning.eval( ) > best_planning.eval( ) THEN best_planning current_planning COUNT ++ UNTIL COUNT > MAX_COUNT RETURN best_planning

OVERALL INITIALIZATION COUNT 1 MAIN LOOP REPEAT MAIN LOOP INITIALIZATION FOR ALL vertices r i V, visited i False FOR ALL vertices r i V, current_planning i 0 SINGLE RELEASE PLANNING LOOP // FINDS A NEW RELEASE PLANNING (current_planning) MAIN LOOP FINALIZATION IF current_planning.eval( ) > best_planning.eval( ) THEN best_planning current_planning COUNT ++ UNTIL COUNT > MAX_COUNT RETURN best_planning

OVERALL INITIALIZATION COUNT 1 MAIN LOOP REPEAT MAIN LOOP INITIALIZATION FOR ALL vertices r i V, visited i False FOR ALL vertices r i V, current_planning i 0 SINGLE RELEASE PLANNING LOOP // FINDS A NEW RELEASE PLANNING (current_planning) MAIN LOOP FINALIZATION IF current_planning.eval( ) > best_planning.eval( ) THEN best_planning current_planning COUNT ++ UNTIL COUNT > MAX_COUNT RETURN best_planning

OVERALL INITIALIZATION COUNT 1 MAIN LOOP REPEAT MAIN LOOP INITIALIZATION FOR ALL vertices r i V, visited i False FOR ALL vertices r i V, current_planning i 0 SINGLE RELEASE PLANNING LOOP // FINDS A NEW RELEASE PLANNING (current_planning) MAIN LOOP FINALIZATION IF current_planning.eval( ) > best_planning.eval( ) THEN best_planning current_planning COUNT ++ UNTIL COUNT > MAX_COUNT RETURN best_planning

OVERALL INITIALIZATION COUNT 1 MAIN LOOP REPEAT MAIN LOOP INITIALIZATION FOR ALL vertices r i V, visited i False FOR ALL vertices r i V, current_planning i 0 SINGLE RELEASE PLANNING LOOP // FINDS A NEW RELEASE PLANNING (current_planning) MAIN LOOP FINALIZATION IF current_planning.eval( ) > best_planning.eval( ) THEN best_planning current_planning COUNT ++ UNTIL COUNT > MAX_COUNT RETURN best_planning

OVERALL INITIALIZATION COUNT 1 MAIN LOOP REPEAT MAIN LOOP INITIALIZATION FOR ALL vertices r i V, visited i False FOR ALL vertices r i V, current_planning i 0 SINGLE RELEASE PLANNING LOOP // FINDS A NEW RELEASE PLANNING (current_planning) MAIN LOOP FINALIZATION IF current_planning.eval( ) > best_planning.eval( ) THEN best_planning current_planning COUNT ++ UNTIL COUNT > MAX_COUNT RETURN best_planning

SINGLE RELEASE PLANNING LOOP FOR EACH Release, k Randomly place ant k in a vertex r i V, where visited i False and overall_cost i budgetrelease k ADDS (r i, k) WHILE opt_vis k (i) 0 DO Move ant k to a vertex r j opt_vis k (i) with probability p k ij ADDS (r j, k) i j

SINGLE RELEASE PLANNING LOOP FOR EACH Release, k Randomly place ant k in a vertex r i V, where visited i False and overall_cost i budgetrelease k ADDS (r i, k) WHILE opt_vis k (i) 0 DO Move ant k to a vertex r j opt_vis k (i) with probability p k ij ADDS (r j, k) i j

SINGLE RELEASE PLANNING LOOP FOR EACH Release, k Randomly place ant k in a vertex r i V, where visited i False and overall_cost i budgetrelease k ADDS (r i, k) WHILE opt_vis k (i) 0 DO Move ant k to a vertex r j opt_vis k (i) with probability p k ij ADDS (r j, k) i j

// Besides r i, adds to release k all of its dependent requirements, and, repeatedly, their dependent requirements ADDS (r i, k) ENQUEUE (Q, r i ) WHILE Q DO r d DEQUEUE (Q) FOR EACH r s opt_vis k (i) DO ENQUEUE (Q, r s ) visited d True current_planning d k

// Besides r i, adds to release k all of its dependent requirements, and, repeatedly, their dependent requirements ADDS (r i, k) ENQUEUE (Q, r i ) WHILE Q DO r d DEQUEUE (Q) FOR EACH r s opt_vis k (i) DO ENQUEUE (Q, r s ) visited d True current_planning d k

// Besides r i, adds to release k all of its dependent requirements, and, repeatedly, their dependent requirements ADDS (r i, k) ENQUEUE (Q, r i ) WHILE Q DO r d DEQUEUE (Q) FOR EACH r s opt_vis k (i) DO ENQUEUE (Q, r s ) visited d True current_planning d k

// Besides r i, adds to release k all of its dependent requirements, and, repeatedly, their dependent requirements ADDS (r i, k) ENQUEUE (Q, r i ) WHILE Q DO r d DEQUEUE (Q) FOR EACH r s opt_vis k (i) DO ENQUEUE (Q, r s ) visited d True current_planning d k

// Besides r i, adds to release k all of its dependent requirements, and, repeatedly, their dependent requirements ADDS (r i, k) ENQUEUE (Q, r i ) WHILE Q DO r d DEQUEUE (Q) FOR EACH r s opt_vis k (i) DO ENQUEUE (Q, r s ) visited d True current_planning d k

// Besides r i, adds to release k all of its dependent requirements, and, repeatedly, their dependent requirements ADDS (r i, k) ENQUEUE (Q, r i ) WHILE Q DO r d DEQUEUE (Q) FOR EACH r s opt_vis k (i) DO ENQUEUE (Q, r s ) visited d True current_planning d k

// Besides r i, adds to release k all of its dependent requirements, and, repeatedly, their dependent requirements ADDS (r i, k) ENQUEUE (Q, r i ) WHILE Q DO r d DEQUEUE (Q) FOR EACH r s opt_vis k (i) DO ENQUEUE (Q, r s ) visited d True current_planning d k

// Besides r i, adds to release k all of its dependent requirements, and, repeatedly, their dependent requirements ADDS (r i, k) ENQUEUE (Q, r i ) WHILE Q DO r d DEQUEUE (Q) FOR EACH r s opt_vis k (i) DO ENQUEUE (Q, r s ) visited d True current_planning d k

SINGLE RELEASE PLANNING LOOP FOR EACH Release, k Randomly place ant k in a vertex r i V, where visited i False and overall_cost i budgetrelease k ADDS (r i, k) WHILE opt_vis k (i) 0 DO Move ant k to a vertex r j opt_vis k (i) with probability p k ij ADDS (r j, k) i j

SINGLE RELEASE PLANNING LOOP FOR EACH Release, k Randomly place ant k in a vertex r i V, where visited i False and overall_cost i budgetrelease k ADDS (r i, k) WHILE opt_vis k (i) 0 DO Move ant k to a vertex r j opt_vis k (i) with probability p k ij ADDS (r j, k) i j

SINGLE RELEASE PLANNING LOOP FOR EACH Release, k Randomly place ant k in a vertex r i V, where visited i False and overall_cost i budgetrelease k ADDS (r i, k) WHILE opt_vis k (i) 0 DO Move ant k to a vertex r j opt_vis k (i) with probability p k ij ADDS (r j, k) i j

SINGLE RELEASE PLANNING LOOP FOR EACH Release, k Randomly place ant k in a vertex r i V, where visited i False and overall_cost i budgetrelease k ADDS (r i, k) WHILE opt_vis k (i) 0 DO Move ant k to a vertex r j opt_vis k (i) with probability p k ij ADDS (r j, k) i j

SINGLE RELEASE PLANNING LOOP FOR EACH Release, k Randomly place ant k in a vertex r i V, where visited i False and overall_cost i budgetrelease k ADDS (r i, k) WHILE opt_vis k (i) 0 DO Move ant k to a vertex r j opt_vis k (i) with probability p k ij ADDS (r j, k) i j

EXPERIMENTAL EVALUATION RESULTS AND ANALYSES How does the proposed ACO adaptation compare to other metaheuristics in solving the Software Release Planning problem in the presence of dependent requirements? ACO versus Other Metaheuristics?

The Experimental Data Table below presents the number of releases, requirements and clients of the three synthetically generated instances used in the experiments. Instance Instance Features Name # Releases # Requirements # Clients INST.A 5 30 3 INST.B 10 50 5 INST.C 20 80 8

The Algorithms Genetic Algorithm (GA) widely applied evolutionary algorithm, inspired by Darwin s theory of natural selection, which simulates biological processes such as Inheritance, mutation, crossover, and selection Simulated Annealing (SA) it is a procedure for solving arbitrary optimization problems based on an analogy with the annealing process in solids.

Comparison Metrics Quality it relates to the quality of each generated solution, measured by the value of the objective function. Execution Time it measures the required execution time of each strategy.

RESULTS Instance GA SA ACO INST.A 8,508.50 ± 337.08 8,143.95 ± 679.84 10,753.75 ± 174.15 INST.B 29,815.60 ± 822.03 27,683.75 ± 1,360.96 37,031.40 ± 318.88 INST.C 211,196.15 ± 3,562.85 198,431.30 ± 8,549.32 255,149.05 ± 2,547.04 Quality of Results for Instaces A, B anc C averages and standard deviations, over 100 executions

RESULTS Instance GA SA ACO INST.A 693.75 ± 26.69 150.75 ± 7.79 128.25 ± 17.85 INST.B 2,597.10 ± 69.22 329.60 ± 33.64 284.25 ± 21.99 INST.C 125,721.85 ± 13.037.98 2,879.80 ± 1.038.67 1,294.05 ± 35.39 Execution time (in milliseconds) for Instaces A, B anc C averages and standard deviations, over 100 executions

12000 11000 10000 9000 8000 I N S T A 7000 6000 Genetic Algorithm Simulated Annealing Ant Colony Optimization Boxplots showing maximum ( ), minimum ( ) and 25% - 75% quartile ranges of quality for all instances, for GA, SA and ACO.

39000 37000 35000 33000 31000 29000 27000 25000 23000 Genetic Algorithm Simulated Annealing Ant Colony Optimization I N S T B Boxplots showing maximum ( ), minimum ( ) and 25% - 75% quartile ranges of quality for all instances, for GA, SA and ACO.

280000 260000 240000 220000 200000 I N S T C 180000 160000 Genetic Algorithm Simulated Annealing Ant Colony Optimization Boxplots showing maximum ( ), minimum ( ) and 25% - 75% quartile ranges of quality for all instances, for GA, SA and ACO.

Threats to Validity Small number, size and diversity of instances Artificial instances Parameterization of algorithms

Very little has been done regarding the employment of the Ant Colony Optimization (ACO) framework to tackle software engineering problems modeled as optimization problems. This talk described a novel ACO-based approach for the Software Release Planning problem with the presence of dependent requirement. All experimental results pointed out to the ability of the proposed ACO approach to generate precise solutions with very little computational effort. CONCLUSIONS

INVITATION II Brazilian Workshop on Optimization in Software Engineering along with XXV Brazilian Symposium on Software Engineering (SBES 2011) XV Brazilian Symposium on Programming Languages (SBLP 2011) XIV Brazilian Symposium on Formal Methods (SBMF 2011) V Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS 2011) SÃO PAULO - SP, BRAZIL SEPTEMBER 26-30, 2011 http://www.each.usp.br/cbsoft2011

That is it! Thanks for your time and attention.