"Swarm Computing Applications in Software Engineering"
Swarm Computing Applications in Software Engineering By Chaitanya Contents Introduction Swarm Computing Ant colony optimization algorithms Applications in Software Engineering 2 Introduction Software testing is an important and valuable part of the software development life cycle. Due to the time and cost constraints, it is not possible to test the software manually and fix the defects. Thus the use of test automation plays a very important role in the software testing process. 3 Swarm Computing Swarm Computing/ Swarm Intelligence is defined as the collective behavior of decentralized, self-organized systems, natural or artificial. The concept is employed in work on artificial intelligence. The inspiration often comes from nature, especially biological systems. 4 Swarm Computing The agents follow very simple rules, and although there is no centralized control structure dictating how individual agents should behave, local, and to a certain degree random, interactions between such agents lead to the emergence of "intelligent" global behavior. Natural examples of Swarm Intelligence include ant colonies, bird flocking, animal herding, bacterial growth, and fish schooling. 5 6 Features Inherent parallelism Stochastic nature Adaptivity Use of positive feedback Autocatalytic in nature 7 Ant Colony Optimization (ACO) Algorithms ACOAs have been introduced as powerful tools to solve order-based problems, such as the traveling salesman problem (TSP) and the quadratic assignment problems. The main characteristics of ACSA are positive feedback, distributed computation, and the use of a constructive greedy heuristic. ACOAs, to some extent, mimic the behavior of real ants. 8 Natural Ants Real ants are capable of finding the shortest path from food sources to the nest without using visual cues. They are also capable of adapting to changes in the environment. 9 Food 10 11 12 Natural Ants These capabilities ants have are essentially due to what is called “pheromone trails” that ants use to communicate information among individuals regarding path and to decide where to go. Ants deposit a certain amount of pheromone while walking, and each ant probabilistically prefers to follow a direction rich in pheromone rather than a poorer one. 13 Agents in ACO The ant colony optimization algorithm (ACO) is a probabilistic technique for solving computational problems which can be reduced to finding good paths through graphs. The individual agents are rather simple. However, when the entire colony foraging towards the bait site complicated dynamics are exhibited, achieving a super–nonlinear increase in performance. 14 Applications of ACO ACO algorithm techniques can be used in a number of applications like controlling unmanned vehicles, control nanobots within the body for the purpose of killing cancer tumors. Swarm intelligence has also been applied for data mining. Meta-Heuristic algorithms have been applied to three areas of software engineering: test data generation, module construction and cost/effort prediction. But these algorithms can be applied to many other operations in software engineering and much research should be done in this field. 15 Application of ACO to software testing Three main activities normally associated with software testing are: Test data generation, Test execution involving the use of test data and the software under test and Evaluation of test results. The process of test data generation involves activities for producing a set of test data that satisfied a chosen testing criterion. 16 Requirements for test case generation Transformation of the testing problem into a graph. A heuristic measure for measuring the “goodness” of paths through the graph. A mechanism for creating possible solutions efficiently and a suitable criterion to stop solution generation. A suitable method for updating the pheromone. 17 The generated test suite has to satisfy three criteria: All state coverage Feasibility Optimality 18 Coffee and Cocoa vending machine example 19 Converted graph 20 Individual Agent properties An ant k at a vertex of the graph is associated with a four tuple: Vertex Track Set Target Set Connection Set Pheromone Trace Set 21 Algorithm for agent Evaluation at vertex -Update the track -Evaluate connections Move to next vertex -Select Destination -Move -Update Pheromone 22 Stopping criteria All states have been visited at least once Search upper bound has been reached. The final optimal solution can be obtained by examining all of the solution candidates created by ant exploration. 23 24 Conclusions Current research into the ASOA is still at a nascent age. More potentially beneficial work remains to be done, particularly in the areas of improvement of its computation efficiency. 25 References Automated Software Testing Using Meta-heuristic Technique Based on An Ant Colony Optimization [Praveen Ranjan Srivastava, Km Baby] 2010 Reformulating Software Engineering as a search problem [John Clarke, Bryan jones] An Ant Colony Optimization Approach to Test Sequence Generation for State-Based Software Testing [Huaizhong Li, Chiou Peng] 2005 26 THANK YOU 27