You are previewing Evolutionary Computation and Optimization Algorithms in Software Engineering: Applications and Techniques.
O'Reilly logo
Evolutionary Computation and Optimization Algorithms in Software Engineering: Applications and Techniques

Book Description

Evolutionary Computation and Optimization Algorithms in Software Engineering: Applications and Techniques lays the foundation for the successful integration of evolutionary computation into software engineering. It surveys techniques ranging from genetic algorithms, to swarm optimization theory, to ant colony optimization, demonstrating their uses and capabilities. These techniques are applied to aspects of software engineering such as software testing, quality assessment, reliability assessment, and fault prediction models, among others, to providing researchers, scholars and students with the knowledge needed to expand this burgeoning application.

Table of Contents

  1. Copyright
  2. Editorial Advisory Board
  3. List of Reviewers
  4. Foreword
  5. Preface
    1. THE MOTIVATION OF SOFTWARE ENGINEERING AND EVOLUTIONARY COMPUTATION
    2. A GUIDED TOUR OF THE CHAPTERS
  6. Acknowledgment
  7. 1. Introduction: A Survey of the Evolutionary Computation Techniques for Software Engineering
    1. ABSTRACT
    2. MOTIVATION
      1. Software Engineering
      2. Evolutionary Computation
      3. Application of Evolutionary Computation and Optimization Techniques in Software Engineering
    3. REFERENCES
  8. 2. Using Evolutionary Based Approaches to Estimate Software Development Effort
    1. ABSTRACT
    2. INTRODUCTION
      1. Goal of the Chapter
      2. Organization of the Chapter
    3. BACKGROUND: ESTIMATING SOFTWARE DEVELOPMENT EFFORT
    4. EVOLUTIONARY BASED APPROACHES FOR EFFORT ESTIMATION
      1. Genetic Algorithms
      2. Empirical Studies That Investigated Evolutionary Approaches to Estimate Software Development Effort
      3. Empirical Studies That Investigated the Use of Evolutionary Based Approaches to Improve the Effectiveness of Some Existing Estimation Techniques
    5. FUTURE RESEARCH DIRECTIONS
    6. REFERENCES
  9. 3. The Application of Genetic Algorithms to the Evaluation of Software Reliability
    1. ABSTRACT
    2. 1. INTRODUCTION
      1. 1.1 Optimizing from Quality Criteria
      2. 1.2 Evolutionary Computation
    3. 2. BASIC TENETS OF GENETIC ALGORITHMS
      1. 2.1 The Canonical Genetic Algorithm
      2. 2.2 General Considerations on Genetic Algorithms
        1. 2.2.1 Comments Regarding the Operation of a Genetic Algorithm
          1. 2.2.1.1 It Explicitly Works on a Discrete Search Space
          2. 2.2.1.2 It Searches the Solution Space by Evaluating a Small Set of Plausible Solutions
          3. 2.2.1.3 It Randomly Determines the Initial Set of Points
          4. 2.2.1.4 Searches the Solution Space by Probing Several Points (Plausible Solutions) Simultaneously
          5. 2.2.1.5 Iteratively Refines the Quality of the Set of Points
          6. 2.2.1.6 It Replaces the Set of Original Points by Combining the Information Obtained During Each Iteration Using the So-Called Genetic Operators
          7. 2.2.1.7 It Retains a Copy of the n Best Evaluated Individuals (Where n≥1) in a process called Elitism
          8. 2.2.1.8 Conclusion
      3. 2.3 An Improved Genetic Algorithm
        1. 2.3.1 Vasconcelos' Genetic Algorithm
          1. 2.3.1.2 Comment
    4. 3. MEASUREMENT OF SOFTWARE RELIABILITY
      1. 3.1 Software Reliability Engineering and Genetic Algorithms
        1. 3.1.1 Metrics for Requirements Reliability
          1. 3.1.1.1 Automated Requirements Measurement
        2. 3.1.2 Metrics for Design and Code Reliability
          1. 3.1.2.1 Complexity
          2. 3.1.2.2 Size
          3. 3.1.2.3 Modularity
          4. 3.1.2.4 Object Oriented Code
        3. 3.1.3 Metrics for Testing Reliability
          1. 3.1.3.1 Musa Basic Model
      2. 3.2 Applications
      3. 3.3 Considering Constraints in Genetic algorithms
      4. 3.4 Software Reliability Engineering and Genetic Algorithms
      5. 3.5 Run A GA
        1. 3.5.1 Case Studies
          1. 3.5.1.1 Case Study 1
          2. 3.5.1.2 Case Study 2
      6. 3.6 Modeling the Most reliable Software System
    5. REFERENCES
    6. ENDNOTES
  10. 4. Synthesis of Object-Oriented Software Structural Models Using Quality Metrics and Co-Evolutionary Genetic Algorithms
    1. ABSTRACT
    2. 1. INTRODUCTION
      1. 1.1. Motivation
      2. 1.2. Related works
    3. 2. SOFTWARE ENGINEERING
      1. 2.1. object-oriented System Design
      2. 2.2. Software Quality Metrics
    4. 3. DESIGN EVOLUTION SYSTEM BASED ON OBJECT- ORIENTED QUALITY
      1. 3.1. Architecture of the Proposed System
        1. Component Specification
        2. Evolution
        3. Metadata
        4. CASE tool
        5. Component
      2. 3.2. Synthesis of Design by Co- Evolutionary Genetic Algorithms
        1. 3.2.1. Species Representation
          1. Species Classes
          2. Dependency Species
          3. Species Methods
          4. Species Attributes
        2. 3.2.2 Genetic Operators
        3. 3.2.3. Decoding
        4. 3.2.4. Multi-Objective Evaluation
    5. 4. CASE STUDY
      1. 4.1. Elevator Control
        1. 4.1.1. Design
        2. 4.1.2. Results
    6. 5. CONCLUSION AND FUTURE WORK
    7. 6. REFERENCES
  11. 5. Application of Artificial Immune Systems Paradigm for Developing Software Fault Prediction Models
    1. ABSTRACT
    2. 1. INTRODUCTION
    3. 2. ROLE OF ARTIFICIAL IMMUNE SYSTEM IN SOFTWARE ENGINEERING DOMAIN: MOTIVATION AND EXAMPLES
    4. 3. AIRS ALGORITHM FOR SOFTWARE FAULT PREDICTION
      1. 3.1 AIRS Algorithm: Diagrammatic Representation
    5. 4. CASE STUDY: APPLICATION OF AIRS FOR FAULT PREDICTION
      1. 4.1. Initialization
      2. 4.2. Memory Cell Identification and ARB generation
      3. 4.3. Competition for Limited Resources
      4. 4.4. Memory Cell Introduction
      5. 4.5. Classification
    6. 5. CONCLUSION
    7. ACKNOWLEDGMENT
    8. REFERENCES
  12. 6. Genetic Programming for Cross-Release Fault Count Predictions in Large and Complex Software Projects
    1. ABSTRACT
    2. 1. INTRODUCTION
    3. 2. RELATED WORK
    4. 3. SELECTION OF FAULT COUNT DATA SETS
      1. 3.1. Data Collection process
    5. 4. RESEARCH QUESTIONS
    6. 5. EVALUATION MEASURES
      1. 5.1. Quantitative Evaluation
      2. 5.2. Qualitative Evaluation
    7. 6. SOFTWARE FAULT PREDICTION TECHNIQUES
      1. 6.1. Genetic Programming (GP)
      2. 6.2. Artificial Neural Networks (ANN)
      3. 6.3. Support Vector Machine (SVM)
      4. 6.4. Linear Regression (LR)
      5. 6.5. Traditional Software Reliability Growth Models
    8. 7. EXPERIMENT AND RESULTS
      1. 7.1. Evaluation of Goodness of Fit
      2. 7.2. Evaluation of Predictive Accuracy
      3. 7.3. Evaluation of Model Bias
      4. 7.4. Qualitative Evaluation of Models
    9. 8. VALIDITY EVALUATION
    10. 9. DISCUSSION AND CONCLUSION
    11. REFERENCES
    12. ENDNOTES
  13. 7. Exploring a Self Organizing Multi Agent Approach for Service Discovery
    1. ABSTRACT
    2. 1. INTRODUCTION
    3. 2. BACKGROUND
    4. 3. SELF ORGANIZATION AND MULTI AGENT SYSTEM: BIO-INSPIRED EVOLUTIONARY APPROACH
    5. 4. THE PROTOCOL
      1. 4.1 Positioning Primitive
      2. 4.2 Election Primitive
      3. 4.3 Routing Primitive
      4. 4.4 Checking Primitive
    6. 5. SERVICE DISCOVERY PROCESS: STEP WISE IMPLEMENTATION
      1. 5.1 The Multi Agent System for Service Discovery
      2. 5.2 System Functioning
    7. 6. FAILURES OCCURRING WITHIN THE SYSTEM
      1. 6.1 Agent Failures
        1. 6.1.1 Agent Machines(AM)
          1. 1. The breakdown AM ai is the alone neighbor of an agent aj
          2. 2. The breakdown agent ai has several neighbors
        2. 6.1.2 Request Analyzer Agent or Composer Agent Failure
      2. 6.2 A Communication Link Failure
        1. 6.2.1 The MAS is Decomposed Into Two Systems
        2. 6.2.2 The Isolated Agent Is a Neighbor of an Agent Pertaining To a Subsystem
        3. 6.2.3 The Two Agents Pertain To the Same System
      3. 6.3 Service failure
    8. 7. CASE STUDY AND ANALYSIS
      1. 7.1 example
    9. 8. IMPLEMENTATION ASPECTS
    10. 9. CONCLUSION AND FUTURE RESEARCH
    11. REFERENCES
  14. 8. Innovative Hybrid Genetic Algorithms and Line Search Method for Industrial Production Management
    1. ABSTRACT
    2. INTRODUCTION
    3. DEVELOPMENT OF MEMBERSHIP FUNCTION
    4. CASE STUDY CHOCOLATE MANUFACTURING
      1. Problem Statement
    5. HYBRID GENETIC ALGORITHM FOR SOLVING OPTIMIZATION PROBLEMS
    6. EXPERIMENTAL RESULTS
    7. CONCLUSION AND FUTURE RESEARCH DIRECTIONS
    8. ACKNOWLEDGMENT
    9. REFERENCES
  15. 9. Automatic Test Sequence Generation for State Transition Testing via Ant Colony Optimization
    1. ABSTRACT
    2. INTRODUCTION
    3. BACKGROUND WORK
    4. SOFTWARE TESTING & ANT COLONY OPTIMIZATION
    5. AUTOMATIC TEST SEQUENCE GENERATION BY APPLYING ACO
    6. PROPOSED APPROACH AND STTACO TOOL
    7. ANALYSIS OF PROPOSED ALGORITHM
    8. CONCLUSION
    9. ACKNOWLEDGMENT
    10. REFERENCES
    11. KEY TERMS AND DEFINITIONS
  16. A. APPENDIX
  17. 10. Object Oriented Software Testing with Genetic Programming and Program Analysis
    1. ABSTRACT
    2. INTRODUCTION
    3. 2 AUTOMATED SOFTWARE TESTING AND EVOLUTIONARY ALGORITHMS
    4. 3 EVOLUTIONARY TESTING FOR OBJECT-ORIENTED PROGRAMS
      1. Chromosome Encoding for object- oriented Evolutionary Testing
      2. Genotype -Phenotype Transfer for Object-Oriented Evolutionary Testing
    5. 4 SOFTWARE TEST CASE GENERATION WITH GENETIC PROGRAMMING
      1. Chromosome Encoding for Gp
      2. Object Reflection
      3. Operators for Genetic Programming
        1. Initial Population
        2. Mutation
        3. Crossover
      4. Optimization of the Genetic Programming Approach
        1. Two-Stage Optimization
        2. Program Analysis
      5. Genotype-Phenotype Transfer and Program Execution
    6. 5 EXPERIMENTS WITH TEST CASE GENERATION BASED ON GENETIC PROGRAMMING
    7. 6 SUMMARY, CONCLUSION AND FUTURE WORK AND FUTURE WORK
    8. REFERENCES
  18. 11. Assessment of Software Quality: A Fuzzy Multi-Criteria Approach
    1. ABSTRACT
    2. INTRODUCTION
    3. BACKGROUND
    4. FUZZY LOGIC: AN OVERVIEW
      1. Fuzzy Membership Function
      2. Linguistic Variables
      3. Fuzzy Steps
      4. Fuzzy Rule Based System
      5. Fuzzy-to-Crisp Conversions (Defuzzification Methods)
    5. METHODOLOGY
    6. PROCEDURE
    7. DISCUSSION
    8. CONCLUSION AND FUTURE WORK
    9. ACKNOWLEDGMENT
    10. REFERENCES
    11. KEY TERMS AND DEFINITIONS
  19. 12. Verification of Attributes in Linked Lists Using Ant Colony Metaphor
    1. ABSTRACT
    2. 1. INTRODUCTION
    3. 2. BACKGROUND OF ANT COLONY OPTIMIZATION AND RELATED WORKS
    4. 3. HOW AND WHEN THE PREDICATE LOGIC FAILS: POSSIBLE MEASURES
      1. 3.1 proposed Algorithm: Mapping linked list into Agent based Traversal
        1. 3.1.1 Code Validation of Linked List Operations
        2. 3.1.2 Implementation and Result
    5. 5. CONCLUSION
    6. REFERENCES
    7. ENDNOTE
  20. Compilation of References
  21. About the Contributors