important issue in the development of the software engineering field. ... diction using Machine Learning Techniques with Android Softwareâ compares several ...
Applied Soft Computing 49 (2016) 953–955
Contents lists available at ScienceDirect
Applied Soft Computing journal homepage: www.elsevier.com/locate/asoc
Preface
Special Issue: Soft computing in software engineering
1. Introduction As software-intensive systems become more and more complex, more intelligent approaches are needed to solve several challenging problems in this domain. Soft computing has many applications in the discipline of Software Engineering. Researchers applied computational intelligence techniques for many challenging problems such as software cost estimation, software defect prediction, and software application categorization so far. Since software engineering field has many dimensions, we need to investigate the use of soft computing in this field. The main focus of this special issue is the application of Soft Computing approaches for software engineering problems such as: software cost estimation, software defect prediction, software vulnerability prediction, application categorization, maintainability prediction, and quality prediction. In addition to these problems, there are additional problems which require the development of more intelligent approaches in Software Engineering and the following list shows some of these problems: reusability prediction, testability prediction, software release timing, reliability prediction, size estimation, quality prediction, and maintainability prediction. According to the recent studies, soft computing has become an important issue in the development of the software engineering field. Soft Computing uses special techniques like neural networks, fuzzy logic, support vector machines, and evolutionary computation to minimize the execution periods of functional tasks. The aim of this special issue is to highlight the utility of different soft computing methodologies on software engineering problems. Original research papers that have solved the technical challenges in Software Engineering using Soft Computing techniques have been accepted for this special issue. This special issue comprises twenty-five (25) articles categorized into the following six categories: (i) software effort estimation, (ii) software fault prediction, (iii) software testing, (iv) software product line engineering, (v) software reliability analysis, and (vi) requirements engineering. The organization of this special issue is introduced in the following sections.
2. Software effort estimation Software effort estimation studies predict the effort required to develop the software based on several uncertain inputs. Although the early effort estimation studies focused on regression analysis, recent approaches started to investigate the use of computational http://dx.doi.org/10.1016/j.asoc.2016.09.046 1568-4946/© 2016 Published by Elsevier B.V.
intelligence techniques such as genetic programming, fuzzy logic, and neural networks. There are four papers about this topic in this special issue. The first article entitled “Evaluation of Estimation Models using the Minimum Interval of Equivalence” proposes a measure based on the concepts of Equivalence Hypothesis Testing for the comparison of soft computing methods in the software effort estimation problem. In their study, the authors showed that genetic programming and linear regression methods provide better performance on the seven public effort estimation datasets. The second article entitled “Software Effort Estimation based on the Optimal Bayesian Belief Network” suggests a three-level Bayesian network by considering all intervals of nodes of network as fuzzy numbers for the software effort estimation problem. The authors stated that optimal updating coefficient obtained by genetic algorithm improves the performance of estimation. The third article entitled “A Hybrid Model for Estimating Software Project Effort from Use Case Points” proposes a hybrid model using support vector machines and radial basis neural networks (RBFNN) for effort estimation. First, clustering and classification techniques were performed for productivity prediction, and then RBFNN was applied for the effort prediction. The fourth article entitled “Improved Estimation of Software Development Effort Using Classical and Fuzzy Analogy Ensembles” focuses on the potential of fuzzy and classical analogy ensemble techniques. Authors concluded that there is no best ensemble technique which can provide the best performance on all the datasets, but fuzzy analogy ensembles are better than the classical analogy ensembles.
3. Software fault prediction Software fault prediction models predict the defect-prone modules based on previous version’s software metrics and the fault labels. After the training model is built, it’s used to predict the faultproneness labels of the current modules. Fault-prone modules are tested in detail and therefore, the limited testing resources are utilized effectively. There are six articles under this category in the special issue. The fifth article entitled “Iterative Software Fault Prediction with a Hybrid Approach” applies an iterative fault prediction technique by using Artificial Neural Network and Adaptive Neuro Fuzzy Inference System. Authors concluded that this approach is successful and gives promising results.
954
Preface / Applied Soft Computing 49 (2016) 953–955
The sixth article entitled “An Empirical Framework for Defect Prediction using Machine Learning Techniques with Android Software” compares several machine learning techniques on several Android application packages by using 10-fold cross-validation validation method. The authors reported that machine learning techniques provide high performance on datasets created based on Android software. The seventh article entitled “How Repeated Data Points Affect Bug Prediction Performance: A Case Study” analyses repeated data points on the success of prediction performance in industrial and open-source projects. The authors here presented a pre-processing algorithm for fault prediction. The eighth article entitled “Effective Multi-Objective Naive Bayes Learning for Cross-Project Defect Prediction” proposes multiobjective Naive Bayes learning techniques modelled by a Harmony Search meta-heuristic algorithm for cross-project defect prediction. The authors of this study showed that they are very effective for prediction under cross-project settings. The purpose of the ninth article entitled “Defect Prediction for Cascading Style Sheets” is to extract new metrics from stylesheet languages to build high-performance defect prediction models for web applications. This article is the first application of static code analysis in CSS code for defect prediction area. The tenth article entitled “Classification with Reject Option for Software Defect Prediction” proposes Extreme Learning Machine (ELM) with reject option to have high reliability for software defect prediction problem. This approach is one of the best alternatives for the classification with reject option.
4. Software testing As the complexity of software systems increases, it becomes crucial to manage the software quality as an engineering field which is now called software quality engineering. Software testing is the most widely known quality assurance activity under software quality engineering field. There are eight articles which applied soft computing methods to solve several challenging problems under this category. The eleventh article entitled “The Experimental Applications of Search-Based Techniques for Model-Based Testing: Taxonomy and Systematic Literature Review” provides a systematic literature review (SLR) by using 72 experimental papers on the use of search-based techniques for model-based testing and presents a new taxonomy to categorize the applications. The authors reported that studies primarily focused on structural and functional coverage, but the number of papers which use complex industrial applications is not enough. In article twelve entitled “Application of Negative Selection Algorithm (NSA) for Test Data Generation of Path Testing”, the authors presented a novel method based on negative selection algorithm for the generation of test data to satisfy the path coverage criterion. They showed that the approach reduces the number of generated test data and improves the coverage percentage. The thirteenth article entitled “Using Simulated Annealing for Computing Cost-Aware Covering Arrays” proposes a simulated annealing-based approach to compute cost-aware covering arrays. The authors evaluated the approach on Apache and MySQL datasets and reported that this novel technique is more efficient than the existing approaches. In article fourteen entitled “A Systolic Genetic Search for Reducing the Execution Cost of Regression Testing”, authors present a technique based on Systolic Genetic Search (SGS) algorithm to solve the test suite minimization problem. They reported that this algorithm is better than two competitive genetic algorithms and four heuristics approaches.
In article fifteen entitled “Real time detection of cache-based side-channel attacks using Hardware Performance Counters”, authors apply machine learning techniques to detect cache-based sidechannel attacks in real time to limit the amount of leaked information. They stated that they could not see any false positives in their test environment and the system can be used in real world scenarios when some optimizations are performed. Article sixteen entitled “Heuristics For Deriving Distinguishing Experiments of Nondeterministic Finite State Machines”, proposes three heuristics to derive the distinguishing sequences for nondeterministic finite state machine specifications. Experiments were performed using randomly generated machines. In article seventeenth entitled “EMCDM: Efficient Model Checking by Data Mining for Verification of Complex Software Systems Specified through Architectural Styles”, authors implemented a tool called GROOVE for designing and model checking graph transformation systems. They showed that this technique is more accurate than the existing approaches in model checking of complex systems. In article eighteen entitled “Comparison of Metaheuristic Algorithms and Fitness Functions on Software Test Data Generation”, authors applied several meta-heuristics (artificial bee colony, particle swarm optimization, differential evolution, and firefly algorithms) and random search algorithm to solve the test data generation problem. They showed that meta-heuristics are very effective for this problem. 5. Software product line engineering Instead of developing software systems by using single system engineering approach, it is possible to apply software product line engineering approach to increase the reusability. This field is also known as software product families. After the common platform is built, new products are developed by using the variability points in the platform, and therefore, the development time and effort decrease dramatically. In this special issue, there are three articles under this category. The nineteenth article entitled “IBED: Combining IBEA and DE for Optimal Feature Selection in Software Product Line Engineering” introduces a novel multi-objective evolutionary algorithm for optimal feature selection for software product lines. Authors reported that their approach with enhancement techniques outperforms several multi-objective evolutionary algorithms on most of the case studies. Article twenty entitled “Deriving Products for Variability Test of Feature Models with a Hyper-Heuristic Approach” proposes a hyperheuristic approach to derive products for variability testing of software product lines. The authors’ technique is better than the traditional algorithms. Article twenty-one entitled “A Hybrid Approach to Suggest Software Product Line Portfolios” introduces a hybrid approach for feature model selection problem to support product portfolio scoping. The authors concluded that the approach is useful from practitioner’s perspective and it is scalable. 6. Software reliability analysis A software system should be able to function for a specified period of time and reliability quality factor describes this ability of the system. In this special issue, there are two articles on software reliability analysis. Future reliability of a software system can be predicted by using software reliability growth models. The twenty-second article entitled “On Deterministic Chaos in Software Reliability Growth Models” shows that software reliability growth models are accurate enough to be used in widespread industry by using four different datasets.
Preface / Applied Soft Computing 49 (2016) 953–955
The twenty-third article entitled “Identifying Critical Architectural Components with Spectral Analysis of Fault Trees” focuses on sensitivity analysis to be applied based on spectral analysis of fault trees. The authors proposed a new sensitivity metric called spectral sensitivity which outperforms the existing metrics in particular cases. 7. Requirements engineering Requirements engineering is the first phase of traditional software development life cycle and most of the faults in software systems come from the deficiencies in this phase. Two articles exist under this category. In article twenty-four entitled “Incorporating User Preferences in Ant Colony Optimization for the Next Release Problem”, the authors propose an interactive algorithm based on ant colony optimization to solve the next release problem. Their approach reaches solutions which meet the user preferences with little loss in terms of score. The purpose of the twenty-fifth article entitled “Extracting Features from Online Software Reviews to Aid Requirements Reuse” is to obtain the software features by extracting phases from processes. They made a suggestion that uses unsupervised learning and NLP to solve requirements reuse problem with 87% precision. Acknowledgements The guest editors of this special issue would like to thank the authors and the reviewers for all their work to make this special issue come to life. We would like to thank Elsevier and the ASOC editorial team for their trust in, and support of our project.
955
Managing Guest Editor Cagatay Catal Department of Computer Engineering, Faculty of Engineering, I˙ stanbul Kültür University, Istanbul 34156, Turkey Guest Editor Coskun Bayrak Department of Computer Science, University of Arkansas at Little Rock, Little Rock, AR 72204, United States Guest Editor Ali Bou Nassif Department of Electrical and Computer Engineering, The University of Sharjah, M6, Sharjah, United Arab Emirates Guest Editor Kemal Polat Department of Electrical and Electronics Engineering, Abant Izzet Baysal University, Bolu 14280, Turkey Guest Editor Akhan Akbulut Department of Computer Engineering, Faculty of Engineering, I˙ stanbul Kültür University, Istanbul 34156, Turkey