Top Banner
Swarm Computing Swarm Computing Applications in Applications in Software Engineering Software Engineering By Chaitanya
27

Swarm Computing Applications in Software Engineering

Dec 30, 2015

Download

Documents

carter-sampson

Swarm Computing Applications in Software Engineering. By Chaitanya. Contents. Introduction Swarm Computing Ant colony optimization algorithms Applications in Software Engineering. Introduction. Software testing is an important and valuable part of the software development life cycle. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Swarm Computing Applications in Software Engineering

Swarm Computing Swarm Computing Applications in Software Applications in Software

EngineeringEngineering

ByChaitanya

Page 2: Swarm Computing Applications in Software Engineering

ContentsContentsIntroductionSwarm ComputingAnt colony optimization

algorithmsApplications in Software

Engineering

2

Page 3: Swarm Computing Applications in Software Engineering

IntroductionIntroductionSoftware 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

Page 4: Swarm Computing Applications in Software Engineering

Swarm ComputingSwarm ComputingSwarm 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

Page 5: Swarm Computing Applications in Software Engineering

Swarm ComputingSwarm ComputingThe 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

Page 6: Swarm Computing Applications in Software Engineering

6

Page 7: Swarm Computing Applications in Software Engineering

FeaturesFeaturesInherent parallelismStochastic natureAdaptivity Use of positive feedbackAutocatalytic in nature

7

Page 8: Swarm Computing Applications in Software Engineering

Ant Colony Optimization Ant Colony Optimization (ACO) Algorithms(ACO) AlgorithmsACOAs 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

Page 9: Swarm Computing Applications in Software Engineering

Natural AntsNatural AntsReal 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

Page 10: Swarm Computing Applications in Software Engineering

10

Food

Page 11: Swarm Computing Applications in Software Engineering

11

Page 12: Swarm Computing Applications in Software Engineering

12

Page 13: Swarm Computing Applications in Software Engineering

Natural AntsNatural AntsThese 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

Page 14: Swarm Computing Applications in Software Engineering

Agents in ACOAgents in ACOThe 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

Page 15: Swarm Computing Applications in Software Engineering

Applications of ACOApplications of ACOACO 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

Page 16: Swarm Computing Applications in Software Engineering

Application of ACO to Application of ACO to software testingsoftware testingThree 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

Page 17: Swarm Computing Applications in Software Engineering

Requirements for test case Requirements for test case generationgenerationTransformation 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

Page 18: Swarm Computing Applications in Software Engineering

The generated test suite has to satisfy three criteria:All state coverageFeasibility Optimality

18

Page 19: Swarm Computing Applications in Software Engineering

Coffee and Cocoa vending Coffee and Cocoa vending machine examplemachine example

19

Page 20: Swarm Computing Applications in Software Engineering

Converted graphConverted graph

20

Page 21: Swarm Computing Applications in Software Engineering

Individual Agent Individual Agent propertiespropertiesAn ant k at a vertex of the graph is associated with a four tuple:Vertex Track SetTarget SetConnection SetPheromone Trace Set

21

Page 22: Swarm Computing Applications in Software Engineering

Algorithm for agentAlgorithm for agentEvaluation at vertex -Update the track

-Evaluate connectionsMove to next vertex

-Select Destination-Move-Update Pheromone

22

Page 23: Swarm Computing Applications in Software Engineering

Stopping criteriaStopping criteriaAll states have been visited at least onceSearch upper bound has been reached.

The final optimal solution can be obtained by examining all of the solution candidates created by ant exploration.

23

Page 24: Swarm Computing Applications in Software Engineering

24

Page 25: Swarm Computing Applications in Software Engineering

ConclusionsConclusionsCurrent 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

Page 26: Swarm Computing Applications in Software Engineering

ReferencesReferencesAutomated 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

Page 27: Swarm Computing Applications in Software Engineering

THANK YOUTHANK YOU

27