Soft Computing and Decision Support System for Software Process Improvement: A Systematic Literature Review

Abstract

Software project development is very crucial, and measuring the exact cost and effort of development is becoming tedious and challenging. Organizations are trying to wind up their project of software development within the agreed budget and schedule successfully. Traditional practices are inadequate to achieve the current needs of the software industry. Underestimation and overestimation of software development effort lead to financial implications in the form of resources, cost of staffing, and budget of developing the software project. Soft computing (SC) approaches and tools deliver an addition of techniques for anticipating resistance to the deception, defect, incomplete truth for traceability and ambiguity, low arrangement cost, and strength. A large amount of SC approaches is prevailing in the literature to accomplish way-out to difficulties precisely, practically, and speedily. The approaches of SC can give better prediction, high performance, and dynamic behavior. SC deals with computational intelligence which integrates the concept of agent paradigm and SC. The proposed study presents a systematic literature review (SLR) of the approaches, tools, and techniques of SC used in the literature. The study presented a comprehensive review by searching the defined keywords in the popular libraries, filtered the paper, and obtained most relevant papers. After the selection of the papers, the quality assessment process of the included papers has been done in order to determine the relevancy of the papers. The study will help researchers in the area of research to devise novel ideas and solutions to overcome the existing issue on the basis of this study as evidence of the literature.

1. Introduction

Soft computing approaches provide an accumulation of procedures for intending resistance to the deception, defect, incomplete truth for traceability and ambiguity, low arrangement cost, and strength. Various approaches exist for the fault prediction of the software process. The applications of SC such as artificial neural network (ANN), Mamdani and Takagi–Sugeno style fuzzy inference system (FIS), and adaptive neuro-FIS are used to build the fault prediction model. A framework was presented for making process and product for predicting agile software development faulty modules. Using the Ant dataset project version of the PROMISE data repository, various experiments were performed for obtaining the goal of the research. Furthermore, for assessing the outcomes of the suggested predictive model, the receiver operating characteristic with area under the curve was applied. The proposed research can help the developer in the design phase as well in testing and maintenance phases. The approach can also lessen the time effort in the review process and code [1]. The research elaborated the issues residing in the development of integrated intelligent information systems, wherein information is observed as a function of idea and which has open-ended query controlling features. SC with specific reference to rough sets as the probable candidate has been analyzed. Large-scale computing shift to large-scope computing in the multilingual databases and multimedia context has been highlighted [2].

The developmental phase of the software project is very crucial, and measuring the exact cost and effort of development is becoming tedious and challenging. Organizations are trying to wind up their project of software development with the agreed budget and schedule successfully. Traditional techniques are inadequate to accomplish the current needs. Underestimation and overestimation of the effort of software development lead to financial implications in the form of resources, cost of staffing, and budget of developing the software project. The needs of an appropriate and well-defined SC model can be integrated for estimating precisely and predicting the cost or effort in time. The proposed study has considered approaches of SC such as support vector regression, linear regression, ensemble learning, multilayer perceptron, and random forest which are applied and compared for assessing the precise effort estimation, and several error assessment metrics are calculated and documented. Chinese datasets have been considered which consist of 499 standard project instances. During the training and testing of the dataset, it was achieved that mean absolute error, medium of MRE, magnitude of the error related to the estimate, PRED (25), and magnitude of the relative error for the decision tree and random forest showed improved results than the available techniques [3]. The phases of software engineering such as project planning, monitoring and controlling, and scheduling are based on the precise estimation of effort and cost. At the early stages of the software development life cycle, it is uncertain to accurately and precisely measure the effort of software which can eventually lead software to failure. The study has presented experimental comparisons of cost estimation models of software based on the approaches applied in the model through statistical criteria. The results were good compared to the existing software cost estimation approaches to the defined parameters in whole and also dependent on the project type, apaches, and data used in implementation [4].

At present, no detailed study has been reported in the area of research. The contribution of the proposed study is to present an SLR of the approaches, tools, and techniques of SC. The study presented a comprehensive review by searching the defined keywords in the popular libraries, filtered the paper, and obtained most relevant papers. After the selection of the papers, the quality assessment process of the included papers has been done in order to determine the relevancy of the papers.

The organization of the paper is as follows: Section 2 is the representation of the research method and protocol followed for conducting the proposed study. This section consists of other sections which further elaborate the research method in detail. Section 3 shows the results and discussion section of the paper. The paper is concluded in Section 4.

2. Research Method

2.1. Process of the Research Plan

The protocol of the SLR is a way of facilitating the process of keywords’ search, identifying associated materials related to the area of research, bringing together studies in a well-organized manner, and originating significant information and derivations from the selected studies and materials. Figure 1 signifies the process followed for the planned study, where initially, the protocol of the review process is defined, then the search strategies are followed by documentation of search strategies, then appropriate materials are encompassed while the rest of materials are excluded, the process of quality evaluation is done for the included papers, and lastly, the data analysis and extraction from the included papers are performed.

Figure 2 graphically represents the SLR process for conducting the proposed study. The figure consists of three research questions, four selected libraries, search string of keywords, initial number of obtained research publications, filtering process by title, abstract, and then contents, the quality assessment of the included papers, and data extraction and synthesis from the studies.

The total process of papers’ filtering is shown in Figure 3.

2.2. Research Questions

The following research questions were defined for the proposed study:(i)What are the existing approaches and techniques of SC generally used in software development?(ii)What techniques and approaches are used in which situation of software development?(iii)How to analyze the existing research in the area of SC in software development?

2.3. Keywords and Libraries

Popular libraries were considered for the search process. Other libraries such as Google Scholar were skipped due to the reason that they are publishing all the materials, while the selected libraries are only publishing the materials which are peer reviewed. Following is the list of libraries considered for the proposed study:(i)ACM(ii)ScienceDirect(iii)IEEE(iv)Springer

The following keywords were searched in the given libraries. These keywords were decided as the most relevant to the proposed study. (“Soft computing”) AND (“decision support system”) OR (“DSS”) AND (“software process”) AND (“improvement”).

2.4. Assessing the Quality of the Included Papers

The quality assessment of the included papers was considered as a significant part of the proposed review for checking the quality and relevancy of the included studies. Various measures were used for ranking the relevancy of the selected papers related to the proposed study. Score 1 was given for the paper which is more relevant to the defined research question, score 0.5 was given to the paper which is somewhat relevant to the proposed study, and score 0 was given to the paper which is not relevant to the defined research question.

3. Results and Discussion

The following sections describe the results and discussion of the proposed study.

3.1. What Are the Existing Approaches and Techniques of SC Generally Used in Software Development?

Soft computing idea came into existence with the replacement of traditional computing, dealing with approximation and giving solutions for real-life problems. Distinct from hard computing, soft computing accepts the issues of uncertainty, approximation, imprecision, and partial truth. The approaches of soft computing mostly consist of genetic algorithms, fuzzy logic, machine learning, artificial neural networks, and expert systems. Various applications of soft computing exist in different domains of real life such as automatic control engineering and many others. The approaches of soft computing are currently being used in many commercial, industrial, and domestic applications. Figure 4 represents the conventional and soft computing-based problem-solving approach [5].

Figure 5 represents the included papers in the study along with the details of the methods used, the type of publication, and its year of publishing [1, 4, 6–45].

3.2. What Techniques and Approaches of SC Are Used in Which Situation of Software Development?

Various approaches of soft computing are used in different situations of software development. Sharma and Chandra [47] presented comparisons of different approaches of SC concerning the fault prediction of the process of software. Apart from this, software fault prediction process pros and cons for approaches of SC are presented. Results of the study have shown that approaches of SC have the tendency for identifying faults in the software development process. The applications of neural networks (NNs) and approaches of SC for the estimation of effort through fuzzy logic, random forest, adaptive neuro-FIS, and support vector machine are presented. Models of SC are established through the NN, fuzzy logic, and ANFIS through the Desharnais and NASA93 dataset. These models are compared according to various criteria of assessment. Among these models, the ANFIS achieved improved effort estimates [39]. The study has proposed a default algorithmic model as a substitute when the efficient model exists. The approach has the feature of inherently independent of the algorithmic model choice. With the combination of neural networks, algorithmic models, and fuzzy logic, the approach has integration ability, learning capability, robustness, and good interpretability to uncertain and vague inputs. The results have shown that the proposed approach is effective using projects of the industry for validation [48]. The study has concentrated on the evaluation of normally used approaches of SC such as NN, genetic algorithm, SVM, particle swarm optimization, fuzzy logic, ant bee colony, and ant colony optimization. The study focus based on working of these scientific computing approaches and evaluation of scientific computing approaches for predicting reliability. Various parameters used to estimate and predict reliability are elaborated. Various fields such as software engineering, computer engineering, and mechanical engineering and medical system are considered for estimating and predicting the reliability of different instruments. These ideas can be useful for both hardware and software in terms of predicting reliability through CBSE [28]. The study provides optimization approach solutions for different and complex issues in various software engineering fields. The optimization algorithms consist of mathematical procedures intending for best ideal results to the fault, defect, strength, low arrangement cost, and failure to achieve tractability. An inclusive overview of software metrics and testing based on optimization approaches and SC is introduced. The issues such as software fault prediction and defect prediction and their solutions through optimization algorithms and SC are explained. An overview of the applications of SC approaches and optimization algorithms is presented [19].

A large amount of SC techniques exists in the literature to accomplish way-out to problems accurately, reasonably, and speedily. The approaches of SC can give improved prediction, high performance, and dynamic behavior. The study has presented a comprehensive survey on the available delicate processing approaches, and after that, it analyzed the work in the field of software reliability [18]. Estimation of software effort can play a significant role in the software project success. Inconsistent, unreliable, and inaccurate estimation of software can eventually lead software to failure. The estimation of software effort in developing software is becoming a crucial task. The effort of software must be measured efficiently for avoiding unexpected results. SC is a link with the approaches involving fuzzy logic, evolutionary computation, and ANN. Such approaches provide and facilitate flexible information-processing ability to handle real-life circumstances. The study delivers a detailed report on the effort estimation of software from the early stages including expert judgement-based SEE to the advanced approaches of SC [37]. Sharma and Chandra [23] presented a comprehensive overview on the approaches of SC for testing of software. Various issues of software engineering and specifically software testing and their solutions based on SC were elaborated. The review includes various approaches of SC such as fuzzy logic, NN, particle swarm optimization, ant colony optimization, and genetic algorithm in software testing. Soft agent computing is a branch of computational intelligence which integrates the concept of agent paradigm and SC. This idea delivers technology inheriting the assistances and provides solutions which have some of the features of human intuitive and cognition, abstraction of agent technology, and system level. Research presented an investigation of these limitations from two diverse aspects, architectural and agent characteristics. The research presented diverse layers of abstraction for soft agent computing and then described and proposed the particle soft agent computing system which is based on the model of beliefs-desires-intentions. Lastly, different perspectives were considered during building the system of soft agent computing which are elaborated, and the study presented various research fields for further research [49].

Fuzzy aggregation and fuzzy query were introduced for predicting and ranking the university admission and credit scoring as an alternative, utilizing subjective and imprecise process. Furthermore, the study presented the BISC decision support system. The vital feature of the BISC decision system for the applications of internet is (a) the usage of a huge amount of data intelligently and optimizing the way in organizations as the decision support system and (b) to share securely and intelligently company data within and with the customer and partner of business. Five parts of the model are application template, fuzzy search engine, database, user interface, and evolutionary computing [50]. Chawla et al. [13] proposed a hybrid genetic algorithm and particle swarm optimization-based heuristic for test suite automatic generation. The development and implementation strategy of the proposed system and assessment of the model through experiments with the Java standard library contain ten classes. The algorithm is analyzed statistically with the criterion of test adequacy as branch coverage. The algorithm is compared with the heuristic based on particle swarm optimization, genetic algorithm, and existing hybrid strategies. The efficiency of the research is shown with results of the study. SC approaches can be applied for automating, designing, maximizing, and maintaining the value of the decision process. The advantages are presented in two applications; the first one used fuzzy rule-based and case-based reasoning for creating the decision system capable to control risk for assurance applications. The second one is fuzzy information fusion to select replacement parts needed for repairing mechanism of medical imaging [51]. The study has presented a web-based risk avoidance group DSS which facilitates to provide a platform to the expert group for making risk decisions to bidding of the software project. The study has examined the process, principle, function, and frame of the system. The study has presented the prototype system based on the variable precision rough set model [52]. Table 1 summarizes the details of the techniques and methods used in the literature.

3.3. How to Analyze the Existing Research in the Area of SC in Software Development?

The purpose of the proposed study was to in-depth analyze the existing literature and to identify the existing materials published in the area. For this purpose, various popular libraries including ACM, IEEE, ScienceDirect, and Springer were searched. This study has identified the number of publications in the given year, type of publication, venue of publication, and others in the given libraries. Analysis of the publications has been performed from different perspectives which are given in this section. In the first step of the process, the library of ACM was searched based on the defined keywords. The articles’ type and the total publications are shown in Figure 6.

In the same library, the sponsors of publications are presented in Figure 7.

The conference events are also identified and are shown in Figure 8.

After completing the search process of the above library, the library of IEEE was searched, and the materials obtained are shown in Figures 9 and 10.

In the same library, the article types and the total of publications are given in Figure 11.

The library of ScienceDirect was searched for obtaining the associated materials in the area of the study. Figure 12 graphically shows the years with the total of publications.

The subject along with the number of publications is given in Figure 13.

The type of articles is shown in Figure 14.

In this library, furthermore, the publication titles and the number of publications are identified and shown in Figure 15.

At last, the library of Springer was searched according to the defined search query. In this library, the article types are represented in Figure 16.

Figure 17 graphically depicts the disciplines and the number of papers.

Subdisciplines were studied in the given library which are shown in Figure 18.

The current study has identified some areas of research which need improvement for better software development. These areas of research include software process improvement, software quality, software engineering, program testing, software maintenance, software metrics, performance evaluation of software, software architecture, and public domain software.

4. Conclusion

Software development is a very fundamental phase of software. Determining the exact cost and effort of development is becoming a tedious and challenging task. Traditional practices are insufficient to attain the present needs of the software industry. Underestimation and overestimation of software development effort lead to financial implications in the form of resources, cost of staffing, and budget of developing the software project. Soft computing approaches deliver an accumulation of measures for intending resistance to the deception, defect, incomplete truth for traceability and ambiguity, low arrangement cost, and strength. A large amount of soft computing approaches is prevailing in the literature for accomplishing way-out to problems precisely, practically, and speedily. The proposed study has presented an SLR of the approaches, tools, and techniques of soft computing used in the literature. The study presented a comprehensive review by searching the defined keywords in the popular libraries, filtered the paper, and obtained most relevant papers. After the selection of the papers, the quality assessment process of the included papers has been done in order to conclude the relevancy of the papers. The study shows that there is rise up in the literature in the proposed research area. This study will provide support for researchers in the field of research to devise novel ideas and solutions, and this study will be considered as evidence of the literature.

[“source=hindawi”]

Loknath Das