Special Issue "Emerging Computational Intelligence Technologies for Software Engineering: Paradigms, Principles and Applications"

Submission Deadline: 31 December 2020 (closed)
Guest Editors
Dr. Dac-Nhuong Le, Haiphong University, Vietnam.
Dr. Harish Garg, Thapar Institute of Engineering and Technology, Deemed University, Patiala, Punjab, India.
Dr. João Manuel R. S. Tavares, Universidade do Porto, Portugal.


As software systems are becoming more and more large and complex, there are various challenges posed by these systems. A software goes through various stages before it can be deployed such as requirements elicitation, software designing, software project planning, software coding, software testing and maintenance. In each of these stages, there are a number of tasks or activities involved. Due to large and complex nature of software, these software engineering tasks have become increasingly costly and more prone to errors. Thus, there is a demand to explore computational intelligent techniques to carry out different software engineering tasks. Computational intelligence is related to artificial intelligence where the heuristic algorithms are designed and used to give a good output in a reasonable amount of time. These algorithms have been used in different fields such as medical science, bioinformatics, computer networks (for routing and scheduling), and forecasting. In addition, researchers have applied intelligent techniques to various domains of software engineering as well such as software requirement prioritization, software cost estimation, reliability assessment, software defect prediction, maintainability prediction, quality prediction, size estimation, software vulnerability prediction, software test case prioritization and many more. Computational techniques such as evolutionary algorithms, machine learning approaches, meta-heuristic algorithms, and optimization schemes, are different types of intelligent techniques frequently used. Optimization algorithms can be used for obtaining a solution to a problem where the goals or targets to be achieved are known. Machine learning algorithms are used when we have sufficient data using which knowledge can be extracted and models can be trained. For example, models can be developed for predicting error prone classes of software. A meta-heuristic is a high-level, iterative process that guides and manipulates an underlying heuristic to efficiently explore the search space. The underlying heuristic can be a local search, or a low or high-level procedure. Meta-heuristics provide near optimal solutions with high accuracy and limited resources in a reasonable amount of time by exploiting the search space. For this book, researchers, academicians and professionals are going to be invited to contribute with chapters expressing their ideas and research in the application of intelligent techniques to the field of software engineering. Both theoretical contributions and practical applications in the area of intelligent techniques are welcome.

Potential topics include, but are not limited to, the following:

• Artificial intelligence techniques for improving software development

• Bio-Inspired optimization techniques for software engineering

• Computational intelligence and quantitative software engineering

• Computational techniques to solve class imbalance problem

• Computational intelligence approaches for software quality improvement

• Search algorithms for test case prioritization

• Test case generation using intelligent algorithms

• Intelligent requirement elicitation to optimize software quality

• Software cost estimation models using machine learning

• Artificial intelligence in predictive maintenance

• Developing intelligent systems for software design

• Use of intelligent techniques for analyzing software repositories

• Assessing intelligent text classification techniques

• Software quality prediction using intelligent techniques

• Intelligent feature selection techniques

• Intelligent computing techniques for software reliability prediction

• Soft computing techniques for software effort models

• Intelligent computing techniques for schedule estimation models.

• Artificial intelligence in prediction of software maintenance effort.

• Artificial intelligence in for software quality prediction.

• Artificial intelligence in software vulnerability prediction.

• Developing intelligent systems for software defect prediction models

• Artificial intelligence in software cost estimation

Software engineering, software development, software quality, computational intelligence, artificial intelligence, bio-Inspired optimization, evolution algorithms, meta-heuristic algorithms, machine learning

Published Papers
  • Code Smell Detection Using Whale Optimization Algorithm
  • Abstract Software systems have been employed in many fields as a means to reduce human efforts; consequently, stakeholders are interested in more updates of their capabilities. Code smells arise as one of the obstacles in the software industry. They are characteristics of software source code that indicate a deeper problem in design. These smells appear not only in the design but also in software implementation. Code smells introduce bugs, affect software maintainability, and lead to higher maintenance costs. Uncovering code smells can be formulated as an optimization problem of finding the best detection rules. Although researchers have recommended different techniques to… More
  •   Views:1711       Downloads:1092       Cited by:2        Download PDF

  • Test Case Generation from UML-Diagrams Using Genetic Algorithm
  • Abstract Software testing has been attracting a lot of attention for effective software development. In model driven approach, Unified Modelling Language (UML) is a conceptual modelling approach for obligations and other features of the system in a model-driven methodology. Specialized tools interpret these models into other software artifacts such as code, test data and documentation. The generation of test cases permits the appropriate test data to be determined that have the aptitude to ascertain the requirements. This paper focuses on optimizing the test data obtained from UML activity and state chart diagrams by using Basic Genetic Algorithm (BGA). For generating the… More
  •   Views:1395       Downloads:1112        Download PDF

  • Optimal Reordering Trace Files for Improving Software Testing Suitcase
  • Abstract An invariant can be described as an essential relationship between program variables. The invariants are very useful in software checking and verification. The tools that are used to detect invariants are invariant detectors. There are two types of invariant detectors: dynamic invariant detectors and static invariant detectors. Daikon software is an available computer program that implements a special case of a dynamic invariant detection algorithm. Daikon proposes a dynamic invariant detection algorithm based on several runs of the tested program; then, it gathers the values of its variables, and finally, it detects relationships between the variables based on a simple… More
  •   Views:1316       Downloads:893        Download PDF