Evolutionary Computation and Optimization Algorithms in Software Engineering
Latest Publications


TOTAL DOCUMENTS

12
(FIVE YEARS 0)

H-INDEX

3
(FIVE YEARS 0)

Published By IGI Global

9781615208098, 9781615208104

Author(s):  
Praveen Ranjan Srivastava ◽  
Ajit Pratap Singh ◽  
Vageesh K. V.

Software Quality Assurance consists of monitoring the software engineering processes and ensuring the highest quality. But, the software quality attributes that we deal with are not explicit in the outset and cannot be easily measured. The same attribute has multiple significance and importance in multiple contexts. The user, the developer and the manager of a software product may have different stands regarding the significance of a quality attribute. A software quality engineer, while measuring the total software quality should provide appropriate weight to each of the decision makers. This chapter proposes a fuzzy multi-criteria approach to measure the total software quality and to identify the best alternative from a set of software products.


Author(s):  
Arjan Seesing ◽  
Hans-Gerhard Gross

Testing is a difficult and costly activity in the development of object-oriented programs. The challenge is to come up with a sufficient set of test scenarios, out of the typically huge volume of possible test cases, to demonstrate correct behavior and acceptable quality of the software. This can be reformulated as a search problem to be solved by sophisticated heuristic search techniques such as evolutionary algorithms. The goal is to find an optimal set of test cases to achieve a given test coverage criterion. This chapter introduces and evaluates genetic programming as a heuristic search algorithm which is suitable to evolve object-oriented test programs automatically to achieve high coverage of a class. It outlines why the object paradigm is different to the procedural paradigm with respect to testing, and why a genetic programming approach might be better suited than the genetic algorithms typically used for testing procedural code. The evaluation of our implementation of a genetic programming approach, augmented with program analysis techniques for better performance, indicates that object-oriented software testing with genetic programming is feasible in principle. However, having many adjustable parameters, evolutionary search heuristics have to be fined-tuned to the optimization problem at hand for optimal performance, and, therefore, represent a difficult optimization problem in their own right.


Author(s):  
Pandian M. Vasant

Many engineering, science, information technology and management optimization problems can be considered as non linear programming real world problems where the all or some of the parameters and variables involved are uncertain in nature. These can only be quantified using intelligent computational techniques such as evolutionary computation and fuzzy logic. The main objective of this research chapter is to solve non linear fuzzy optimization problem where the technological coefficient in the constraints involved are fuzzy numbers which was represented by logistic membership functions by using hybrid evolutionary optimization approach. To explore the applicability of the present study a numerical example is considered to determine the production planning for the decision variables and profit of the company.


Author(s):  
Praveen Ranjan Srivastava ◽  
Baby

Software testing is a key part of software development life cycle. Due to time, cost and other circumstances, exhaustive testing is not feasible, that’s why there is need to automate the testing process. Generation of the automated and effective test suit is a very difficult task in the software testing process. Effective test suite can decrease the overall cost of testing as well as increase the probability of finding defects in software systems. Testing effectiveness can be achieved by the State Transition Testing which is commonly used in, real time, embedded and web-based kind of software system. State transition testing focuses upon the testing of transitions from one state of an object to other states. The tester’s main job is to test all the possible transitions in the system. This chapter proposed an Ant Colony Optimization technique for automated and fully coverage state-transitions in the system. Through proposed algorithm all the transitions are easily traversed at least once in the test-sequence.


Author(s):  
Filomena Ferrucci ◽  
Carmine Gravino ◽  
Rocco Oliveto ◽  
Federica Sarro

Software development effort estimation is a critical activity for the competitiveness of a software company; it is crucial for planning and monitoring project development and for delivering the product on time and within budget. In the last years, some attempts have been made to apply search-based approaches to estimate software development effort. In particular, some genetic algorithms have been defined and some empirical studies have been performed with the aim of assessing the effectiveness of the proposed approaches for estimating software development effort. The results reported in those studies seem to be promising. The objective of this chapter is to present a state of the art in the field by reporting on the most significant empirical studies undertaken so far. Furthermore, some suggestions for future research directions are also provided.


Author(s):  
Monica Chis

This chapter aims to present a part of the computer science literature in which the evolutionary computation techniques, optimization techniques and other bio-inspired techniques are used to solve different search and optimization problems in the area of software engineering.


Author(s):  
Wasif Afzal ◽  
Richard Torkar ◽  
Robert Feldt ◽  
Tony Gorschek

Software fault prediction can play an important role in ensuring software quality through efficient resource allocation. This could, in turn, reduce the potentially high consequential costs due to faults. Predicting faults might be even more important with the emergence of short-timed and multiple software releases aimed at quick delivery of functionality. Previous research in software fault prediction has indicated that there is a need i) to improve the validity of results by having comparisons among number of data sets from a variety of software, ii) to use appropriate model evaluation measures and iii) to use statistical testing procedures. Moreover, cross-release prediction of faults has not yet achieved sufficient attention in the literature. In an attempt to address these concerns, this paper compares the quantitative and qualitative attributes of 7 traditional and machine-learning techniques for modeling the cross-release prediction of fault count data. The comparison is done using extensive data sets gathered from a total of 7 multi-release open-source and industrial software projects. These software projects together have several years of development and are from diverse application areas, ranging from a web browser to a robotic controller software. Our quantitative analysis suggests that genetic programming (GP) tends to have better consistency in terms of goodness of fit and accuracy across majority of data sets. It also has comparatively less model bias. Qualitatively, ease of configuration and complexity are less strong points for GP even though it shows generality and gives transparent models. Artificial neural networks did not perform as well as expected while linear regression gave average predictions in terms of goodness of fit and accuracy. Support vector machine regression and traditional software reliability growth models performed below average on most of the quantitative evaluation criteria while remained on average for most of the qualitative measures.


Author(s):  
Cagatay Catal ◽  
Soumya Banerjee

Artificial Immune Systems, a biologically inspired computing paradigm such as Artificial Neural Networks, Genetic Algorithms, and Swarm Intelligence, embody the principles and advantages of vertebrate immune systems. It has been applied to solve several complex problems in different areas such as data mining, computer security, robotics, aircraft control, scheduling, optimization, and pattern recognition. There is an increasing interest in the use of this paradigm and they are widely used in conjunction with other methods such as Artificial Neural Networks, Swarm Intelligence and Fuzzy Logic. In this chapter, we demonstrate the procedure for applying this paradigm and bio-inspired algorithm for developing software fault prediction models. The fault prediction unit is to identify the modules, which are likely to contain the faults at the next release in a large software system. Software metrics and fault data belonging to a previous software version are used to build the model. Fault-prone modules of the next release are predicted by using this model and current software metrics. From machine learning perspective, this type of modeling approach is called supervised learning. A sample fault dataset is used to show the elaborated approach of working of Artificial Immune Recognition Systems (AIRS).


Author(s):  
Hakima Mellah ◽  
Soumya Banerjee ◽  
Salima Hassas ◽  
Habiba Drias

The chapter presents a Multi Agent System (MAS) approach, for service discovery process to consider the user in the service discovery process involoving his interactions under constraints. The service discovery has become an emerging phenomena in software engineering and process engineering as well. The proposed MAS has demonstrated significant self oranizining potential. This feature is very crucial for assuring a correct service delivery, to avoid failures or mal-function for the service discovery environment. The requirement for self organizing choreographed services have been well realized, in case of operational, functional and behavioral faults. Self organization within the MAS is adopted by the recourse to a self organizing protocol conceived from bacteria colony and evolutionary computation paradigm.


Author(s):  
André Vargas Abs da Cruz ◽  
Dilza Szwarcman ◽  
Thiago S. M. Guimarães ◽  
Marco Aurélio C. Pacheco

One of the biggest challenges for the developer of object-oriented software is the modeling and developing of the objects themselves, so that they are easily reusable in complex systems. The final quality of the software depends mostly on the quality of the modeling developed for it. Modeling and specification of software are fundamental steps for making the software development an activity of engineering. Design is the activity in which software behavior and structure are elaborated. During this phase many models are developed anticipating several views of the final product and making software evaluation possible even before the software is implemented. Consequently, the synthesis of a software model can be seen as a problem of optimization, where the attempt to find a better configuration among the elements chosen through the object-oriented paradigm, such as classes, methods and attributes that meet quality design criteria. This work studies a possibility to synthesize higher quality modelings through the evolution of Genetic Algorithms, a technique that has proved to be efficient in dealing with problems involving large search spaces. The work was divided in three main stages: a study of object-oriented software engineering; the definition of a model using genetic algorithms; and co-evolution of species for the synthesis of object-oriented software modeling, aiming at quality improvement; and at the implementation of a model for case study. The study of object-oriented software engineering involved the establishment of software development phases and the characterization of the representation used in modeling phase and, in particular, the characterization of class diagrams based on UML. The study also investigated software quality metrics such as Reutilization, Flexibility, Understandability, Functionality, Extensibility and Effectiveness. The specification of genetic algorithm consisted in the definition of the structure of the chromosome that could provide a good representation of modeling diagram and a function of evaluation of the design that could take the software quality metrics in to consideration. As a result, the chromosomes represent metadata of a simplified UML diagram of classes, which may later be used as an entry of a CASE (Computer Aided Software Engineering) Tool that can create the implementation code in the chosen pattern. The evaluation function was defined focusing at the synthesis of a higher quality object-oriented software modeling. In order to observe the use of more than one objective at the same time the Pareto technique for multi objective problems was used. The evolution is directed towards the improvement of quality metrics by searching for a qualitatively better modeling, based on Bansiya’s (Bansiya and Davis, 2002) study. The construction of a co-evolutionary model consisted in defining distinct species so that each one would represent part of the problem to be evolved, thus enabling a more efficient representation of the model. The co-evolutionary model allowed the evolution of more complex structures, which would not be possible in a simple Genetic Algorithm. The chromosomes related to each species codify metadata and that is why the solution assembly (design) makes use of a decoder. A case study was done to synthesize the modeling of an elevator controller. The results achieved in this section were compared to the modelings produced by specialists, and the characteristics of these results were analyzed. The GA performance in the optimization process was compared to that of a random search and, in every case, the results achieved by the model were always better.


Sign in / Sign up

Export Citation Format

Share Document