140 likes | 244 Views
Implementation & Integration. Research Paper Presentation Nick Conway. Using Genetic Algorithms and Coupling Measures to Devise Optimal Integration Test Orders. Lionel C Briand Jie Feng Yvan Labiche 14 th International Conference on Software Engineering and Knowledge Engineering July, 2002.
E N D
Implementation & Integration Research Paper Presentation Nick Conway
Using Genetic Algorithms and Coupling Measures to Devise Optimal Integration Test Orders • Lionel C Briand • Jie Feng • Yvan Labiche • 14th International Conference on Software Engineering and Knowledge Engineering July, 2002
Implementation & Integration Phase • Drivers and Stubs • Order • Top-Down • Bottom-Up • Sandwich
Complex Class Diagrams • Problem: cyclic. • To devise implementation/integration order, break dependencies to come up with an acyclic ordering. • Breaking a dependency means writing a stub. • What dependencies to break?
Devising Optimal Order of Class Integration • Goal: minimize the complexity of stubbing during integration. • Complexity of dependencies between modules (classes). • Break least complex dependencies (and therefore, write the least complex stubs). • Two simple stubs may be less costly than one complex stub.
Why GA’s? • Problem similar to TSP – searching for an order that minimizes a cost function. • Heuristics allow for complexity considerations. • Global Optimization Technique – avoid getting stuck in local minima. • Allows for consideration of external constraints.
Measuring Stub Complexity (defining a heuristic) • Constraint: do not break Composition or Inheritance dependencies. Breaking these will result in complex stubs. • 2 Measures (remaining dependencies): • A = maximum number of attributes that would have to be handled in the stub if the dependency were broken. • M = maximum number of methods that would have to be handled in the stub if the dependency were broken. • Overall Complexity of stub/dependency is weighted geometric average of the measures (A+M=1).
GA’s – Important Terms • Chromosome – a solution to the problem (an implementation order). • Crossover – an evolution operator used to create a new chromosome from two parent chromosomes (replaces weakest chromosomes to maintain population size). • Mutation – allows for new solutions to arise by mutating (changing) some of the chromosomes (orders).
Other Parameters • Population – number of chromosomes in the set. • Crossover Rate – probability that a chromosome will undergo a crossover (each generation). • Mutation Rate – probability a chromosome will undergo a mutation (each generation).
Parameters Used • Used most common parameters from literature on TSP. • Population = 100 • Crossover Rate = 50% • Mutation Rate = 15% • Generations = 500