دانلود مقاله ISI انگلیسی شماره 5646
ترجمه فارسی عنوان مقاله

سیستم های هوشمند ترکیبی برای پیش بینی قابلیت اطمینان نرم افزار

عنوان انگلیسی
Hybrid intelligent systems for predicting software reliability
کد مقاله سال انتشار تعداد صفحات مقاله انگلیسی
5646 2013 12 صفحه PDF
منبع

Publisher : Elsevier - Science Direct (الزویر - ساینس دایرکت)

Journal : Applied Soft Computing, Volume 13, Issue 1, January 2013, Pages 189–200

ترجمه کلمات کلیدی
- ( - ( - ( - (( ( - (قابلیت اطمینان نرم افزار - رگرسیون خطی چندگانه () - خط نقطه گذرهای مکعبی حداقل رگرسیون چند متغیره تطبیقی ​​() - بازگشت انتشار شبکه های عصبی () - مبارزه با انتشار شبکه عصبی () - پویا تکامل عصبی فازی سیستم استنتاج () - شبکه درختی - روش گروه پردازش داده () - برنامه نویسی ژنتیک () - معماری مکرر و مدل گروه
کلمات کلیدی انگلیسی
پیش نمایش مقاله
پیش نمایش مقاله  سیستم های هوشمند ترکیبی برای پیش بینی قابلیت اطمینان نرم افزار

چکیده انگلیسی

In this paper, we propose novel recurrent architectures for Genetic Programming (GP) and Group Method of Data Handling (GMDH) to predict software reliability. The effectiveness of the models is compared with that of well-known machine learning techniques viz. Multiple Linear Regression (MLR), Multivariate Adaptive Regression Splines (MARS), Backpropagation Neural Network (BPNN), Counter Propagation Neural Network (CPNN), Dynamic Evolving Neuro-Fuzzy Inference System (DENFIS), TreeNet, GMDH and GP on three datasets taken from literature. Further, we extended our research by developing GP and GMDH based ensemble models to predict software reliability. In the ensemble models, we considered GP and GMDH as constituent models and chose GP, GMDH, BPNN and Average as arbitrators. The results obtained from our experiments indicate that the new recurrent architecture for GP and the ensemble based on GP outperformed all other techniques.

مقدمه انگلیسی

During the past decade increasing attention was focused on computer software. As computing systems became more numerous, more complex, and more deeply embedded in modern society, there is a pressing need for developing systematic approaches to software development and software maintenance. Hence, software engineering, which deals with all these aspects, has become an independent area of research and practice. As reported in Ref. [13], “The software crisis is a term used to describe the recurring system development problems where software problems cause the system to be late, over cost, and/or not responsive to user's needs and requirements”. Software engineering was focused on the tools, techniques, and methods necessary to solve the “software crisis.” Papers and reports abound with description of new methodologies and software tools developed in university and corporation laboratories. Much of this discussion has centered on what is sometime termed a “silver bullet” i.e. the tool or technique that can solve the software crisis. Gibbs [13] proposed that such a silver bullet exists and it is a software engineering project management issue. A properly managed project, in a mature software engineering environment, managed by a competent manager, can repeatedly deliver a software system on time, within cost, and satisfactory to the user. Good project management environment can compensate when things go wrong, for example, adjust the delivery schedule under changing conditions, select appropriate people for the job at hand, provide clear and unambiguous direction, monitor progress and job completion status, and take appropriate actions when controlling metrics indicate plans are not being followed. Thus software reliability plays an important role in software project management. Software engineering is inherently knowledge intensive. Software processes and products are human centered [30]. In an attempt to pursue fruitful developments it is beneficial to identify sources of such shortcomings. At the same time they dealt with high-level abstract concepts and result in constructs whose functioning is not governed by the requirement of the laws of physics. There is no direct use of ideas such as continuity that is very intuitive and helpful in the physical world. In software engineering, small changes to the requirements may result in far drastic and radical changes in a total cost of the overall project. There is no concept of time because software products do not wear out in contrast to physical systems that are subjected to such deterioration. Reliability is probably the most important of the characteristics inherent in the concept “software quality”. Software reliability is defined as the probability that the software will work without failure for a specified period of time [37]. Software reliability is an important factor related to defects and faults. It differs from hardware reliability in that it reflects the design perfection, rather than manufacturing perfection. The principal factors that affect software reliability are (i) fault introduction, (ii) fault removal and (iii) the environment. Fault introduction depends primarily on the characteristics of the product and the development process. The characteristics of development process include software engineering technologies and tools used the level of experience of the personnel, volatility of requirements, and other factors. Failure discovery, in turn, depends on the extent to which the software has been executed and the operational profile. Because some of the foregoing factors are probabilistic in nature and operate over time, software reliability models have generally been formulated in terms of random processes in execution time. In the past few years much research work has been carried out in software reliability and forecasting but no single model could capture software characteristics very accurately. In this paper, we propose recurrent architecture for GP and GMDH and also ensemble models involving GP, GMDH as constituents and GP, GMDH, BPNN and Average as arbitrators in predicting software reliability. We compared their performance with that of some of the well-known machine learning techniques. The rest of the paper is organized in the following manner. In Section 2, a brief review of the works carried out in area of software reliability prediction is presented. In Section 3, various stand-alone machine-learning techniques applied in this paper are briefly described. In Section 4, the experimental design followed in this paper is presented, while Section 5 presents our proposed methodology. It is followed by Section 6 that discusses the results and discussion. Finally, Section 7 concludes the paper.

نتیجه گیری انگلیسی

In this paper, we compare the NRMSE values obtained by different intelligent techniques with GP and GMDH in the stand alone mode. We found that GP and GMDH performed better results in terms of NRMSE values. Further, we extended our research by developing GP and GMDH based novel recurrent architectures and ensemble models to predict software reliability. In the ensemble models, we considered GP and GMDH as constituent models and chose GP, GMDH, BPNN and Average as arbitrators. We tested the effectiveness of these models on three software failure dataset taken from literature. Based on the experimental results, we make the following observations: •We conclude that the GP and GMDH based ensemble architectures and Rwoi GP, performed well in terms of NRMSE value in all data sets over almost all lags. •Most importantly, we found that Rwoi GP yielded least NRMSE values which indicates that Rwoi GP based recurrent architecture are the best techniques to predict software reliability. •In practice, to predict software reliability, we suggest to use Rwoi GMDH rather than GP, because GP is more time consuming than Rwoi GMDH. •This is a significant outcome of this study.