Introduction: A Survey of the Evolutionary Computation Techniques for Software Engineering

Introduction: A Survey of the Evolutionary Computation Techniques for Software Engineering

Monica Chis (Siemens IT Solutions and Services PSE, Romania)
DOI: 10.4018/978-1-61520-809-8.ch001


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.
Chapter Preview


Evolutionary algorithms are methods, which imitate the natural evolution process. An artificial evolution process evaluates fitness of each individual, which are solution candidates. The next population of candidate solutions is formed by using the good properties of the current population by applying different mutation and crossover operations.

Different kinds of evolutionary algorithm applications related to software engineering were searched in the literature. Because the entire book presents some interesting information chapter of some evolutionary computation techniques applied into the software engineering we consider necessary to present into this chapter a short survey of some techniques which are very useful in the future research of this field.

The majority of evolutionary algorithm applications related to software engineering were about software design or testing.

Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software (Abran and Moore, 2004).

The purpose of this book is to open a door in order to find out the optimization problems in different software engineering problems. The idea of putting together the application of evolutionary computation and evolutionary optimization techniques in software engineering problems provided to the researchers the possibility to study some existing works in this fields and to found approaches and methodologies that will combine advances in computational methods to model and analyze complex problems with powerful optimization techniques based on evolutionary principles in order to create more general, robust, accurate and computationally methods for evolutionary computation applications.

Software Engineering

Software engineering describes the collection of techniques that apply an engineering approach to the construction and support of software products. Software engineering activities include managing, costing, planning, modeling, analyzing, specifying, designing, implementing, testing and maintaining software products. Whereas computer science provides the theoretical foundations for building software, software engineering focuses on implementing software in a controlled and scientific way (Fenton et al. 1997).

Measurement is the process by which numbers or symbols are assigned to attributes of entities in the real world in such a way as to describe them according to clearly defined rules.

An entity is an object or an event in the real world. An attribute is a feature or property of an entity. We measure attributes of entities. Rules are used to determined the values for an attribute in order to made the process repeatable not subjective. It is very important to consider the representation form of each attributes (measurement unit).

Measurement is considered to be fundamental to any engineering principle. Software projects well managed have to be measured first. There are a lot of applications of evolutionary computation and optimization in the field of software engineering problems.

Defining the project estimated cost, duration and maintenance effort early in the development life cycle is a valuable goal to be achieved for software projects. There are a lot of researches in this which have used evolutionary computation in the applications of software engineering.

Complete Chapter List

Search this Book: