No.053 Computational Intelligence for Software Engineering

NII Shonan Meeting:

@ Shonan Village Center, October 20-23, 2014

NII Shonan Meeting Report (ISSN 2186-7437):No.2014-13


  • Hong Mei, Shanghai Jiao Tong University/ Peking University, China
  • Frank Neumann, The University of Adelaide, Australia
  • Xin Yao, The University of Birmingham, UK
  • Leandro Minku, The University of Birmingham, UK

Overview053_Group Photo

Computational intelligence (CI) techniques have provided many inspirations for improving

software engineering, both in terms of the engineering process as well as the

software product. The application of CI techniques in software engineering is a well

established research area that has been around for decades. There have been dedicated

conferences, workshops, and journal special issues on applications of CI techniques to

software engineering.

In recent years, there has been a renewed interest in this area, driven by the need to

cope with increased software size and complexity and the advances in CI. Search-based

software engineering [1] provided some examples of how difficult software engineering

problems can be solved more effectively using search and optimisation algorithms.

It is interesting to note that search-based software engineering does not provide

merely novel search and optimisation algorithms, such as evolutionary algorithms, to

solve existing software engineering problems. It helps to promote rethinking

and reformulation of classical software engineering problems in different ways.

For example, explicit reformulation of some hard software engineering problems as true

multiobjective problems, instead of using the traditional weighted sum approach,

has led to both better solutions to the problems as well as richer information that

can be provided to software engineers [2,3]. Such information

about trade-off among different objectives, i.e., competing criteria,

can be very hard to obtained using classical approaches.

However, most work in search-based software engineering has been focused on

increasing the efficiency of solving a software engineering problem, e.g., testing,

requirement prioritisation, project scheduling/planning, etc. Much fewer work has been

reported in the literature about CI techniques used in constructing

and synthesizing ac-tual software. Automatic programming has always been a dream

for some people, but somehow not as popular as some other research topics.

The advances in evolutionary computation, especially in genetic programming [4],

has re-ignited people’s interest in automatic programming. For example, after the idea

of automatic bug fixing was first proposed and demonstrated [5], industrial scale software

has been tested using this approach and bugs fixed [6]. The continuous need to

test and improve a software system can be modelled as a competitive co-evolutionary

process [7], where the programs try to improve and gain a higher fitness by passing

all the testing cases while all the testing cases will evolve to be more challenging to

the programs. The fitness of a testing case is determined by its ability to fail programs.

Such competitive co-evolution can create ”arms race” between programs and

testing cases, which help to improve the programs automatically. In fact, competitive

co-evolution has been used in other engineering design domains with success.

There are many other examples of highly innovative ideas from CI for tackling hard

software engineering problems. The primary aim of this proposed Shonan meeting

is to provide an interdisciplinary forum for computational intelligence and software

engineering. It is envisioned that there will be 50% of the participants from each of the

two areas. The goal of the meeting is to explore and debate this very promising area of

CI for software engineering, including search-based software engineering.

The meeting will include presentations by the participants as well as discussion

groups for hot topics and future work. The discussion groups play a central role and

should reflect on the current state of the art in the different areas of software engineering

and computational intelligence, foster interdisciplinary work, and establish new

research directions. The outcomes of these discussion groups will be summarized in

the Shonan meeting report such that it is available to all researchers interested in

computational intelligence and software engineering.


1. M. Harman and B. F. Jones, Search-based software engineering. Information

and Software Technology, 43:833?839, 2001.

2. K. Praditwong, M. Harman and X. Yao, Software Module Clustering as a Multi-

Objective Search Problem. IEEE Transactions on Software Engineering, 37(2):264-

282, March/April 2011.

3. Z. Wang, K. Tang and X. Yao, Multi-objective Approaches to Optimal Testing

Resource Allocation in Modular Software Systems. IEEE Transactions on Reliability,

59(3):563-575, September 2010.

4. N. L. Cramer. A Representation for the Adaptive Generation of Simple Sequential

Programs. In J. J. Grefenstette, editor, Proc. of ICGA’85, pp.183-187, 1985.

5. A. Arcuri and X. Yao, “A novel co-evolutionary approach to automatic software

bug fixing,” Proceedings of the 2008 IEEE Congress on Evolutionary Computation

(CEC2008), (Piscataway, NJ), pp. 162?168, IEEE Press, 2008.

6. W. Weimer, T. Nguyen, C. L. Goues, and S. Forrest. Automatically Finding

Patches Using Genetic Programming. Proc. of the 2009 International Conference

on Software Engineering (ICSE), pp. 364-374, 2009.

7. A. Arcuri and X. Yao, “Coevolving programs and unit tests from their specification,”

Proc. of the 22nd IEEE/ACM International Conference on Automated

Software Engineering (ASE’2007), (New York, NY), pp.397?400, ACM Press,


Comments are closed.